diff options
| -rw-r--r-- | CORE/SERVICES/BMI/ol_fw.c | 17 | ||||
| -rw-r--r-- | CORE/SERVICES/BMI/ol_fw.h | 5 |
2 files changed, 18 insertions, 4 deletions
diff --git a/CORE/SERVICES/BMI/ol_fw.c b/CORE/SERVICES/BMI/ol_fw.c index d3baacee8310..8c752e1f5228 100644 --- a/CORE/SERVICES/BMI/ol_fw.c +++ b/CORE/SERVICES/BMI/ol_fw.c @@ -524,10 +524,10 @@ static void ramdump_work_handler(struct work_struct *ramdump) } ol_target_coredump(ramdump_scn, ramdump_base, TOTAL_DUMP_SIZE); - iounmap(ramdump_base); + iounmap(ramdump_base); printk("%s: RAM dump collecting completed!\n", __func__); - msleep(500); + msleep(250); out: /* Notify SSR framework the target has crashed. */ @@ -939,6 +939,8 @@ int ol_diag_read(struct ol_softc *scn, u_int8_t *buffer, if (remainder < PCIE_READ_LIMIT) readSize = remainder; } + + msleep(5); } } else { result = HIFDiagReadMem(scn->hif_hdl, pos, @@ -982,9 +984,13 @@ void ol_target_coredump(void *inst, void *memoryBlock, u_int32_t blockLength) * SECTION = IRAM * START = 0x00980000 * LENGTH = 0x00038000 + * + * SECTION = AXI + * START = 0x000a0000 + * LENGTH = 0x00018000 */ - while ((sectionCount < 2) && (amountRead < blockLength)) { + while ((sectionCount < 3) && (amountRead < blockLength)) { switch (sectionCount) { case 0: /* DRAM SECTION */ @@ -996,6 +1002,11 @@ void ol_target_coredump(void *inst, void *memoryBlock, u_int32_t blockLength) pos = IRAM_LOCATION; readLen = IRAM_SIZE; break; + case 2: + /* AXI SECTION */ + pos = AXI_LOCATION; + readLen = AXI_SIZE; + break; } if ((blockLength - amountRead) >= readLen) { diff --git a/CORE/SERVICES/BMI/ol_fw.h b/CORE/SERVICES/BMI/ol_fw.h index 8d25b9704596..18abf68cdb91 100644 --- a/CORE/SERVICES/BMI/ol_fw.h +++ b/CORE/SERVICES/BMI/ol_fw.h @@ -59,7 +59,10 @@ #define IRAM_LOCATION 0x00980000 #define IRAM_SIZE 0x00038000 -#define TOTAL_DUMP_SIZE REGISTER_SIZE + DRAM_SIZE + IRAM_SIZE +#define AXI_LOCATION 0x000a0000 +#define AXI_SIZE 0x00018000 + +#define TOTAL_DUMP_SIZE 0x00200000 #define PCIE_READ_LIMIT 0x00005000 void ol_target_coredump(void *instance, void* memoryBlock, |
