30. Inter-processor communication controller (IPCC)
30.1 Introduction
The inter-processor communication controller (IPCC) is used for communicating data between two processors.
The IPCC block provides a nonblocking signaling mechanism to post and retrieve communication data in an atomic way. It provides the signaling for twelve channels:
- • six channels in the direction from processor 1 to processor 2
- • six channels in the opposite direction
It is then possible to have two different communication types in each direction.
The IPCC communication data must be located in a common memory, which is not part of the IPCC block.
30.2 IPCC main features
- • Status signaling for the twelve channels
- – Channel occupied/free flag, also used as lock
- • Two interrupt lines per processor
- – One for RX channel occupied (communication data posted by sending processor)
- – One for TX channel free (communication data retrieved by receiving processor)
- • Interrupt masking per channel
- – Channel occupied mask
- – Channel free mask
- • Two channel operation modes
- – Simplex (each channel has its own communication data memory location)
- – Half duplex (a single channel associated to a bidirectional communication data information memory location)
30.3 IPCC functional description
The IPCC communication data is located in a common memory, which is not part of the IPCC block. The address location of the communication data must be known or located in a known common area that, as already stated, is not part of the IPCC block.
For each communication, the IPCC block provides a channel status flag CHnF.
- • When 0, the channel status flag CHnF indicates that the associated IPCC channel is free (the receiving processor has retrieved communication data), and can be accessed by the sending processor.
- • When 1, the channel status flag CHnF indicates that the associated IPCC channel is occupied (the sending processor has posted communication data) and can be accessed by the receiving processor.
The channel operation mode must be known to both processors. A common parameter can be used to indicate the channel transfer mode and must also be located in a known common area. This parameter is not available from the IPCC.
30.3.1 IPCC block diagram
The IPCC (see Figure 334 ) consists of the following subblocks:
- • Status block, containing the channel status
- • IPCC interface block, providing AHB access to the channel status registers
- • Interrupt interface block, providing control for the interrupts
Figure 334. IPCC block diagram

The diagram illustrates the internal architecture of the IPCC. On the left, an 'AHB slave' signal enters the 'IPCC INTERFACE' block. This block is connected to the 'IPCC STATUS' block, which contains multiple status registers: '1TO2 STATUS Channel 1', '1TO2 STATUS Channel N', '2TO1 STATUS Channel 1', and '2TO1 STATUS Channel N'. These registers are connected to the 'INTERRUPT GENERATION' block, which contains an 'Interrupt generation' sub-block. The 'INTERRUPT GENERATION' block outputs four signals: 'ipcc_tx_free_int0', 'ipcc_rx_occupied_int0', 'ipcc_tx_free_int1', and 'ipcc_rx_occupied_int1'. The reference 'MS42429V1' is noted in the bottom right corner.
Table 181. IPCC interface signals
| Signal | Description | |
|---|---|---|
| Name | Type | |
| AHB slave | I/O | AHB register access bus |
| ipcc_tx_free_int1 | O | TX free interrupt to processor 1 |
| ipcc_rx_occupied_int1 | O | RX occupied interrupt to processor 1 |
| ipcc_tx_free_int2 | O | TX free interrupt to processor 2 |
| ipcc_rx_occupied_int2 | O | RX occupied interrupt to processor 2 |
30.3.2 IPCC Simplex channel mode
In Simplex channel mode, a dedicated memory location (used to transfer data in a single direction) is assigned to the communication data. The associated channel N control bits (see Table 182 ) are used to manage the transfer from the sending to the receiving processor.
Table 182. Bits used for the communication
| Processor | A | B |
|---|---|---|
| SEND A = 1 RECEIVE B = 2 | IPCC_C1CR.TXFIE IPCC_C1MR.CHnFM IPCC_C1SCR.CHnS IPCC_C1TOC2SR.CHnF | IPCC_C2CR.RXOIE IPCC_C2MR.CHnOM IPCC_C2SCR.CHnC |
| SEND A = 2 RECEIVE B = 1 | IPCC_C2CR.TXFIE IPCC_C2MR.CHnFM IPCC_C2SCR.CHnS IPCC_C2TOC1SR.CHnF | IPCC_C1CR.RXOIE IPCC_C1MR.CHnOM IPCC_C1SCR.CHnC |
Once the sending processor has posted the communication data in the memory, it sets the channel status flag CHnF to occupied with CHnS.
Once the receiving processor has retrieved the communication data from the memory, it clears the channel status flag CHnF back to free with CHnC.
Figure 335. IPCC Simplex channel mode transfer timing

