mirror of https://github.com/thesofproject/sof.git
fuzzer: add more logging and cleanup printf
provide more detail to the user and print to stdout. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This commit is contained in:
parent
c33e1a3677
commit
29a9b9d529
|
@ -83,6 +83,7 @@ static void usage(char *name)
|
|||
for (i = 0; i < ARRAY_SIZE(platform); i++)
|
||||
fprintf(stdout, "%s ", platform[i]->name);
|
||||
fprintf(stdout, "\n");
|
||||
fprintf(stdout, "Qemu must be started before the fuzzer is run.\n");
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
@ -111,7 +112,7 @@ void *fuzzer_create_io_region(struct fuzz *fuzzer, int id, int idx)
|
|||
space = &plat->reg_region[idx];
|
||||
|
||||
sprintf(shm_name, "%s-io", space->name);
|
||||
|
||||
fprintf(stdout, "registering %s\n", shm_name);
|
||||
err = qemu_io_register_shm(shm_name, id, space->desc.size, &ptr);
|
||||
if (err < 0)
|
||||
fprintf(stderr, "error: can't allocate IO %s:%d SHM %d\n", shm_name,
|
||||
|
@ -132,6 +133,7 @@ void *fuzzer_create_memory_region(struct fuzz *fuzzer, int id, int idx)
|
|||
|
||||
/* shared via SHM (not shared on real HW) */
|
||||
sprintf(shm_name, "%s-mem", desc->name);
|
||||
fprintf(stdout, "registering %s\n", shm_name);
|
||||
err = qemu_io_register_shm(shm_name, id, desc->size, &ptr);
|
||||
if (err < 0)
|
||||
fprintf(stderr, "error: can't allocate %s:%d SHM %d\n", shm_name,
|
||||
|
@ -210,7 +212,7 @@ void fuzzer_ipc_msg_reply(struct fuzz *fuzzer)
|
|||
void fuzzer_ipc_crash(struct fuzz *fuzzer, unsigned int offset)
|
||||
{
|
||||
/* TODO: DSP FW has crashed. dump stack, regs, last IPC, log etc */
|
||||
fprintf(stderr, "DSP FW crash\n");
|
||||
fprintf(stderr, "error: DSP FW crash\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
|
@ -318,6 +320,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
/* init plaform */
|
||||
fprintf(stdout, "initialising platform %s\n", platform[i]->name);
|
||||
ret = platform[i]->init(&fuzzer, platform[i]);
|
||||
if (ret == ETIMEDOUT) {
|
||||
fprintf(stderr, "error: platform %s failed to initialise\n",
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
#define ADSP_BYT_SHIM_SIZE 0x1000
|
||||
#define ADSP_MAILBOX_SIZE 0x1000
|
||||
|
||||
// TODO get from driver.
|
||||
/* TODO get from driver. */
|
||||
#define BYT_PANIC_OFFSET(x) (x)
|
||||
|
||||
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
|
||||
|
@ -131,7 +131,8 @@ static void dsp_write64(struct fuzz *fuzzer, unsigned int bar,
|
|||
/* do we need to send an IRQ ? */
|
||||
if (value & SHIM_IPCX_BUSY) {
|
||||
|
||||
printf("irq: send busy interrupt 0x%8.8lx\n", value);
|
||||
fprintf(stdout, "irq: send busy interrupt 0x%8.8lx\n",
|
||||
value);
|
||||
|
||||
/* send IRQ to child */
|
||||
irq.hdr.type = QEMU_IO_TYPE_IRQ;
|
||||
|
@ -154,7 +155,8 @@ static void dsp_write64(struct fuzz *fuzzer, unsigned int bar,
|
|||
/* do we need to send an IRQ ? */
|
||||
if (value & SHIM_IPCD_DONE) {
|
||||
|
||||
printf("irq: send done interrupt 0x%8.8lx\n", value);
|
||||
fprintf(stdout, "irq: send done interrupt 0x%8.8lx\n",
|
||||
value);
|
||||
|
||||
/* send IRQ to child */
|
||||
irq.hdr.type = QEMU_IO_TYPE_IRQ;
|
||||
|
@ -170,9 +172,9 @@ static void dsp_write64(struct fuzz *fuzzer, unsigned int bar,
|
|||
active = dsp_read64(fuzzer, bar, SHIM_ISRX) &
|
||||
~(dsp_read64(fuzzer, bar, SHIM_IMRX));
|
||||
|
||||
printf("irq: masking %lx mask %lx active %x\n",
|
||||
dsp_read64(fuzzer, bar, SHIM_ISRD),
|
||||
dsp_read64(fuzzer, bar, SHIM_IMRD), active);
|
||||
fprintf(stdout, "irq: masking %lx mask %lx active %x\n",
|
||||
dsp_read64(fuzzer, bar, SHIM_ISRD),
|
||||
dsp_read64(fuzzer, bar, SHIM_IMRD), active);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -277,7 +279,7 @@ static int byt_irq_thread(int irq, void *context)
|
|||
SHIM_IMRX_DONE,
|
||||
SHIM_IMRX_DONE);
|
||||
|
||||
printf("reply msg from DSP\n");
|
||||
fprintf(stdout, "ipc: reply msg from DSP\n");
|
||||
/*
|
||||
* handle immediate reply from DSP core. If the msg is
|
||||
* found, set done bit in cmd_done which is called at the
|
||||
|
@ -352,7 +354,8 @@ static int byt_get_reply(struct fuzz *fuzzer, struct ipc_msg *msg)
|
|||
} else {
|
||||
/* reply correct size ? */
|
||||
if (reply.hdr.size != msg->reply_size) {
|
||||
printf("error: reply expected 0x%x got 0x%x bytes\n",
|
||||
fprintf(stderr,
|
||||
"error: reply expected 0x%x got 0x%x bytes\n",
|
||||
msg->reply_size, reply.hdr.size);
|
||||
size = msg->reply_size;
|
||||
ret = -EINVAL;
|
||||
|
@ -476,14 +479,15 @@ static void byt_fw_ready(struct fuzz *fuzzer)
|
|||
data->dsp_box.offset = 0;
|
||||
data->dsp_box.size = 0x400;
|
||||
|
||||
printf("host box 0x%x size 0x%x\n", data->host_box.offset,
|
||||
data->host_box.size);
|
||||
printf("dsp box 0x%x size 0x%x\n", data->dsp_box.offset,
|
||||
data->dsp_box.size);
|
||||
fprintf(stdout,
|
||||
"ipc: host box 0x%x size 0x%x\n", data->host_box.offset,
|
||||
data->host_box.size);
|
||||
fprintf(stdout, "ipc: dsp box 0x%x size 0x%x\n", data->dsp_box.offset,
|
||||
data->dsp_box.size);
|
||||
|
||||
version = fw_ready.version;
|
||||
printf("FW version major: %d minor: %d tag: %s\n",
|
||||
version.major, version.minor, version.tag);
|
||||
fprintf(stdout, "ipc: FW version major: %d minor: %d tag: %s\n",
|
||||
version.major, version.minor, version.tag);
|
||||
}
|
||||
|
||||
struct fuzz_platform byt_platform = {
|
||||
|
|
Loading…
Reference in New Issue