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.
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.