The timing diagram illustrates the interaction between Processor A and Processor B for a simplex channel transfer.
1.
Processor A:
Initiates the transfer by writing communication data to memory. This action sets the
CHnF
flag to 'occupied'.
2.
CHnF:
The flag transitions from 'free' to 'occupied' upon the write. It remains 'occupied' until Processor B completes the read.
3.
TX free interrupt:
Generated by Processor A when the CHnF flag is cleared.
4.
Processor B:
Detects the 'occupied' state via an
RX occupied interrupt
. It then reads the communication data from memory.
5.
Memory occupation:
The memory location contains 'Communication data' while the CHnF flag is 'occupied'.
6.
Cleanup:
After reading the data, Processor B clears the CHnF flag to 'free'. This action triggers the
TX free interrupt
on Processor A and releases the memory occupation.
MS42430V1
Figure 336. IPCC Simplex - Send procedure state diagram

graph TD; Start(( )) -- "Send Communication data" --> ReadCHnF{Read CHnF}; ReadCHnF -- "CHnF = 0" --> WriteData[Write Communication data to memory]; ReadCHnF -- "CHnF = 1" --> UNMASK[UNMASK Channel N free interrupt]; UNMASK -- "Write CHnFM = 0" --> WaitTX[Wait for TX free interrupt]; WaitTX --> TXFree[TX free interrupt]; TXFree -- "Read CHnF = 0" --> MASK[MASK Channel N free interrupt]; MASK -- "Write CHnFM = 1" --> WriteData; WriteData -- "Complete communication posted" --> SetOccupied[Set Channel N occupied]; SetOccupied -- "Write CHnS (set CHnF = 1)" --> End([End]);The state diagram illustrates the send procedure for the IPCC Simplex. It begins with an entry point labeled 'Send Communication data' leading to a decision diamond 'Read CHnF'. If 'CHnF = 0', the flow proceeds to 'Write Communication data to memory'. If 'CHnF = 1', the flow proceeds to 'UNMASK Channel N free interrupt', followed by 'Write CHnFM = 0', 'Wait for TX free interrupt', and 'TX free interrupt' (indicated by a dashed pink arrow from the right). From 'TX free interrupt', the flow proceeds to 'Read CHnF = 0', which leads to 'MASK Channel N free interrupt', and then 'Write CHnFM = 1', which loops back to 'Write Communication data to memory'. From 'Write Communication data to memory', the flow proceeds to 'Complete communication posted', then 'Set Channel N occupied', then 'Write CHnS (set CHnF = 1)', and finally to the 'End' state.
To send communication data:
- • The sending processor checks the channel status flag CHnF:
- – When CHnF = 0, the channel is free (last communication data retrieved by the receiving processor), and the new communication data can be written.
- – When CHnF = 1, the channel is occupied (last communication data not retrieved by the receiving processor), and the sending processor unmasks the channel free interrupt (CHnFM = 0).
- – On a TX free interrupt, the sending processor checks which channel became free and masks the channel free interrupt (CHnFM = 1). Then the new communication can take place.
- • Once the complete communication data is posted, the channel status is set to occupied with CHnS. This gives memory access to the receiving processor and generates the RX occupied interrupt.
Figure 337. IPCC Simplex - Receive procedure state diagram

