/***************************************************************************//** * @file * @brief Configuration header of Bootloader Interface ******************************************************************************* * # License * Copyright 2021 Silicon Laboratories Inc. www.silabs.com ******************************************************************************* * * The licensor of this software is Silicon Laboratories Inc. Your use of this * software is governed by the terms of Silicon Labs Master Software License * Agreement (MSLA) available at * www.silabs.com/about-us/legal/master-software-license-agreement. This * software is distributed to you in Source Code format and is governed by the * sections of the MSLA applicable to Source Code. * ******************************************************************************/ #ifndef BTL_INTERFACE_CFG_S2C4_H #define BTL_INTERFACE_CFG_S2C4_H // <<< Use Configuration Wizard in Context Menu >>> // Bootloader Interface Trust Zone Security State Configuration // Disable multi tiered fallback logic // The fault handling logic as well as the USART auto-detection logic will be disabled. // The re-configuration of SMU will be handled by querying the running bootloader // for the peripheral list. Querying the peripheral list is supported from the bootloader // version 2.0.0. Check for the BOOTLOADER_CAPABILITY_PERIPHERAL_LIST capability to // see if the running bootloader supports querying the peripheral list. #define BOOTLOADER_DISABLE_OLD_BOOTLOADER_MITIGATION 0 // Disable peripheral access fault handling // The fault handling triggered by an erroneous access of peripherals will be disabled. // // This should be disabled iff all the peripherals that are in use by the bootloader // have been properly configured by the "Manually override security state of peripherals" option. #define BOOTLOADER_DISABLE_NVM3_FAULT_HANDLING 0 // Manually override the security state of peripherals in use by the bootloader // Default: 0. // Manually override the security state of peripherals. Choose the peripherals touched // by the customized code to have a valid secure access state before interacting with the bootloader // In practice, this means that the chosen peripherals will be available at the secure address, // which is accessible by the bootloader. Once the application is entered back the secure access state // is changed back to the original state. // // The USART auto-detection logic that detects which, if any, USART is in use by the bootloader // will be disabled. Make sure to choose the correct USART used by the bootloader. #define BOOTLOADER_MANUAL_OVERRIDE_SECURITY_STATE 0 // EMU // Update secure access state of EMU before calling into bootloader #define BOOTLOADER_PPUSATD0_EMU 0 // CMU // Update secure access state of CMU before calling into bootloader #define BOOTLOADER_PPUSATD0_CMU 0 // HFRCO0 // Update secure access state of HFRCO0 before calling into bootloader #define BOOTLOADER_PPUSATD0_HFRCO0 0 // FSRCO // Update secure access state of FSRCO before calling into bootloader #define BOOTLOADER_PPUSATD0_FSRCO 0 // DPLL0 // Update secure access state of DPLL0 before calling into bootloader #define BOOTLOADER_PPUSATD0_DPLL0 0 // LFXO // Update secure access state of LFXO before calling into bootloader #define BOOTLOADER_PPUSATD0_LFXO 0 // LFRCO // Update secure access state of LFRCO before calling into bootloader #define BOOTLOADER_PPUSATD0_LFRCO 0 // ULFRCO // Update secure access state of ULFRCO before calling into bootloader #define BOOTLOADER_PPUSATD0_ULFRCO 0 // MSC // Update secure access state of MSC before calling into bootloader #define BOOTLOADER_PPUSATD0_MSC 0 // ICACHE0 // Update secure access state of ICACHE0 before calling into bootloader #define BOOTLOADER_PPUSATD0_ICACHE0 0 // PRS // Update secure access state of PRS before calling into bootloader #define BOOTLOADER_PPUSATD0_PRS 0 // GPIO // Update secure access state of GPIO before calling into bootloader #define BOOTLOADER_PPUSATD0_GPIO 0 // LDMA // Update secure access state of LDMA before calling into bootloader #define BOOTLOADER_PPUSATD0_LDMA 0 // LDMAXBAR // Update secure access state of LDMAXBAR before calling into bootloader #define BOOTLOADER_PPUSATD0_LDMAXBAR 0 // TIMER0 // Update secure access state of TIMER0 before calling into bootloader #define BOOTLOADER_PPUSATD0_TIMER0 0 // TIMER1 // Update secure access state of TIMER1 before calling into bootloader #define BOOTLOADER_PPUSATD0_TIMER1 0 // TIMER2 // Update secure access state of TIMER2 before calling into bootloader #define BOOTLOADER_PPUSATD0_TIMER2 0 // TIMER3 // Update secure access state of TIMER3 before calling into bootloader #define BOOTLOADER_PPUSATD0_TIMER3 0 // TIMER4 // Update secure access state of TIMER4 before calling into bootloader #define BOOTLOADER_PPUSATD0_TIMER4 0 // USART0 // Update secure access state of USART0 before calling into bootloader #define BOOTLOADER_PPUSATD0_USART0 0 // BURTC // Update secure access state of BURTC before calling into bootloader #define BOOTLOADER_PPUSATD0_BURTC 0 // I2C1 // Update secure access state of I2C1 before calling into bootloader #define BOOTLOADER_PPUSATD0_I2C1 0 // CHIPTESTCTRL // Update secure access state of CHIPTESTCTRL before calling into bootloader #define BOOTLOADER_PPUSATD0_CHIPTESTCTRL 0 // SYSCFGCFGNS // Update secure access state of SYSCFGCFGNS before calling into bootloader #define BOOTLOADER_PPUSATD0_SYSCFGCFGNS 0 // SYSCFG // Update secure access state of SYSCFG before calling into bootloader #define BOOTLOADER_PPUSATD0_SYSCFG 0 // BURAM // Update secure access state of BURAM before calling into bootloader #define BOOTLOADER_PPUSATD0_BURAM 0 // GPCRC // Update secure access state of GPCRC before calling into bootloader #define BOOTLOADER_PPUSATD0_GPCRC 0 // DCDC // Update secure access state of DCDC before calling into bootloader #define BOOTLOADER_PPUSATD0_DCDC 0 // HOSTMAILBOX // Update secure access state of HOSTMAILBOX before calling into bootloader #define BOOTLOADER_PPUSATD0_HOSTMAILBOX 0 // EUSART1 // Update secure access state of EUSART1 before calling into bootloader #define BOOTLOADER_PPUSATD0_EUSART1 0 // SYSRTC // Update secure access state of SYSRTC before calling into bootloader #define BOOTLOADER_PPUSATD0_SYSRTC 0 // KEYSCAN // Update secure access state of KEYSCAN before calling into bootloader #define BOOTLOADER_PPUSATD1_KEYSCAN 0 // DMEM // Update secure access state of DMEM before calling into bootloader #define BOOTLOADER_PPUSATD1_DMEM 0 // RADIOAES // Update secure access state of RADIOAES before calling into bootloader #define BOOTLOADER_PPUSATD1_RADIOAES 0 // SMU // Update secure access state of SMU before calling into bootloader #define BOOTLOADER_PPUSATD1_SMU 0 // SMUCFGNS // Update secure access state of SMUCFGNS before calling into bootloader #define BOOTLOADER_PPUSATD1_SMUCFGNS 0 // LETIMER0 // Update secure access state of LETIMER0 before calling into bootloader #define BOOTLOADER_PPUSATD1_LETIMER0 0 // IADC0 // Update secure access state of IADC0 before calling into bootloader #define BOOTLOADER_PPUSATD1_IADC0 0 // ACMP0 // Update secure access state of ACMP0 before calling into bootloader #define BOOTLOADER_PPUSATD1_ACMP0 0 // ACMP1 // Update secure access state of ACMP1 before calling into bootloader #define BOOTLOADER_PPUSATD1_ACMP1 0 // AMUXCP0 // Update secure access state of AMUXCP0 before calling into bootloader #define BOOTLOADER_PPUSATD1_AMUXCP0 0 // VDAC0 // Update secure access state of VDAC0 before calling into bootloader #define BOOTLOADER_PPUSATD1_VDAC0 0 // VDAC1 // Update secure access state of VDAC1 before calling into bootloader #define BOOTLOADER_PPUSATD1_VDAC1 0 // PCNT // Update secure access state of PCNT before calling into bootloader #define BOOTLOADER_PPUSATD1_PCNT 0 // HFRCO1 // Update secure access state of HFRCO1 before calling into bootloader #define BOOTLOADER_PPUSATD1_HFRCO1 0 // HFXO0 // Update secure access state of HFXO0 before calling into bootloader #define BOOTLOADER_PPUSATD1_HFXO0 0 // I2C0 // Update secure access state of I2C0 before calling into bootloader #define BOOTLOADER_PPUSATD1_I2C0 0 // WDOG0 // Update secure access state of WDOG0 before calling into bootloader #define BOOTLOADER_PPUSATD1_WDOG0 0 // WDOG1 // Update secure access state of WDOG1 before calling into bootloader #define BOOTLOADER_PPUSATD1_WDOG1 0 // EUSART0 // Update secure access state of EUSART0 before calling into bootloader #define BOOTLOADER_PPUSATD1_EUSART0 0 // SEMAILBOX // Update secure access state of SEMAILBOX before calling into bootloader #define BOOTLOADER_PPUSATD1_SEMAILBOX 0 // MVP // Update secure access state of MVP before calling into bootloader #define BOOTLOADER_PPUSATD1_MVP 0 // AHBRADIO // Update secure access state of AHBRADIO before calling into bootloader #define BOOTLOADER_PPUSATD1_AHBRADIO 0 // // // <<< end of configuration section >>> #if BOOTLOADER_MANUAL_OVERRIDE_SECURITY_STATE == 1 #define BOOTLOADER_PPUSATD0_MASK ((BOOTLOADER_PPUSATD0_EMU << _SMU_PPUSATD0_EMU_SHIFT) \ | (BOOTLOADER_PPUSATD0_CMU << _SMU_PPUSATD0_CMU_SHIFT) \ | (BOOTLOADER_PPUSATD0_HFRCO0 << _SMU_PPUSATD0_HFRCO0_SHIFT) \ | (BOOTLOADER_PPUSATD0_FSRCO << _SMU_PPUSATD0_FSRCO_SHIFT) \ | (BOOTLOADER_PPUSATD0_DPLL0 << _SMU_PPUSATD0_DPLL0_SHIFT) \ | (BOOTLOADER_PPUSATD0_LFXO << _SMU_PPUSATD0_LFXO_SHIFT) \ | (BOOTLOADER_PPUSATD0_LFRCO << _SMU_PPUSATD0_LFRCO_SHIFT) \ | (BOOTLOADER_PPUSATD0_ULFRCO << _SMU_PPUSATD0_ULFRCO_SHIFT) \ | (BOOTLOADER_PPUSATD0_MSC << _SMU_PPUSATD0_MSC_SHIFT) \ | (BOOTLOADER_PPUSATD0_ICACHE0 << _SMU_PPUSATD0_ICACHE0_SHIFT) \ | (BOOTLOADER_PPUSATD0_PRS << _SMU_PPUSATD0_PRS_SHIFT) \ | (BOOTLOADER_PPUSATD0_GPIO << _SMU_PPUSATD0_GPIO_SHIFT) \ | (BOOTLOADER_PPUSATD0_LDMA << _SMU_PPUSATD0_LDMA_SHIFT) \ | (BOOTLOADER_PPUSATD0_LDMAXBAR << _SMU_PPUSATD0_LDMAXBAR_SHIFT) \ | (BOOTLOADER_PPUSATD0_TIMER0 << _SMU_PPUSATD0_TIMER0_SHIFT) \ | (BOOTLOADER_PPUSATD0_TIMER1 << _SMU_PPUSATD0_TIMER1_SHIFT) \ | (BOOTLOADER_PPUSATD0_TIMER2 << _SMU_PPUSATD0_TIMER2_SHIFT) \ | (BOOTLOADER_PPUSATD0_TIMER3 << _SMU_PPUSATD0_TIMER3_SHIFT) \ | (BOOTLOADER_PPUSATD0_TIMER4 << _SMU_PPUSATD0_TIMER4_SHIFT) \ | (BOOTLOADER_PPUSATD0_USART0 << _SMU_PPUSATD0_USART0_SHIFT) \ | (BOOTLOADER_PPUSATD0_BURTC << _SMU_PPUSATD0_BURTC_SHIFT) \ | (BOOTLOADER_PPUSATD0_I2C1 << _SMU_PPUSATD0_I2C1_SHIFT) \ | (BOOTLOADER_PPUSATD0_CHIPTESTCTRL << _SMU_PPUSATD0_CHIPTESTCTRL_SHIFT) \ | (BOOTLOADER_PPUSATD0_SYSCFGCFGNS << _SMU_PPUSATD0_SYSCFGCFGNS_SHIFT) \ | (BOOTLOADER_PPUSATD0_SYSCFG << _SMU_PPUSATD0_SYSCFG_SHIFT) \ | (BOOTLOADER_PPUSATD0_BURAM << _SMU_PPUSATD0_BURAM_SHIFT) \ | (BOOTLOADER_PPUSATD0_GPCRC << _SMU_PPUSATD0_GPCRC_SHIFT) \ | (BOOTLOADER_PPUSATD0_DCDC << _SMU_PPUSATD0_DCDC_SHIFT) \ | (BOOTLOADER_PPUSATD0_HOSTMAILBOX << _SMU_PPUSATD0_HOSTMAILBOX_SHIFT) \ | (BOOTLOADER_PPUSATD0_EUSART1 << _SMU_PPUSATD0_EUSART1_SHIFT) \ | (BOOTLOADER_PPUSATD0_SYSRTC << _SMU_PPUSATD0_SYSRTC_SHIFT)) #define BOOTLOADER_PPUSATD1_MASK ((BOOTLOADER_PPUSATD1_KEYSCAN << _SMU_PPUSATD1_KEYSCAN_SHIFT) \ | (BOOTLOADER_PPUSATD1_DMEM << _SMU_PPUSATD1_DMEM_SHIFT) \ | (BOOTLOADER_PPUSATD1_RADIOAES << _SMU_PPUSATD1_RADIOAES_SHIFT) \ | (BOOTLOADER_PPUSATD1_SMU << _SMU_PPUSATD1_SMU_SHIFT) \ | (BOOTLOADER_PPUSATD1_SMUCFGNS << _SMU_PPUSATD1_SMUCFGNS_SHIFT) \ | (BOOTLOADER_PPUSATD1_LETIMER0 << _SMU_PPUSATD1_LETIMER0_SHIFT) \ | (BOOTLOADER_PPUSATD1_IADC0 << _SMU_PPUSATD1_IADC0_SHIFT) \ | (BOOTLOADER_PPUSATD1_ACMP0 << _SMU_PPUSATD1_ACMP0_SHIFT) \ | (BOOTLOADER_PPUSATD1_ACMP1 << _SMU_PPUSATD1_ACMP1_SHIFT) \ | (BOOTLOADER_PPUSATD1_AMUXCP0 << _SMU_PPUSATD1_AMUXCP0_SHIFT) \ | (BOOTLOADER_PPUSATD1_VDAC0 << _SMU_PPUSATD1_VDAC0_SHIFT) \ | (BOOTLOADER_PPUSATD1_VDAC1 << _SMU_PPUSATD1_VDAC1_SHIFT) \ | (BOOTLOADER_PPUSATD1_PCNT << _SMU_PPUSATD1_PCNT_SHIFT) \ | (BOOTLOADER_PPUSATD1_HFRCO1 << _SMU_PPUSATD1_HFRCO1_SHIFT) \ | (BOOTLOADER_PPUSATD1_HFXO0 << _SMU_PPUSATD1_HFXO0_SHIFT) \ | (BOOTLOADER_PPUSATD1_I2C0 << _SMU_PPUSATD1_I2C0_SHIFT) \ | (BOOTLOADER_PPUSATD1_WDOG0 << _SMU_PPUSATD1_WDOG0_SHIFT) \ | (BOOTLOADER_PPUSATD1_WDOG1 << _SMU_PPUSATD1_WDOG1_SHIFT) \ | (BOOTLOADER_PPUSATD1_EUSART0 << _SMU_PPUSATD1_EUSART0_SHIFT) \ | (BOOTLOADER_PPUSATD1_SEMAILBOX << _SMU_PPUSATD1_SEMAILBOX_SHIFT) \ | (BOOTLOADER_PPUSATD1_MVP << _SMU_PPUSATD1_MVP_SHIFT) \ | (BOOTLOADER_PPUSATD1_AHBRADIO << _SMU_PPUSATD1_AHBRADIO_SHIFT)) #endif // BOOTLOADER_MANUAL_OVERRIDE_SECURITY_STATE #endif // BTL_INTERFACE_CFG_S2C4_H