|
1 |
| -# SPDX-FileCopyrightText: 2014-2022 Fredrik Ahlberg, Angus Gratton, |
| 1 | +# SPDX-FileCopyrightText: 2014-2024 Fredrik Ahlberg, Angus Gratton, |
2 | 2 | # Espressif Systems (Shanghai) CO LTD, other contributors as noted.
|
3 | 3 | #
|
4 | 4 | # SPDX-License-Identifier: GPL-2.0-or-later
|
@@ -83,6 +83,7 @@ class ESP32C3ROM(ESP32ROM):
|
83 | 83 | RTC_CNTL_SWD_WKEY = 0x8F1D312A
|
84 | 84 |
|
85 | 85 | RTC_CNTL_WDTCONFIG0_REG = RTCCNTL_BASE_REG + 0x0090
|
| 86 | + RTC_CNTL_WDTCONFIG1_REG = RTCCNTL_BASE_REG + 0x0094 |
86 | 87 | RTC_CNTL_WDTWPROTECT_REG = RTCCNTL_BASE_REG + 0x00A8
|
87 | 88 | RTC_CNTL_WDT_WKEY = 0x50D83AA1
|
88 | 89 |
|
@@ -252,6 +253,21 @@ def _post_connect(self):
|
252 | 253 | if not self.sync_stub_detected: # Don't run if stub is reused
|
253 | 254 | self.disable_watchdogs()
|
254 | 255 |
|
| 256 | + def hard_reset(self): |
| 257 | + if self.uses_usb_jtag_serial(): |
| 258 | + self.rtc_wdt_reset() |
| 259 | + else: |
| 260 | + ESPLoader.hard_reset(self) |
| 261 | + |
| 262 | + def rtc_wdt_reset(self): |
| 263 | + print("Hard resetting with RTC WDT...") |
| 264 | + self.write_reg(self.RTC_CNTL_WDTWPROTECT_REG, self.RTC_CNTL_WDT_WKEY) # unlock |
| 265 | + self.write_reg(self.RTC_CNTL_WDTCONFIG1_REG, 5000) # set WDT timeout |
| 266 | + self.write_reg( |
| 267 | + self.RTC_CNTL_WDTCONFIG0_REG, (1 << 31) | (5 << 28) | (1 << 8) | 2 |
| 268 | + ) # enable WDT |
| 269 | + self.write_reg(self.RTC_CNTL_WDTWPROTECT_REG, 0) # lock |
| 270 | + |
255 | 271 | def check_spi_connection(self, spi_connection):
|
256 | 272 | if not set(spi_connection).issubset(set(range(0, 22))):
|
257 | 273 | raise FatalError("SPI Pin numbers must be in the range 0-21.")
|
|
0 commit comments