stateDiagram-v2
[*] --> RX_occupied_interrupt : RX occupied interrupt
RX_occupied_interrupt --> MASK_Channel_N_occupied_interrupt : Read CHnF = 1
MASK_Channel_N_occupied_interrupt --> Read_Communication_data_from_Memory : Write CHnOM = 1
Read_Communication_data_from_Memory --> Set_Channel_N_free : Complete communication retrieved
Set_Channel_N_free --> UNMASK_Channel_N_occupied_interrupt : Write CHnC (set CHnF = 0)
UNMASK_Channel_N_occupied_interrupt --> End : Write CHnOM = 0The state diagram illustrates the receive procedure for the IPCC Simplex mode. It begins with an 'RX occupied interrupt' leading to the 'RX occupied interrupt' state. From there, the processor reads the CHnF flag (CHnF = 1), leading to the 'MASK Channel N occupied interrupt' state. It then writes CHnOM = 1, leading to the 'Read Communication data from Memory' state. Once the communication is retrieved, it leads to the 'Set Channel N free' state. From there, it writes CHnC (set CHnF = 0), leading to the 'UNMASK Channel N occupied interrupt' state. Finally, it writes CHnOM = 0, leading to the 'End' state. The diagram is labeled MS42432V1.
To receive a communication, the channel occupied interrupt is unmasked (CHnOM = 0):
- • On an RX occupied interrupt, the receiving processor checks which channel became occupied, masks the associated channel occupied interrupt (CHnOM) and reads the communication data from memory.
- • Once the complete communication data is retrieved, the channel status is cleared to free with CHnC. This gives memory access back to the sending processor and may generate the TX free interrupt.
- • Once the channel status is cleared, the channel occupied interrupt is unmasked (CHnOM = 0).
30.3.3 IPCC Half-duplex channel mode
The Half-duplex channel mode is used when one processor sends a communication and the other processor sends a response to each communication (ping-pong).
In Half-duplex channel mode, a single dedicated memory location is assigned to communication data and response, and is used to transfer data in both directions. The sending processor channel status flag CHnF is assigned to the channel and used by both processors (see Table 182 ).
Once the processor A posts communication data into memory, it sets the processor A channel status flag CHnF to occupied with CHnS (giving memory access to processor B).
Once the processor B retrieves communication data from memory, it does not change the channel status flags. The memory access is kept by processor B for the response.
Once the processor B posts the response into memory, it clears the channel status flag CHnF to free with CHnC (giving memory access back to processor A).
Once the processor A retrieves the response from the memory, it does not change the channel status flags. The memory location access is kept by processor A for the next communication data.
Figure 338. IPCC Half-duplex channel mode transfer timing

The diagram illustrates the timing for a half-duplex channel mode transfer. It shows the sequence of events for Processor A, Processor B, and Memory. Processor A writes communication data to memory, then later reads the response. Processor B reads the communication data and writes the response. The CHnF signal is shown as a pulse when the channel is free. The TX free interrupt is generated when the channel is free. The RX occupied interrupt is generated when the channel is occupied. The memory occupation shows the data and response being written and read.
MS42435V1
Figure 339. IPCC Half-duplex - Send procedure state diagram

The state diagram details the send procedure for half-duplex mode, split into two columns: Communication processor A and Response processor B.
Communication processor A:
- Starts with "Send Communication data".
- Decision: "Wait for Response read".
- If "Response pending = 1", it loops back to the start.
- If "Response pending = 0", it proceeds to "Write Communication data to Memory".
- From "Write Communication data to Memory", it proceeds to "Set Channel N occupied". Labels: "Complete communication posted", "Write response pending = 1".
- From "Set Channel N occupied", it proceeds to "UNMASK Channel N free interrupt". Label: "Write CHnS (set CHnF = 1)".
- From "UNMASK Channel N free interrupt", it proceeds to "End". Label: "Write CHnFM = 0".
Response processor B:
- Starts with "Response pending = 1".
- Proceeds to "Write Response to Memory". Label: "Complete communication posted", "Write response pending = 0".
- From "Write Response to Memory", it proceeds to "Clear Channel N free". Label: "Write CHnC (set CHnF = 0)".
- From "Clear Channel N free", it proceeds to "UNMASK Channel N occupied interrupt". Label: "Write CHnOM = 0".
- From "UNMASK Channel N occupied interrupt", it proceeds to "End".
MS42433V1
To send communication data:
- • The sending processor waits for its response pending software variable to get 0.
- – Once the response pending software variable is 0 the communication data is posted.
- • Once the complete communication data has been posted, the channel status flag CHnF is set to occupied with CHnS, and the response pending software variable is set to 1 (this gives memory access and generates the RX occupied interrupt to the receiving processor).
- • Once the channel status flag CHnF is set, the channel free interrupt is unmasked (CHnFM = 0).
To send a response:
- • The receiving processor waits for its response pending software variable to get 1.
- – Once the response pending software variable is 1, the response is posted.
- • Once the complete response is posted, the channel status flag CHnF is cleared to free with CHnC, and the response pending software variable is set to 0 (this gives memory access and generates the TX free interrupt to the sending processor).
- • Once the channel status flag CHnF is cleared, the channel occupied interrupt is unmasked (CHnOM = 0).
Figure 340. IPCC Half-duplex - Receive procedure state diagram

