From 1eacd84852c263e51a71090c048f2f958696f679 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E9=99=88=E4=BA=AE?= Date: Tue, 9 Sep 2014 01:00:28 -0700 Subject: [PATCH] rk312x: print Boot mode MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: 陈亮 --- arch/arm/mach-rockchip/rk312x.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm/mach-rockchip/rk312x.c b/arch/arm/mach-rockchip/rk312x.c index 76c4d339c75c..f493337b7f10 100755 --- a/arch/arm/mach-rockchip/rk312x.c +++ b/arch/arm/mach-rockchip/rk312x.c @@ -80,6 +80,21 @@ static struct map_desc rk312x_io_desc[] __initdata = { RK_DEVICE(RK_GIC_VIRT + RK312X_GIC_DIST_SIZE, RK312X_GIC_CPU_PHYS, RK312X_GIC_CPU_SIZE), RK_DEVICE(RK312X_IMEM_VIRT, RK312X_IMEM_PHYS, RK312X_IMEM_SIZE), }; + +static void __init rk312x_boot_mode_init(void) +{ + u32 flag = readl_relaxed(RK_PMU_VIRT + RK312X_PMU_SYS_REG0); + u32 mode = readl_relaxed(RK_PMU_VIRT + RK312X_PMU_SYS_REG1); + u32 rst_st = readl_relaxed(RK_CRU_VIRT + RK312X_CRU_GLB_RST_ST); + + if (flag == (SYS_KERNRL_REBOOT_FLAG | BOOT_RECOVER)) + mode = BOOT_MODE_RECOVERY; + if (rst_st & ((1 << 2) | (1 << 3))) + mode = BOOT_MODE_WATCHDOG; + + rockchip_boot_mode_init(flag, mode); +} + static void usb_uart_init(void) { #ifdef CONFIG_RK_USB_UART @@ -127,6 +142,7 @@ static void __init rk312x_dt_map_io(void) writel_relaxed(0x80000000, RK_CRU_VIRT + RK312X_CRU_MISC_CON); dsb(); + rk312x_boot_mode_init(); } static void __init rk3126_dt_map_io(void) -- 2.34.1