summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SERVICES/BMI/ol_fw.c17
-rw-r--r--CORE/SERVICES/BMI/ol_fw.h5
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,