stateDiagram-v2
state "Response processor A" as Response_processor_A
state "Communication processor B" as Communication_processor_B
state "TX free interrupt" as TX_free_interrupt_A
state "Read CHnF = 0" as Read_CHnF_0_A
state "MASK Channel N free interrupt" as MASK_Channel_N_free_interrupt_A
state "Write CHnFM = 1" as Write_CHnFM_1_A
state "Read Response from Memory" as Read_Response_from_Memory_A
state "Write Response pending = 0" as Write_Response_pending_0_A
state "Allow Communication data to be sent" as Allow_Communication_data_to_be_sent_A
state "RX occupied interrupt" as RX_occupied_interrupt_B
state "Read CHnF = 1" as Read_CHnF_1_B
state "MASK Channel N occupied interrupt" as MASK_Channel_N_occupied_interrupt_B
state "Write CHnOM = 1" as Write_CHnOM_1_B
state "Read Communication data from Memory" as Read_Communication_data_from_Memory_B
state "Complete communication retrieved" as Complete_communication_retrieved_B
state "Write Response pending = 1" as Write_Response_pending_1_B
state "Allow Response to be sent" as Allow_Response_to_be_sent_B
TX_free_interrupt_A --> Read_CHnF_0_A
Read_CHnF_0_A --> MASK_Channel_N_free_interrupt_A
MASK_Channel_N_free_interrupt_A --> Write_CHnFM_1_A
Write_CHnFM_1_A --> Read_Response_from_Memory_A
Read_Response_from_Memory_A --> Write_Response_pending_0_A
Write_Response_pending_0_A --> Allow_Communication_data_to_be_sent_A
RX_occupied_interrupt_B --> Read_CHnF_1_B
Read_CHnF_1_B --> MASK_Channel_N_occupied_interrupt_B
MASK_Channel_N_occupied_interrupt_B --> Write_CHnOM_1_B
Write_CHnOM_1_B --> Read_Communication_data_from_Memory_B
Read_Communication_data_from_Memory_B --> Complete_communication_retrieved_B
Complete_communication_retrieved_B --> Write_Response_pending_1_B
Write_Response_pending_1_B --> Allow_Response_to_be_sent_B
Allow_Response_to_be_sent_B --> TX_free_interrupt_A
To receive communication data the channel occupied interrupt is unmasked (CHnOM = 0):
- • On an RX occupied interrupt, the receiving processor checks which channel became occupied, masks the associated channel occupied interrupt (CHnOM) and reads the communication data from the memory.
- • Once the complete communication data is retrieved, the response pending software variable is set. The channel status is not changed, access to the memory is kept to post the subsequent response.
To receive the response the channel free interrupt is unmasked (CHnFM = 0):
- • On a TX free interrupt, the sending processor checks which channel became free, masks the associated channel free interrupt (CHnFM) and reads the response from the memory.
- • Once the complete response is retrieved, the response pending software variable is cleared. The channel status is not changed, access to the memory is kept to post the subsequent communication data.
30.3.4 IPCC interrupts
There are four interrupt lines :
- • two RX channel occupied interrupts, one for each processor:
- – Interrupt enable RXOIE per processor
- – Individual mask CHnOM per channel
- • two TX channel free interrupts, one for each processor
- – Interrupt enable TXFIE per processor
- – Individual mask CHnFM per channel
The RX occupied interrupt is used by the receiving processor and indicates when an unmasked channel status indicates occupied (CHnF = 1).
The TX free interrupt is used by the sending processor, and indicates when an unmasked channel status indicates free (CHnF = 0).
A secure channel only generates a secure interrupt, and only in the case when the channel is secure unmasked and global secure enabled.
A non-secure channel only generates a non-secure interrupt, and only in the case when the channel is non-secure unmasked and global non-secure enabled.
30.4 IPCC registers
The peripheral registers must be accessed by words (32-bit). Byte (8-bit) and half-word (16-bit) accesses are not permitted and do not generate a bus error.
30.4.1 IPCC processor 1 control register (IPCC_C1CR)
Address offset: 0x000
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TXFIE |
| rw | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RXOIE |
| rw |
Bits 31:17 Reserved, must be kept at reset value.
Bit 16 TXFIE : Processor 1 transmit channel free interrupt enable
Associated with IPCC_C1TOC2SR.
1: Enable an unmasked processor 1 transmit channel free to generate a TX free interrupt.
0: Processor 1 TX free interrupt disabled
Bits 15:1 Reserved, must be kept at reset value.
Bit 0 RXOIE : Processor 1 receive channel occupied interrupt enable
Associated with IPCC_C2TOC1SR.
1: Enable an unmasked processor 1 receive channel occupied to generate an RX occupied interrupt.
0: Processor 1 RX occupied interrupt disabled
30.4.2 IPCC processor 1 mask register (IPCC_C1MR)
Address offset: 0x004
Reset value: 0xFFFF FFFF
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6 FM | CH5 FM | CH4 FM | CH3 FM | CH2 FM | CH1 FM |
| rw | rw | rw | rw | rw | rw | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6 OM | CH5 OM | CH4 OM | CH3 OM | CH2 OM | CH1 OM |
| rw | rw | rw | rw | rw | rw |
Bits 31:22 Reserved, must be kept at reset value.
Bits 21:16 CHnFM : Processor 1 transmit channel n status set, (n = 6 to 1).
Associated with IPCC_C1TOC2SR.CHnF
1: Transmit channel n free interrupt masked.
0: Transmit channel n free interrupt not masked.
Bits 15:6 Reserved, must be kept at reset value.
Bits 5:0 CHnOM : Processor 1 receive channel n status clear (n = 6 to 1).
Associated with IPCC_C2TOC1SR.CHnF
1: Receive channel n occupied interrupt masked.
0: Receive channel n occupied interrupt not masked.
30.4.3 IPCC processor 1 status set clear register (IPCC_C1SCR)
Address offset: 0x008
Reset value: 0x0000 0000
Reading this register always returns 0x0000 0000.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6S | CH5S | CH4S | CH3S | CH2S | CH1S |
| rw | rw | rw | rw | rw | rw |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6C | CH5C | CH4C | CH3C | CH2C | CH1C |
| rw | rw | rw | rw | rw | rw |
Bits 31:22 Reserved, must be kept at reset value.
Bits 21:16 CHnS : Processor 1 transmit channel n status set (n = 6 to 1).
Associated with IPCC_C1TOC2SR.CHnF
1: Processor 1 transmit channel n status bit set.
0: No action.
Bits 15:6 Reserved, must be kept at reset value.
Bits 5:0 CHnC : Processor 1 receive channel n status clear (n = 6 to 1).
Associated with IPCC_C2TOC1SR.CHnF
1: Processor 1 receive channel n status bit clear.
0: No action.
30.4.4 IPCC processor 1 to processor 2 status register (IPCC_C1TOC2SR)
Address offset: 0x00C
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6F | CH5F | CH4F | CH3F | CH2F | CH1F |
| r | r | r | r | r | r |
Bits 31:6 Reserved, must be kept at reset value.
Bits 5:0 CHnF : Processor 1 transmit to processor 2 receive channel n status flag before masking (n = 6 to 1).1: Channel occupied, data can be read by the receiving processor 2.
Generates a channel RX occupied interrupt to processor 2, when unmasked.
0: Channel free, data can be written by the sending processor 1.
Generates a channel TX free interrupt to processor 1, when unmasked.
30.4.5 IPCC processor 2 control register (IPCC_C2CR)
Address offset: 0x010
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TXFIE |
| nw | |||||||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RXOIE |
| nw |
Bits 31:17 Reserved, must be kept at reset value.
Bit 16 TXFIE : Processor 2 transmit channel free interrupt enableAssociated with IPCC_C2TOC1SR.
1: Enable an unmasked processor 2 transmit channel free to generate a TX free interrupt.
0: Processor 2 TX free interrupt disabled
Bits 15:1 Reserved, must be kept at reset value.
Bit 0 RXOIE : Processor 2 receive channel occupied interrupt enableAssociated with IPCC_C1TOC2SR.
1: Enable an unmasked processor 2 receive channel occupied to generate an RX occupied interrupt.
0: Processor 2 RX occupied interrupt disabled
30.4.6 IPCC processor 2 mask register (IPCC_C2MR)
Address offset: 0x014
Reset value: 0xFFFF FFFF
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6 FM | CH5 FM | CH4 FM | CH3 FM | CH2 FM | CH1 FM |
| rw | rw | rw | rw | rw | rw | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6 OM | CH5 OM | CH4 OM | CH3 OM | CH2 OM | CH1 OM |
| rw | rw | rw | rw | rw | rw |
Bits 31:22 Reserved, must be kept at reset value.
Bits 21:16 CHnFM : Processor 2 transmit channel n free interrupt mask (n = 6 to 1).
Associated with IPCC_C2TOC1SR.CHnF
1: Transmit channel n free interrupt masked.
0: Transmit channel n free interrupt not masked.
Bits 15:6 Reserved, must be kept at reset value.
Bits 5:0 CHnOM : Processor 2 receive channel n occupied interrupt mask (n = 6 to 1).
Associated with IPCC_C1TOC2SR.CHnF
1: Receive channel n occupied interrupt masked.
0: Receive channel n occupied interrupt not masked.
30.4.7 IPCC processor 2 status set clear register (IPCC_C2SCR)
Address offset: 0x018
Reset value: 0x0000 0000
Reading this register always returns 0x0000 0000.
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6S | CH5S | CH4S | CH3S | CH2S | CH1S |
| rw | rw | rw | rw | rw | rw | ||||||||||
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6C | CH5C | CH4C | CH3C | CH2C | CH1C |
| rw | rw | rw | rw | rw | rw |
Bits 31:22 Reserved, must be kept at reset value.
Bits 21:16 CHnS : Processor 2 transmit channel n status set (n = 6 to 1).
Associated with IPCC_C2TOC1SR.CHnF
1: Processor 2 transmit channel n status bit set.
0: No action.
Bits 15:6 Reserved, must be kept at reset value.
Bits 5:0 CHnC : Processor 2 receive channel n status clear (n = 6 to 1).
Associated with IPCC_C1TOC2SR.CHnF
1: Processor 2 receive channel n status bit clear.
0: No action.
30.4.8 IPCC processor 2 to processor 1 status register (IPCC_C2TOC1SR)
Address offset: 0x01C
Reset value: 0x0000 0000
| 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6F | CH5F | CH4F | CH3F | CH2F | CH1F |
| r | r | r | r | r | r |
Bits 31:6 Reserved, must be kept at reset value.
Bits 5:0 CHnF : Processor 2 transmit to processor 1 receive channel n status flag before masking (n = 6 to 1)
1: Channel occupied, data can be read by the receiving processor 1.
Generates a channel RX occupied interrupt to processor 1, when unmasked.
0: Channel free, data can be written by the sending processor 2.
Generates a channel TX free interrupt to processor 2, when unmasked.
30.4.9 IPCC register map
Table 183. IPCC register map and reset values
| Offset | Register name Reset value | 31 | 30 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0x0000 | IPCC_C1CR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TXFIE | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RXOIE |
| Reset value | 0 | 0 | ||||||||||||||||||||||||||||||||
| 0x0004 | IPCC_C1MR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6FM | CH5FM | CH4FM | CH3FM | CH2FM | CH1FM | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6OM | CH5OM | CH4OM | CH3OM | CH2OM | |
| Reset value | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||||||||||||
| 0x0008 | IPCC_C1SCR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6S | CH5S | CH4S | CH3S | CH2S | CH1S | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6C | CH5C | CH4C | CH3C | CH2C | |
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||
| 0x000C | IPCC_C1TOC2SR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6F | CH5F | CH4F | CH3F | CH2F | ||
| Reset value | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||||||||
| 0x0010 | IPCC_C2CR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | TXFIE | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | RXOIE |
| Reset value | 0 | 0 | ||||||||||||||||||||||||||||||||
| 0x0014 | IPCC_C2MR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6FM | CH5FM | CH4FM | CH3FM | CH2FM | CH1FM | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6OM | CH5OM | CH4OM | CH3OM | CH2OM | |
| Reset value | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||||||||||||
| 0x0018 | IPCC_C2SCR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6S | CH5S | CH4S | CH3S | CH2S | CH1S | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6C | CH5C | CH4C | CH3C | CH2C | |
| Reset value | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||
| 0x001C | IPCC_C2TOC1SR | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | Res. | CH6F | CH5F | CH4F | CH3F | CH2F | ||
| Reset value | 0 | 0 | 0 | 0 | 0 |