18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * linux/arch/h8300/boot/compressed/head.S 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2006 Yoshinori Sato 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/linkage.h> 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci .section .text..startup,"ax" 118c2ecf20Sopenharmony_ci .global startup 128c2ecf20Sopenharmony_cistartup: 138c2ecf20Sopenharmony_ci mov.l #startup, sp 148c2ecf20Sopenharmony_ci mov.l er0, er4 158c2ecf20Sopenharmony_ci mov.l #__sbss, er0 168c2ecf20Sopenharmony_ci mov.l #__ebss, er1 178c2ecf20Sopenharmony_ci sub.l er0, er1 188c2ecf20Sopenharmony_ci shlr er1 198c2ecf20Sopenharmony_ci shlr er1 208c2ecf20Sopenharmony_ci sub.l er2, er2 218c2ecf20Sopenharmony_ci1: 228c2ecf20Sopenharmony_ci mov.l er2, @er0 238c2ecf20Sopenharmony_ci adds #4, er0 248c2ecf20Sopenharmony_ci dec.l #1, er1 258c2ecf20Sopenharmony_ci bne 1b 268c2ecf20Sopenharmony_ci jsr @decompress_kernel 278c2ecf20Sopenharmony_ci mov.l er4, er0 288c2ecf20Sopenharmony_ci jmp @output 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci .align 9 318c2ecf20Sopenharmony_cifake_headers_as_bzImage: 328c2ecf20Sopenharmony_ci .word 0 338c2ecf20Sopenharmony_ci .ascii "HdrS" ; header signature 348c2ecf20Sopenharmony_ci .word 0x0202 ; header version number (>= 0x0105) 358c2ecf20Sopenharmony_ci ; or else old loadlin-1.5 will fail) 368c2ecf20Sopenharmony_ci .word 0 ; default_switch 378c2ecf20Sopenharmony_ci .word 0 ; SETUPSEG 388c2ecf20Sopenharmony_ci .word 0x1000 398c2ecf20Sopenharmony_ci .word 0 ; pointing to kernel version string 408c2ecf20Sopenharmony_ci .byte 0 ; = 0, old one (LILO, Loadlin, 418c2ecf20Sopenharmony_ci ; 0xTV: T=0 for LILO 428c2ecf20Sopenharmony_ci ; V = version 438c2ecf20Sopenharmony_ci .byte 1 ; Load flags bzImage=1 448c2ecf20Sopenharmony_ci .word 0x8000 ; size to move, when setup is not 458c2ecf20Sopenharmony_ci .long 0x100000 ; 0x100000 = default for big kernel 468c2ecf20Sopenharmony_ci .long 0 ; address of loaded ramdisk image 478c2ecf20Sopenharmony_ci .long 0 ; its size in bytes 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci .end 50