Consolitate writing bytes on the DAT lines by introducing
a pair of helpers to reuse in all commands receiving data.
I'm considering adding some 'process_completed_block' callbacks
to handle the different cases in sd_write_byte(), so this
function would become:
if (sd_generic_write_byte(sd, value)) {
sd->proto->process_completed_block[sd->current_cmd](sd);
}
But I ran out of time...
Full series for testing:
https://gitlab.com/philmd/qemu/-/tags/emmc-v4
Based-on: <20240627162729.80909-1-philmd@linaro.org>
Philippe Mathieu-Daudé (7):
hw/sd/sdcard: Introduce sd_cmd_to_receivingdata /
sd_generic_write_byte
hw/sd/sdcard: Duplicate WRITE_SINGLE_BLOCK / WRITE_MULTIPLE_BLOCK
cases
hw/sd/sdcard: Convert WRITE_SINGLE_BLOCK to generic_write_byte (CMD24)
hw/sd/sdcard: Convert PROGRAM_CID to generic_write_byte (CMD26)
hw/sd/sdcard: Convert PROGRAM_CSD to generic_write_byte (CMD27)
hw/sd/sdcard: Convert LOCK_UNLOCK to generic_write_byte (CMD42)
hw/sd/sdcard: Convert GEN_CMD to generic_write_byte (CMD56)
hw/sd/sd.c | 109 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 62 insertions(+), 47 deletions(-)
--
2.41.0