lowlevel_init.S 805 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright (C) 2016 Imagination Technologies
  4. */
  5. #include <config.h>
  6. #include <asm/addrspace.h>
  7. #include <asm/asm.h>
  8. #include <asm/mipsregs.h>
  9. #include <asm/regdef.h>
  10. #include "boston-regs.h"
  11. .data
  12. msg_ddr_cal: .ascii "DDR Cal "
  13. msg_ddr_ok: .ascii "DDR OK "
  14. .text
  15. LEAF(lowlevel_init)
  16. move s0, ra
  17. PTR_LA a0, msg_ddr_cal
  18. bal lowlevel_display
  19. PTR_LI t0, BOSTON_PLAT_DDR3STAT
  20. 1: lw t1, 0(t0)
  21. andi t1, t1, BOSTON_PLAT_DDR3STAT_CALIB
  22. beqz t1, 1b
  23. PTR_LA a0, msg_ddr_ok
  24. bal lowlevel_display
  25. jr s0
  26. END(lowlevel_init)
  27. LEAF(lowlevel_display)
  28. .set push
  29. .set noat
  30. PTR_LI AT, BOSTON_LCD_BASE
  31. #ifdef CONFIG_64BIT
  32. ld k1, 0(a0)
  33. sd k1, 0(AT)
  34. #else
  35. lw k1, 0(a0)
  36. sw k1, 0(AT)
  37. lw k1, 4(a0)
  38. sw k1, 4(AT)
  39. #endif
  40. .set pop
  41. jr ra
  42. END(lowlevel_display)