Skip to content

Commit

Permalink
sh: include empty zero page in romImage
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Magnus Damm authored and Paul Mundt committed Dec 4, 2009
1 parent 6e8a0d1 commit 6a5a0b9
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 3 deletions.
12 changes: 9 additions & 3 deletions arch/sh/boot/romimage/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,22 @@
# 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
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
$(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

$(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)
38 changes: 38 additions & 0 deletions arch/sh/boot/romimage/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,44 @@
*/

.text
#include <asm/page.h>

.global romstart
romstart:
/* include board specific setup code */
#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:

0 comments on commit 6a5a0b9

Please sign in to comment.