diff options
author | Philippe Mathieu-Daudé <philmd@linaro.org> | 2024-06-20 09:43:26 +0200 |
---|---|---|
committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2024-07-02 09:20:36 +0200 |
commit | 2ec83d679e1900aee7ac38f2a9acd6debae05557 (patch) | |
tree | e88e8268609aa86b4b7c40a1f22b6bf65c2460e3 /hw/sd | |
parent | c159de66f29f7f0e6f7739d8722b54e0cb3cb971 (diff) | |
download | qemu-2ec83d679e1900aee7ac38f2a9acd6debae05557.zip qemu-2ec83d679e1900aee7ac38f2a9acd6debae05557.tar.gz qemu-2ec83d679e1900aee7ac38f2a9acd6debae05557.tar.bz2 |
hw/sd/sdcard: Trace requested address computed by sd_req_get_address()
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>
Diffstat (limited to 'hw/sd')
-rw-r--r-- | hw/sd/sd.c | 9 | ||||
-rw-r--r-- | hw/sd/trace-events | 1 |
2 files changed, 8 insertions, 2 deletions
@@ -608,10 +608,15 @@ static void sd_response_r7_make(SDState *sd, uint8_t *response) static uint64_t sd_req_get_address(SDState *sd, SDRequest req) { + uint64_t addr; + if (FIELD_EX32(sd->ocr, OCR, CARD_CAPACITY)) { - return (uint64_t) req.arg << HWBLOCK_SHIFT; + addr = (uint64_t) req.arg << HWBLOCK_SHIFT; + } else { + addr = req.arg; } - return req.arg; + trace_sdcard_req_addr(req.arg, addr); + return addr; } static inline uint64_t sd_addr_to_wpnum(uint64_t addr) diff --git a/hw/sd/trace-events b/hw/sd/trace-events index 0eee98a..43eaeba 100644 --- a/hw/sd/trace-events +++ b/hw/sd/trace-events @@ -50,6 +50,7 @@ sdcard_ejected(void) "" sdcard_erase(uint32_t first, uint32_t last) "addr first 0x%" PRIx32" last 0x%" PRIx32 sdcard_lock(void) "" sdcard_unlock(void) "" +sdcard_req_addr(uint32_t req_arg, uint64_t addr) "req 0x%" PRIx32 " addr 0x%" PRIx64 sdcard_read_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0x%x" sdcard_write_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0x%x" sdcard_write_data(const char *proto, const char *cmd_desc, uint8_t cmd, uint32_t offset, uint8_t value) "%s %20s/ CMD%02d ofs %"PRIu32" value 0x%02x" |