entry.S 456 B

1234567891011121314151617181920212223242526
  1. .section .text.entry
  2. .global _start
  3. _start:
  4. la sp, stack_top
  5. la a0, BSS_START
  6. la a1, BSS_END
  7. // clear bss section
  8. .Lclear_bss_loop:
  9. bge a0, a1, .Lclear_bss_done
  10. sw x0, (a0)
  11. addi a0, a0, 4
  12. j .Lclear_bss_loop
  13. .Lclear_bss_done:
  14. // jump to kernel entry point
  15. call start
  16. .Lhang:
  17. wfi
  18. j .Lhang
  19. .section .bss.stack
  20. .globl stack_bottom
  21. stack_bottom:
  22. .space 4096 * 16
  23. .globl stack_top
  24. stack_top: