Some i.MX SoCs have multiple i.MX network IP blocks. Allow to distinguish them via their QOM path when tracing.
Signed-off-by: Bernhard Beschow <[email protected]> --- hw/net/imx_fec.c | 28 +++++++++++++++------------- hw/net/trace-events | 24 ++++++++++++------------ 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/hw/net/imx_fec.c b/hw/net/imx_fec.c index c177b7ff2b..fb8bcd52d2 100644 --- a/hw/net/imx_fec.c +++ b/hw/net/imx_fec.c @@ -248,7 +248,7 @@ static uint32_t imx_phy_read(IMXFECState *s, int reg) if (s->phy_consumer && phy == s->phy_consumer->phy_num) { s = s->phy_consumer; } else { - trace_imx_phy_read_num(phy, s->phy_num); + trace_imx_phy_read_num(DEVICE(s)->canonical_path, phy, s->phy_num); return 0xffff; } } @@ -270,7 +270,7 @@ static void imx_phy_write(IMXFECState *s, int reg, uint32_t val) if (s->phy_consumer && phy == s->phy_consumer->phy_num) { s = s->phy_consumer; } else { - trace_imx_phy_write_num(phy, s->phy_num); + trace_imx_phy_write_num(DEVICE(s)->canonical_path, phy, s->phy_num); return; } } @@ -364,7 +364,7 @@ static void imx_fec_do_tx(IMXFECState *s) if ((bd.flags & ENET_BD_R) == 0) { /* Run out of descriptors to transmit. */ - trace_imx_eth_tx_bd_busy(); + trace_imx_eth_tx_bd_busy(DEVICE(s)->canonical_path); break; } @@ -446,7 +446,7 @@ static void imx_enet_do_tx(IMXFECState *s, uint32_t index) if ((bd.flags & ENET_BD_R) == 0) { /* Run out of descriptors to transmit. */ - trace_imx_eth_tx_bd_busy(); + trace_imx_eth_tx_bd_busy(DEVICE(s)->canonical_path); break; } @@ -521,7 +521,7 @@ static void imx_eth_enable_rx(IMXFECState *s, bool flush) s->regs[ENET_RDAR] = (bd.flags & ENET_BD_E) ? ENET_RDAR_RDAR : 0; if (!s->regs[ENET_RDAR]) { - trace_imx_eth_rx_bd_full(); + trace_imx_eth_rx_bd_full(DEVICE(s)->canonical_path); } else if (flush) { qemu_flush_queued_packets(qemu_get_queue(s->nic)); } @@ -659,7 +659,8 @@ static uint64_t imx_eth_read(void *opaque, hwaddr offset, unsigned size) break; } - trace_imx_eth_read(index, imx_eth_reg_name(s, index), value); + trace_imx_eth_read(DEVICE(s)->canonical_path, index, + imx_eth_reg_name(s, index), value); return value; } @@ -767,7 +768,8 @@ static void imx_eth_write(void *opaque, hwaddr offset, uint64_t value, const bool single_tx_ring = !imx_eth_is_multi_tx_ring(s); uint32_t index = offset >> 2; - trace_imx_eth_write(index, imx_eth_reg_name(s, index), value); + trace_imx_eth_write(DEVICE(s)->canonical_path, index, + imx_eth_reg_name(s, index), value); switch (index) { case ENET_EIR: @@ -951,7 +953,7 @@ static ssize_t imx_fec_receive(NetClientState *nc, const uint8_t *buf, unsigned int buf_len; size_t size = len; - trace_imx_fec_receive(size); + trace_imx_fec_receive(DEVICE(s)->canonical_path, size); if (!s->regs[ENET_RDAR]) { qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Unexpected packet\n", @@ -993,7 +995,7 @@ static ssize_t imx_fec_receive(NetClientState *nc, const uint8_t *buf, bd.length = buf_len; size -= buf_len; - trace_imx_fec_receive_len(addr, bd.length); + trace_imx_fec_receive_len(DEVICE(s)->canonical_path, addr, bd.length); /* The last 4 bytes are the CRC. */ if (size < 4) { @@ -1013,7 +1015,7 @@ static ssize_t imx_fec_receive(NetClientState *nc, const uint8_t *buf, /* Last buffer in frame. */ bd.flags |= flags | ENET_BD_L; - trace_imx_fec_receive_last(bd.flags); + trace_imx_fec_receive_last(DEVICE(s)->canonical_path, bd.flags); s->regs[ENET_EIR] |= ENET_INT_RXF; } else { @@ -1047,7 +1049,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, const uint8_t *buf, size_t size = len; bool shift16 = s->regs[ENET_RACC] & ENET_RACC_SHIFT16; - trace_imx_enet_receive(size); + trace_imx_enet_receive(DEVICE(s)->canonical_path, size); if (!s->regs[ENET_RDAR]) { qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Unexpected packet\n", @@ -1093,7 +1095,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, const uint8_t *buf, bd.length = buf_len; size -= buf_len; - trace_imx_enet_receive_len(addr, bd.length); + trace_imx_enet_receive_len(DEVICE(s)->canonical_path, addr, bd.length); /* The last 4 bytes are the CRC. */ if (size < 4) { @@ -1131,7 +1133,7 @@ static ssize_t imx_enet_receive(NetClientState *nc, const uint8_t *buf, /* Last buffer in frame. */ bd.flags |= flags | ENET_BD_L; - trace_imx_enet_receive_last(bd.flags); + trace_imx_enet_receive_last(DEVICE(s)->canonical_path, bd.flags); /* Indicate that we've updated the last buffer descriptor. */ bd.last_buffer = ENET_BD_BDU; diff --git a/hw/net/trace-events b/hw/net/trace-events index 001a20b0e2..81af808044 100644 --- a/hw/net/trace-events +++ b/hw/net/trace-events @@ -444,20 +444,20 @@ i82596_ca_init(uint32_t scb, uint8_t mode, uint32_t base) "CA: Init - SCB=0x%08x i82596_ioport_write(uint32_t addr, uint32_t val) "IO write addr=0x%08x val=0x%08x" # imx_fec.c -imx_phy_read_num(int phy, int configured) "read request from unconfigured phy %d (configured %d)" -imx_phy_write_num(int phy, int configured) "write request to unconfigured phy %d (configured %d)" +imx_phy_read_num(const char *path, int phy, int configured) "%s: read request from unconfigured phy %d (configured %d)" +imx_phy_write_num(const char *path, int phy, int configured) "%s: write request to unconfigured phy %d (configured %d)" imx_fec_read_bd(uint64_t addr, int flags, int len, int data) "tx_bd 0x%"PRIx64" flags 0x%04x len %d data 0x%08x" imx_enet_read_bd(uint64_t addr, int flags, int len, int data, int options, int status) "tx_bd 0x%"PRIx64" flags 0x%04x len %d data 0x%08x option 0x%04x status 0x%04x" -imx_eth_tx_bd_busy(void) "tx_bd ran out of descriptors to transmit" -imx_eth_rx_bd_full(void) "RX buffer is full" -imx_eth_read(int reg, const char *reg_name, uint32_t value) "reg[%d:%s] => 0x%08"PRIx32 -imx_eth_write(int reg, const char *reg_name, uint64_t value) "reg[%d:%s] <= 0x%08"PRIx64 -imx_fec_receive(size_t size) "len %zu" -imx_fec_receive_len(uint64_t addr, int len) "rx_bd 0x%"PRIx64" length %d" -imx_fec_receive_last(int last) "rx frame flags 0x%04x" -imx_enet_receive(size_t size) "len %zu" -imx_enet_receive_len(uint64_t addr, int len) "rx_bd 0x%"PRIx64" length %d" -imx_enet_receive_last(int last) "rx frame flags 0x%04x" +imx_eth_tx_bd_busy(const char *path) "%s: tx_bd ran out of descriptors to transmit" +imx_eth_rx_bd_full(const char *path) "%s: RX buffer is full" +imx_eth_read(const char *path, int reg, const char *reg_name, uint32_t value) "%s: reg[%d:%s] => 0x%08"PRIx32 +imx_eth_write(const char *path, int reg, const char *reg_name, uint64_t value) "%s: reg[%d:%s] <= 0x%08"PRIx64 +imx_fec_receive(const char *path, size_t size) "%s: len %zu" +imx_fec_receive_len(const char *path, uint64_t addr, int len) "%s: rx_bd 0x%"PRIx64" length %d" +imx_fec_receive_last(const char *path, int last) "%s: rx frame flags 0x%04x" +imx_enet_receive(const char *path, size_t size) "%s: len %zu" +imx_enet_receive_len(const char *path, uint64_t addr, int len) "%s, rx_bd 0x%"PRIx64" length %d" +imx_enet_receive_last(const char *path, int last) "%s: rx frame flags 0x%04x" # npcm7xx_emc.c npcm7xx_emc_reset(int emc_num) "Resetting emc%d" -- 2.55.0
