lowlevel_init.S 663 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * SoC-specific setup info
  4. *
  5. * (C) Copyright 2010,2011
  6. * NVIDIA Corporation <www.nvidia.com>
  7. */
  8. #include <config.h>
  9. #include <linux/linkage.h>
  10. #ifdef CONFIG_ARM64
  11. .align 5
  12. ENTRY(reset_cpu)
  13. /* get address for global reset register */
  14. ldr x1, =PRM_RSTCTRL
  15. ldr w3, [x1]
  16. /* force reset */
  17. orr w3, w3, #0x10
  18. str w3, [x1]
  19. mov w0, w0
  20. 1:
  21. b 1b
  22. ENDPROC(reset_cpu)
  23. #else
  24. .align 5
  25. ENTRY(reset_cpu)
  26. ldr r1, rstctl @ get addr for global reset
  27. @ reg
  28. ldr r3, [r1]
  29. orr r3, r3, #0x10
  30. str r3, [r1] @ force reset
  31. mov r0, r0
  32. _loop_forever:
  33. b _loop_forever
  34. rstctl:
  35. .word PRM_RSTCTRL
  36. ENDPROC(reset_cpu)
  37. #endif