bkempers opened a new issue, #15909:
URL: https://github.com/apache/nuttx/issues/15909

   ### Description
   
   Hello all, I hope that this post is in the correct place. I'm coming to ask 
for some clarification and help, I'm attempting to fix CMD24 timeout issues our 
system is having with STM32H7 interfacing with a Kingston MW28. This has led me 
down a rabbit hole trying to chase solutions in attempts to fix this.
   
   During my attempts to resolve these timeout issues (would rather not just 
increase DTIMER and WDATADELAY as doesn't seem to fix root issue of problem), 
I've tried changing various configurations within the driver and chip itself.
   
   I have attempted sending CMD6 SWITCH to alter the configuration of the card: 
changing bus width to 4-bit mode, enabling enhanced attribute within 
PARTITIONS_ATTRIBUTE, changing . However I have noticed that When I send any 
CMD6 I have the resulting register values set:
   
   ```
   //send cmd6
   stm32_sendcmd: cmd: 00000446 arg: 039c0100 regval: 00001146 enabled irq: 
0000812a
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 00000200
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 000001c0
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 00000180
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 00000140
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 00000100
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 000000c0
    stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 00000080
   stm32_sdmmc_interrupt: recvfifo data STA 00009000 & DCOUNT 00000040
   stm32_sdmmc_interrupt: ERROR: Data block CRC failure, remaining: 0
   
   stm32_waitresponse: sta: 00081000 irq: 0000812a dctrl: 00000892 dcount 
00000200 dlen 00000200
   stm32_recvshortcrc: RECVR1 sta: 00000000 irq: 00000000 dctrl: 00000892 
dcount 00000000 dlen 00000200
   stm32_recvshortcrc: R1 response 00000800
   ```
   
   The resulting DCOUNT and STA registers seem to suggest that there is data 
waiting to be read in from our SDMMC driver. Only after configuring and setting 
up the receive setup prior to sending the CMD6, then reading the resulting data 
into our receive buffer, does the stm32_sdmmc.c driver becomes inactive and 
allows for further commands to be sent (i.e. CMD13 SEND_STATUS). 
   
   It seems like `master` branch of patches has the option to send CMD6 
BUS_WIDTH change toward the end of the initialization phase within 
`mmcsd_sdio.c`, but doesn't handle the resulting RX FIFO buffer? I could be 
wrong or have some weird configuration but if anyone has some insight it would 
be greatly appreciated!
   
   ### Verification
   
   - [x] I have verified before submitting the report.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to