50 lines
1.0 KiB
ArmAsm
50 lines
1.0 KiB
ArmAsm
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/*
|
|
* linux/arch/h8300/boot/compressed/head.S
|
|
*
|
|
* Copyright (C) 2006 Yoshinori Sato
|
|
*/
|
|
|
|
#include <linux/linkage.h>
|
|
|
|
.section .text..startup,"ax"
|
|
.global startup
|
|
startup:
|
|
mov.l #startup, sp
|
|
mov.l er0, er4
|
|
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
|
|
mov.l er4, er0
|
|
jmp @output
|
|
|
|
.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
|
|
|
|
.end
|