Boot hangs during sdhci_transfer_data_dma

Robin van der Gracht robin at protonic.nl
Tue Jun 21 03:07:50 PDT 2022


On 2022-06-21 09:46, Sascha Hauer wrote:
> Hi Robin,
...
> We should only ever
> clear the bits we have handled, like sdhci_transfer_data_dma() does with
> 
> 	sdhci_write32(sdhci, SDHCI_INT_STATUS, SDHCI_INT_DMA);

I just noticed that the tegra-sdmmc mci driver might have the same issue.

https://git.pengutronix.de/cgit/barebox/tree/drivers/mci/tegra-sdmmc.c#n149

It can prevent the following conditional from ever evaluating true trapping
the process in the while loop.
https://git.pengutronix.de/cgit/barebox/tree/drivers/mci/tegra-sdmmc.c#n203

This driver clears the status register on error (not on start/end of 
function)
with an old value 'val' which can be lacking status bits that popped up
along the way...

I can't test code changes for this platform.

- Robin



More information about the barebox mailing list