diff options
Diffstat (limited to 'arch/arm/mach-rockchip/rk3568.c')
-rw-r--r-- | arch/arm/mach-rockchip/rk3568.c | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/arch/arm/mach-rockchip/rk3568.c b/arch/arm/mach-rockchip/rk3568.c index fcf3cb7053..75b0824479 100644 --- a/arch/arm/mach-rockchip/rk3568.c +++ b/arch/arm/mach-rockchip/rk3568.c @@ -2,8 +2,9 @@ #include <common.h> #include <io.h> #include <bootsource.h> -#include <mach/rk3568-regs.h> -#include <mach/rockchip.h> +#include <mach/rockchip/bootrom.h> +#include <mach/rockchip/rk3568-regs.h> +#include <mach/rockchip/rockchip.h> #define GRF_BASE 0xfdc60000 #define GRF_GPIO1B_DS_2 0x218 @@ -90,8 +91,10 @@ static void qos_priority_init(void) writel(0x303, EBC_PRIORITY_REG); } -int rk3568_lowlevel_init(void) +void rk3568_lowlevel_init(void) { + arm_cpu_lowlevel_init(); + /* * When perform idle operation, corresponding clock can * be opened or gated automatically. @@ -135,42 +138,11 @@ int rk3568_lowlevel_init(void) writel(0x01ff01d1, USBPHY_U2_GRF_CON1); qos_priority_init(); - - return 0; -} - -struct rk_bootsource { - enum bootsource src; - int instance; -}; - -static struct rk_bootsource bootdev_map[] = { - { .src = BOOTSOURCE_UNKNOWN, .instance = 0 }, - { .src = BOOTSOURCE_NAND, .instance = 0 }, - { .src = BOOTSOURCE_MMC, .instance = 0 }, - { .src = BOOTSOURCE_SPI_NOR, .instance = 0 }, - { .src = BOOTSOURCE_SPI_NAND, .instance = 0 }, - { .src = BOOTSOURCE_MMC, .instance = 1 }, -}; - -static enum bootsource rk3568_bootsource(void) -{ - u32 v; - - v = readl(RK3568_IRAM_BASE + 0x10); - - if (v >= ARRAY_SIZE(bootdev_map)) - return BOOTSOURCE_UNKNOWN; - - bootsource_set(bootdev_map[v].src); - bootsource_set_instance(bootdev_map[v].instance); - - return bootdev_map[v].src; } int rk3568_init(void) { - rk3568_bootsource(); + rockchip_parse_bootrom_iram(rockchip_scratch_space()); return 0; } |