sh: allow romImage data between head.S and the zero page
authorMagnus Damm <damm@opensource.se>
Tue, 18 May 2010 14:42:40 +0000 (14:42 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Mon, 31 May 2010 04:11:34 +0000 (13:11 +0900)
Extend the romImage code to allow putting data between
the head.S file and the empty_zero_page. Needed in the
case of more advanced loader code in a separate C file.

Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/boot/romimage/head.S
arch/sh/boot/romimage/vmlinux.scr

index 93e779a..65b8256 100644 (file)
@@ -13,7 +13,9 @@ romstart:
 #include <mach/romimage.h>
 
        /* copy the empty_zero_page contents to where vmlinux expects it */
-       mova    empty_zero_page_src, r0
+       mova    extra_data_pos, r0
+       mov.l   extra_data_size, r1
+       add     r1, r0
        mov.l   empty_zero_page_dst, r1
        mov     #(PAGE_SHIFT - 4), r4
        mov     #1, r3
@@ -37,7 +39,9 @@ romstart:
        mov     #PAGE_SHIFT, r4
        mov     #1, r1
        shld    r4, r1
-       mova    empty_zero_page_src, r0
+       mova    extra_data_pos, r0
+       add     r1, r0
+       mov.l   extra_data_size, r1
        add     r1, r0
        jmp     @r0
         nop
@@ -45,4 +49,6 @@ romstart:
        .align 2
 empty_zero_page_dst:
        .long   _text
-empty_zero_page_src:
+extra_data_pos:
+extra_data_size:
+       .long   zero_page_pos - extra_data_pos
index 287c08f..ea27298 100644 (file)
@@ -1,6 +1,7 @@
 SECTIONS
 {
   .text : {
+       zero_page_pos = .;
        *(.data)
        }
 }