|
|
|
@ -94,11 +94,25 @@ STATIC mp_obj_t mod_trezorutils_halt(size_t n_args, const mp_obj_t *args) {
|
|
|
|
|
}
|
|
|
|
|
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(mod_trezorutils_halt_obj, 0, 1, mod_trezorutils_halt);
|
|
|
|
|
|
|
|
|
|
/// def set_mode_unprivileged() -> None:
|
|
|
|
|
/// '''
|
|
|
|
|
/// Set unprivileged mode.
|
|
|
|
|
/// '''
|
|
|
|
|
STATIC mp_obj_t mod_trezorutils_set_mode_unprivileged(void) {
|
|
|
|
|
#if defined TREZOR_STM32
|
|
|
|
|
__asm__ volatile("msr control, %0" :: "r" (0x1));
|
|
|
|
|
__asm__ volatile("isb");
|
|
|
|
|
#endif
|
|
|
|
|
return mp_const_none;
|
|
|
|
|
}
|
|
|
|
|
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mod_trezorutils_set_mode_unprivileged_obj, mod_trezorutils_set_mode_unprivileged);
|
|
|
|
|
|
|
|
|
|
STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = {
|
|
|
|
|
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_trezorutils) },
|
|
|
|
|
{ MP_ROM_QSTR(MP_QSTR_consteq), MP_ROM_PTR(&mod_trezorutils_consteq_obj) },
|
|
|
|
|
{ MP_ROM_QSTR(MP_QSTR_memcpy), MP_ROM_PTR(&mod_trezorutils_memcpy_obj) },
|
|
|
|
|
{ MP_ROM_QSTR(MP_QSTR_halt), MP_ROM_PTR(&mod_trezorutils_halt_obj) },
|
|
|
|
|
{ MP_ROM_QSTR(MP_QSTR_set_mode_unprivileged), MP_ROM_PTR(&mod_trezorutils_set_mode_unprivileged_obj) },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
STATIC MP_DEFINE_CONST_DICT(mp_module_trezorutils_globals, mp_module_trezorutils_globals_table);
|
|
|
|
|