diff --git a/ports/raspberrypi/supervisor/port.c b/ports/raspberrypi/supervisor/port.c index 9b3e140a85..443cfc2715 100644 --- a/ports/raspberrypi/supervisor/port.c +++ b/ports/raspberrypi/supervisor/port.c @@ -196,13 +196,13 @@ uint32_t *port_heap_get_top(void) { return port_stack_get_top(); } +extern uint32_t __scratch_x_start__; void port_set_saved_word(uint32_t value) { - // NOTE: This doesn't survive pressing the reset button (aka toggling RUN). - watchdog_hw->scratch[0] = value; + __scratch_x_start__ = value; } uint32_t port_get_saved_word(void) { - return watchdog_hw->scratch[0]; + return __scratch_x_start__; } uint64_t port_get_raw_ticks(uint8_t *subticks) { diff --git a/supervisor/shared/safe_mode.c b/supervisor/shared/safe_mode.c index ec85ea9d43..ca95b0d487 100644 --- a/supervisor/shared/safe_mode.c +++ b/supervisor/shared/safe_mode.c @@ -78,7 +78,7 @@ safe_mode_t wait_for_safe_mode_reset(void) { #endif uint64_t start_ticks = supervisor_ticks_ms64(); uint64_t diff = 0; - while (diff < 700) { + while (diff < 1000) { #ifdef MICROPY_HW_LED_STATUS // Blink on for 100, off for 100, on for 100, off for 100 and on for 200 common_hal_digitalio_digitalinout_set_value(&status_led, diff > 100 && diff / 100 != 2 && diff / 100 != 4);