SPRUIZ1B July 2023 – August 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
Table 4-3 describes the general boot ROM procedure each time the CPU1 core is reset. Table 4-4 describes the general boot ROM procedure each time the CPU2 core is reset.
During boot, boot ROM code updates a boot status location in RAM that details the actions taken during this process. Refer to Section 4.7.12 for more details.
Step | CPU1 Action |
---|---|
1 | Initialize the device C28x CPU and M0/M1 RAM configuration |
2 | Initialize the device to use stack addressing mode, initialize DP to lower 64k and clear overflow mode bit |
3 | Trims are loaded from OTP and device configuration registers are programmed |
4 | On POR, all CPU RAMs (including GSxRAMs) are initialized. Boot continues once the 2KB RAMs are initialized. |
5 | Non-maskable interrupt (NMI) handling is enabled and DCSM initialization is performed |
6 | If enabled, the MPOST POR memory test is run. The original clock frequency is NOT restored post MPOST execution. |
7 | Pull-ups are enabled on unbonded IOs |
8 | Device calibration is performed, setting the analog trims. Then resets are handled and RAM is checked for initialization completion. |
9 | The boot mode GPIO pins are polled to determine the boot mode to run. Boot loader is executed based on boot mode/configurations. Refer to Section 4.5.1 for a flow chart of the boot sequences. |
10 | After the application is loaded, the watchdog is enabled before executing application |
Step | CPU1 Action |
---|---|
1 | CPU2 release from reset by CPU1 application |
2 | Once CPU1TOCPU2IPCFLG0 is set, read the CPU1TOCPU2IPCBOOTMODE register. If the bit is not set correctly or has an invalid value, IPC is sent to CPU1 and CPU2 waits forever. Reset CPU2 and set valid values. |
3 | On POR, all CPU2 RAMs (excluding GSxRAMs) are initialized (the RAMs are split into two initialization groups) |
4 | NMI is enabled |
5 | Initialize the device to configure lock step (not enable). This is to initialize the uninitialized flops in the device. |
6 | Resets are handled |
7 | Using the value from CPU2 CPU1TOCPU2IPCBOOTMODE register, if “wait for command” mode is specified, a wait loop is entered that waits for CPU1 C28x to update the boot mode and set IPCFLG0. If a boot mode is specified, then boot ROM enables watchdog and boots to the specified boot mode location. |
8 | When IPCFLG0 is set in “wait for command” mode, watchdog is enabled, and then boot ROM runs the specified boot mode in CPU1TOCPU2IPCBOOTMODE |