| 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 |  | 
| Denys Vlasenko | 9bf5942 | 2010-02-20 01:03:51 +0100 | [diff] [blame] | 12 | .section	.text..startup | 
| Yoshinori Sato | 97a572b | 2007-05-06 14:50:36 -0700 | [diff] [blame] | 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 |