[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