|
|
@@ -164,7 +164,8 @@ static int rproc_rsc_table_show(struct seq_file *seq, void *p)
|
|
|
struct resource_table *table = rproc->table_ptr;
|
|
|
struct fw_rsc_carveout *c;
|
|
|
struct fw_rsc_devmem *d;
|
|
|
- struct fw_rsc_trace *t;
|
|
|
+ struct fw_rsc_trace *t1;
|
|
|
+ struct fw_rsc_trace2 *t2;
|
|
|
struct fw_rsc_vdev *v;
|
|
|
struct fw_rsc_vendor *vr;
|
|
|
int i, j;
|
|
|
@@ -178,6 +179,7 @@ static int rproc_rsc_table_show(struct seq_file *seq, void *p)
|
|
|
int offset = table->offset[i];
|
|
|
struct fw_rsc_hdr *hdr = (void *)table + offset;
|
|
|
void *rsc = (void *)hdr + sizeof(*hdr);
|
|
|
+ u16 ver = hdr->st.v;
|
|
|
|
|
|
switch (hdr->st.t) {
|
|
|
case RSC_CARVEOUT:
|
|
|
@@ -203,13 +205,32 @@ static int rproc_rsc_table_show(struct seq_file *seq, void *p)
|
|
|
seq_printf(seq, " Name %s\n\n", d->name);
|
|
|
break;
|
|
|
case RSC_TRACE:
|
|
|
- t = rsc;
|
|
|
- seq_printf(seq, "Entry %d is of type %s\n",
|
|
|
- i, types[hdr->st.t]);
|
|
|
- seq_printf(seq, " Device Address 0x%x\n", t->da);
|
|
|
- seq_printf(seq, " Length 0x%x Bytes\n", t->len);
|
|
|
- seq_printf(seq, " Reserved (should be zero) [%d]\n", t->reserved);
|
|
|
- seq_printf(seq, " Name %s\n\n", t->name);
|
|
|
+ if (ver == 0) {
|
|
|
+ t1 = rsc;
|
|
|
+ seq_printf(seq, "Entry %d is version %d of type %s\n",
|
|
|
+ i, ver, types[hdr->st.t]);
|
|
|
+ seq_printf(seq, " Device Address 0x%x\n",
|
|
|
+ t1->da);
|
|
|
+ seq_printf(seq, " Length 0x%x Bytes\n",
|
|
|
+ t1->len);
|
|
|
+ seq_printf(seq, " Reserved (should be zero) [%d]\n",
|
|
|
+ t1->reserved);
|
|
|
+ seq_printf(seq, " Name %s\n\n", t1->name);
|
|
|
+ } else if (ver == 1) {
|
|
|
+ t2 = rsc;
|
|
|
+ seq_printf(seq, "Entry %d is version %d of type %s\n",
|
|
|
+ i, ver, types[hdr->st.t]);
|
|
|
+ seq_printf(seq, " Device Address 0x%llx\n",
|
|
|
+ t2->da);
|
|
|
+ seq_printf(seq, " Length 0x%x Bytes\n",
|
|
|
+ t2->len);
|
|
|
+ seq_printf(seq, " Reserved (should be zero) [%d]\n",
|
|
|
+ t2->reserved);
|
|
|
+ seq_printf(seq, " Name %s\n\n", t2->name);
|
|
|
+ } else {
|
|
|
+ seq_printf(seq, "Entry %d is an unsupported version %d of type %s\n",
|
|
|
+ i, ver, types[hdr->st.t]);
|
|
|
+ }
|
|
|
break;
|
|
|
case RSC_VDEV:
|
|
|
v = rsc;
|