(Cc'ing few more ppl who worked on hw/sd/)
On 31/7/25 23:27, Philippe Mathieu-Daudé wrote:
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/sdbus: Provide buffer size to sdbus_do_command()
hw/sd/sdcard: Propagate response size to sd_response_r*_make()
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 | 5 +-
hw/sd/bcm2835_sdhost.c | 5 +-
hw/sd/core.c | 5 +-
hw/sd/omap_mmc.c | 2 +-
hw/sd/pl181.c | 4 +-
hw/sd/sd.c | 202 +++++++++++++++-------
hw/sd/sdhci.c | 4 +-
hw/sd/ssi-sd.c | 96 ++--------
hw/sd/trace-events | 4 +-
tests/functional/meson.build | 1 +
tests/functional/test_riscv64_sifive_u.py | 51 ++++++
13 files changed, 238 insertions(+), 165 deletions(-)\
Without the 51 lines added by the test, only 22 lines of C are added =)