SPRSP14E may 2019 – june 2023 TMS320F28384D , TMS320F28384D-Q1 , TMS320F28384S , TMS320F28384S-Q1 , TMS320F28386D , TMS320F28386D-Q1 , TMS320F28386S , TMS320F28386S-Q1 , TMS320F28388D , TMS320F28388S
PRODUCTION DATA
This section 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 the CPU2/CM boot IPC registers and release CPU2/CM from reset to boot. Table 8-15, Table 8-16, and Table 8-17 list the general 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.
For more details, see the Boot Status information section of the TMS320F2838x Real-Time Microcontrollers Technical Reference Manual.
STEP | CPU1 ACTION |
---|---|
1 | After reset, check for HWBIST reset. If there is a HWBIST reset, immediately branch and return to the user application. If there is no 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 | Nonmaskable 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. For a flow chart of the CPU1 boot sequences, see the CPU1 Device Boot Flow figure in the TMS320F2838x Real-Time Microcontrollers Technical Reference Manual. |
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 the CPU1TOCPU2IPCBOOTMODE register, CPU2 either enters the "wait for command" mode to wait for a future CPU1 boot mode command, or CPU2 executes the requested boot sequence. For a flow chart of the CPU2 boot sequences, see the CPU2 Boot Flow figure in the TMS320F2838x Real-Time Microcontrollers Technical Reference Manual. |
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 the CPU1TOCPU2IPCBOOTMODE register, CM either enters the "wait for command" mode to wait for a future CPU1 boot mode command, or CM executes the requested boot sequence. For a flow chart of the CM boot sequences, see the CM Boot Flow figure in the TMS320F2838x Real-Time Microcontrollers Technical Reference Manual. |