rmbox: remove legacy code and use sof debugFS by default.
Dump error log by default with no args. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This commit is contained in:
parent
c95433636f
commit
46a5e80fc5
|
@ -47,42 +47,6 @@
|
||||||
#define TRACE_CLASS_EQ_FIR (19 << 24)
|
#define TRACE_CLASS_EQ_FIR (19 << 24)
|
||||||
#define TRACE_CLASS_EQ_IIR (20 << 24)
|
#define TRACE_CLASS_EQ_IIR (20 << 24)
|
||||||
|
|
||||||
#define MAILBOX_HOST_OFFSET 0x144000
|
|
||||||
|
|
||||||
#define MAILBOX_OUTBOX_OFFSET 0x0
|
|
||||||
#define MAILBOX_OUTBOX_SIZE 0x400
|
|
||||||
#define MAILBOX_OUTBOX_BASE \
|
|
||||||
(MAILBOX_BASE + MAILBOX_OUTBOX_OFFSET)
|
|
||||||
|
|
||||||
#define MAILBOX_INBOX_OFFSET MAILBOX_OUTBOX_SIZE
|
|
||||||
#define MAILBOX_INBOX_SIZE 0x400
|
|
||||||
#define MAILBOX_INBOX_BASE \
|
|
||||||
(MAILBOX_BASE + MAILBOX_INBOX_OFFSET)
|
|
||||||
|
|
||||||
#define MAILBOX_EXCEPTION_OFFSET \
|
|
||||||
(MAILBOX_INBOX_SIZE + MAILBOX_OUTBOX_SIZE)
|
|
||||||
#define MAILBOX_EXCEPTION_SIZE 0x100
|
|
||||||
#define MAILBOX_EXCEPTION_BASE \
|
|
||||||
(MAILBOX_BASE + MAILBOX_EXCEPTION_OFFSET)
|
|
||||||
|
|
||||||
#define MAILBOX_DEBUG_OFFSET \
|
|
||||||
(MAILBOX_EXCEPTION_SIZE + MAILBOX_EXCEPTION_OFFSET)
|
|
||||||
#define MAILBOX_DEBUG_SIZE 0x100
|
|
||||||
#define MAILBOX_DEBUG_BASE \
|
|
||||||
(MAILBOX_BASE + MAILBOX_DEBUG_OFFSET)
|
|
||||||
|
|
||||||
#define MAILBOX_STREAM_OFFSET \
|
|
||||||
(MAILBOX_DEBUG_SIZE + MAILBOX_DEBUG_OFFSET)
|
|
||||||
#define MAILBOX_STREAM_SIZE 0x200
|
|
||||||
#define MAILBOX_STREAM_BASE \
|
|
||||||
(MAILBOX_BASE + MAILBOX_STREAM_OFFSET)
|
|
||||||
|
|
||||||
#define MAILBOX_TRACE_OFFSET \
|
|
||||||
(MAILBOX_STREAM_SIZE + MAILBOX_STREAM_OFFSET)
|
|
||||||
#define MAILBOX_TRACE_SIZE 0x380
|
|
||||||
#define MAILBOX_TRACE_BASE \
|
|
||||||
(MAILBOX_BASE + MAILBOX_TRACE_OFFSET)
|
|
||||||
|
|
||||||
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
||||||
|
|
||||||
|
|
||||||
|
@ -218,8 +182,7 @@ static void show_trace(uint64_t val, uint64_t addr, uint64_t *timestamp, double
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static int trace_read(const char *in_file, const char *out_file, double clk,
|
static int trace_read(const char *in_file, const char *out_file, double clk)
|
||||||
int offset)
|
|
||||||
{
|
{
|
||||||
int count, i;
|
int count, i;
|
||||||
FILE *in_fd = NULL, *out_fd = NULL;
|
FILE *in_fd = NULL, *out_fd = NULL;
|
||||||
|
@ -250,11 +213,6 @@ trace:
|
||||||
if (count != TRACE_BLOCK_SIZE)
|
if (count != TRACE_BLOCK_SIZE)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (addr < offset) {
|
|
||||||
addr += TRACE_BLOCK_SIZE;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
val = *((uint64_t*)tmp);
|
val = *((uint64_t*)tmp);
|
||||||
|
|
||||||
for (i = 0; i < TRACE_BLOCK_SIZE / 2; i++) {
|
for (i = 0; i < TRACE_BLOCK_SIZE / 2; i++) {
|
||||||
|
@ -277,21 +235,10 @@ trace:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void show_debug(uint32_t val, uint32_t addr)
|
static void show_data(uint32_t val, uint32_t addr)
|
||||||
{
|
{
|
||||||
printf("debug: 0x%x (%2.2d) = \t0x%8.8x \t(%8.8d) \t|%c%c%c%c|\n",
|
printf("data: 0x%x = \t0x%8.8x \t(%8.8d) \t|%c%c%c%c|\n",
|
||||||
(unsigned int)addr - MAILBOX_DEBUG_OFFSET,
|
(unsigned int)addr,
|
||||||
((unsigned int)addr - MAILBOX_DEBUG_OFFSET) / 4,
|
|
||||||
val, val,
|
|
||||||
get_char(val, 3), get_char(val, 2),
|
|
||||||
get_char(val, 1), get_char(val, 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void show_exception(uint32_t val, uint32_t addr)
|
|
||||||
{
|
|
||||||
printf("exp: 0x%x (%2.2d) = \t0x%8.8x \t(%8.8d) \t|%c%c%c%c|\n",
|
|
||||||
(unsigned int)addr - MAILBOX_EXCEPTION_OFFSET,
|
|
||||||
((unsigned int)addr - MAILBOX_EXCEPTION_OFFSET) / 4,
|
|
||||||
val, val,
|
val, val,
|
||||||
get_char(val, 3), get_char(val, 2),
|
get_char(val, 3), get_char(val, 2),
|
||||||
get_char(val, 1), get_char(val, 0));
|
get_char(val, 1), get_char(val, 0));
|
||||||
|
@ -299,7 +246,9 @@ static void show_exception(uint32_t val, uint32_t addr)
|
||||||
|
|
||||||
|
|
||||||
static const char *debugfs[] = {
|
static const char *debugfs[] = {
|
||||||
"dmac0","dmac1", "ssp0", "ssp1", "ssp2", "iram", "dram", "shim", "mbox"
|
"dmac0", "dmac1", "ssp0", "ssp1",
|
||||||
|
"ssp2", "iram", "dram", "shim",
|
||||||
|
"mbox", "etrace",
|
||||||
};
|
};
|
||||||
|
|
||||||
static int snapshot(const char *name)
|
static int snapshot(const char *name)
|
||||||
|
@ -362,12 +311,11 @@ static int snapshot(const char *name)
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int opt, count, trace = 0;
|
int opt, count, trace = 0;
|
||||||
const char * out_file = NULL, *in_file = "/sys/kernel/debug/sof/mbox";
|
const char * out_file = NULL, *in_file = NULL;
|
||||||
FILE *in_fd = NULL, *out_fd = NULL;
|
FILE *in_fd = NULL, *out_fd = NULL;
|
||||||
char c, tmp[8] = {0};
|
char c, tmp[8] = {0};
|
||||||
uint64_t addr = 0, val, timestamp = 0, align = 4, i;
|
uint64_t addr = 0, val, timestamp = 0, align = 4, i;
|
||||||
double clk = 19.2;
|
double clk = 19.2;
|
||||||
int title_dbg_done = 0, title_exp_done = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "ho:i:s:m:c:t")) != -1) {
|
while ((opt = getopt(argc, argv, "ho:i:s:m:c:t")) != -1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
|
@ -393,7 +341,15 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
/* trace requested ? */
|
/* trace requested ? */
|
||||||
if (trace)
|
if (trace)
|
||||||
return trace_read("/sys/kernel/debug/sof/trace", out_file, clk, 0);
|
return trace_read("/sys/kernel/debug/sof/trace",
|
||||||
|
out_file, clk);
|
||||||
|
|
||||||
|
/* default option with no infile is to dump errors/debug data */
|
||||||
|
if (in_file == NULL) {
|
||||||
|
fprintf(stdout, "\nError log:\n");
|
||||||
|
return trace_read("/sys/kernel/debug/sof/etrace",
|
||||||
|
out_file, clk);
|
||||||
|
}
|
||||||
|
|
||||||
/* open infile for reading */
|
/* open infile for reading */
|
||||||
in_fd = fopen(in_file, "r");
|
in_fd = fopen(in_file, "r");
|
||||||
|
@ -432,21 +388,7 @@ convert:
|
||||||
tmp[align - i - 1] = c;
|
tmp[align - i - 1] = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addr >= MAILBOX_DEBUG_OFFSET &&
|
show_data(val, addr);
|
||||||
addr < MAILBOX_DEBUG_OFFSET + MAILBOX_DEBUG_SIZE) {
|
|
||||||
|
|
||||||
if (!title_dbg_done++)
|
|
||||||
fprintf(stdout, "\nDebug log:\n");
|
|
||||||
|
|
||||||
show_debug(val, addr);
|
|
||||||
} else if (addr >= MAILBOX_EXCEPTION_OFFSET &&
|
|
||||||
addr < MAILBOX_EXCEPTION_OFFSET + MAILBOX_EXCEPTION_SIZE) {
|
|
||||||
|
|
||||||
if (!title_exp_done++)
|
|
||||||
fprintf(stdout, "\nException log:\n");
|
|
||||||
|
|
||||||
show_exception(val, addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (out_fd) {
|
if (out_fd) {
|
||||||
count = fwrite(&tmp[0], 1, align, out_fd);
|
count = fwrite(&tmp[0], 1, align, out_fd);
|
||||||
|
@ -457,11 +399,6 @@ convert:
|
||||||
addr += align;
|
addr += align;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read debug */
|
|
||||||
fprintf(stdout, "\nError log:\n");
|
|
||||||
trace_read("/sys/kernel/debug/sof/mbox", out_file, clk,
|
|
||||||
MAILBOX_TRACE_OFFSET);
|
|
||||||
|
|
||||||
/* close files */
|
/* close files */
|
||||||
fclose(in_fd);
|
fclose(in_fd);
|
||||||
if (out_fd)
|
if (out_fd)
|
||||||
|
|
Loading…
Reference in New Issue