SPRUIM2H May 2020 – October 2023 AM2431 , AM2432 , AM2434 , AM6411 , AM6412 , AM6421 , AM6422 , AM6441 , AM6442
The Host Buffer Descriptor is identical in size and organization to a Host Packet Descriptor but does not include valid information in the packet level fields and does not include a populated region for protocol specific information. Host Buffer Descriptors are designed to be linked onto a Host Packet Descriptor or another Host Buffer Descriptor to provide support for unlimited scatter / gather type operations. Host Buffer Descriptors provide information about a single corresponding data buffer. Every Host buffer descriptor stores the following information:
Host Buffer Descriptors always contain 48 bytes of required information. Since it is a requirement that it is possible to convert a Host descriptor between a Buffer Descriptor and a Packet Descriptor (by filling in the appropriate fields) in practice, Host Buffer Descriptors will be allocated using the same sizes as Host Packet Descriptors. The Host Buffer Descriptor layout is shown below.
Buffer Reclamation Info (16 bytes) |
Linking Info (8 bytes) |
Buffer Info (12 bytes) |
Original Buffer Info (12 bytes) |
The contents of the Host Buffer Descriptor words are detailed in Table 11-25 through Table 11-33.
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:0 | RESERVED | - | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:0 | RESERVED | - | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:16 | RESERVED | - | No |
15:0 | RESERVED | - | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:0 | RESERVED | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:0 | Next Descriptor Pointer LSB | The 32 LSBs of the 48-bit word aligned memory address of the next buffer descriptor in the packet. If the value of this pointer is zero then the current buffer is the last buffer in the packet. The host sets the Next Descriptor Pointer. | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:20 | RESERVED | No | |
19:16 | Next Descriptor Pointer Address Space Select | Effectively bits 51:48 of the address. The value given in this field will be output by the DMA initiators on the casel pin which is used by the infrastructure as an identifier for which address space this particular memory region is located within. Address space 0 is the default unified address space for a given device. Address spaces 1-15 are used for alternate address maps which may be external to the device (PCIe/Hyperlink) or in other ‘tiles’ on large devices. | No |
15:0 | Next Descriptor Pointer MSB | The 16 MSBs of the 48-bit next descriptor pointer. If a specific SoC uses less than 48 bits of address reach the width of this field may be reduced. | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:0 | Buffer 0 Pointer LSB | The Buffer Pointer is the byte aligned memory address of the buffer associated with the buffer descriptor. This value will be written during reception.These are the 32 LSBs of the 48-bit buffer pointer. | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:20 | RESERVED | No | |
19:16 | Buffer 0 Pointer Address Space Select | Effectively bits 51:48 of the address. The value given in this field will be output by the DMA initiators on the casel pin which is used by the infrastructure as an identifier for which address space this particular memory region is located within. Address space 0 is the default unified address space for a given device. Address spaces 1-15 are used for alternate address maps which may be external to the device (PCIe/Hyperlink) or in other ‘tiles’ on large devices. | No |
15:0 | Buffer 0 Pointer MSB | The MSBs of the 48-bit buffer pointer. If a specific SoC uses less than 48 bits of address reach the width of this field may be reduced. | No |
Bits | Name | Description | Rx Overwrite |
---|---|---|---|
31:22 | RESERVED | No | |
21:0 | Buffer N Length | The Buffer Length field indicates how many valid data bytes are in the buffer. Unused or protocol specific bytes at the beginning of the buffer are not counted in the Buffer Length field. This value will be overwritten during reception. | No |