use microwatt mmu powerpc.lds with better stack space
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 21 Feb 2022 18:34:13 +0000 (18:34 +0000)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 21 Feb 2022 18:34:13 +0000 (18:34 +0000)
coldboot/head.S
coldboot/powerpc.lds

index 104cb7ee19614560805a22db34ccc1eb5fcd2b35..38d5421d51f4a15a0ffd6a42b7c3783219de2312 100644 (file)
@@ -14,8 +14,6 @@
  * limitations under the License.
  */
 
-#define STACK_TOP 0x2900
-
 #define FIXUP_ENDIAN                                              \
        tdi   0,0,0x48;   /* Reverse endian of b . + 8          */ \
        b     191f;       /* Skip trampoline if endian is good  */ \
@@ -61,7 +59,7 @@ _start:
 .global boot_entry
 boot_entry:
        /* setup stack */
-       LOAD_IMM64(%r1, STACK_TOP - 0x100)
+       LOAD_IMM64(%r1, __stack_top)
        LOAD_IMM64(%r12, main)
        mtctr   %r12,
        bctrl
index 5e2f3175d401dd326368cf123046e97e263fe429..99611ab41cea7a6ffc10153e49abb329675ddee0 100644 (file)
@@ -1,13 +1,27 @@
 SECTIONS
 {
-       _start = .;
        . = 0;
+       _start = .;
        .head : {
                KEEP(*(.head))
-       }
-       . = 0x1000;
-       .text : { *(.text) }
-       . = 0x2c00;
-       .data : { *(.data) }
-       .bss : { *(.bss) }
+       }
+       . = ALIGN(0x1000);
+       .text : { *(.text) *(.text.*) *(.rodata) *(.rodata.*) }
+       . = ALIGN(0x1000);
+       .data : { *(.data) *(.data.*) *(.got) *(.toc) }
+       . = ALIGN(0x80);
+       __bss_start = .;
+       .bss : {
+               *(.dynsbss)
+               *(.sbss)
+               *(.scommon)
+               *(.dynbss)
+               *(.bss)
+               *(.common)
+               *(.bss.*)
+       }
+       . = ALIGN(0x80);
+       __bss_end = .;
+       . = . + 0x4000;
+       __stack_top = .;
 }