@@ -748,13 +748,24 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
748
748
749
749
if (ok_to_run ) {
750
750
#ifdef CIRCUITPY_BOOT_OUTPUT_FILE
751
+ // Turn off title bar updates when writing out to boot_out.txt.
752
+ supervisor_title_bar_suspend ();
751
753
vstr_t boot_text ;
752
754
vstr_init (& boot_text , 512 );
753
755
boot_output = & boot_text ;
754
756
#endif
755
757
756
758
// Write version info
757
759
mp_printf (& mp_plat_print , "%s\nBoard ID:%s\n" , MICROPY_FULL_VERSION_INFO , CIRCUITPY_BOARD_ID );
760
+ #if CIRCUITPY_MICROCONTROLLER && COMMON_HAL_MCU_PROCESSOR_UID_LENGTH > 0
761
+ uint8_t raw_id [COMMON_HAL_MCU_PROCESSOR_UID_LENGTH ];
762
+ common_hal_mcu_processor_get_uid (raw_id );
763
+ mp_printf (& mp_plat_print , "UID:" );
764
+ for (uint8_t i = 0 ; i < COMMON_HAL_MCU_PROCESSOR_UID_LENGTH ; i ++ ) {
765
+ mp_printf (& mp_plat_print , "%02X" , raw_id [i ]);
766
+ }
767
+ mp_printf (& mp_plat_print , "\n" );
768
+ #endif
758
769
759
770
bool found_boot = maybe_run_list (boot_py_filenames );
760
771
(void )found_boot ;
@@ -766,6 +777,7 @@ STATIC void __attribute__ ((noinline)) run_boot_py(safe_mode_t safe_mode) {
766
777
FATFS * fs = & vfs -> fatfs ;
767
778
768
779
boot_output = NULL ;
780
+ supervisor_title_bar_resume ();
769
781
bool write_boot_output = true;
770
782
FIL boot_output_file ;
771
783
if (f_open (fs , & boot_output_file , CIRCUITPY_BOOT_OUTPUT_FILE , FA_READ ) == FR_OK ) {
@@ -855,6 +867,13 @@ STATIC int run_repl(bool first_run) {
855
867
}
856
868
#endif
857
869
cleanup_after_vm (heap , MP_OBJ_SENTINEL );
870
+
871
+ // Also reset bleio. The above call omits it in case workflows should continue. In this case,
872
+ // we're switching straight to another VM so we want to reset.
873
+ #if CIRCUITPY_BLEIO
874
+ bleio_reset ();
875
+ #endif
876
+
858
877
#if CIRCUITPY_STATUS_LED
859
878
status_led_init ();
860
879
new_status_color (BLACK );
0 commit comments