PEmicro Blog

Changing the Infineon XMC1000-Series BMI (Boot Mode Index)

Nov 06, 2019

The Boot Mode Index (BMI) is a 2-Byte value stored in Flash that holds information about the start-up mode and debug configuration of an Infineon XMC1000  device. From the factory, XMC1000 series devices are configured with ASC_BSL (ASC Bootstrap Load) mode by default. In ASC_BSL mode, ARM Serial Wire Debug (SWD) capabilities are disabled. During debug entry, PEmicro tools will automatically change the Boot Mode Index (BMI) to "User mode with debug enabled (UMD) SWD", allowing the user to communicate with the Infineon XMC 1000 series through SWD. 

Once in debug mode, the user can perform flash operations such as erasing, blank checking, and programming a user application. After programming an application the user can change the BMI using the "Program BMI" user command in our PROGACMP software, or our Cyclone Image Creation Utility. For more information on valid BMI values, please refer to your specific Infineon XMC 1000 series reference manual, or visit the Infineon website. In this example, the Infineon XMC1100-64B is used.

There are many BMI values that a user can choose to configure depending on the product development stage. For example, during production, a user may want to set the BMI to "User Productive Mode" to disable all interfaces to safeguard the XMC1000 against external accesses.

Here, PROGACMP will program the BMI value of 0xF8C7, which corresponds to "User Mode (Halt After Reset) SWD0: P0.14 & P0.15 used for SWD".

Figure 1. PROGACMP: Connected to XMC1100-64B.


Figure 2. PROGACMP: Selecting the "Program BMI" Command.  

PROGACMP: BMI value dialog.

Figure 3. PROGACMP: BMI value dialog.

Similarly, the user can configure the desired BMI in the Cyclone Image Creation Utility:

Figure 4. Cyclone: BMI Value Dialog 


Figure 5. Cyclone: BMI Value Configured. 

This demonstrates how PEmicro's PROGACMP and Cyclone Programmers provide a simple way for users to change Infineon's XMC1000 series BMI to a desired value. 

Tags related to this Blog Post

Cyclone     Cyclone FX     Multilink     Multilink FX     Prog ACMP     Infineon     Production Programming