Yoshinori Sato | 97a572b | 2007-05-06 14:50:36 -0700 | [diff] [blame] | 1 | /* |
| 2 | * linux/arch/h8300/boot/compressed/head.S |
| 3 | * |
| 4 | * Copyright (C) 2006 Yoshinori Sato |
| 5 | */ |
| 6 | |
Yoshinori Sato | 86277d5 | 2007-07-15 23:38:35 -0700 | [diff] [blame] | 7 | .h8300h |
Yoshinori Sato | 97a572b | 2007-05-06 14:50:36 -0700 | [diff] [blame] | 8 | #include <linux/linkage.h> |
| 9 | |
| 10 | #define SRAM_START 0xff4000 |
| 11 | |
| 12 | .section .text.startup |
| 13 | .global startup |
| 14 | startup: |
| 15 | mov.l #SRAM_START+0x8000, sp |
| 16 | mov.l #__sbss, er0 |
| 17 | mov.l #__ebss, er1 |
| 18 | sub.l er0, er1 |
| 19 | shlr er1 |
| 20 | shlr er1 |
| 21 | sub.l er2, er2 |
| 22 | 1: |
| 23 | mov.l er2, @er0 |
| 24 | adds #4, er0 |
| 25 | dec.l #1, er1 |
| 26 | bne 1b |
| 27 | jsr @_decompress_kernel |
| 28 | jmp @0x400000 |
| 29 | |
| 30 | .align 9 |
| 31 | fake_headers_as_bzImage: |
| 32 | .word 0 |
| 33 | .ascii "HdrS" ; header signature |
| 34 | .word 0x0202 ; header version number (>= 0x0105) |
| 35 | ; or else old loadlin-1.5 will fail) |
| 36 | .word 0 ; default_switch |
| 37 | .word 0 ; SETUPSEG |
| 38 | .word 0x1000 |
| 39 | .word 0 ; pointing to kernel version string |
| 40 | .byte 0 ; = 0, old one (LILO, Loadlin, |
| 41 | ; 0xTV: T=0 for LILO |
| 42 | ; V = version |
| 43 | .byte 1 ; Load flags bzImage=1 |
| 44 | .word 0x8000 ; size to move, when setup is not |
| 45 | .long 0x100000 ; 0x100000 = default for big kernel |
| 46 | .long 0 ; address of loaded ramdisk image |
| 47 | .long 0 ; its size in bytes |