Since v1: - new patch factoring sd_response_size() out (Richard) This series fix a pair of issues with SD cards used wired via a SPI link / controller.
Such mode implementation was minimal. I was testing it with the ARM Gumstix machines, but we remove them in the v9.2.0 release (commit a2ccff4d2bc ), so they bit-rotted. Although the series looks big, I shrinked it a lot to have the minimum amount of meaningful changes. Other changes added during debugging will be shared later, as I believe they will still be useful to debug other future issues. The last patch add testing coverage, to avoid further bitrot. Regards, Phil. Philippe Mathieu-Daudé (11): hw/sd/sdcard: Do not ignore errors in sd_cmd_to_sendingdata() hw/sd/sdcard: Factor sd_response_size() out hw/sd/sdbus: Provide buffer size to sdbus_do_command() hw/sd/sdcard: Fill SPI response bits in card code hw/sd/sdcard: Implement SPI R2 return value hw/sd/sdcard: Use complete SEND_OP_COND implementation in SPI mode hw/sd/sdcard: Allow using SWITCH_FUNCTION in more SPI states hw/sd/sdcard: Factor spi_cmd_SEND_CxD() out hw/sd/sdcard: Disable checking STBY mode in SPI SEND_CSD/CID hw/sd/sdcard: Remove SDState::mode field tests/functional: Test SD cards in SPI mode (using sifive_u machine) MAINTAINERS | 1 + include/hw/sd/sd.h | 23 ++- hw/sd/allwinner-sdhost.c | 7 +- hw/sd/bcm2835_sdhost.c | 7 +- hw/sd/core.c | 5 +- hw/sd/omap_mmc.c | 5 +- hw/sd/pl181.c | 6 +- hw/sd/sd.c | 198 ++++++++++++++++------ hw/sd/sdhci.c | 6 +- hw/sd/ssi-sd.c | 100 ++--------- hw/sd/trace-events | 4 +- tests/functional/meson.build | 1 + tests/functional/test_riscv64_sifive_u.py | 51 ++++++ 13 files changed, 249 insertions(+), 165 deletions(-) create mode 100755 tests/functional/test_riscv64_sifive_u.py -- 2.49.0