Skip to content

Commit 1bada3c

Browse files
shentokphilmd
authored andcommitted
hw/char/imx_serial: Turn some DPRINTF() statements into trace events
Reviewed-by: Philippe Mathieu-Daudé <[email protected]> Tested-by: Philippe Mathieu-Daudé <[email protected]> Signed-off-by: Bernhard Beschow <[email protected]> Message-ID: <[email protected]> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
1 parent 2eabc49 commit 1bada3c

File tree

2 files changed

+44
-19
lines changed

2 files changed

+44
-19
lines changed

hw/char/imx_serial.c

Lines changed: 39 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "qemu/log.h"
2828
#include "qemu/module.h"
2929
#include "qemu/fifo32.h"
30+
#include "trace.h"
3031

3132
#ifndef DEBUG_IMX_UART
3233
#define DEBUG_IMX_UART 0
@@ -184,10 +185,10 @@ static uint64_t imx_serial_read(void *opaque, hwaddr offset,
184185
unsigned size)
185186
{
186187
IMXSerialState *s = (IMXSerialState *)opaque;
188+
Chardev *chr = qemu_chr_fe_get_driver(&s->chr);
187189
uint32_t c, rx_used;
188190
uint8_t rxtl = s->ufcr & TL_MASK;
189-
190-
DPRINTF("read(offset=0x%" HWADDR_PRIx ")\n", offset);
191+
uint64_t value;
191192

192193
switch (offset >> 2) {
193194
case 0x0: /* URXD */
@@ -208,49 +209,67 @@ static uint64_t imx_serial_read(void *opaque, hwaddr offset,
208209
imx_serial_rx_fifo_ageing_timer_restart(s);
209210
qemu_chr_fe_accept_input(&s->chr);
210211
}
211-
return c;
212+
value = c;
213+
break;
212214

213215
case 0x20: /* UCR1 */
214-
return s->ucr1;
216+
value = s->ucr1;
217+
break;
215218

216219
case 0x21: /* UCR2 */
217-
return s->ucr2;
220+
value = s->ucr2;
221+
break;
218222

219223
case 0x25: /* USR1 */
220-
return s->usr1;
224+
value = s->usr1;
225+
break;
221226

222227
case 0x26: /* USR2 */
223-
return s->usr2;
228+
value = s->usr2;
229+
break;
224230

225231
case 0x2A: /* BRM Modulator */
226-
return s->ubmr;
232+
value = s->ubmr;
233+
break;
227234

228235
case 0x2B: /* Baud Rate Count */
229-
return s->ubrc;
236+
value = s->ubrc;
237+
break;
230238

231239
case 0x2d: /* Test register */
232-
return s->uts1;
240+
value = s->uts1;
241+
break;
233242

234243
case 0x24: /* UFCR */
235-
return s->ufcr;
244+
value = s->ufcr;
245+
break;
236246

237247
case 0x2c:
238-
return s->onems;
248+
value = s->onems;
249+
break;
239250

240251
case 0x22: /* UCR3 */
241-
return s->ucr3;
252+
value = s->ucr3;
253+
break;
242254

243255
case 0x23: /* UCR4 */
244-
return s->ucr4;
256+
value = s->ucr4;
257+
break;
245258

246259
case 0x29: /* BRM Incremental */
247-
return 0x0; /* TODO */
260+
value = 0x0; /* TODO */
261+
break;
248262

249263
default:
250264
qemu_log_mask(LOG_GUEST_ERROR, "[%s]%s: Bad register at offset 0x%"
251265
HWADDR_PRIx "\n", TYPE_IMX_SERIAL, __func__, offset);
252-
return 0;
266+
value = 0;
267+
break;
253268
}
269+
270+
trace_imx_serial_read(chr ? chr->label : "NODEV", offset, value);
271+
272+
return value;
254273
}
255274

256275
static void imx_serial_write(void *opaque, hwaddr offset,
@@ -260,8 +279,7 @@ static void imx_serial_write(void *opaque, hwaddr offset,
260279
Chardev *chr = qemu_chr_fe_get_driver(&s->chr);
261280
unsigned char ch;
262281

263-
DPRINTF("write(offset=0x%" HWADDR_PRIx ", value = 0x%x) to %s\n",
264-
offset, (unsigned int)value, chr ? chr->label : "NODEV");
282+
trace_imx_serial_write(chr ? chr->label : "NODEV", offset, value);
265283

266284
switch (offset >> 2) {
267285
case 0x10: /* UTXD */
@@ -373,9 +391,11 @@ static int imx_can_receive(void *opaque)
373391
static void imx_put_data(void *opaque, uint32_t value)
374392
{
375393
IMXSerialState *s = (IMXSerialState *)opaque;
394+
Chardev *chr = qemu_chr_fe_get_driver(&s->chr);
376395
uint8_t rxtl = s->ufcr & TL_MASK;
377396

378-
DPRINTF("received char\n");
397+
trace_imx_serial_put_data(chr ? chr->label : "NODEV", value);
398+
379399
imx_serial_rx_fifo_push(s, value);
380400
if (fifo32_num_used(&s->rx_fifo) >= rxtl) {
381401
s->usr1 |= USR1_RRDY;

hw/char/trace-events

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ escc_sunkbd_event_out(int ch) "Translated keycode 0x%2.2x"
5252
escc_kbd_command(int val) "Command %d"
5353
escc_sunmouse_event(int dx, int dy, int buttons_state) "dx=%d dy=%d buttons=0x%01x"
5454

55+
# imx_serial.c
56+
imx_serial_read(const char *chrname, uint64_t addr, uint64_t value) "%s:[0x%03" PRIu64 "] -> 0x%08" PRIx64
57+
imx_serial_write(const char *chrname, uint64_t addr, uint64_t value) "%s:[0x%03" PRIu64 "] <- 0x%08" PRIx64
58+
imx_serial_put_data(const char *chrname, uint32_t value) "%s: 0x%" PRIx32
59+
5560
# pl011.c
5661
pl011_irq_state(int level) "irq state %d"
5762
pl011_read(uint32_t addr, uint32_t value, const char *regname) "addr 0x%03x value 0x%08x reg %s"

0 commit comments

Comments
 (0)