SPRUHM8K December 2013 – May 2024 TMS320F28374D , TMS320F28375D , TMS320F28376D , TMS320F28377D , TMS320F28377D-EP , TMS320F28377D-Q1 , TMS320F28378D , TMS320F28379D , TMS320F28379D-Q1
This section details the commands CPU1 boot ROM supports. These commands can be used by CPU2 applications to have CPU1 boot ROM to perform an action such as configure peripherals or IOs. To use these IPC commands, CPU1 boot ROM must be in Wait Boot mode. Additionally, watchdog is disabled when using IPC.
Value | IPCRECVCOM (CPU2 - R/W, CPU1- R) |
IPCRECVADDR (CPU2 - R/W, CPU1- R) |
IPCRECVDATA (CPU2 - R/W, CPU1- R) |
IPCLOCALREPLY (CPU2 - R, CPU1 - R/W) |
C2TOC1IPCFLG [31] = ? C2TOC1IPCFLAG [0] = 0 |
Description |
---|---|---|---|---|---|---|
0 | C2C1_BROM_IPC_ COMMAND_ILLEGAL |
NOT-USED | NOT-USED | Look at error codes table | 0x01 | Illegal command |
1 | C2C1_BROM_IPC_SET_ BITS_16 |
Address of the 16-bit register | Data in C2TOC1IPCDATAW[15:0] | Data read back from address after write | 0x00 = Command success | *(address) |= data; |
2 | C2C1_BROM_IPC_SET_ BITS_32 |
Address of the 32-bit register | Data; | Data read back from address after write | Same as above | *(address) |= data; |
3 | C2C1_BROM_IPC_CLEAR_BITS_16 | Address of the 16-bit register | Data in C2TOC1IPCDATAW[15:0] | Data read back after write | Same as above | *(address) &= ~data; |
4 | C2C1_BROM_IPC_CLEAR_BITS_32 | Address of the 32-bit register | Data | Data read back after write | Same as above | *(address) &= ~data; |
5 | C2C1_BROM_IPC_DATA_ WRITE_16 |
Address of the 16-bit register | Data in MTOCIPCDATAW[15:0] | Data read back from the address | Same as above | *(address) = data; |
6 | C2C1_BROM_IPC_DATA_ WRITE_32 |
Address of the 32-bit register | Data | Same as above | Same as above | *(address) = data; |
7 | C2C1_BROM_IPC_DATA_ READ_16 |
Address of the 16-bit register | --NOT_USED-- | Data in C2TOC1IPCDATAR[15:0] | Same as above | C2TOC1IPCDATAR[15:0] = *(address); Only 16 bit read from address |
8 | C2C1_BROM_IPC_DATA_ READ_32 |
Address of the 32-bit register | Same as above | 32-bit data | Same as above | C2TOC1IPCDATAR[31:0] = *(address); 32 bits read from address |
9 | C2C1_BROM_IPC_SET_ BITS_ PROTECTED_16 |
Address of the 16-bit register | Data in C2TOC1IPCDATAW[15:0] | Data read back from address after write | 0x00 = Command success | EALLOW; *(address) |= data; EDIS; |
10 | C2C1_BROM_IPC_SET_ BITS_ PROTECTED_32 |
Address of the 32-bit register | Data; | Data read back from address after write | Same as above | EALLOW; *(address) |= data; EDIS; |
11 | C2C1_BROM_IPC_CLEAR_ BITS_ PROTECTED_16 |
Address of the 16-bit register | Data in C2TOC1IPCDATAW[15:0] | Data read back after write | Same as above | EALLOW; *(address) &= ~data; EDIS; |
12 | C2C1_BROM_IPC_CLEAR_ BITS_ PROTECTED_32 |
Address of the 32-bit register | Data | Data read back after write | Same as above | EALLOW; *(address) &= ~data; EDIS; |
13 | C2C1_BROM_IPC_DATA_ WRITE_ PROTECTED_16 |
Address of the 16-bit register | Data in C2TOC1IPCDATAW[15:0] | Data read back from the address | Same as above | EALLOW; *(address) &= ~data; EDIS; |
14 | C2C1_BROM_IPC_DATA_ WRITE_ PROTECTED_32 |
Address of the 32-bit register | Data | Same as above | Same as above | EALLOW; *(address) &= ~data; EDIS; |
15 | C2C1_BROM_IPC_DATA_ READ_ PROTECTED_16 |
Address of the 32-bit register | --NOT_USED-- | Data in C2TOC1IPCDATAR[15:0] | Same as above | EALLOW; C2TOC1IPCDATAR[15:0] = *(address); EDIS; Only 16 bit read from address |
16 | C2C1_BROM_IPC_DATA_ READ_ PROTECTED_32 |
Address of the 32-bit register | Data | Same as above | Same as above | EALLOW; C2TOC1IPCDATAR[31:0] = *(address); EDIS; 32 bits read from address |