source: rtems/bsps/powerpc/motorola_powerpc/bootloader/ppcboot.lds @ eb36d11

5
Last change on this file since eb36d11 was 03e1d837, checked in by Sebastian Huber <sebastian.huber@…>, on Apr 24, 2018 at 5:06:36 AM

bsps/powerpc: Move bootloader to bsps

This bootloader is only used by the motorola_powerpc BSP.

This patch is a part of the BSP source reorganization.

Update #3285.

  • Property mode set to 100644
File size: 2.2 KB
Line 
1OUTPUT_ARCH(powerpc)
2OUTPUT_FORMAT ("elf32-powerpc", "elf32-powerpc", "elf32-powerpc")
3/* Do we need any of these for elf?
4   __DYNAMIC = 0;    */
5SECTIONS
6{
7  .text :
8  {
9    /* We have to build the header by hand, painful since ppcboot
10        format support is very poor in binutils.
11        objdump -b ppcboot zImage --all-headers can be used to check. */
12    /* The following line can be added as a branch to use the same image
13     * for netboot as for prepboots, the only problem is that objdump
14     * did not in this case recognize the format since it insisted
15     * in checking the x86 code area held only zeroes.
16     */
17    LONG(0x48000000+start);
18    . = 0x1be; BYTE(0x80); BYTE(0)
19    BYTE(2); BYTE(0); BYTE(0x41); BYTE(1);
20    BYTE(0x12); BYTE(0x4f); LONG(0);
21    BYTE(((_edata + 0x1ff)>>9)&0xff);
22    BYTE(((_edata + 0x1ff)>>17)&0xff);
23    BYTE(((_edata + 0x1ff)>>25)&0xff);
24    . = 0x1fe;
25    BYTE(0x55);
26    BYTE(0xaa);
27    BYTE(start&0xff);
28    BYTE((start>>8)&0xff);
29    BYTE((start>>16)&0xff);
30    BYTE((start>>24)&0xff);
31    BYTE(_edata&0xff);
32    BYTE((_edata>>8)&0xff);
33    BYTE((_edata>>16)&0xff);
34    BYTE((_edata>>24)&0xff);
35    BYTE(0); /* flags */
36    BYTE(0); /* os_id */
37    BYTE(0x4C); BYTE(0x69); BYTE(0x6e);
38    BYTE(0x75); BYTE(0x78); /* Partition name */
39    . = 0x400;
40    *(.text)
41    *(.sdata2)
42    *(.rodata)
43    *(.rodata*)
44  }
45/*  . = ALIGN(16); */
46  .image :
47  {
48    rtems.gz(*)
49    . = ALIGN(4);
50    *.gz(*)
51  }
52  /* Read-write section, merged into data segment: */
53  /* . = ALIGN(4096); */
54  .reloc   :
55  {
56    *(.got)
57    _GOT2_TABLE_ = .;
58    *(.got2)
59    _FIXUP_TABLE_ = .;
60    *(.fixup)
61  }
62
63  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
64  __fixup_entries = (. - _FIXUP_TABLE_)>>2;
65
66  .handlers :
67  {
68    *(.exception)
69  }
70
71  .data    :
72  {
73    *(.data)
74    *(.data*)
75    *(.sdata)
76    . = ALIGN(4);
77    _edata = .;
78  }
79  PROVIDE(_binary_initrd_gz_start = 0);
80  PROVIDE(_binary_initrd_gz_end = 0);
81  _rtems_gz_size = _binary_rtems_gz_end - _binary_rtems_gz_start;
82  _rtems_size = __rtems_end - __rtems_start;
83  .bss :
84  {
85    *(.sbss)
86    *(.bss)
87    . = ALIGN(4);
88  }
89  __bss_words = SIZEOF(.bss)>>2;
90  __size = . ;
91  /DISCARD/ :
92  {
93    *(.comment)
94  }
95}
96
Note: See TracBrowser for help on using the repository browser.