mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
Merge tag 'u-boot-stm32-20250825' of https://source.denx.de/u-boot/custodians/u-boot-stm
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user