From: 陈亮 Date: Tue, 9 Sep 2014 08:00:28 +0000 (-0700) Subject: rk312x: print Boot mode X-Git-Tag: firefly_0821_release~4735 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1eacd84852c263e51a71090c048f2f958696f679;p=firefly-linux-kernel-4.4.55.git rk312x: print Boot mode Signed-off-by: 陈亮 --- 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)