xref: /OK3568_Linux_fs/kernel/arch/h8300/boot/compressed/head.S (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun *  linux/arch/h8300/boot/compressed/head.S
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun *  Copyright (C) 2006 Yoshinori Sato
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <linux/linkage.h>
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun	.section	.text..startup,"ax"
11*4882a593Smuzhiyun	.global	startup
12*4882a593Smuzhiyunstartup:
13*4882a593Smuzhiyun	mov.l	#startup, sp
14*4882a593Smuzhiyun	mov.l	er0, er4
15*4882a593Smuzhiyun	mov.l	#__sbss, er0
16*4882a593Smuzhiyun	mov.l	#__ebss, er1
17*4882a593Smuzhiyun	sub.l	er0, er1
18*4882a593Smuzhiyun	shlr	er1
19*4882a593Smuzhiyun	shlr	er1
20*4882a593Smuzhiyun	sub.l	er2, er2
21*4882a593Smuzhiyun1:
22*4882a593Smuzhiyun	mov.l	er2, @er0
23*4882a593Smuzhiyun	adds	#4, er0
24*4882a593Smuzhiyun	dec.l	#1, er1
25*4882a593Smuzhiyun	bne	1b
26*4882a593Smuzhiyun	jsr	@decompress_kernel
27*4882a593Smuzhiyun	mov.l	er4, er0
28*4882a593Smuzhiyun	jmp	@output
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun	.align	9
31*4882a593Smuzhiyunfake_headers_as_bzImage:
32*4882a593Smuzhiyun	.word	0
33*4882a593Smuzhiyun	.ascii	"HdrS"		; header signature
34*4882a593Smuzhiyun	.word	0x0202		; header version number (>= 0x0105)
35*4882a593Smuzhiyun				; or else old loadlin-1.5 will fail)
36*4882a593Smuzhiyun	.word	0		; default_switch
37*4882a593Smuzhiyun	.word	0		; SETUPSEG
38*4882a593Smuzhiyun	.word	0x1000
39*4882a593Smuzhiyun	.word	0		; pointing to kernel version string
40*4882a593Smuzhiyun	.byte	0		; = 0, old one (LILO, Loadlin,
41*4882a593Smuzhiyun				; 0xTV: T=0 for LILO
42*4882a593Smuzhiyun				;       V = version
43*4882a593Smuzhiyun	.byte	1		; Load flags bzImage=1
44*4882a593Smuzhiyun	.word	0x8000		; size to move, when setup is not
45*4882a593Smuzhiyun	.long	0x100000	; 0x100000 = default for big kernel
46*4882a593Smuzhiyun	.long	0		; address of loaded ramdisk image
47*4882a593Smuzhiyun	.long	0		; its size in bytes
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun	.end
50