PDK Documentation
tisci_msg_rm_irq_set_req Struct Reference

Detailed Description

Configures a peripheral to processor interrupt.

Configures peripherals within the interrupt subsystem according to the valid configuration provided. The following tisci_msg_rm_irq_set_req::valid_params valid bit combinations are allowed:

Non-Event Sourced Direct Interrupt - Non-event peripheral interrupt direct to destination processor. One thing to note is an IA unmapped VINT route can be configured via this combination by passing the IA ID and VINT values as the src_id and src_index parameters. An IA unmapped VINT route is considered a non-event sourced direct interrupt route until a global event is mapped to the IA VINT: tisci_msg_rm_irq_set_req::dst_id valid bit == STRUE tisci_msg_rm_irq_set_req::dst_host_irq valid bit == STRUE tisci_msg_rm_irq_set_req::ia_id valid bit == SFALSE tisci_msg_rm_irq_set_req::vint valid bit == SFALSE tisci_msg_rm_irq_set_req::global_event valid bit == SFALSE tisci_msg_rm_irq_set_req::vint_status_bit_index valid bit == SFALSE

Event Sourced Direct Interrupt - Event-based peripheral interrupt direct to destination processor: tisci_msg_rm_irq_set_req::dst_id valid bit == STRUE tisci_msg_rm_irq_set_req::dst_host_irq valid bit == STRUE tisci_msg_rm_irq_set_req::ia_id valid bit == STRUE tisci_msg_rm_irq_set_req::vint valid bit == STRUE tisci_msg_rm_irq_set_req::global_event valid bit == STRUE tisci_msg_rm_irq_set_req::vint_status_bit_index valid bit == STRUE

Unmapped VINT Direct Interrupt - Event-based peripheral interrupt direct to processor with no global event to VINT status bit mapping configured on allocation of the VINT. Allows all event to VINT status bit mappings to take place at a later time: tisci_msg_rm_irq_set_req::dst_id valid bit == STRUE tisci_msg_rm_irq_set_req::dst_host_irq valid bit == STRUE tisci_msg_rm_irq_set_req::ia_id valid bit == STRUE tisci_msg_rm_irq_set_req::vint valid bit == STRUE tisci_msg_rm_irq_set_req::global_event valid bit == SFALSE tisci_msg_rm_irq_set_req::vint_status_bit_index valid bit == SFALSE

Event to VINT Mapping Only - Configure, or add a mapping to, an event-based peripheral interrupt polled from IA VINT real-time registers. Can also be used to add an event to VINT status bit mapping to an event-based direct interrupt route: tisci_msg_rm_irq_set_req::dst_id valid bit == SFALSE tisci_msg_rm_irq_set_req::dst_host_irq valid bit == SFALSE tisci_msg_rm_irq_set_req::ia_id valid bit == STRUE tisci_msg_rm_irq_set_req::vint valid bit == STRUE tisci_msg_rm_irq_set_req::global_event valid bit == STRUE tisci_msg_rm_irq_set_req::vint_status_bit_index valid bit == STRUE

OES Register Programming Only - Only programs the OES register of the source. Useful for setting UDMAP trigger events and any other events that are not translated to the interrupt domain: tisci_msg_rm_irq_set_req::dst_id valid bit == SFALSE tisci_msg_rm_irq_set_req::dst_host_irq valid bit == SFALSE tisci_msg_rm_irq_set_req::ia_id valid bit == SFALSE tisci_msg_rm_irq_set_req::vint valid bit == SFALSE tisci_msg_rm_irq_set_req::global_event valid bit == STRUE tisci_msg_rm_irq_set_req::vint_status_bit_index valid bit == SFALSE

The shortest route between the peripheral and the host processor that satisfies the requirements for non-event and event direct interrupts is programmed. The host processor interrupt controller is not programmed as part of the configuration.

Standard TISCI header

