h8300: add zImage support
[sfrench/cifs-2.6.git] / arch / h8300 / boot / compressed / head.S
diff --git a/arch/h8300/boot/compressed/head.S b/arch/h8300/boot/compressed/head.S
new file mode 100644 (file)
index 0000000..b8e90d1
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ *  linux/arch/h8300/boot/compressed/head.S
+ *
+ *  Copyright (C) 2006 Yoshinori Sato
+ */
+
+.h8300h
+#include <linux/linkage.h>
+
+#define SRAM_START 0xff4000
+
+       .section        .text.startup
+       .global startup
+startup:
+       mov.l   #SRAM_START+0x8000, sp
+       mov.l   #__sbss, er0
+       mov.l   #__ebss, er1
+       sub.l   er0, er1
+       shlr    er1
+       shlr    er1
+       sub.l   er2, er2
+1:
+       mov.l   er2, @er0
+       adds    #4, er0
+       dec.l   #1, er1
+       bne     1b
+       jsr     @_decompress_kernel
+       jmp     @0x400000
+
+       .align  9
+fake_headers_as_bzImage:
+       .word   0
+       .ascii  "HdrS"          ; header signature
+       .word   0x0202          ; header version number (>= 0x0105)
+                               ; or else old loadlin-1.5 will fail)
+       .word   0               ; default_switch
+       .word   0               ; SETUPSEG
+       .word   0x1000
+       .word   0               ; pointing to kernel version string
+       .byte   0               ; = 0, old one (LILO, Loadlin,
+                               ; 0xTV: T=0 for LILO
+                               ;       V = version
+       .byte   1               ; Load flags bzImage=1
+       .word   0x8000          ; size to move, when setup is not
+       .long   0x100000        ; 0x100000 = default for big kernel
+       .long   0               ; address of loaded ramdisk image
+       .long   0               ; its size in bytes