CI: https://source.denx.de/u-boot/custodians/u-boot-stm/-/pipelines/27466

- Enable OF_UPSTREAM_BUILD_VENDOR for stm32mp25_defconfig
- Fix to avoid inifite loop in stm32_sdmmc2 driver
- Populate oobavail field of nand_ecclayout in stm32_fmc2_nand driver
This commit is contained in:
Tom Rini
2025-08-26 08:33:10 -06:00
3 changed files with 18 additions and 1 deletions

View File

@@ -41,6 +41,8 @@ CONFIG_CMD_REGULATOR=y
CONFIG_CMD_LOG=y
CONFIG_CMD_UBI=y
CONFIG_OF_LIVE=y
CONFIG_OF_UPSTREAM_BUILD_VENDOR=y
CONFIG_OF_UPSTREAM_VENDOR="st"
CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_ENV_IS_IN_SPI_FLASH=y

View File

@@ -385,15 +385,29 @@ static int stm32_sdmmc2_end_data(struct udevice *dev,
u32 mask = SDMMC_STA_DCRCFAIL | SDMMC_STA_DTIMEOUT |
SDMMC_STA_IDMATE | SDMMC_STA_DATAEND;
u32 status;
unsigned long timeout_msecs = ctx->data_length >> 8;
unsigned long start_timeout;
/* At least, a timeout of 2 seconds is set */
if (timeout_msecs < 2000)
timeout_msecs = 2000;
if (data->flags & MMC_DATA_READ)
mask |= SDMMC_STA_RXOVERR;
else
mask |= SDMMC_STA_TXUNDERR;
start_timeout = get_timer(0);
status = readl(plat->base + SDMMC_STA);
while (!(status & mask))
while (!(status & mask)) {
if (get_timer(start_timeout) > timeout_msecs) {
ctx->dpsm_abort = true;
return -ETIMEDOUT;
}
schedule();
status = readl(plat->base + SDMMC_STA);
}
/*
* Need invalidate the dcache again to avoid any

View File

@@ -1034,6 +1034,7 @@ static int stm32_fmc2_nfc_probe(struct udevice *dev)
ecclayout->eccpos[i] = oob_index;
ecclayout->oobfree->offset = oob_index;
ecclayout->oobfree->length = mtd->oobsize - ecclayout->oobfree->offset;
ecclayout->oobavail = ecclayout->oobfree->length;
chip->ecc.layout = ecclayout;
if (chip->options & NAND_BUSWIDTH_16)