Merge "ipq6018: reset: fixing reset flow after dump collection into flash"
diff --git a/board/qca/arm/common/crashdump.c b/board/qca/arm/common/crashdump.c
index a305a5e..92dfdd8 100644
--- a/board/qca/arm/common/crashdump.c
+++ b/board/qca/arm/common/crashdump.c
@@ -162,8 +162,18 @@
{
char runcmd[128];
char *usb_dump = NULL;
+ ulong is_usb_dump = 0;
+ int ret = 0;
usb_dump = getenv("dump_to_usb");
+ if (usb_dump) {
+ ret = str2long(usb_dump, &is_usb_dump);
+ if (!ret) {
+ printf("\nError: Failed to decode dump_to_usb value\n");
+ return -EINVAL;
+ }
+ }
+
if (is_aligned_access) {
if (IPQ_TEMP_DUMP_ADDR) {
snprintf(runcmd, sizeof(runcmd), "cp.l 0x%x 0x%x 0x%x", memaddr,
@@ -178,7 +188,7 @@
}
}
- if (usb_dump)
+ if (is_usb_dump == 1)
snprintf(runcmd, sizeof(runcmd), "fatwrite usb %x:%x 0x%x %s 0x%x",
usb_dev_indx, usb_dev_part, memaddr, name, size);
else {
@@ -386,9 +396,18 @@
int dump_entries = dump_entries_n;
char wlan_segment_name[32];
char *usb_dump = NULL;
+ ulong is_usb_dump = 0;
usb_dump = getenv("dump_to_usb");
- if (!usb_dump) {
+ if (usb_dump) {
+ ret = str2long(usb_dump, &is_usb_dump);
+ if (!ret) {
+ printf("\nError: Failed to decode dump_to_usb value\n");
+ return -EINVAL;
+ }
+ }
+
+ if (is_usb_dump != 1) {
char *serverip = NULL;
/* dump to root of TFTP server if none specified */
serverip = getenv("serverip");
@@ -498,7 +517,7 @@
- dumpinfo[indx - 1].size
- CONFIG_TZ_SIZE;
- if (usb_dump) {
+ if (is_usb_dump == 1) {
ret = dump_to_dst (dumpinfo[indx].is_aligned_access, memaddr, dumpinfo[indx].size, dumpinfo[indx].name);
if (ret == CMD_RET_FAILURE) {
goto stop_dump;
@@ -552,7 +571,7 @@
stop_dump:
#if defined(CONFIG_USB_STORAGE) && defined(CONFIG_FS_FAT)
- if (usb_dump)
+ if (is_usb_dump == 1)
run_command("usb stop", 0);
#endif
return ret;