head.S 1006 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * linux/arch/h8300/boot/compressed/head.S
  3. *
  4. * Copyright (C) 2006 Yoshinori Sato
  5. */
  6. .h8300h
  7. #include <linux/linkage.h>
  8. #define SRAM_START 0xff4000
  9. .section .text.startup
  10. .global startup
  11. startup:
  12. mov.l #SRAM_START+0x8000, sp
  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. jmp @0x400000
  26. .align 9
  27. fake_headers_as_bzImage:
  28. .word 0
  29. .ascii "HdrS" ; header signature
  30. .word 0x0202 ; header version number (>= 0x0105)
  31. ; or else old loadlin-1.5 will fail)
  32. .word 0 ; default_switch
  33. .word 0 ; SETUPSEG
  34. .word 0x1000
  35. .word 0 ; pointing to kernel version string
  36. .byte 0 ; = 0, old one (LILO, Loadlin,
  37. ; 0xTV: T=0 for LILO
  38. ; V = version
  39. .byte 1 ; Load flags bzImage=1
  40. .word 0x8000 ; size to move, when setup is not
  41. .long 0x100000 ; 0x100000 = default for big kernel
  42. .long 0 ; address of loaded ramdisk image
  43. .long 0 ; its size in bytes