common: env_mmc: Make mmc->part_num in sync after a partition switch
PATCH 1/1 common: env_mmc: Make mmc->part_num in sync after a partition switch
When running the "save" command several times on a mx6qsabresd we see:
U-Boot > save
Saving Environment to MMC...
Writing to MMC(1)... done
U-Boot > save
Saving Environment to MMC...
MMC partition switch failed
U-Boot > save
Saving Environment to MMC...
Writing to MMC(1)... done
U-Boot > save
Saving Environment to MMC...
MMC partition switch failed
U-Boot > save
Saving Environment to MMC...
Writing to MMC(1)... done
U-Boot > save
Saving Environment to MMC...
MMC partition switch failed
Fix this by making mmc->part_num to be in sync with CONFIG_SYS_MMC_ENV_PART after the partition has been changed in mmc_switch_part().
After this fix, we no longer see the error after the "save" command on a mx6qsabresd. Also tested on a mx53loco.
--- common/env_mmc.c | 1 + 1 file changed, 1 insertion(+)
common/env_mmc.c +1 -0
@@ -89,6 +89,7 @@ static int init_mmc_for_env(struct mmc *mmc)puts ("MMC partition switch failed\n" ); return -1; } + mmc->part_num =CONFIG_SYS_MMC_ENV_PART ; }#endif
Signature · 1 line
1.8.1.2
PATCH 1/1 common: env_mmc: Make mmc->part_num in sync after a partition switch
Quoted 8 lines · Fabio Estevam
When running the "save" command several times on a mx6qsabresd we see:
U-Boot > save
Saving Environment to MMC...
Writing to MMC(1)... done
U-Boot > save
Saving Environment to MMC...
MMC partition switch failed
...
Quoted 2 lines
Fix this by making
mmc->part_numto be in sync withCONFIG_SYS_MMC_ENV_PARTafter the partition has been changed inmmc_switch_part().
I deliberately didn't do this, because fini_mmc_for_env() passes the value of mmc->part_num to call mmc_switch_part() in order to put things back the way they were. This fix would break that. Can you investigate why you're seeing the "MMC partition switch failed" message?