Message ID | 20240628070216.92609-6-philmd@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/sd/sdcard: Add eMMC support | expand |
On 09:00 Fri 28 Jun , Philippe Mathieu-Daudé wrote: > Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. > > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Luc Michel <luc.michel@amd.com> > --- > hw/sd/sd.c | 9 +++++++-- > hw/sd/trace-events | 1 + > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/sd/sd.c b/hw/sd/sd.c > index 090a6fdcdb..464576751a 100644 > --- a/hw/sd/sd.c > +++ b/hw/sd/sd.c > @@ -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 0eee98a646..43eaeba149 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" > -- > 2.41.0 > > --
On 6/28/24 9:00 AM, Philippe Mathieu-Daudé wrote: > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Cédric Le Goater <clg@redhat.com> Thanks, C. > --- > hw/sd/sd.c | 9 +++++++-- > hw/sd/trace-events | 1 + > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/hw/sd/sd.c b/hw/sd/sd.c > index 090a6fdcdb..464576751a 100644 > --- a/hw/sd/sd.c > +++ b/hw/sd/sd.c > @@ -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 0eee98a646..43eaeba149 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"
diff --git a/hw/sd/sd.c b/hw/sd/sd.c index 090a6fdcdb..464576751a 100644 --- a/hw/sd/sd.c +++ b/hw/sd/sd.c @@ -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 0eee98a646..43eaeba149 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"
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- hw/sd/sd.c | 9 +++++++-- hw/sd/trace-events | 1 + 2 files changed, 8 insertions(+), 2 deletions(-)