Hi, This series intends to simplify the sdcard device: - add trace points, - have a more robust SD mode, - improve the SPI mode, - introduce the MMC mode (split for a later series)
3 patches as tagged RFC as I need to fix few XXX comments, checking back the specs. Since v1: - rewrote mostly all patches to keep it simpler. Regards, Phil. $ git backport-diff [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively 001/25:[down] 'sdcard: reorder SDState struct members' 002/25:[0026] [FC] 'sdcard: replace DPRINTF() by trace events' 003/25:[----] [-C] 'sdcard: add more trace events' 004/25:[down] 'sdcard: define SDCARD_CMD_MAX instead of using the magic '64'' 005/25:[down] 'sdcard: display command name when tracing CMD/ACMD' 006/25:[----] [-C] 'sdcard: let cmd_valid_while_locked() returns a bool' 007/25:[down] 'sdcard: rename sd_set_$REG() functions called once as sd_reset_$REG()' 008/25:[down] 'sdcard: use the registerfields API to access the OCR register' 009/25:[down] 'sdcard: use G_BYTE from cutils' 010/25:[down] 'sdcard: remove unreachable code' 011/25:[down] 'sdcard: replace switch(unique case) statements -> if(case)' 012/25:[down] 'sdcard: use a 16-bit integer for the 16-bit RCA register' 013/25:[down] 'sdcard: let function handling response codes returns the response size' 014/25:[down] 'sdcard: add missing command CMD55' 015/25:[down] 'sdcard: add missing CMD54 SDIO command' 016/25:[down] 'sdcard: add missing SPI legal commands' 017/25:[down] 'sdcard: fix SPI response length' 018/25:[down] 'sdcard: add an enum for the SD PHY Spec version' 019/25:[down] 'sdcard: check if the card capacity is supported' 020/25:[down] 'sdcard: Don't always set the high capacity bit' 021/25:[down] 'sdcard: add cmd_version_supported(), improve cmd_class_supported()' 022/25:[down] 'sdcard: remove unreachable SPI commands' 023/25:[down] 'sdcard: store the bus protocol in an enum' 024/25:[down] 'sdcard: introduce Spec v3.01 SD commands' 025/25:[down] 'sdcard: introduce Spec v4.51 & v5.1 MMC commands' Based-on: 20180103183418.23730-26-f4...@amsat.org (SDHCI: add qtests and fix few issues) Philippe Mathieu-Daudé (25): sdcard: reorder SDState struct members sdcard: replace DPRINTF() by trace events sdcard: add more trace events sdcard: define SDCARD_CMD_MAX instead of using the magic '64' sdcard: display command name when tracing CMD/ACMD sdcard: let cmd_valid_while_locked() returns a bool sdcard: rename sd_set_$REG() functions called once as sd_reset_$REG() sdcard: use the registerfields API to access the OCR register sdcard: use G_BYTE from cutils sdcard: remove unreachable code sdcard: replace switch(unique case) statements -> if(case) sdcard: use a 16-bit integer for the 16-bit RCA register sdcard: let function handling response codes returns the response size sdcard: add missing command CMD55 sdcard: add missing CMD54 SDIO command sdcard: add missing SPI legal commands sdcard: fix SPI response length sdcard: add an enum for the SD PHY Spec version sdcard: check if the card capacity is supported sdcard: Don't always set the high capacity bit sdcard: add cmd_version_supported(), improve cmd_class_supported() sdcard: remove unreachable SPI commands sdcard: store the bus protocol in an enum sdcard: introduce Spec v3.01 SD commands sdcard: introduce Spec v4.51 & v5.1 MMC commands include/hw/sd/sd.h | 6 + include/hw/sd/sdcard_legacy.h | 2 +- hw/sd/sd.c | 872 +++++++++++++++++++++++++++++------------- hw/sd/trace-events | 15 + 4 files changed, 627 insertions(+), 268 deletions(-) -- 2.15.1