aboutsummaryrefslogtreecommitdiffstats
path: root/src/basecmd.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2017-09-03 22:02:48 -0400
committerKevin O'Connor <kevin@koconnor.net>2017-09-03 23:16:38 -0400
commit7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e (patch)
tree95a1984058658800446ace751b6d0adeee35a415 /src/basecmd.c
parent7b7f57e01c87efc74ed0c632b14c1fc7897c5a6e (diff)
downloadkutter-7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e.tar.gz
kutter-7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e.tar.xz
kutter-7083a33ecd1cdcf5402cccbdb53f56cdfaf80f5e.zip
pru: Support config_reset command to manually reset mcu
Add support for resetting the MCU via a software only mechanism. This is useful on the PRU. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/basecmd.c')
-rw-r--r--src/basecmd.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/basecmd.c b/src/basecmd.c
index 831b12e4..b5ff738a 100644
--- a/src/basecmd.c
+++ b/src/basecmd.c
@@ -215,6 +215,25 @@ command_finalize_config(uint32_t *args)
}
DECL_COMMAND(command_finalize_config, "finalize_config crc=%u");
+// Attempt a full manual reset of the config
+void
+config_reset(uint32_t *args)
+{
+ if (! sched_is_shutdown())
+ shutdown("config_reset only available when shutdown");
+ irq_disable();
+ config_crc = 0;
+ oid_count = 0;
+ oids = NULL;
+ move_free_list = NULL;
+ move_list = NULL;
+ move_count = move_item_size = 0;
+ alloc_init();
+ sched_timer_reset();
+ sched_clear_shutdown();
+ irq_enable();
+}
+
/****************************************************************
* Timing and load stats