rk3288-board-tpl.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (C) 2017 Amarula Solutions
  4. */
  5. #include <common.h>
  6. #include <debug_uart.h>
  7. #include <dm.h>
  8. #include <ram.h>
  9. #include <spl.h>
  10. #include <version.h>
  11. #include <asm/io.h>
  12. #include <asm/arch-rockchip/bootrom.h>
  13. #include <asm/arch-rockchip/clock.h>
  14. #include <asm/arch-rockchip/grf_rk3288.h>
  15. #include <asm/arch-rockchip/periph.h>
  16. #include <asm/arch-rockchip/pmu_rk3288.h>
  17. #include <asm/arch-rockchip/sys_proto.h>
  18. #include <asm/arch-rockchip/timer.h>
  19. #define GRF_BASE 0xff770000
  20. void board_init_f(ulong dummy)
  21. {
  22. struct udevice *dev;
  23. int ret;
  24. /* Example code showing how to enable the debug UART on RK3288 */
  25. /* Enable early UART on the RK3288 */
  26. struct rk3288_grf * const grf = (void *)GRF_BASE;
  27. rk_clrsetreg(&grf->gpio7ch_iomux, GPIO7C7_MASK << GPIO7C7_SHIFT |
  28. GPIO7C6_MASK << GPIO7C6_SHIFT,
  29. GPIO7C7_UART2DBG_SOUT << GPIO7C7_SHIFT |
  30. GPIO7C6_UART2DBG_SIN << GPIO7C6_SHIFT);
  31. /*
  32. * Debug UART can be used from here if required:
  33. *
  34. * debug_uart_init();
  35. * printch('a');
  36. * printhex8(0x1234);
  37. * printascii("string");
  38. */
  39. debug_uart_init();
  40. ret = spl_early_init();
  41. if (ret) {
  42. debug("spl_early_init() failed: %d\n", ret);
  43. hang();
  44. }
  45. rockchip_timer_init();
  46. configure_l2ctlr();
  47. ret = rockchip_get_clk(&dev);
  48. if (ret) {
  49. debug("CLK init failed: %d\n", ret);
  50. return;
  51. }
  52. ret = uclass_get_device(UCLASS_RAM, 0, &dev);
  53. if (ret) {
  54. debug("DRAM init failed: %d\n", ret);
  55. return;
  56. }
  57. }
  58. void board_return_to_bootrom(void)
  59. {
  60. back_to_bootrom(BROM_BOOT_NEXTSTAGE);
  61. }
  62. u32 spl_boot_device(void)
  63. {
  64. return BOOT_DEVICE_BOOTROM;
  65. }
  66. void spl_board_init(void)
  67. {
  68. puts("\nU-Boot TPL " PLAIN_VERSION " (" U_BOOT_DATE " - " \
  69. U_BOOT_TIME ")\n");
  70. }