From: Jaehoon Chung Date: Mon, 4 Dec 2017 09:32:48 +0000 (+0900) Subject: artik710: check the ALIVESCRATCH7 register to determine reboot mode X-Git-Tag: submit/tizen/20190213.074817~37 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b8d15aa8d6f0f0cb6844a90d0d9f2687f5ee11ea;p=profile%2Fcommon%2Fplatform%2Fkernel%2Fu-boot-artik7.git artik710: check the ALIVESCRATCH7 register to determine reboot mode Check the ALIVESCRATCH7 register to determine reboot mode (download/fota/recovery). Change-Id: I2a045eb7fbeaea5b3b7306ecdafb3148bd4ae3cf Signed-off-by: Jaehoon Chung --- diff --git a/board/nexell/s5p6818/artik710_raptor/board.c b/board/nexell/s5p6818/artik710_raptor/board.c index c0ae7b1507..fbfe46b557 100644 --- a/board/nexell/s5p6818/artik710_raptor/board.c +++ b/board/nexell/s5p6818/artik710_raptor/board.c @@ -226,6 +226,32 @@ void dram_init_banksize(void) gd->bd->bi_dram[0].size = CONFIG_SYS_SDRAM_SIZE; } +static void check_reboot_mode(void) +{ + u32 val; + + val = readl(PHY_BASEADDR_ALIVE + SCRATCHREADREG7); + + /* Clear the reboot mode */ + writel(0xFFFFFFFF, PHY_BASEADDR_ALIVE + SCRATCHRSTREG7); + writel(0x0, PHY_BASEADDR_ALIVE + SCRATCHSETREG7); + + if ((val & REBOOT_PREFIX_MASK) == REBOOT_PREFIX) { + val &= ~REBOOT_PREFIX; + + if (val == REBOOT_DOWNLOAD) + run_command("thordown", 0); + else if (val == REBOOT_RECOVERY) + setenv("bootmode", "recovery"); + else if (val == REBOOT_FOTA) + setenv("bootmode", "fota"); + else + setenv("bootmode", "ramdisk"); + + saveenv(); + } +} + #ifdef CONFIG_DM_PMIC_NXE2000 void pmic_init(void) { @@ -326,6 +352,8 @@ int board_late_init(void) #ifdef CONFIG_ARTIK_OTA check_ota_update(); #endif + check_reboot_mode(); + return 0; }