summaryrefslogtreecommitdiff
path: root/src/apps/http/makefsdata
diff options
context:
space:
mode:
authorJan Čermák <[email protected]>2026-05-12 14:24:35 +0200
committerPeter Robinson <[email protected]>2026-05-28 20:55:57 +0100
commit8de24e226d745c59972b1898df5cceacf0a7ad47 (patch)
tree2fc0e80033b70ca7d96dd0c9741dcfb5a956e726 /src/apps/http/makefsdata
parent29c7796a718977ac78da7d381daec9828ec8c995 (diff)
mmc: bcmstb: Fix non-removable check in bcm2712 init
sdhci_brcmstb_init_2712() reads host->mmc->host_caps to decide whether to force card-detect for a non-removable eMMC, or to route the CD signal for a removable SD card. At the time this function runs from sdhci_bcmstb_probe(), however, host->mmc->host_caps is still zero, that field is only populated later by the MMC uclass, after the driver's probe returns. mmc_of_parse() has already filled plat->cfg.host_caps from the device tree by this point, so check that field instead. Without the fix, every BCM2712 SDHCI instance takes the else branch and writes SDIO_CFG_SD_PIN_SEL = SDIO_CFG_SD_PIN_SEL_CARD (0x02), including the non-removable eMMC on boards such as CM5 on Home Assistant Yellow. The SDIO_CFG block lies outside the SDHCI core's reset scope, so this value persists across SDHCI_RESET_ALL into the next stage. On the BCM2712, having SD_PIN_SEL set to "SD" when the Linux kernel performs its first set_power(MMC_POWER_UP) write racily prevents the SDHCI POWER_ON bit from latching (see [1] for the whole backstory) - the voltage bits stick but POWER_ON drops - which wedges the first CMD0 the full 10 s software timeout. On Home Assistant Yellow this manifested as a ~20 s eMMC probe delay on roughly one in two Linux boots when U-Boot was the previous stage. Booting directly from the Pi firmware (no U-Boot in between) left SD_PIN_SEL at its default and did not exhibit the race. Reading plat->cfg.host_caps lets init_2712 see the "non-removable" property and take the correct branch, leaving SD_PIN_SEL untouched for the eMMC. [1] https://github.com/home-assistant/operating-system/pull/3700#issuecomment-4430229511 Fixes: 10127cdbab64 ("mmc: bcmstb: Add support for bcm2712 SD controller") Signed-off-by: Jan Čermák <[email protected]> Reviewed-by: Ivan T. Ivanov <[email protected]>
Diffstat (limited to 'src/apps/http/makefsdata')
0 files changed, 0 insertions, 0 deletions