From mboxrd@z Thu Jan 1 00:00:00 1970 From: Faiz Abbas Date: Mon, 19 Feb 2018 11:02:37 +0530 Subject: [U-Boot] [PATCH v2] env: mmc/fat/ext4: make sure that the MMC sub-system is initialized before using it In-Reply-To: <1518443671-11417-1-git-send-email-faiz_abbas@ti.com> References: <1518443671-11417-1-git-send-email-faiz_abbas@ti.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On Monday 12 February 2018 07:24 PM, Faiz Abbas wrote: > When booting from a non-MMC device, the MMC sub-system may not be > initialized when the environment is first accessed. > We need to make sure that the MMC sub-system is ready in even a non-MMC > boot case. > > Therefore, initialize mmc before loading environment from it. > > Signed-off-by: Faiz Abbas > --- > Dropped Lukasz's Reviewed-by because patch has > changed. > > I have tested this with ENV_IS_IN_FAT and ENV_IS_IN_MMC. > > env/ext4.c | 3 +++ > env/fat.c | 3 +++ > env/mmc.c | 2 ++ > 3 files changed, 8 insertions(+) > > diff --git a/env/ext4.c b/env/ext4.c > index 3f3aac5..6c69a0a 100644 > --- a/env/ext4.c > +++ b/env/ext4.c > @@ -87,6 +87,9 @@ static int env_ext4_load(void) > int err; > loff_t off; > > + if (!strcmp(CONFIG_ENV_EXT4_INTERFACE, "mmc")) > + mmc_initialize(NULL); > + > part = blk_get_device_part_str(CONFIG_ENV_EXT4_INTERFACE, > CONFIG_ENV_EXT4_DEVICE_AND_PART, > &dev_desc, &info, 1); > diff --git a/env/fat.c b/env/fat.c > index 35f7ab5..fdf4b7a 100644 > --- a/env/fat.c > +++ b/env/fat.c > @@ -89,6 +89,9 @@ static int env_fat_load(void) > int dev, part; > int err; > > + if (!strcmp(CONFIG_ENV_FAT_INTERFACE, "mmc")) > + mmc_initialize(NULL); > + > part = blk_get_device_part_str(CONFIG_ENV_FAT_INTERFACE, > CONFIG_ENV_FAT_DEVICE_AND_PART, > &dev_desc, &info, 1); > diff --git a/env/mmc.c b/env/mmc.c > index 1058b8c..6f11dec 100644 > --- a/env/mmc.c > +++ b/env/mmc.c > @@ -273,6 +273,8 @@ static int env_mmc_load(void) > ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env1, 1); > ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env2, 1); > > + mmc_initialize(NULL); > + > mmc = find_mmc_device(dev); > > errmsg = init_mmc_for_env(mmc); > Gentle ping. Thanks, Faiz