Parameters
valid_paramsBitfield defining validity of interrupt route set parameters. The interrupt route set fields are not valid, and will not be used for route set, if their corresponding valid bit is zero. Valid bit usage: 0 - Valid bit for tisci_msg_rm_irq_set_req::dst_id 1 - Valid bit for tisci_msg_rm_irq_set_req::dst_host_irq 2 - Valid bit for tisci_msg_rm_irq_set_req::ia_id 3 - Valid bit for tisci_msg_rm_irq_set_req::vint 4 - Valid bit for tisci_msg_rm_irq_set_req::global_event 5 - Valid bit for tisci_msg_rm_irq_set_req::vint_status_bit_index 31 - Valid bit for tisci_msg_rm_irq_set_req::secondary_host
src_idID of interrupt source peripheral
src_indexInterrupt source index within source peripheral
dst_idSoC device ID of interrupt destination, based on the device architecture can be an interrupt controller or processor.

This field is only valid if TISCI_MSG_VALUE_RM_DST_ID_VALID is set in tisci_msg_rm_irq_set_req::valid_params.

Parameters
dst_host_irqDestination host processor interrupt controller IRQ input

This field is only valid if TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID is set in tisci_msg_rm_irq_set_req::valid_params.

Parameters
ia_idDevice ID of interrupt aggregator in which the virtual interrupt resides.

This field is only valid if TISCI_MSG_VALUE_RM_IA_ID_VALID is set in tisci_msg_rm_irq_set_req::valid_params.

Parameters
vintVirtual interrupt number if the interrupt route is through an interrupt aggregator.

This field is only valid if TISCI_MSG_VALUE_RM_VINT_VALID is set in tisci_msg_rm_irq_set_req::valid_params.

Parameters
global_eventGlobal event mapped to interrupt aggregator virtual interrupt status bit. The event is programmed into the OES register of the interrupt source. This field is only applicable for interrupt source's capable of generating global events.

This field is only valid if TISCI_MSG_VALUE_RM_GLOBAL_EVENT_VALID is set in tisci_msg_rm_irq_set_req::valid_params.

Parameters
vint_status_bit_indexVirtual interrupt status bit to set if the interrupt route utilizes an interrupt aggregator virtual interrupt. The host processor uses the status bit value within the interrupt aggregator's vint status register to find the source event which triggered the interrupt.

This field is only valid if TISCI_MSG_VALUE_RM_VINT_STATUS_BIT_INDEX_VALID is set in tisci_msg_rm_irq_set_req::valid_params.

Parameters
secondary_hostThe interrupt route destination is the specified secondary host if the secondary_host's corresponding valid bit is set in tisci_msg_rm_irq_set_req::valid_params. Otherwise, the host within the TISCI message header is the route destination.

Data Fields

uint32_t valid_params
 
uint16_t src_id
 
uint16_t src_index
 
uint16_t dst_id
 
uint16_t dst_host_irq
 
uint16_t ia_id
 
uint16_t vint
 
uint16_t global_event
 
uint8_t vint_status_bit_index
 
uint8_t secondary_host
 

Field Documentation

◆ valid_params

uint32_t tisci_msg_rm_irq_set_req::valid_params

◆ src_id

uint16_t tisci_msg_rm_irq_set_req::src_id

◆ src_index

uint16_t tisci_msg_rm_irq_set_req::src_index

◆ dst_id

uint16_t tisci_msg_rm_irq_set_req::dst_id

◆ dst_host_irq

uint16_t tisci_msg_rm_irq_set_req::dst_host_irq

◆ ia_id

uint16_t tisci_msg_rm_irq_set_req::ia_id

◆ vint

uint16_t tisci_msg_rm_irq_set_req::vint

◆ global_event

uint16_t tisci_msg_rm_irq_set_req::global_event

◆ vint_status_bit_index

uint8_t tisci_msg_rm_irq_set_req::vint_status_bit_index

◆ secondary_host

uint8_t tisci_msg_rm_irq_set_req::secondary_host