head.S 686 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #include <linux/linkage.h>
  3. #include <linux/init.h>
  4. #include <asm/page.h>
  5. #include <abi/entry.h>
  6. __HEAD
  7. ENTRY(_start)
  8. SETUP_MMU
  9. /* set stack point */
  10. lrw r6, init_thread_union + THREAD_SIZE
  11. mov sp, r6
  12. jmpi csky_start
  13. END(_start)
  14. #ifdef CONFIG_SMP
  15. .align 10
  16. ENTRY(_start_smp_secondary)
  17. SETUP_MMU
  18. #ifdef CONFIG_PAGE_OFFSET_80000000
  19. lrw r6, secondary_msa1
  20. ld.w r6, (r6, 0)
  21. mtcr r6, cr<31, 15>
  22. #endif
  23. lrw r6, secondary_pgd
  24. ld.w r6, (r6, 0)
  25. mtcr r6, cr<28, 15>
  26. mtcr r6, cr<29, 15>
  27. /* set stack point */
  28. lrw r6, secondary_stack
  29. ld.w r6, (r6, 0)
  30. mov sp, r6
  31. jmpi csky_start_secondary
  32. END(_start_smp_secondary)
  33. #endif