Skip to contentSkip to conversation

mmc:fsl_esdhc: fix invalidate dcache scope

PATCH New Shengzhou Liu 2 participants 3 messages Apr 6, 2016 – Apr 7, 2016 MMC, SD and SDIO

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mmc:fsl_esdhc: fix invalidate dcache scope

commit 4683b220655 "mmc:fsl_esdhc invalidate dcache before read" intended for ARM, which broke on PowerPC(caused memory allocation failure under SD boot), so add condition CONFIG_ARM.

---
 drivers/mmc/fsl_esdhc.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mmc/fsl_esdhc.c +2 -0
index 7cc61a0..7812e6c 100644
@@ -348,8 +348,10 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
 		if(err)
 			return err;
 
+#ifdef CONFIG_ARM
 		if (data->flags & MMC_DATA_READ)
 			check_and_invalidate_dcache_range(cmd, data);
+#endif
 	}
 
 	/* Figure out the transfer arguments */
Signature · 1 line
2.1.0.27.g96db324
#1 lore raw

PATCH 1/1 mmc:fsl_esdhc: fix invalidate dcache scope

Quoted 15 lines · Shengzhou Liu

commit 4683b220655 "mmc:fsl_esdhc invalidate dcache before read" intended for ARM, which broke on PowerPC(caused memory allocation failure under SD boot), so add condition CONFIG_ARM.

---
 drivers/mmc/fsl_esdhc.c | 2 ++
 1 file changed, 2 insertions(+)
drivers/mmc/fsl_esdhc.c +0 -0
index 7cc61a0..7812e6c 100644

drivers/mmc/fsl_esdhc.c esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data) · line 357

Quoted 10 lines
drivers/mmc/fsl_esdhc.c +2 -0
@@ -348,8 +348,10 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
 		if(err)
 			return err;
 
+#ifdef CONFIG_ARM
 		if (data->flags & MMC_DATA_READ)
 			check_and_invalidate_dcache_range(cmd, data);
+#endif
 	}
 
 	/* Figure out the transfer arguments */

Shenghzou,

This is not a correct fix. This issue is related to

http://lists.denx.de/pipermail/u-boot/2015-December/236272.html
http://lists.denx.de/pipermail/u-boot/2016-March/249377.html

In short, the invalidate_dcache_range function was added for 512x/5xxx/83xx/85xx. Although it shouldn't do any harm, it actually does. I haven't got a chance to investigate. Please look into it if you can.

York

#2 lore raw

PATCH 1/1 mmc:fsl_esdhc: fix invalidate dcache scope

Quoted 12 lines

-----Original Message-----
From: York Sun [mailto:york.sun at nxp.com]
Sent: Wednesday, April 06, 2016 11:26 PM
To: Shengzhou Liu <[email protected]>; u-boot at lists.denx.de
Subject: Re: [PATCH] mmc:fsl_esdhc: fix invalidate dcache scope

Quoted 1 line

Shenghzou,

This is not a correct fix. This issue is related to

Quoted 8 lines

http://lists.denx.de/pipermail/u-boot/2015-December/236272.html
http://lists.denx.de/pipermail/u-boot/2016-March/249377.html

In short, the invalidate_dcache_range function was added for 512x/5xxx/83xx/85xx. Although it shouldn't do any harm, it actually does. I haven't got a chance to investigate. Please look into it if you can.

York

York,
This patch is just a quick hack, I thought root cause is needed to be dug, this issue didn't occur on ARM, just happened on PPC(e.g. T1/T2/T4 platforms). I have no time on this(occupied on ONL), suggest MMC owner continue to investigate it. Shengzhou