OVMS3-idf/components/esp32
Ivan Grokhotkov eb5752c635 esp_restart: fix possible race while stalling other CPU, enable WDT early
Previously esp_restart would stall the other CPU before enabling RTC_WDT.
If the other CPU was executing an s32c1i instruction, the lock signal
from CPU to the arbiter would still be held after CPU was stalled. If
the CPU running esp_restart would then try to access the same locked
memory pool, it would be stuck, because lock signal would never be
released.

With this change, esp_restart resets the other CPU before stalling it.
Ideally, we would want to reset the CPU and keep it in reset, but the
hardware doesn't have such feature for PRO_CPU (it is possible to hold
APP_CPU in reset using DPORT register). Given that ROM code will not use
s32c1i in the first few hundred cycles, doing reset and then stall seems
to be safe.

In addition to than, RTC_WDT initialization is moved to the beginning of
the function, to prevent possible lock-up if CPU stalling still has any
issue.
2017-10-26 19:53:53 +08:00
..
hwcrypto hwcrypto: Fix bug with concurrent SHA access 2017-08-25 16:08:03 +10:00
include Merge branch 'bugfix/optmize_ipv6_event' into 'master' 2017-10-23 17:00:10 +08:00
ld Merge branch 'feature/i2s_built_in_adc' into 'master' 2017-10-20 15:52:56 +08:00
lib@a0d77be618 esp32: fix some wifi bugs 2017-10-18 14:53:19 +08:00
test Merge branch 'feature/dfs' into 'master' 2017-10-22 12:34:11 +08:00
brownout.c brownout detector: enable by default 2017-07-10 17:25:55 +08:00
cache_err_int.c esp32: fix cache error interrupt handler 2017-09-08 09:59:09 +08:00
clk.c esp_clk.h: make public, add getters for RTC time, CPU/APB freq 2017-10-18 14:19:14 +08:00
component.mk update libstdc++.a built with pSRAM workaround 2017-10-19 21:35:22 +08:00
core_dump.c freertos: deprecate XT_CLOCK_FREQ 2017-10-18 14:19:19 +08:00
cpu_start.c Merge branch 'feature/dfs' into 'master' 2017-10-22 12:34:11 +08:00
crosscore_int.c crosscore_int: add support for FREQ_SWITCH event 2017-10-18 12:31:38 +08:00
dport_access.c esp32: exclude DPORT-related code in single core mode 2017-09-22 12:07:05 +08:00
dport_panic_highint_hdl.S esp32: exclude DPORT-related code in single core mode 2017-09-22 12:07:05 +08:00
esp_clk_internal.h esp_clk.h: make public, add getters for RTC time, CPU/APB freq 2017-10-18 14:19:14 +08:00
esp_timer.c wifi/bt coexistence: Fix disabled cache access race when writing to flash 2017-10-16 19:47:33 +08:00
esp_timer_esp32.c esp_timer: add support for frequency scaling 2017-10-18 14:19:18 +08:00
esp_timer_impl.h esp_timer: add support for frequency scaling 2017-10-18 14:19:18 +08:00
ets_timer_legacy.c wifi/bt coexistence: Fix disabled cache access race when writing to flash 2017-10-16 19:47:33 +08:00
event_default_handlers.c bugfix: add netif info in event message when got ipv6 address 2017-10-23 13:50:43 +08:00
event_loop.c esp_event_send: check if the event loop is initialized 2017-06-05 11:01:26 +08:00
fast_crypto_ops.c Add the fast crypto function in supplicant 2017-08-09 21:36:13 +08:00
freertos_hooks.c freertos: add frequency switching hooks to ISR and idle task 2017-10-18 14:19:17 +08:00
gdbstub.c Fix small bug in gdbstub where it sometimes would not return a valid stop reason, timing out gdb. Also clean up the code a bit. 2016-12-02 17:42:11 +08:00
hw_random.c freertos: deprecate XT_CLOCK_FREQ 2017-10-18 14:19:19 +08:00
int_wdt.c bugfix/freertos_dual_core_hooks 2017-10-13 18:27:53 +08:00
intr_alloc.c Add logic to make external RAM usable with malloc() 2017-09-28 17:17:50 +08:00
ipc.c startup: Add assertion checks around various initialisation sequences 2017-07-12 13:06:56 +08:00
Kconfig esp_timer: add support for frequency scaling 2017-10-18 14:19:18 +08:00
lib_printf.c uart_tx_wait_idle: fix issue with last character not transmitted 2016-12-08 01:42:37 +08:00
libhal.a Initial public version 2016-08-17 23:08:22 +08:00
libstdc++-psram-workaround.a update libstdc++.a built with pSRAM workaround 2017-10-19 21:35:22 +08:00
Makefile.projbuild Add initial SPI RAM support. This adds support for an ESP-PSRAM32 chip connected to the default flash pins and GPIO 16 and 17. The RAM is mapped to address 0x3F800000, but otherwise ignored by esp-idf as of yet. 2017-09-04 12:05:49 +08:00
panic.c Panic: stop dport access handler without trying to use a lock 2017-09-11 17:24:22 +08:00
phy.h soc: add source code of rtc_clk, rtc_pm 2017-04-11 15:45:54 +08:00
phy_init.c kconfig: Remove Wi-Fi on/off as a menuconfig option 2017-08-16 15:55:28 +05:30
phy_init_data.h component/esp32 : update phy & rtc 2017-10-17 18:02:42 +08:00
pm_esp32.c pm: initial implementation for ESP32 2017-10-18 14:19:16 +08:00
pm_impl.h pm: initial implementation for ESP32 2017-10-18 14:19:16 +08:00
pm_locks.c pm: initial version of power management APIs 2017-10-18 14:19:16 +08:00
pm_trace.c pm: support for tracing using GPIOs 2017-10-18 14:19:18 +08:00
pm_trace.h pm: support for tracing using GPIOs 2017-10-18 14:19:18 +08:00
restore.c esp_system: remove link time dependency on WiFi stack 2017-06-15 18:15:36 +08:00
sleep_modes.c sleep: don't power down VDD_SDIO in light sleep if SPIRAM is enabled 2017-10-19 21:35:23 +08:00
smartconfig.c Refractor smartconfig 2017-09-13 16:55:30 +08:00
smartconfig.h Refractor smartconfig 2017-09-13 16:55:30 +08:00
spiram.c unit tests: fix warnings, build with -Werror 2017-10-19 21:35:23 +08:00
spiram_psram.c Make 80MHz PSRAM work as well, add testcase for weirdness reported on esp32 forums, clean up unused define in psram code 2017-09-14 10:47:44 +08:00
spiram_psram.h Add initial SPI RAM support. This adds support for an ESP-PSRAM32 chip connected to the default flash pins and GPIO 16 and 17. The RAM is mapped to address 0x3F800000, but otherwise ignored by esp-idf as of yet. 2017-09-04 12:05:49 +08:00
system_api.c esp_restart: fix possible race while stalling other CPU, enable WDT early 2017-10-26 19:53:53 +08:00
task_wdt.c Revert "esp32: New Task Watchdog API" 2017-09-30 18:07:19 +08:00
wifi_init.c esp32: add power management hooks for WiFi library 2017-10-18 14:19:19 +08:00
wifi_internal.c Allocate some memories in SPIRAM first. 2017-10-13 10:11:24 +08:00