liblitesdcard/sdcard: adjust card-ready timeout
authorGabriel Somlo <gsomlo@gmail.com>
Mon, 6 Jul 2020 21:00:24 +0000 (17:00 -0400)
committerGabriel Somlo <gsomlo@gmail.com>
Mon, 6 Jul 2020 21:38:07 +0000 (17:38 -0400)
commit6fdb36b84afd785dc6b635a7882c7f6c6b05ba90
tree6d259886da28cdd1b3ce9dc47459c8e42dc4b430
parente473c6f29ef99d9ecd6cbce4d13f7a066be3c929
liblitesdcard/sdcard: adjust card-ready timeout

Testing on nexys4ddr and rocket, approximately 12 iterations of the
timeout loop (using `busy_wait(1)`) are needed to receive a "ready"
response from the SDcard, assuming a "warm" reset where the card has
already been previously initialized.

If the SDcard is ejected and re-inserted, or if the board is "cold-reset"
(e.g., reprogrammed via openocd vs. a simple push of the reset button),
it takes approximately 450 iterations before the SDCard responds with a
"ready" message.

In either case, a timeout of 10 is insufficient. This patch increases
the busy-wait to 10, and the timeout loop counter to 128, which should
cover most cases.

Additionally, make a few minor cosmetic improvements.

Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
litex/soc/software/liblitesdcard/sdcard.c