aboutsummaryrefslogtreecommitdiff
path: root/hw/sd
AgeCommit message (Collapse)AuthorFilesLines
2024-07-02hw/sd/sdcard: Add sd_cmd_SEND_STATUS handler (CMD13)Philippe Mathieu-Daudé1-12/+28
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-54-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add sd_cmd_STOP_TRANSMISSION handler (CMD12)Philippe Mathieu-Daudé1-18/+20
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-53-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add spi_cmd_SEND_CSD/CID handlers (CMD9 & CMD10)Philippe Mathieu-Daudé1-30/+20
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-52-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add sd_cmd_SEND_CSD/CID handlers (CMD9 & CMD10)Philippe Mathieu-Daudé1-14/+22
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-51-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add sd_cmd_SEND_IF_COND handler (CMD8)Philippe Mathieu-Daudé1-19/+24
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-50-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add sd_cmd_DE/SELECT_CARD handler (CMD7)Philippe Mathieu-Daudé1-38/+47
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-49-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add sd_cmd_SWITCH_FUNCTION handler (CMD6)Philippe Mathieu-Daudé1-12/+17
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-48-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Register Security Extension optional handlersPhilippe Mathieu-Daudé1-4/+13
See "Advanced Security SD Extension Specification" v2.00. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-47-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Register SDIO optional handlersPhilippe Mathieu-Daudé1-2/+6
See "SD Input/Output Card Specification" v1.00. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-46-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Register optional handlers from spec v6.00Philippe Mathieu-Daudé1-5/+10
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-45-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Register generic optional handlers (CMD11 and CMD20)Philippe Mathieu-Daudé1-2/+12
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-44-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Remove SEND_DSR dead case (CMD4)Philippe Mathieu-Daudé1-12/+2
The CSD::CSR_IMP bit defines whether the Driver Stage Register (DSR) is implemented or not. We do not set this bit in CSD: static void sd_set_csd(SDState *sd, uint64_t size) { ... if (size <= SDSC_MAX_CAPACITY) { /* Standard Capacity SD */ ... sd->csd[6] = 0xe0 | /* Partial block for read allowed */ ((csize >> 10) & 0x03); ... } else { /* SDHC */ ... sd->csd[6] = 0x00; ... } ... } The sd_normal_command() switch case for the SEND_DSR command do nothing and fallback to "illegal command". Since the command is mandatory (although the register isn't...) call the sd_cmd_unimplemented() handler. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-43-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Store command class in SDProtoPhilippe Mathieu-Daudé1-17/+19
Store the command class altogether with the other command fields (handler, name and type). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-42-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Store command type in SDProtoPhilippe Mathieu-Daudé1-24/+20
Store the command type altogether with the command handler and name. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-41-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Store command name in SDProtoPhilippe Mathieu-Daudé1-13/+22
We already have a const array where command handlers are listed. Store the command name there too. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-40-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Prepare SDProto to contain more fieldsPhilippe Mathieu-Daudé1-14/+15
Convert array of command handlers to array of structures. The structure contains the command handler. No logical change intended. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-39-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Pass SDState as argument to sd_[a]cmd_name()Philippe Mathieu-Daudé1-4/+4
In order to access SDState::SDProto from sd_[a]cmd_name(), pass SDState as argument. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-38-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Move sd_[a]cmd_name() methods to sd.cPhilippe Mathieu-Daudé4-99/+63
Merge sdmmc-internal.c into sd.c by moving sd_cmd_name() and sd_acmd_name() and updating meson.build. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-37-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert LOCK_UNLOCK to generic_write_byte (CMD42)Philippe Mathieu-Daudé1-13/+2
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-35-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert PROGRAM_CSD to generic_write_byte (CMD27)Philippe Mathieu-Daudé1-13/+2
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-34-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert PROGRAM_CID to generic_write_byte (CMD26)Philippe Mathieu-Daudé1-13/+2
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-33-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert WRITE_SINGLE_BLOCK to generic_write_byte (CMD24)Philippe Mathieu-Daudé1-9/+2
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-32-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Duplicate WRITE_SINGLE_BLOCK / WRITE_MULTIPLE_BLOCK casesPhilippe Mathieu-Daudé1-0/+29
In order to modify the WRITE_SINGLE_BLOCK case in the next commit, duplicate it first. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-31-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Introduce sd_cmd_to_receivingdata / sd_generic_write_bytePhilippe Mathieu-Daudé1-0/+29
All commands switching from TRANSFER state to (receiving)DATA do the same: receive stream of data from the DAT lines. Instead of duplicating the same code many times, introduce 2 helpers: - sd_cmd_to_receivingdata() on the I/O line setup the data to be received on the data[] buffer, - sd_generic_write_byte() on the DAT lines to push the data. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-30-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SEND_SCR to generic_read_byte (ACMD51)Philippe Mathieu-Daudé1-11/+2
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-29-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SEND_NUM_WR_BLOCKS to generic_read_byte (ACMD22)Philippe Mathieu-Daudé1-12/+4
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-28-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SD_STATUS to generic_read_byte (ACMD13)Philippe Mathieu-Daudé1-11/+4
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-27-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SEND_WRITE_PROT to generic_read_byte (CMD30)Philippe Mathieu-Daudé1-13/+4
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-25-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SEND_TUNING_BLOCK to generic_read_byte (CMD19)Philippe Mathieu-Daudé1-29/+19
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-24-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert READ_SINGLE_BLOCK to generic_read_byte (CMD17)Philippe Mathieu-Daudé1-15/+3
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-23-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Duplicate READ_SINGLE_BLOCK / READ_MULTIPLE_BLOCK casesPhilippe Mathieu-Daudé1-0/+18
In order to modify the READ_SINGLE_BLOCK case in the next commit, duplicate it first. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-22-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SEND_CSD/SEND_CID to generic_read_byte (CMD9 & 10)Philippe Mathieu-Daudé1-18/+6
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-21-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Convert SWITCH_FUNCTION to generic_read_byte (CMD6)Philippe Mathieu-Daudé1-10/+2
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-20-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Introduce sd_cmd_to_sendingdata and sd_generic_read_bytePhilippe Mathieu-Daudé1-0/+39
All commands switching from TRANSFER state to (sending)DATA do the same: send stream of data on the DAT lines. Instead of duplicating the same code many times, introduce 2 helpers: - sd_cmd_to_sendingdata() on the I/O line setup the data to be transferred, - sd_generic_read_byte() on the DAT lines to fetch the data. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <4c9f7f51-83ee-421a-8690-9af2e80b134b@linaro.org>
2024-07-02hw/sd/sdcard: Introduce definitions for EXT_CSD registerCédric Le Goater1-0/+108
Signed-off-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Cédric Le Goater <clg@redhat.com> Co-Developed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-Id: <20240628070216.92609-18-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Extract sd_blk_len() helperPhilippe Mathieu-Daudé1-1/+9
Extract sd_blk_len() helper, use definitions instead of magic values. Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-15-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Add direct reference to SDProto in SDStatePhilippe Mathieu-Daudé1-20/+17
Keep direct reference to SDProto in SDState, remove then unnecessary sd_proto(). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-14-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Simplify sd_inactive_state handlingPhilippe Mathieu-Daudé1-5/+7
Card entering sd_inactive_state powers off, and won't respond anymore. Handle that once when entering sd_do_command(). Remove condition always true in sd_cmd_GO_IDLE_STATE(). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-12-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Assign SDCardStates enum valuesPhilippe Mathieu-Daudé1-10/+10
SDCardStates enum values are specified, so assign them correspondingly. It will be useful later when we add states from later specs, which might not be continuous. See CURRENT_STATE bits in section 4.10.1 "Card Status". Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-11-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Use READY_FOR_DATA definition instead of magic valuePhilippe Mathieu-Daudé1-1/+1
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-10-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Send NUM_WR_BLOCKS bits MSB first (ACMD22)Philippe Mathieu-Daudé1-2/+1
Per sections 3.6.1 (SD Bus Protocol), 4.3.4 "Data Write" and 7.3.2 (Responses): In the CMD line the Most Significant Bit is transmitted first. Use the stl_be_p() helper to store the value in big-endian. Fixes: a1bb27b1e9 ("Initial SD card emulation") Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20240628070216.92609-9-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Send WRITE_PROT bits MSB first (CMD30)Philippe Mathieu-Daudé1-1/+1
Per sections 3.6.1 (SD Bus Protocol) and 7.3.2 (Responses): In the CMD line the Most Significant Bit is transmitted first. Use the stl_be_p() helper to store the value in big-endian. Fixes: a1bb27b1e9 ("Initial SD card emulation") Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-Id: <20240628070216.92609-8-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Restrict SWITCH_FUNCTION to sd_transfer_state (CMD6)Philippe Mathieu-Daudé1-0/+4
SWITCH_FUNCTION is only allowed in TRANSFER state (See 4.8 "Card State Transition Table). Fixes: a1bb27b1e9 ("Initial SD card emulation") Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-13-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Trace requested address computed by sd_req_get_address()Philippe Mathieu-Daudé2-2/+8
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Luc Michel <luc.michel@amd.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-6-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Trace block offset in READ/WRITE data accessesPhilippe Mathieu-Daudé2-4/+4
Useful to detect out of bound accesses. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Tested-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-5-philmd@linaro.org>
2024-07-02hw/sd/sdcard: Track last command used to help loggingPhilippe Mathieu-Daudé1-4/+8
The command is selected on the I/O lines, and further processing might be done on the DAT lines via the sd_read_byte() and sd_write_byte() handlers. Since these methods can't distinct between normal and APP commands, keep the name of the current command in the SDState and use it in the DAT handlers. This fixes a bug that all normal commands were displayed as APP commands. Fixes: 2ed61fb57b ("sdcard: Display command name when tracing CMD/ACMD") Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Tested-by: Cédric Le Goater <clg@redhat.com> Reviewed-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240628070216.92609-4-philmd@linaro.org>
2024-06-24hw/sd/sdcard: Add comments around registers and commandsPhilippe Mathieu-Daudé1-0/+20
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Tested-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240621080554.18986-21-philmd@linaro.org>
2024-06-24hw/sd/sdcard: Inline BLK_READ_BLOCK / BLK_WRITE_BLOCK macrosPhilippe Mathieu-Daudé1-8/+7
These macros only save 3 chars and make the code harder to maintain, simply remove them. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Tested-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240621080554.18986-20-philmd@linaro.org>
2024-06-24hw/sd/sdcard: Add sd_invalid_mode_for_cmd to report invalid mode switchPhilippe Mathieu-Daudé1-32/+39
Having the mode switch displayed help to track incomplete command implementations. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Tested-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240621080554.18986-19-philmd@linaro.org>
2024-06-24hw/sd/sdcard: Only call sd_req_get_address() where address is usedPhilippe Mathieu-Daudé1-6/+8
It will be useful later to assert only ADTC commands (Addressed point-to-point Data Transfer Commands, defined as the 'sd_adtc' enum) extract the address value from the command argument. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Tested-by: Cédric Le Goater <clg@redhat.com> Message-Id: <20240621080554.18986-18-philmd@linaro.org>