Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions stm32cube/stm32h5xx/README
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,11 @@ Patch List:
Impacted files:
stm32cube/stm32h5xx/drivers/src/stm32h5xx_hal_sdio.c

*Fix SDIO polling mode data transfer issues
Fixes two related issues in the STM32H5 SDIO driver: incorrect block count calculation
that caused the card to hang, and improper buffer size handling that led to misaligned FIFO writes.
Together, these changes ensure correct and stable data transfer in polling mode.
Impacted file:
stm32cube/stm32h5xx/drivers/src/stm32h5xx_hal_sdio.c

See release_note.html from STM32Cube
6 changes: 3 additions & 3 deletions stm32cube/stm32h5xx/drivers/src/stm32h5xx_hal_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1022,7 +1022,7 @@ HAL_StatusTypeDef HAL_SDIO_ReadExtended(SDIO_HandleTypeDef *hsdio, const HAL_SDI
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down Expand Up @@ -1167,7 +1167,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, const HAL_SD
uint8_t byteCount;
uint32_t data;
uint32_t dataremaining;
uint8_t *u32tempbuff = pData;
uint32_t *u32tempbuff = (uint32_t *) pData;
uint32_t nbr_of_block;

/* Check the parameters */
Expand Down Expand Up @@ -1227,7 +1227,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, const HAL_SD
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down
7 changes: 7 additions & 0 deletions stm32cube/stm32h7rsxx/README
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,12 @@ Patch List:
the card identification sequence is skipped.
Impacted files:
stm32cube/stm32h7rsxx/drivers/src/stm32h7rsxx_hal_sdio.c

*Fix SDIO polling mode data transfer issues
Fixes two related issues in the STM32H7RS SDIO driver: incorrect block count calculation
that caused the card to hang, and improper buffer size handling that led to misaligned FIFO writes.
Together, these changes ensure correct and stable data transfer in polling mode.
Impacted file:
stm32cube/stm32h7rsxx/drivers/src/stm32h7rsxx_hal_sdio.c

See release_note.html from STM32Cube
6 changes: 3 additions & 3 deletions stm32cube/stm32h7rsxx/drivers/src/stm32h7rsxx_hal_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1011,7 +1011,7 @@ HAL_StatusTypeDef HAL_SDIO_ReadExtended(SDIO_HandleTypeDef *hsdio, const HAL_SDI
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down Expand Up @@ -1156,7 +1156,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, const HAL_SD
uint8_t byteCount;
uint32_t data;
uint32_t dataremaining;
uint8_t *u32tempbuff = pData;
uint32_t *u32tempbuff = (uint32_t *) pData;
uint32_t nbr_of_block;

/* Check the parameters */
Expand Down Expand Up @@ -1216,7 +1216,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, const HAL_SD
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down
7 changes: 7 additions & 0 deletions stm32cube/stm32h7xx/README
Original file line number Diff line number Diff line change
Expand Up @@ -68,4 +68,11 @@ Patch List:
Impacted files:
stm32cube/stm32h7xx/drivers/src/stm32h7xx_hal_sdio.c

*Fix SDIO polling mode data transfer issues
Fixes two related issues in the STM32H7 SDIO driver: incorrect block count calculation
that caused the card to hang, and improper buffer size handling that led to misaligned FIFO writes.
Together, these changes ensure correct and stable data transfer in polling mode.
Impacted file:
stm32cube/stm32h7xx/drivers/src/stm32h7xx_hal_sdio.c

See release_note.html from STM32Cube
6 changes: 3 additions & 3 deletions stm32cube/stm32h7xx/drivers/src/stm32h7xx_hal_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1002,7 +1002,7 @@ HAL_StatusTypeDef HAL_SDIO_ReadExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Exte
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down Expand Up @@ -1147,7 +1147,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Ext
uint8_t byteCount;
uint32_t data;
uint32_t dataremaining;
uint8_t *u32tempbuff = pData;
uint32_t *u32tempbuff = (uint32_t *) pData;
uint32_t nbr_of_block;

/* Check the parameters */
Expand Down Expand Up @@ -1207,7 +1207,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Ext
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down
9 changes: 7 additions & 2 deletions stm32cube/stm32n6xx/README
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ Patch List:
-soc/system_stm32n6xx_s.c

*Fix SDIO initialization failure when skipping card identification sequence
Fixes an issue in the STM32HN6 SDIO driver where HAL_SDIO_Init() fails if
Fixes an issue in the STM32N6 SDIO driver where HAL_SDIO_Init() fails if
the card identification sequence is skipped.
Impacted files:
stm32cube/stm32n6xx/drivers/src/stm32n6xx_hal_sdio.c
Expand All @@ -67,4 +67,9 @@ Patch List:
stm32cube/stm32n6xx/drivers/src/stm32n6xx_hal_xspi.c
Internal reference: 212765

See release_note.html from STM32Cube
*Fix SDIO polling mode data transfer issues
Fixes two related issues in the STM32N6 SDIO driver: incorrect block count calculation
that caused the card to hang, and improper buffer size handling that led to misaligned FIFO writes.
Together, these changes ensure correct and stable data transfer in polling mode.
Impacted file:
stm32cube/stm32n6xx/drivers/src/stm32n6xx_hal_sdio.c
6 changes: 3 additions & 3 deletions stm32cube/stm32n6xx/drivers/src/stm32n6xx_hal_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1002,7 +1002,7 @@ HAL_StatusTypeDef HAL_SDIO_ReadExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Exte
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down Expand Up @@ -1147,7 +1147,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Ext
uint8_t byteCount;
uint32_t data;
uint32_t dataremaining;
uint8_t *u32tempbuff = pData;
uint32_t *u32tempbuff = (uint32_t *) pData;
uint32_t nbr_of_block;

/* Check the parameters */
Expand Down Expand Up @@ -1207,7 +1207,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Ext
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down
7 changes: 7 additions & 0 deletions stm32cube/stm32u5xx/README
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,11 @@ Patch List:
Impacted files:
stm32cube/stm32u5xx/drivers/src/stm32u5xx_hal_sdio.c

*Fix SDIO polling mode data transfer issues
Fixes two related issues in the STM32U5 SDIO driver: incorrect block count calculation
that caused the card to hang, and improper buffer size handling that led to misaligned FIFO writes.
Together, these changes ensure correct and stable data transfer in polling mode.
Impacted file:
stm32cube/stm32u5xx/drivers/src/stm32u5xx_hal_sdio.c

See release_note.html from STM32Cube
6 changes: 3 additions & 3 deletions stm32cube/stm32u5xx/drivers/src/stm32u5xx_hal_sdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1002,7 +1002,7 @@ HAL_StatusTypeDef HAL_SDIO_ReadExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Exte
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down Expand Up @@ -1147,7 +1147,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Ext
uint8_t byteCount;
uint32_t data;
uint32_t dataremaining;
uint8_t *u32tempbuff = pData;
uint32_t *u32tempbuff = (uint32_t *) pData;
uint32_t nbr_of_block;

/* Check the parameters */
Expand Down Expand Up @@ -1207,7 +1207,7 @@ HAL_StatusTypeDef HAL_SDIO_WriteExtended(SDIO_HandleTypeDef *hsdio, HAL_SDIO_Ext
cmd |= Argument->Block_Mode << 27U;
cmd |= Argument->OpCode << 26U;
cmd |= (Argument->Reg_Addr & 0x1FFFFU) << 9U;
cmd |= (Size_byte & 0x1FFU);
cmd |= ((nbr_of_block == 0U)? Size_byte : nbr_of_block)& 0x1FFU;
errorstate = SDMMC_SDIO_CmdReadWriteExtended(hsdio->Instance, cmd);
if (errorstate != HAL_SDIO_ERROR_NONE)
{
Expand Down