Configures a Navigator Subsystem ring.
Configures the non-real-time registers of a Navigator Subsystem ring. The ring index must be assigned to the host defined in the TISCI header via the RM board configuration resource assignment range list.
hdr | Standard TISCI header |
valid_params | Bitfield defining validity of ring configuration parameters. The ring configuration fields are not valid, and will not be used for ring configuration, if their corresponding valid bit is zero. Valid bit usage: 0 - Valid bit for tisci_msg_rm_ring_cfg_req::addr_lo 1 - Valid bit for tisci_msg_rm_ring_cfg_req::addr_hi 2 - Valid bit for tisci_msg_rm_ring_cfg_req::count 3 - Valid bit for tisci_msg_rm_ring_cfg_req::mode 4 - Valid bit for tisci_msg_rm_ring_cfg_req::size 5 - Valid bit for tisci_msg_rm_ring_cfg_req::order_id 6 - Valid bit for tisci_msg_rm_ring_cfg_req::virtid |
nav_id | SoC device ID of Navigator Subsystem where ring is located |
index | Ring index. |
addr_lo | 32 LSBs of ring base address to be programmed into the ring's RING_BA_LO register. |
This field is only valid if TISCI_MSG_VALUE_RM_RING_ADDR_LO_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params.
addr_hi | 16 MSBs of ring base address to be programmed into the ring's RING_BA_HI register. Only the 16 LSBs of addr_hi are used when programming RING_BA_HI, the upper 16 bits are discarded. |
This field is only valid if TISCI_MSG_VALUE_RM_RING_ADDR_HI_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params.
count | Number of ring elements to be programmed into the size field of the ring's RING_SIZE register. |
This field is only valid if TISCI_MSG_VALUE_RM_RING_COUNT_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params.
mode | Ring mode to be programmed into the qmode field of the ring's RING_SIZE register. Can be set to: TISCI_MSG_VALUE_RM_RING_MODE_RING TISCI_MSG_VALUE_RM_RING_MODE_MESSAGE TISCI_MSG_VALUE_RM_RING_MODE_CREDENTIALS TISCI_MSG_VALUE_RM_RING_MODE_QM |
This field is only valid if TISCI_MSG_VALUE_RM_RING_MODE_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params.
size | Encoded ring element size to be programmed into the elsize field of the ring's RING_SIZE register. To calculate the encoded size use the formula (log2(size_bytes) - 2), where "size_bytes" cannot be greater than 256 bytes. Can be set to: TISCI_MSG_VALUE_RM_RING_SIZE_4B TISCI_MSG_VALUE_RM_RING_SIZE_8B TISCI_MSG_VALUE_RM_RING_SIZE_16B TISCI_MSG_VALUE_RM_RING_SIZE_32B TISCI_MSG_VALUE_RM_RING_SIZE_64B TISCI_MSG_VALUE_RM_RING_SIZE_128B TISCI_MSG_VALUE_RM_RING_SIZE_256B |
This field is only valid if TISCI_MSG_VALUE_RM_RING_SIZE_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params.
order_id | Ring bus order ID value to be programmed into the orderid field of the ring's RING_ORDERID register. When valid, the replace field of the ring's RING_ORDERID register will be set to 1 so that the programmed order ID will be used. |
This field is only valid if TISCI_MSG_VALUE_RM_RING_ORDER_ID_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params.
virtid | Ring virt ID value to be programmed into the virtid field of the ring's RING_CONTROL2 ISC region register. This field is only valid if TISCI_MSG_VALUE_RM_RING_VIRTID_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params. |
asel | Ring ASEL (address select) value to be set into the ASEL field of the ring's RING_BA_HI register. This field is only valid if TISCI_MSG_VALUE_RM_RING_ASEL_VALID is set in tisci_msg_rm_ring_cfg_req::valid_params. This field is not supported on some SoCs. On SoCs that do not support this field the input is quietly ignored even if the valid bit is set. |
Data Fields | |
struct tisci_header | hdr |
uint32_t | valid_params |
uint16_t | nav_id |
uint16_t | index |
uint32_t | addr_lo |
uint32_t | addr_hi |
uint32_t | count |
uint8_t | mode |
uint8_t | size |
uint8_t | order_id |
uint16_t | virtid |
uint8_t | asel |
struct tisci_header tisci_msg_rm_ring_cfg_req::hdr |
uint32_t tisci_msg_rm_ring_cfg_req::valid_params |
uint16_t tisci_msg_rm_ring_cfg_req::nav_id |
uint16_t tisci_msg_rm_ring_cfg_req::index |
uint32_t tisci_msg_rm_ring_cfg_req::addr_lo |
uint32_t tisci_msg_rm_ring_cfg_req::addr_hi |
uint32_t tisci_msg_rm_ring_cfg_req::count |
uint8_t tisci_msg_rm_ring_cfg_req::mode |
uint8_t tisci_msg_rm_ring_cfg_req::size |
uint8_t tisci_msg_rm_ring_cfg_req::order_id |
uint16_t tisci_msg_rm_ring_cfg_req::virtid |
uint8_t tisci_msg_rm_ring_cfg_req::asel |