[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/26] sdcard: add more trace events
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-devel] [PATCH 13/26] sdcard: add more trace events |
Date: |
Wed, 13 Dec 2017 20:20:12 -0300 |
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
---
hw/sd/sd.c | 12 ++++++++++++
hw/sd/trace-events | 8 ++++++++
2 files changed, 20 insertions(+)
diff --git a/hw/sd/sd.c b/hw/sd/sd.c
index bd583be835..84e02745f1 100644
--- a/hw/sd/sd.c
+++ b/hw/sd/sd.c
@@ -449,6 +449,7 @@ static void sd_reset(DeviceState *dev)
uint64_t size;
uint64_t sect;
+ trace_sdcard_reset();
if (sd->blk) {
blk_get_geometry(sd->blk, §);
} else {
@@ -500,7 +501,10 @@ static void sd_cardchange(void *opaque, bool load, Error
**errp)
bool readonly = sd_get_readonly(sd);
if (inserted) {
+ trace_sdcard_inserted(readonly);
sd_reset(dev);
+ } else {
+ trace_sdcard_ejected();
}
/* The IRQ notification is for legacy non-QOM SD controller devices;
@@ -632,6 +636,7 @@ static void sd_erase(SDState *sd)
uint64_t erase_start = sd->erase_start;
uint64_t erase_end = sd->erase_end;
+ trace_sdcard_erase();
if (!sd->erase_start || !sd->erase_end) {
sd->card_status |= ERASE_SEQ_ERROR;
return;
@@ -713,6 +718,11 @@ static void sd_lock_command(SDState *sd)
else
pwd_len = 0;
+ if (lock) {
+ trace_sdcard_lock();
+ } else {
+ trace_sdcard_unlock();
+ }
if (erase) {
if (!(sd->card_status & CARD_IS_LOCKED) || sd->blk_len > 1 ||
set_pwd || clr_pwd || lock || sd->wp_switch ||
@@ -1639,6 +1649,7 @@ void sd_write_data(SDState *sd, uint8_t value)
if (sd->card_status & (ADDRESS_ERROR | WP_VIOLATION))
return;
+ trace_sdcard_write_data(value);
switch (sd->current_cmd) {
case 24: /* CMD24: WRITE_SINGLE_BLOCK */
sd->data[sd->data_offset ++] = value;
@@ -1776,6 +1787,7 @@ uint8_t sd_read_data(SDState *sd)
io_len = (sd->ocr & (1 << 30)) ? 512 : sd->blk_len;
+ trace_sdcard_read_data(io_len);
switch (sd->current_cmd) {
case 6: /* CMD6: SWITCH_FUNCTION */
ret = sd->data[sd->data_offset ++];
diff --git a/hw/sd/trace-events b/hw/sd/trace-events
index 117da83014..0e78f980de 100644
--- a/hw/sd/trace-events
+++ b/hw/sd/trace-events
@@ -26,8 +26,16 @@ sdcard_set_mode(const char *current_mode, const char
*new_mode, const char *stat
sdcard_set_state(const char *current_state, const char *new_state, const char
*mode) "%s -> %s (mode: %s)"
sdcard_normal_command(uint8_t cmd, uint32_t arg, const char *state) "CMD%d arg
0x%08x (state %s)"
sdcard_app_command(uint8_t acmd, uint32_t arg) "ACMD%d arg 0x%08x"
+sdcard_reset(void) ""
+sdcard_inserted(bool readonly) "read_only: %d"
+sdcard_ejected(void) ""
+sdcard_erase(void) ""
+sdcard_lock(void) ""
+sdcard_unlock(void) ""
sdcard_read_block(uint64_t addr, uint32_t len) "addr 0x%08lx size 0x%x"
sdcard_write_block(uint64_t addr, uint32_t len) "addr 0x%08lx size 0x%x"
+sdcard_write_data(uint8_t value) "value 0x%02x"
+sdcard_read_data(int length) "len %d"
# hw/sd/milkymist-memcard.c
milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x
value 0x%08x"
--
2.15.1
- [Qemu-devel] [PATCH 03/26] sdcard: use ldst API, (continued)
- [Qemu-devel] [PATCH 03/26] sdcard: use ldst API, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 04/26] sdcard: replace fprintf() -> qemu_log_mask(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 05/26] sdcard: rename sd_set_mode() -> sd_update_mode(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 06/26] sdcard: add sd_set_mode(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 07/26] sdcard: add sdcard_set_mode() trace event, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 08/26] sdcard: add sd_set_state(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 10/26] sdcard: use more detailled state/mode trace events, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 09/26] sdcard: add a sdcard_set_state() trace event, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 11/26] sdcard: use warn_report() instead of fprintf(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 12/26] sdcard: replace DPRINTF() by trace events, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 13/26] sdcard: add more trace events,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [RFC PATCH 14/26] sdcard: use qemu_hexbuf_strdup() to trace command response, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 15/26] sdcard: use PW_LEN define instead of '16' magic, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 16/26] sdcard: let cmd_valid_while_locked() returns a bool, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 17/26] sdcard: rename sd_set_REG() functions called by sd_reset() as sd_reset_REG(), Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 18/26] sdcard: move Memory Card registers together, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 19/26] sdcard: add DSR register, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 20/26] sdcard: add/use SD_CMD_MAX to check valid SD commands, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 21/26] sdcard: add sd_cmd_abbreviation() to resolve the SD command id, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 23/26] sdcard: add ACMD trace events, Philippe Mathieu-Daudé, 2017/12/13
- [Qemu-devel] [PATCH 24/26] sdcard: use a 16-bit type for the 16-bit RCA register, Philippe Mathieu-Daudé, 2017/12/13