SDHCI AM654 driver delaying boot time

From: João Paulo Silva Gonçalves
Date: Wed Nov 08 2023 - 13:57:59 EST


Hello all,

We are trying to minimize boot time for our AM62 devices. Unfortunately, we have identified a delay of approximately 1.5 seconds caused by the
sdhci_am654 driver. This delay is a result of a timeout within the driver (MAX_POWER_ON_TIMEOUT) and was introduced in commit 7ca0f16 ("mmc:
sdhci_am654: Add workaround for card detect debounce timer"). This issue arises only when there is no SD card present in the MMC slot.  We tested the
driver with a lower timeout value and everything worked. However, as indicated in the commit message, this timeout may be related to the way the sdhci
controller hardware IP works. Currently, the driver employs a sort of a "busy loop" to wait for this timeout to pass delaying the boot. Why is
need to busy loop for this timeout? Is it possible to wait for it in the backgroud? Am I am missing something here?

Regards,
Joao Paulo