summaryrefslogtreecommitdiff
path: root/arch/arm/mach-rockchip/rk3036-board-spl.c
diff options
context:
space:
mode:
authorhuang lin <hl@rock-chips.com>2015-11-17 14:20:27 +0800
committerSimon Glass <sjg@chromium.org>2015-12-01 08:07:22 -0700
commitbe1d5e0388d2e506d875d4b984485526bdf3197f (patch)
tree8118089e14f8848081646826253e8ada3d9379ef /arch/arm/mach-rockchip/rk3036-board-spl.c
parent53c45f0ca27cbf6acd840e87beaa1ba1be74399b (diff)
downloadu-boot-imx-be1d5e0388d2e506d875d4b984485526bdf3197f.zip
u-boot-imx-be1d5e0388d2e506d875d4b984485526bdf3197f.tar.gz
u-boot-imx-be1d5e0388d2e506d875d4b984485526bdf3197f.tar.bz2
rockchip: rk3036: Add core Soc start-up code
rk3036 only 4K size SRAM for SPL, so only support timer, uart, sdram driver in SPL stage, when finish initial sdram, back to bootrom.And in rk3036 sdmmc and debug uart use same iomux, so if you want to boot from sdmmc, you must disable debug uart. Signed-off-by: Lin Huang <hl@rock-chips.com> Acked-by: Simon Glass <sjg@chromium.org> Fixed build error for chromebook_jerry, firefly-rk3288: Signed-off-by: Simon Glass <sjg@chromium.org> Series-changes: 8 - Fix build error for chromebook_jerry, firefly-rk3288
Diffstat (limited to 'arch/arm/mach-rockchip/rk3036-board-spl.c')
-rw-r--r--arch/arm/mach-rockchip/rk3036-board-spl.c55
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/arm/mach-rockchip/rk3036-board-spl.c b/arch/arm/mach-rockchip/rk3036-board-spl.c
new file mode 100644
index 0000000..3a1491c
--- /dev/null
+++ b/arch/arm/mach-rockchip/rk3036-board-spl.c
@@ -0,0 +1,55 @@
+/*
+ * (C) Copyright 2015 Rockchip Electronics Co., Ltd
+ *
+ * SPDX-License-Identifier: GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/grf_rk3036.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/sdram_rk3036.h>
+#include <asm/arch/timer.h>
+#include <asm/arch/uart.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+#define GRF_BASE 0x20008000
+static struct rk3036_grf * const grf = (void *)GRF_BASE;
+
+#define DEBUG_UART_BASE 0x20068000
+
+extern void back_to_bootrom(void);
+
+void board_init_f(ulong dummy)
+{
+#ifdef EARLY_DEBUG
+ /*
+ * NOTE: sd card and debug uart use same iomux in rk3036,
+ * so if you enable uart,
+ * you can not boot from sdcard
+ */
+ rk_clrsetreg(&grf->gpio1c_iomux,
+ GPIO1C3_MASK << GPIO1C3_SHIFT |
+ GPIO1C2_MASK << GPIO1C2_SHIFT,
+ GPIO1C3_UART2_SOUT << GPIO1C3_SHIFT |
+ GPIO1C2_UART2_SIN << GPIO1C2_SHIFT);
+ rk_uart_init((void *)DEBUG_UART_BASE);
+#endif
+ rockchip_timer_init();
+ sdram_init();
+
+ /* return to maskrom */
+ back_to_bootrom();
+}
+
+/* Place Holders */
+void board_init_r(gd_t *id, ulong dest_addr)
+{
+ /*
+ * Function attribute is no-return
+ * This Function never executes
+ */
+ while (1)
+ ;
+}