From mboxrd@z Thu Jan 1 00:00:00 1970 From: Przemyslaw Marczak Date: Fri, 27 Jun 2014 13:33:28 +0200 Subject: [U-Boot] [PATCH v3 02/11] board:samsung: add function boot_device() for checking boot medium In-Reply-To: <53AD3C0A.4000107@samsung.com> References: <1402566394-23342-1-git-send-email-p.marczak@samsung.com> <1403792137-3113-1-git-send-email-p.marczak@samsung.com> <1403792137-3113-3-git-send-email-p.marczak@samsung.com> <53AD3C0A.4000107@samsung.com> Message-ID: <53AD5688.7000809@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Minkyu, On 06/27/2014 11:40 AM, Minkyu Kang wrote: > Dear Przemyslaw Marczak, > > On 26/06/14 23:15, Przemyslaw Marczak wrote: >> It is possible to boot from a few media devices, especially >> using a micro SD or eMMC slots. In this situation depends on >> a boot device - some setup can be changeg. >> >> This change adds function: >> boot_device() - which returns an OM[1:5] bits value >> >> This allows checking if boot device is SD(0x2). >> >> Signed-off-by: Przemyslaw Marczak >> >> --- >> Changes v3: >> - new commit after separate one into two >> --- >> board/samsung/common/board.c | 10 +++++++++- >> include/samsung/misc.h | 7 +++++++ >> 2 files changed, 16 insertions(+), 1 deletion(-) >> >> diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c >> index 9dc7c83..ecf3f76 100644 >> --- a/board/samsung/common/board.c >> +++ b/board/samsung/common/board.c >> @@ -41,6 +41,13 @@ int __exynos_power_init(void) >> int exynos_power_init(void) >> __attribute__((weak, alias("__exynos_power_init"))); >> >> +unsigned int boot_device(void) >> +{ >> + unsigned int om_stat = samsung_get_base_power(); >> + >> + return BOOT_DEVICE(readl(om_stat)); >> +} >> + >> #if defined CONFIG_EXYNOS_TMU >> /* Boot Time Thermal Analysis for SoC temperature threshold breach */ >> static void boot_temp_check(void) >> @@ -243,19 +250,20 @@ int board_eth_init(bd_t *bis) >> int board_mmc_init(bd_t *bis) >> { >> int ret; >> + >> #ifdef CONFIG_DWMMC >> /* dwmmc initializattion for available channels */ >> ret = exynos_dwmmc_init(gd->fdt_blob); >> if (ret) >> debug("dwmmc init failed\n"); >> #endif >> - >> #ifdef CONFIG_SDHCI >> /* mmc initializattion for available channels */ >> ret = exynos_mmc_init(gd->fdt_blob); >> if (ret) >> debug("mmc init failed\n"); >> #endif >> + >> return ret; >> } >> #endif >> diff --git a/include/samsung/misc.h b/include/samsung/misc.h >> index 10653a1..57bac7d 100644 >> --- a/include/samsung/misc.h >> +++ b/include/samsung/misc.h >> @@ -28,4 +28,11 @@ void check_boot_mode(void); >> void draw_logo(void); >> #endif >> >> +#define BOOT_DEVICE_SDMMC 0x2 >> +#define BOOT_DEVICE_MASK 0x1f >> +#define BOOT_DEVICE_SHIFT 0x1 >> +#define BOOT_DEVICE(x) (((x) >> BOOT_DEVICE_SHIFT) & BOOT_DEVICE_MASK) >> + >> +unsigned int boot_device(void); > > Hm, do we need to make this function to non-static? > If so, it should be placed in power.c - get_om_stat()? > > Thanks, > Minkyu Kang. > It is non-static because it is called also outside this file, so I will move it to power.c. Thank you, -- Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com