SPRUII0F May 2019 – June 2024 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
The boot sequence describes the general boot ROM procedure each time a CPU core is reset. CPU1 is the master and always boots first. Once CPU1 boots to the application, then the user's application code in CPU1 can configure CPU2/CM boot IPC registers and release CPU2/CM from reset to boot. Table 5-3, Table 5-4, and Table 5-5 detail the general overview of the boot-up procedures for each core.
During boot, each CPU's boot ROM code updates a boot status location in RAM that details the actions taken during this process. Additionally, CPU2 writes the boot status to the CPU2TOCPU1IPCBOOTSTS register and CM writes to CMTOCPU1IPCBOOTSTS to communicate the statuses to CPU1.
Refer to Section 5.7.11 for more details.
Step | CPU1 Action |
---|---|
1 | After reset, check for HWBIST reset. If it is a HWBIST reset, immediately branch and return to the user application. If it is not a HWBIST reset, then continue boot and check the FUSE error register for any errors and handle accordingly. |
2 | Clock configuration and Flash power-up |
3 | Peripheral trimming and device configuration registers are loaded from OTP. |
4 | On power-on reset (POR), all CPU1 RAMs are initialized. |
5 | Non-maskable interrupt (NMI) handling is enabled and DCSM initialization is performed. |
6 | Device calibration is performed; trimming the specified peripherals with set OTP values. |
7 | Determine if polling the GPIO pins are needed for determining the boot mode and, if so, read the boot mode GPIO pins to determine the boot mode to run. |
8 | Based on the boot mode and options, the appropriate boot sequence is executed. Refer to Section 5.5.1 for a flow chart of the CPU1 boot sequences. |
Step | CPU2 Action |
---|---|
1 | CPU2 is released from reset by CPU1 application. |
2 | Once CPU1TOCPU2IPCFLG0 is set, read the CPU1TOCPU2IPCBOOTMODE register. If it is not set correctly or has an invalid value, the IPC error command is sent to CPU1 and the CPU2 core will enter an infinite loop and will not continue booting until the user corrects the register values and reset the CPU2. |
3 | Flash power-up |
4 | On POR, all CPU2 RAMs are initialized. |
5 | NMI handling is enabled. |
6 | Based on the boot mode set in CPU1TOCPU2IPCBOOTMODE register, CPU2 either enters "wait for command" mode to wait for a future CPU1 boot mode command or CPU2 executes the requested boot sequence. Refer to Section 5.5.2 for a flow chart of the CPU2 boot sequences. |
Step | CM Action |
---|---|
1 | CM is released from reset by the CPU1 application. |
2 | Once CPU1TOCMIPCFLG0 is set, read the CPU1TOCMIPCBOOTMODE register.If it is not set correctly or has an invalid value, the IPC error command is sent to CPU1 and the CM will enter an infinite loop and will not continue booting until the user corrects the register values and reset the CM. |
3 | Flash power-up |
4 | On POR, all CM RAMs are initialized. |
5 | NMI handling is enabled. |
6 | Based on the boot mode set in CPU1TOCPU2IPCBOOTMODE register, CM either enters "wait for command" mode to wait for a future CPU1 boot mode command or CM executes the requested boot sequence. Refer to Section 5.5.3 for a flow chart of the CM boot sequences. |