sh: include empty zero page in romImage
This patch updates the romImage code to include the empty_zero_page contents from vmlinux. Without this patch the empty zero page is lef uninitialized. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
6e8a0d11a0
commit
6a5a0b9139
|
@ -4,16 +4,22 @@
|
||||||
# create an image suitable for burning to flash from zImage
|
# create an image suitable for burning to flash from zImage
|
||||||
#
|
#
|
||||||
|
|
||||||
targets := vmlinux head.o
|
targets := vmlinux head.o zeropage.bin piggy.o
|
||||||
|
|
||||||
OBJECTS = $(obj)/head.o
|
OBJECTS = $(obj)/head.o
|
||||||
LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext 0 -e romstart
|
LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext 0 -e romstart \
|
||||||
|
-T $(obj)/../../kernel/vmlinux.lds
|
||||||
|
|
||||||
$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
|
$(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
|
||||||
$(call if_changed,ld)
|
$(call if_changed,ld)
|
||||||
@:
|
@:
|
||||||
|
|
||||||
|
OBJCOPYFLAGS += -j .empty_zero_page
|
||||||
|
|
||||||
|
$(obj)/zeropage.bin: vmlinux FORCE
|
||||||
|
$(call if_changed,objcopy)
|
||||||
|
|
||||||
LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T
|
LDFLAGS_piggy.o := -r --format binary --oformat $(ld-bfd) -T
|
||||||
|
|
||||||
$(obj)/piggy.o: $(obj)/vmlinux.scr arch/sh/boot/zImage FORCE
|
$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/zeropage.bin arch/sh/boot/zImage FORCE
|
||||||
$(call if_changed,ld)
|
$(call if_changed,ld)
|
||||||
|
|
|
@ -5,6 +5,44 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
#include <asm/page.h>
|
||||||
|
|
||||||
.global romstart
|
.global romstart
|
||||||
romstart:
|
romstart:
|
||||||
|
/* include board specific setup code */
|
||||||
#include <mach/romimage.h>
|
#include <mach/romimage.h>
|
||||||
|
|
||||||
|
/* copy the empty_zero_page contents to where vmlinux expects it */
|
||||||
|
mova empty_zero_page_src, r0
|
||||||
|
mov.l empty_zero_page_dst, r1
|
||||||
|
mov #(PAGE_SHIFT - 4), r4
|
||||||
|
mov #1, r3
|
||||||
|
shld r4, r3 /* r3 = PAGE_SIZE / 16 */
|
||||||
|
|
||||||
|
1:
|
||||||
|
mov.l @r0, r4
|
||||||
|
mov.l @(4, r0), r5
|
||||||
|
mov.l @(8, r0), r6
|
||||||
|
mov.l @(12, r0), r7
|
||||||
|
add #16,r0
|
||||||
|
mov.l r4, @r1
|
||||||
|
mov.l r5, @(4, r1)
|
||||||
|
mov.l r6, @(8, r1)
|
||||||
|
mov.l r7, @(12, r1)
|
||||||
|
dt r3
|
||||||
|
add #16,r1
|
||||||
|
bf 1b
|
||||||
|
|
||||||
|
/* jump to the zImage entry point located after the zero page data */
|
||||||
|
mov #PAGE_SHIFT, r4
|
||||||
|
mov #1, r1
|
||||||
|
shld r4, r1
|
||||||
|
mova empty_zero_page_src, r0
|
||||||
|
add r1, r0
|
||||||
|
jmp @r0
|
||||||
|
nop
|
||||||
|
|
||||||
|
.align 2
|
||||||
|
empty_zero_page_dst:
|
||||||
|
.long _text
|
||||||
|
empty_zero_page_src:
|
||||||
|
|
Loading…
Reference in New Issue