SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
This section provides functional description of the device integrated PRU Subsystems modules.
The PRUn/RTU_PRUn (where n = 0 or 1) cores within each PRU_ICSSG have access to all resources on the SoC through the VBUSM Interface Controller port, and the external host processors can access the PRU_ICSSG resources through the VBUSP Interface Target port. The use of XFR2VBUS allows BroadSide 32Bytes of data transfer to/from SoC CBASS0 Interconnect at 256-bit bursts using the VBUSM Controller port. The 32-bit Internal CBASS Interconnect bus will be the primary interconnect between all components internal to the PRU_ICSSG. There are two equally symmetrical halves in each PRU_ICSSG known as SLICE0 and SLICE1. Each slice will share several resources while capable of working independently of each other. There are two sets of XFR2VBUS for each Slice. The XFR2VBUS hardware accelerator is shared between PRU0 and RTU_PRU0 for SLICE0 and the same configuration is valid for SLICE1. The TX_PRU0 and TX_PRU1 cores have also attached XFR2VBUS hardware accelerators. PRUs also has the ability to submit 32-bit bursts transitions, but this will require RAT configuration.
Each of the Slices contains one RAT (Region based Address Translation) module. For example, the RAT module in SLICE0 is shared between RTU_PRU0, PRU0 and TX_PRU0 cores and the same configuration is valid for SLICE1. The RAT module is used to translate 32-bit address of the PRU core to 48-bit physical address.
The PRU cores within the subsystems also have access to all resources on the SoC through the External CBASS0 Interconnect. A subsystem local Interrupt Controller — INTC handles system input events and posts events back to the device-level host CPUs.
Each slice has intergrated one Transmit PRUn core (TX_PRUn, where n = 0 or 1). This RISC cores are used to control the TX L2 FIFO if enabled.
Figure 6-182 shows an overview of the PRU_ICSSG Functional Block Diagram.
Table 6-403 summarizes the mapping between hardware modules and PRU0/1, RTU_PRU0/1 or TX_PRU0/1 cores.
Hardware Module | Broadside ID | |
---|---|---|
MPY/MAC | 00 | 6 copies: TX_PRU1/0 + RTU_PRU1/0 + PRU1/0 |
CRC16/32 | 01 | 6 copies: TX_PRU1/0 + RTU_PRU1/0 + PRU1/0 Note: TX_PRU1/0 do not have CRC FIFO |
STITCH_FIFO64 | 08 | 2 copies: PRU1/0 |
QUEUE_PTR | 09 | 2 copies: RTU_PRU1/0 |
SUM32 | RTU_PRU MAP: 38 for SUM32 + RAM 39 for SUM32 ONLY PRU MAP: 49 for SUM32 + RAM 47 for SUM32 ONLY 02 for results |
4 copies: 1 for each RTU_PRU1/0 1 for each PRU1/0 |
SPAD Bank0 | 10 | 1 copy:
shared between PRU1/0 1 copy: shared between RTU_PRU1/0 2 copies: 1 for each TX_PRU1/0 |
SPAD Bank1 | 11 | 1 copy:
shared between PRU1/0 1 copy: shared between RTU_PRU1/0 |
SPAD Bank2 | 12 | 1 copy:
shared between PRU1/0 1 copy: shared between RTU_PRU1/0 |
IPC SPAD | 15 | 2 copies: 1 per slice |
RX L2 | 20/21 | 2 copies: PRU1/0 |
RX Classifier | 22 | 2 copies: 1 per slice (RTU_PRU0/PRU0 + RTU_PRU1/PRU1) |
RX first 24 Bytes and 16 Bytes of TSN/pre | 35 | 2 copies: RTU_PRU1/0 |
RX last 12 Bytes | 15 RTU_PRU1/0 15 PRU1/0 |
4 copies: RTU_PRU1/0 PRU1/0 Mapped to upper PRU_RTU_SPAD IPC |
FDB 16KB: 2 Banks of 8KB | 30-35 | 1 copy: shared between PRU1/0 and RTU_PRU1/0 |
FDB results | 32/33/34 | 1 copy: shared between RTU_PRU1/0 and PRU1/0 |
BS RAM | BS RAM only mode: 30 BS RAM + SUM32 snoop mode: 38 |
2 copies: RTU_PRU1/0 |
BS RAM | BS RAM only mode: 48 BS RAM + SUM32 snoop mode: 49 |
2 copies:
PRU1/0 2 copies: TX_PRU1/0 |
TX L2 | 40 | 2 copies: PRU1/0 OR attached/own to TX_PRU1/0 (if register set to enable) |
XFR2PSI | 0x50/0x51/0x52/0x53 | 4 copies: RTU_PRU1/0 + PRU1/0 |
XFR2PSI Share | 0x58 RTU_PRU1/0 Only 0x59 RTU_PRU1/0 Only |
2 copies of
special XFR2PSI which is attached to PRU1/0 The RTU_PRU1/0 can access it using 0x58/0x59 if MII_G_RT_ICSS_G_CFG[9] RTU_PRU_PSI_SHARE_EN bit is set |
XFR2VBUSP | 0x60 for RD_ID0 0x61 for RD_ID1 0x62 for WD_ID0 0x63 for WD_ID1 0x64 for TX_PRU1/0 RD |
2 copies
shared of RX per SLICE 2 copies shared of TX per SLICE 1 copy dedicated RX for TX_PRU only per SLICE |
XFR2SHORT_DMA | 0x70/71/72 | 2 copies: RTU_PRU1/0 |
XFR2SPIN | 0x90 | 1 copy per PRU_ICSSG system |
BSWAP | 0xA0 for Byte Order Swap 0xA1 for 4_8 mode 0xA2 for 4_16 mode |
6 copies: TX_PRU1/0 + RTU_PRU1/0 + PRU1/0 |
QUEUE_EMPTY | 0xF0 | Share XIN only all 6 PRU cores |