head.S 1.0 KB

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