]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: gru: Allow setting up clocks in U-Boot proper
authorAlper Nebi Yasak <alpernebiyasak@gmail.com>
Tue, 27 Oct 2020 21:15:11 +0000 (00:15 +0300)
committerKever Yang <kever.yang@rock-chips.com>
Fri, 13 Nov 2020 10:15:08 +0000 (18:15 +0800)
Commit fe974716326c ("rockchip: rk3288: Allow setting up clocks in
U-Boot proper") fixes some clock issues when chainloading U-Boot on
rk3288 chromebooks. Part of that change is still available in veyron's
board_early_init_r() function. Since chain-loading U-Boot proper from
vendor firmware is possible on gru boards as well, do the same thing for
them too.

On rk3399, this needs to detect whether SPL was run via handoff, so
enable that and bloblist kconfigs it needs for chromebook_bob.

Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Kever Yang<kever.yang@rock-chips.com>
board/google/gru/gru.c
configs/chromebook_bob_defconfig

index 7dfbc3ac8676916442f22b4b8b7f803106ce9edd..441a1a376a9a2a8566a66dec2dfe2abcc73a1f9a 100644 (file)
@@ -4,6 +4,7 @@
  */
 
 #include <common.h>
+#include <dm.h>
 #include <init.h>
 
 #ifdef CONFIG_SPL_BUILD
@@ -31,3 +32,25 @@ int board_early_init_f(void)
        return 0;
 }
 #endif
+
+#ifndef CONFIG_SPL_BUILD
+int board_early_init_r(void)
+{
+       struct udevice *clk;
+       int ret;
+
+       /*
+        * This init is done in SPL, but when chain-loading U-Boot SPL will
+        * have been skipped. Allow the clock driver to check if it needs
+        * setting up.
+        */
+       ret = uclass_get_device_by_driver(UCLASS_CLK,
+                                         DM_GET_DRIVER(clk_rk3399), &clk);
+       if (ret) {
+               debug("%s: CLK init failed: %d\n", __func__, ret);
+               return ret;
+       }
+
+       return 0;
+}
+#endif
index 4608892fb5673d4faf41218eb41f463acbc9a146..73635f0d13f1a89672d73d1052be169a9c7c0e8a 100644 (file)
@@ -19,6 +19,11 @@ CONFIG_DEBUG_UART=y
 CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-bob.dtb"
 # CONFIG_DISPLAY_CPUINFO is not set
 CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_BOARD_EARLY_INIT_R=y
+CONFIG_BLOBLIST=y
+CONFIG_BLOBLIST_SIZE=0x1000
+CONFIG_BLOBLIST_ADDR=0x100000
+CONFIG_HANDOFF=y
 # CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
 CONFIG_SPL_STACK_R=y
 CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000