[U-Boot] [PATCH] dm: mmc: socfpga: fix MMC_OPS support

Sylvain Lesne lesne at alse-fr.com
Mon Oct 24 18:24:37 CEST 2016


Now that CONFIG_BLK and CONFIG_MMC_OPS are enabled by default with
CONFIG_DM_MMC, the DWMMC driver on the socfpga platform fails at
runtime.

This adds the missing fields in the driver declaration.

Signed-off-by: Sylvain Lesne <lesne at alse-fr.com>
---

Hi,

I might be missing something, but with the latest master, on a
socfpga board, I get the following failure:

U-Boot SPL 2016.11-rc2-00072-g869588d-dirty (Oct 24 2016 - 17:18:22)
drivers/ddr/altera/sequencer.c: Preparing to start memory calibration
drivers/ddr/altera/sequencer.c: CALIBRATION PASSED
drivers/ddr/altera/sequencer.c: Calibration complete
Trying to boot from MMC1
spl: partition error
MMC: block number 0xx exceeds max(0xx)
mmc_load_image_raw_sector: mmc block read error
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

After some digging, it seems that the socfpga_dw_mmc driver slipped 
through the cracks during some steps of the DM conversion, so I 
added the missing fields of the driver declaration, mimicking what's 
done in the other dw_mmc_* drivers, and it works on my board.

(Also, this is kind of unrelated, but it looks like the error 
message 'MMC: block number 0xx exceeds max(0xx)' has a formatting 
issue!)

---
 drivers/mmc/socfpga_dw_mmc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/mmc/socfpga_dw_mmc.c b/drivers/mmc/socfpga_dw_mmc.c
index 5a3a4ff..0a22e58 100644
--- a/drivers/mmc/socfpga_dw_mmc.c
+++ b/drivers/mmc/socfpga_dw_mmc.c
@@ -151,7 +151,9 @@ U_BOOT_DRIVER(socfpga_dwmmc_drv) = {
 	.id		= UCLASS_MMC,
 	.of_match	= socfpga_dwmmc_ids,
 	.ofdata_to_platdata = socfpga_dwmmc_ofdata_to_platdata,
+	.ops		= &dm_dwmci_ops,
 	.bind		= socfpga_dwmmc_bind,
 	.probe		= socfpga_dwmmc_probe,
 	.priv_auto_alloc_size = sizeof(struct dwmci_socfpga_priv_data),
+	.platdata_auto_alloc_size = sizeof(struct socfpga_dwmci_plat),
 };
-- 
1.9.1



More information about the U-Boot mailing list