imx: mx6: Implement mmc_get_env_part
PATCH 1/2 imx: mx6: Implement mmc_get_env_part
commit 216d286c7e3d3d83d4d8ccaf0415192e1b1040c0 [imx: mx6: implement mmc_get_env_dev] introduced selection of the environment device according to the boot device when booting from SD/MMC.
Extend this functionality for also selecting the device partition.
---
Cc: Stefano Babic <[email protected]>
Cc: Peng Fan <[email protected]>
Cc: Fabio Estevam <[email protected]>
Cc: u-boot at lists.denx.de
--- arch/arm/cpu/armv7/mx6/soc.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-)
arch/arm/cpu/armv7/mx6/soc.c +33 -3
@@ -21,6 +21,7 @@#include <asm/arch/crm_regs.h> #include <dm.h> #include <imx_thermal.h> +#include <mmc.h> enum ldo_reg {LDO_ARM ,
@@ -355,7 +356,7 @@ __weak int board_mmc_get_env_dev(int devno)return CONFIG_SYS_MMC_ENV_DEV ; } -int mmc_get_env_dev (void ) +static int mmc_get_boot_dev (void ) {struct src *src_regs = (struct src *)SRC_BASE_ADDR ;u32 soc_sbmr =readl (&src_regs->sbmr1);
@@ -370,15 +371,44 @@ int mmc_get_env_dev(void)*/ bootsel = (soc_sbmr &0x000000FF ) >>6 ; -/* If not boot from sd/mmc, use default value */ +/* No boot from sd/mmc */ if (bootsel !=1 ) -return CONFIG_SYS_MMC_ENV_DEV ; +return -1 ;/* BOOT_CFG2[3] and BOOT_CFG2[4] */ devno = (soc_sbmr &0x00001800 ) >>11 ; + return devno; +} + +int mmc_get_env_dev (void ) +{ +int devno =mmc_get_boot_dev (); + +/* If not boot from sd/mmc, use default value */ +if (devno <0 ) +return CONFIG_SYS_MMC_ENV_DEV ; +return board_mmc_get_env_dev (devno); } + +#ifdef CONFIG_SYS_MMC_ENV_PART +__weak int board_mmc_get_env_part (int devno) +{ +return CONFIG_SYS_MMC_ENV_PART ; +} + +uint mmc_get_env_part (struct mmc *mmc) +{ +int devno =mmc_get_boot_dev (); + +/* If not boot from sd/mmc, use default value */ +if (devno <0 ) +return CONFIG_SYS_MMC_ENV_PART ; + +return board_mmc_get_env_part (devno); +} +#endif #endif int board_postclk_init (void )
Signature · 1 line
1.9.1
PATCH 2/2 board: tbs2910: Autoselect environment device when booting from SD
Implement board specific functions to select the environment device and partition when booting from SD/MMC.
SD2: mmc 0 0 SD3: mmc 1 0 eMMC: mmc 2 1
---
Cc: Stefano Babic <[email protected]>
Cc: Peng Fan <[email protected]>
Cc: Fabio Estevam <[email protected]>
Cc: u-boot at lists.denx.de
--- board/tbs/tbs2910/tbs2910.c | 11 +++++++++++ include/configs/tbs2910.h | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-)
board/tbs/tbs2910/tbs2910.c +11 -0
@@ -257,6 +257,17 @@ int board_mmc_init(bd_t *bis) }return 0 ; } + +/* set environment device to boot device when booting from SD */ +int board_mmc_get_env_dev (int devno) +{ +return devno -1 ; +} + +int board_mmc_get_env_part (int devno) +{ +return (devno ==3 ) ?1 :0 ;/* part 0 for SD2 / SD3, part 1 for eMMC */ +}#endif /* CONFIG_FSL_ESDHC */ #ifdef CONFIG_VIDEO_IPUV3
include/configs/tbs2910.h +2 -2
@@ -176,8 +176,8 @@/* Environment organization */ #define CONFIG_ENV_IS_IN_MMC -#define CONFIG_SYS_MMC_ENV_DEV 2 -#define CONFIG_SYS_MMC_ENV_PART 1 +#define CONFIG_SYS_MMC_ENV_DEV 2/* overwritten on SD boot */ +#define CONFIG_SYS_MMC_ENV_PART 1/* overwritten on SD boot */ #define CONFIG_ENV_SIZE (8 * 1024)#define CONFIG_ENV_OFFSET (384 * 1024)#define CONFIG_ENV_OVERWRITE
Signature · 1 line
1.9.1
PATCH 1/2 imx: mx6: Implement mmc_get_env_part
In reply to Soeren MochQuoted 6 lines · Soeren Moch
commit
216d286c7e3d3d83d4d8ccaf0415192e1b1040c0[imx: mx6: implementmmc_get_env_dev] introduced selection of the environment device according to the boot device when booting from SD/MMC.Extend this functionality for also selecting the device partition.
Quoted 7 lines
Signed-off-by Soeren Moch <[email protected]>---
Cc: Stefano Babic <[email protected]>
Cc: Peng Fan <[email protected]>
Cc: Fabio Estevam <[email protected]>
Cc: u-boot at lists.denx.de
---
Applied (both patches) to u-boot-imx, thanks !
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================