From mboxrd@z Thu Jan 1 00:00:00 1970 From: Przemyslaw Marczak Date: Fri, 27 Jun 2014 13:38:10 +0200 Subject: [U-Boot] [PATCH v3 03/11] board:samsung: check the boot device and init the right mmc driver. In-Reply-To: <53AD3D30.3080903@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-4-git-send-email-p.marczak@samsung.com> <53AD3C03.3030303@samsung.com> <53AD3D30.3080903@samsung.com> Message-ID: <53AD57A2.7030308@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 hello Jaehoon, On 06/27/2014 11:45 AM, Jaehoon Chung wrote: > On 06/27/2014 06:40 PM, Minkyu Kang wrote: >> Dear Przemyslaw Marczak, >> >> On 26/06/14 23:15, Przemyslaw Marczak wrote: >>> It is possible to boot device using a micro SD or eMMC slots. >>> In this situation, boot device should be registered as a block >>> device 0 in the MMC framework, because CONFIG_SYS_MMC_ENV_DEV >>> is usually set to "0" in the most config cases. >>> >>> Signed-off-by: Przemyslaw Marczak >>> --- >>> Changes V3: >>> - separate two changes into two commits >>> --- >>> board/samsung/common/board.c | 24 +++++++++++++++++------- >>> 1 file changed, 17 insertions(+), 7 deletions(-) >>> >>> diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c >>> index ecf3f76..f07a900 100644 >>> --- a/board/samsung/common/board.c >>> +++ b/board/samsung/common/board.c >>> @@ -251,18 +251,28 @@ int board_mmc_init(bd_t *bis) >>> { >>> int ret; >>> >>> + if (boot_device() == BOOT_DEVICE_SDMMC) { >>> +#ifdef CONFIG_SDHCI >>> + /* mmc initializattion for available channels */ >>> + ret = exynos_mmc_init(gd->fdt_blob); >>> +#endif >>> #ifdef CONFIG_DWMMC >>> - /* dwmmc initializattion for available channels */ >>> - ret = exynos_dwmmc_init(gd->fdt_blob); >>> - if (ret) >>> - debug("dwmmc init failed\n"); >>> + /* dwmmc initializattion for available channels */ >>> + ret = exynos_dwmmc_init(gd->fdt_blob); >>> +#endif >>> + } else { >>> +#ifdef CONFIG_DWMMC >>> + /* dwmmc initializattion for available channels */ >>> + ret = exynos_dwmmc_init(gd->fdt_blob); >>> #endif >>> #ifdef CONFIG_SDHCI >>> - /* mmc initializattion for available channels */ >>> - ret = exynos_mmc_init(gd->fdt_blob); >>> + /* mmc initializattion for available channels */ >>> + ret = exynos_mmc_init(gd->fdt_blob); >>> +#endif >>> + } >>> + >> >> It looks little confused. >> Could you please re-arrange this code like this? > > If re-arrange the below code, i want to call the dwmmc-init function at first. > Is there a special reason for sequence(sdhci->dwmmc)? > > Best Regards, > Jaehoon Chung Please look at my proposed solution in the reply to Minkyu email. Thanks, -- Przemyslaw Marczak Samsung R&D Institute Poland Samsung Electronics p.marczak at samsung.com