SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The channel descriptor table comprises 64 channel table RAM entries. Each entry is 128-bit. The first entry starts at address 0x00 and the 64th entry at address 0x3F. Each 128-bit entry of the channel descriptor table is referenced by a connection label and contains information about data buffer in the data buffer RAM (that is, buffer size, or address pointers). The format of each channel descriptor table entry depends on the channel type (synchronous, isochronous, asynchronous, or control).
Software must write all reserved channel descriptor bits to ’0’ when the entry is initialized.
Synchronous Channel Descriptor Table
The MLBSS provides two modes of operation (standard and multi-frame per sub-buffer) to provide flexibility for implementing synchronous channels.
Channels set up for standard mode require less buffer space. For channels configured for standard mode, the host controller must transfer one full frame of streaming data in/out of the data buffer of each streaming channel.
Channels set up for multiple-frames per sub-buffer mode require more buffer space. For channels configured for multiple-frames per sub-buffer mode, the host controller must transfer N full frames of streaming data in/out of the data buffer of each streaming channel.
To set up a channel in multi-frame per sub-buffer mode:
The format of a synchronous channel descriptor table entry is shown in Table 24-1464. All reserved bits should be written to zero.
Bit Offset | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | WSBC[1:0] | Reserved | |||||||||||||||
16 | RSBC[1:0] | Reserved | |||||||||||||||
32 | Reserved | ||||||||||||||||
48 | Reserved | ||||||||||||||||
64 | WSTS[3:0] | WPTR[11:0] | |||||||||||||||
80 | RSTS[3:0] | RPTR[11:0] | |||||||||||||||
96 | Reserved | BD[11:0] | |||||||||||||||
112 | Reserved | BA[13:0] |
The field descriptions of a synchronous channel descriptor table entry are shown in Table 24-1465.
Field | Description | Details | Accessibility (1) |
---|---|---|---|
BA | Buffer base address | BA can start at any byte in the 16k data buffer RAM | r, w |
BD | Buffer depth | 1. BD = size of buffer in bytes - 1 | r,w |
2. Buffer end address = BA + BD | |||
3. BD = 4 × m × bpf - 1, where: | |||
m = frames per sub-buffer (for MFE = 0, m = 1) | |||
bpf = bytes per frame | |||
RPTR | Read pointer | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the read address offset within a buffer | |||
3. DMA read address = BA + RPTR | |||
WPTR | Write pointer | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the write address offset within a buffer | |||
3. DMA write address = BA + WPTR | |||
RSBC | Read sub-buffer counter | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the read sub-buffer offset | |||
3. DMA uses for pointer management | |||
WSBC | Write sub-buffer counter | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the write sub-buffer offset | |||
3. DMA uses for pointer management | |||
RSTS | Read status | 1. Software initializes to zero, hardware updates | r,w,u |
2. RSTS states: (Only for DMA associated with MLB) | |||
xxx0 = normal operation (no mute) | |||
xxx1 = normal operation (mute) | |||
xx0x = idle | |||
WSTS | Write status | 1. Software initializes to zero, hardware updates | r,w,u |
2. WSTS states: (Only for DMA associated with MLB) | |||
xxx0 = normal operation (no mute) | |||
xxx1 = normal operation (mute) | |||
xx0x = idle | |||
1xxx = command protocol error | |||
Reserved | Reserved | Software writes a zero to all Reserved bits when the entry is initialized. The Reserved bits are Read-only after initialization. | r,w,u |
Isochronous Channel Descriptor Table
The format of an isochronous channel descriptor table entry is shown in Table 24-1466. All reserved bits should be written to zero.
Bit Offset | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Reserved | |||||||||||||||
16 | Reserved | |||||||||||||||
32 | Reserved | BS[8:0] | ||||||||||||||
48 | Reserved | |||||||||||||||
64 | WSTS[2:0] | WPTR[12:0] | ||||||||||||||
80 | RSTS[2:0] | RPTR[12:0] | ||||||||||||||
96 | Reserved | BD[12:0] | ||||||||||||||
112 | BF | Reserved | BA[13:0] |
The field descriptions of an isochronous channel descriptor table entry are shown in Table 24-1467.
Field | Description | Details | Accessibility (1) |
---|---|---|---|
BA | Buffer Base Address | BA can start at any byte in the 16k data buffer RAM | r, w |
BD | Buffer Depth | 1. BD = size of buffer in bytes - 1 | r,w |
2. Buffer end address = BA + BD | |||
3. Isochronous buffers must be large enough to hold at least 3 blocks (packets) of data | |||
4. Buffer depth must be a integer multiple of blocks | |||
BF | Buffer Full | 1. Software initializes to zero, hardware updates | r,w,u |
2. DMA write hardware sets BF when the buffer is full | |||
3. DMA read hardware clears BF when the buffer is empty | |||
4. BF is valid only when the buffer is full or empty, otherwise ignore | |||
BS | Block Size | 1. BS defines when to begin the DMA to the data buffer | r,w,u |
2. BS = buffer block size in bytes - 1 | |||
3. For Rx channels, the DMA writes start when the number of empty bytes (SPACE) in the data buffer >= the block size | |||
4. For Tx channels, the DMA reads start when the number of valid bytes (VALID) in the data buffer >= the block size | |||
RPTR | Read Pointer | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the read address offset within a buffer | |||
3. DMA read address = BA + RPTR | |||
WPTR | Write Pointer | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the write address offset within a buffer | |||
3. DMA write address = BA + WPTR | |||
RSTS | Read status | 1. Software initializes to zero, hardware updates | r,w,u |
2. RSTS Status states (Only for DMA associated with MLB) | |||
xx1 = active | |||
xx0 = idle | |||
WSTS | Write status | 1. Software initializes to zero, hardware updates | r,w,u |
2. WSTS states: (Only for DMA associated with MLB) | |||
xx1 = active | |||
xx= idle | |||
x1x = command protocol error | |||
1xx = buffer overflow (FCE = 0 only) | |||
Reserved | Reserved | Software writes a zero to all reserved bits when the entry is initialized. The reserved bits are read-only after initialization. | r,w,u |
Asynchronous and Control Channel Description Table
The format of an asynchronous and control channel descriptor table entry is shown in Table 24-1468. All reserved bits should be written to zero.
Bit Offset | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | WPC[4:0] | Reserved | ||||||||||||||
16 | RPC[4:0] | Reserved | ||||||||||||||
32 | Reserved | WPC[7:5] | Reserved | |||||||||||||
48 | Reserved | RPC[7:5] | Reserved | |||||||||||||
64 | WSTS[3:0] | WPTR[11:0] | ||||||||||||||
80 | RSTS[3:0] | RPTR[11:0] | ||||||||||||||
96 | RSTS[4] | WSTS[4] | Reserved | BD[11:0] | ||||||||||||
112 | Reserved | BA[13:0] |
The field descriptions of an asynchronous and control channel descriptor table entry are shown in Table 24-1469.
Field | Description | Details | Accessibility (2) |
---|---|---|---|
BA | Buffer Base Address | BA can start at any byte in the 16k data buffer RAM | r, w |
BD | Buffer Depth | 1. BD = size of buffer in bytes - 1 | r,w |
2. Buffer end address = BA + BD | |||
3. BD >= max packet length - 1 | |||
RPC | Read Packet Count | 1. Software initializes to zero, hardware updates | r,w,u |
2. Used in conjunction with WPC, RPTR and WPTR to determine if the buffer is empty or full | |||
WPC | Write Packet Count | 1. Software initializes to zero, hardware updates | r,w,u |
2. Used in conjunction with RPC, RPTR and WPTR to determine if the buffer is empty or full | |||
RPTR | Read Pointer | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the read address offset within a buffer | |||
3. DMA read address = BA + RPTR | |||
WPTR | Write Pointer | 1. Software initializes to zero, hardware updates | r,w,u |
2. Counts the write address offset within a buffer | |||
3. DMA write address = BA + WPTR | |||
RSTS | Read status | 1. Software initializes to zero, hardware updates | r,w,u |
2. Status states:(1) | |||
x0x00 = idle | |||
xx1xx = ReceiverProtocolError response received from Rx device | |||
1xxxx = ReceiverBreak response received from Rx device | |||
WSTS | Write status | 1. Software initializes to zero, hardware updates | r,w,u |
2. Status states:(1) | |||
x0x00 = idle | |||
xx1xx = command protocol error detected | |||
1xxxx = AsyncBreak/ControlBreak command received from Tx device | |||
Reserved | Reserved | Software writes a zero to all reserved bits when the entry is initialized. The Reserved bits are read-only after initialization. | r,w,u |