loader.s 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* Copyright (C) 2013 by John Cronin <jncronin@tysos.org>
  2. *
  3. * Permission is hereby granted, free of charge, to any person obtaining a copy
  4. * of this software and associated documentation files (the "Software"), to deal
  5. * in the Software without restriction, including without limitation the rights
  6. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. * copies of the Software, and to permit persons to whom the Software is
  8. * furnished to do so, subject to the following conditions:
  9. * The above copyright notice and this permission notice shall be included in
  10. * all copies or substantial portions of the Software.
  11. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  12. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  13. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  14. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  15. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  16. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  17. * THE SOFTWARE.
  18. */
  19. .global loader
  20. .set ALIGN, 1<<0
  21. .set MEMINFO, 1<<1
  22. .set FLAGS, ALIGN | MEMINFO
  23. .set MAGIC, 0x1BADB002
  24. .set CHECKSUM, -(MAGIC + FLAGS)
  25. mboot_header:
  26. .long MAGIC
  27. .long FLAGS
  28. .long CHECKSUM
  29. .section .text
  30. stack_bottom:
  31. .skip 1024
  32. stack_top:
  33. .comm mbd, 4
  34. .comm magic, 4
  35. .comm m_type, 4
  36. .comm funcs, 4
  37. loader:
  38. ldr sp, =stack_top
  39. ldr r4, =kmain
  40. blx r4
  41. halt:
  42. wfe
  43. b halt