Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
 4.2.99
tisci.h File Reference

Public APIs for the TISCI driver. More...

#include <zephyr/device.h>

Go to the source code of this file.

Data Structures

struct  tisci_version_info
 version information structure More...
struct  tisci_msg_fwl_region
struct  tisci_msg_fwl_owner
 Request and Response for firewall owner change. More...
struct  tisci_msg_rm_udmap_tx_ch_cfg
 Configures a Navigator Subsystem UDMAP transmit channel. More...
struct  tisci_msg_rm_udmap_rx_ch_cfg
 Configures a Navigator Subsystem UDMAP receive channel. More...
struct  tisci_irq_set_req
 Request to set up an interrupt route. More...
struct  tisci_irq_release_req
 Request to release interrupt peripheral resources. More...

Macros

#define MAILBOX_MBOX_SIZE   60
#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_EINFO_VALID   BIT(9)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_PSWORDS_VALID   BIT(10)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_SUPR_TDPKT_VALID   BIT(11)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_CREDIT_COUNT_VALID   BIT(12)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FDEPTH_VALID   BIT(13)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALID   BIT(15)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_EXTENDED_CH_TYPE_VALID   BIT(16)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_START_VALID   BIT(9)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_CNT_VALID   BIT(10)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_SHORT_VALID   BIT(11)
#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_LONG_VALID   BIT(12)
#define TISCI_MSG_VALUE_RM_DST_ID_VALID   (1u << 0u)
#define TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID   (1u << 1u)
#define TISCI_MSG_VALUE_RM_IA_ID_VALID   (1u << 2u)
#define TISCI_MSG_VALUE_RM_VINT_VALID   (1u << 3u)
#define TISCI_MSG_VALUE_RM_GLOBAL_EVENT_VALID   (1u << 4u)
#define TISCI_MSG_VALUE_RM_VINT_STATUS_BIT_INDEX_VALID   (1u << 5u)

Functions

int tisci_cmd_get_revision (const struct device *dev, struct tisci_version_info *ver)
 Get the revision information of the TI SCI firmware.
int tisci_cmd_get_clock_state (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t *programmed_state, uint8_t *current_state)
 Get the state of a clock.
int tisci_set_clock_state (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint32_t flags, uint8_t state)
 Set the state of a clock.
int tisci_cmd_clk_is_on (const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool *req_state, bool *curr_state)
 Check if the clock is ON.
int tisci_cmd_clk_is_off (const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool *req_state, bool *curr_state)
 Check if the clock is OFF.
int tisci_cmd_clk_is_auto (const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool *req_state)
 Check if the clock is being auto-managed.
int tisci_cmd_clk_get_freq (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint64_t *freq)
 Get the current frequency of a clock.
int tisci_cmd_clk_set_freq (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint64_t min_freq, uint64_t target_freq, uint64_t max_freq)
 Set a frequency for a clock.
int tisci_cmd_clk_get_match_freq (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint64_t min_freq, uint64_t target_freq, uint64_t max_freq, uint64_t *match_freq)
 Get a matching frequency for a clock.
int tisci_cmd_clk_set_parent (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t parent_id)
 Set the parent clock for a clock.
int tisci_cmd_clk_get_parent (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t *parent_id)
 Get the parent clock for a clock.
int tisci_cmd_clk_get_num_parents (const struct device *dev, uint32_t dev_id, uint8_t clk_id, uint8_t *num_parents)
 Get the number of parent clocks for a clock.
int tisci_cmd_get_clock (const struct device *dev, uint32_t dev_id, uint8_t clk_id, bool needs_ssc, bool can_change_freq, bool enable_input_term)
 Get control of a clock from TI SCI.
int tisci_cmd_idle_clock (const struct device *dev, uint32_t dev_id, uint8_t clk_id)
 Idle a clock that is under control of TI SCI.
int tisci_cmd_put_clock (const struct device *dev, uint32_t dev_id, uint8_t clk_id)
 Release a clock from control back to TI SCI.
int tisci_set_device_state (const struct device *dev, uint32_t dev_id, uint32_t flags, uint8_t state)
 Set the state of a device.
int tisci_set_device_state_no_wait (const struct device *dev, uint32_t dev_id, uint32_t flags, uint8_t state)
 Set the state of a device without waiting for a response.
int tisci_get_device_state (const struct device *dev, uint32_t dev_id, uint32_t *clcnt, uint32_t *resets, uint8_t *p_state, uint8_t *c_state)
 Get the state of a device.
int tisci_cmd_get_device (const struct device *dev, uint32_t dev_id)
 Request exclusive access to a device managed by TISCI.
int tisci_cmd_get_device_exclusive (const struct device *dev, uint32_t dev_id)
int tisci_cmd_idle_device (const struct device *dev, uint32_t dev_id)
 Command to idle a device managed by TISCI.
int tisci_cmd_idle_device_exclusive (const struct device *dev, uint32_t dev_id)
int tisci_cmd_put_device (const struct device *dev, uint32_t dev_id)
 Command to release a device managed by TISCI.
int tisci_cmd_dev_is_valid (const struct device *dev, uint32_t dev_id)
 Check if a device ID is valid.
int tisci_cmd_dev_get_clcnt (const struct device *dev, uint32_t dev_id, uint32_t *count)
 Get the context loss counter for a device.
int tisci_cmd_dev_is_idle (const struct device *dev, uint32_t dev_id, bool *r_state)
 Check if the device is requested to be idle.
int tisci_cmd_dev_is_stop (const struct device *dev, uint32_t dev_id, bool *r_state, bool *curr_state)
 Check if the device is requested to be stopped.
int tisci_cmd_dev_is_on (const struct device *dev, uint32_t dev_id, bool *r_state, bool *curr_state)
 Check if the device is requested to be ON.
int tisci_cmd_dev_is_trans (const struct device *dev, uint32_t dev_id, bool *curr_state)
 Check if the device is currently transitioning.
int tisci_cmd_set_device_resets (const struct device *dev, uint32_t dev_id, uint32_t reset_state)
 Set resets for a device managed by TISCI.
int tisci_cmd_get_device_resets (const struct device *dev, uint32_t dev_id, uint32_t *reset_state)
 Get reset state for a device managed by TISCI.
int tisci_get_resource_range (const struct device *dev, uint32_t dev_id, uint8_t subtype, uint8_t s_host, uint16_t *range_start, uint16_t *range_num)
 Get a range of resources assigned to a host.
int tisci_cmd_get_resource_range (const struct device *dev, uint32_t dev_id, uint8_t subtype, uint16_t *range_start, uint16_t *range_num)
 Get a range of resources assigned to the host.
int tisci_cmd_get_resource_range_from_shost (const struct device *dev, uint32_t dev_id, uint8_t subtype, uint8_t s_host, uint16_t *range_start, uint16_t *range_num)
 Get a range of resources assigned to a specified host.
int tisci_cmd_proc_request (const struct device *dev, uint8_t proc_id)
 Command to request a physical processor control.
int tisci_cmd_proc_release (const struct device *dev, uint8_t proc_id)
 Command to release a physical processor control.
int tisci_cmd_proc_handover (const struct device *dev, uint8_t proc_id, uint8_t host_id)
 Command to handover a physical processor control to a host in the processor's access control list.
int tisci_cmd_set_proc_boot_cfg (const struct device *dev, uint8_t proc_id, uint64_t bootvector, uint32_t config_flags_set, uint32_t config_flags_clear)
 Command to set the processor boot configuration flags.
int tisci_cmd_set_proc_boot_ctrl (const struct device *dev, uint8_t proc_id, uint32_t control_flags_set, uint32_t control_flags_clear)
 Command to set the processor boot control flags.
int tisci_cmd_proc_auth_boot_image (const struct device *dev, uint64_t *image_addr, uint32_t *image_size)
 Command to authenticate and load the image, then set the processor configuration flags.
int tisci_cmd_get_proc_boot_status (const struct device *dev, uint8_t proc_id, uint64_t *bv, uint32_t *cfg_flags, uint32_t *ctrl_flags, uint32_t *sts_flags)
 Command to get the processor boot status.
int tisci_proc_wait_boot_status_no_wait (const struct device *dev, uint8_t proc_id, uint8_t num_wait_iterations, uint8_t num_match_iterations, uint8_t delay_per_iteration_us, uint8_t delay_before_iterations_us, uint32_t status_flags_1_set_all_wait, uint32_t status_flags_1_set_any_wait, uint32_t status_flags_1_clr_all_wait, uint32_t status_flags_1_clr_any_wait)
 Helper function to wait for a processor boot status without requesting or waiting for a response.
int tisci_cmd_proc_shutdown_no_wait (const struct device *dev, uint8_t proc_id)
 Command to shutdown a core without requesting or waiting for a response.
int cmd_set_board_config_using_msg (const struct device *dev, uint16_t msg_type, uint64_t addr, uint32_t size)
 Set board configuration using a specified message type.
int tisci_cmd_ring_config (const struct device *dev, 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)
 Configure a RA ring.
int tisci_cmd_sys_reset (const struct device *dev)
 Request a system reset.
int tisci_cmd_query_msmc (const struct device *dev, uint64_t *msmc_start, uint64_t *msmc_end)
 Query the available MSMC memory range.
int tisci_cmd_set_fwl_region (const struct device *dev, const struct tisci_msg_fwl_region *region)
 Configure a firewall region.
int tisci_cmd_get_fwl_region (const struct device *dev, struct tisci_msg_fwl_region *region)
 Get firewall region configuration.
int tisci_cmd_change_fwl_owner (const struct device *dev, struct tisci_msg_fwl_owner *owner)
 Change firewall region owner.
int tisci_cmd_rm_udmap_tx_ch_cfg (const struct device *dev, const struct tisci_msg_rm_udmap_tx_ch_cfg *params)
 Configure a UDMAP transmit channel.
int tisci_cmd_rm_udmap_rx_ch_cfg (const struct device *dev, const struct tisci_msg_rm_udmap_rx_ch_cfg *params)
 Configure a UDMAP receive channel.
int tisci_cmd_rm_psil_pair (const struct device *dev, uint32_t nav_id, uint32_t src_thread, uint32_t dst_thread)
 Pair PSI-L source thread to destination thread.
int tisci_cmd_rm_psil_unpair (const struct device *dev, uint32_t nav_id, uint32_t src_thread, uint32_t dst_thread)
 Unpair PSI-L source thread from destination thread.
int tisci_cmd_rm_irq_set (const struct device *dev, struct tisci_irq_set_req *req)
 Set a Navigator Subsystem IRQ.
int tisci_cmd_rm_irq_release (const struct device *dev, struct tisci_irq_release_req *req)
 Release a Navigator Subsystem IRQ.

Detailed Description

Public APIs for the TISCI driver.

Macro Definition Documentation

◆ MAILBOX_MBOX_SIZE

#define MAILBOX_MBOX_SIZE   60

◆ TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID

#define TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID   (1u << 1u)

◆ TISCI_MSG_VALUE_RM_DST_ID_VALID

#define TISCI_MSG_VALUE_RM_DST_ID_VALID   (1u << 0u)

◆ TISCI_MSG_VALUE_RM_GLOBAL_EVENT_VALID

#define TISCI_MSG_VALUE_RM_GLOBAL_EVENT_VALID   (1u << 4u)

◆ TISCI_MSG_VALUE_RM_IA_ID_VALID

#define TISCI_MSG_VALUE_RM_IA_ID_VALID   (1u << 2u)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_EXTENDED_CH_TYPE_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_EXTENDED_CH_TYPE_VALID   BIT(16)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_CNT_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_CNT_VALID   BIT(10)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_START_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_FLOWID_START_VALID   BIT(9)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_LONG_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_LONG_VALID   BIT(12)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_SHORT_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_RX_IGNORE_SHORT_VALID   BIT(11)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_TX_CREDIT_COUNT_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_CREDIT_COUNT_VALID   BIT(12)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FDEPTH_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FDEPTH_VALID   BIT(13)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_EINFO_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_EINFO_VALID   BIT(9)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_PSWORDS_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_FILT_PSWORDS_VALID   BIT(10)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_TX_SUPR_TDPKT_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_SUPR_TDPKT_VALID   BIT(11)

◆ TISCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALID

#define TISCI_MSG_VALUE_RM_UDMAP_CH_TX_TDTYPE_VALID   BIT(15)

◆ TISCI_MSG_VALUE_RM_VINT_STATUS_BIT_INDEX_VALID

#define TISCI_MSG_VALUE_RM_VINT_STATUS_BIT_INDEX_VALID   (1u << 5u)

◆ TISCI_MSG_VALUE_RM_VINT_VALID

#define TISCI_MSG_VALUE_RM_VINT_VALID   (1u << 3u)

Function Documentation

◆ cmd_set_board_config_using_msg()

int cmd_set_board_config_using_msg ( const struct device * dev,
uint16_t msg_type,
uint64_t addr,
uint32_t size )

Set board configuration using a specified message type.

Sends a board configuration message to the TI SCI firmware with configuration data from a specified memory location.

Parameters
devPointer to the TI SCI device
msg_typeTISCI message type for board configuration
addrPhysical address of board configuration data
sizeSize of board configuration data in bytes
Returns
0 if successful, or an error code

◆ tisci_cmd_change_fwl_owner()

int tisci_cmd_change_fwl_owner ( const struct device * dev,
struct tisci_msg_fwl_owner * owner )

Change firewall region owner.

Changes the ownership of a firewall region and retrieves updated ownership information.

Parameters
devPointer to the TI SCI device
ownerPointer to firewall owner configuration. On input: contains fwl_id, region, and owner_index On output: contains updated ownership information
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_get_freq()

int tisci_cmd_clk_get_freq ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint64_t * freq )

Get the current frequency of a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
freqPointer to store the current frequency in Hz
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_get_match_freq()

int tisci_cmd_clk_get_match_freq ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint64_t min_freq,
uint64_t target_freq,
uint64_t max_freq,
uint64_t * match_freq )

Get a matching frequency for a clock.

Finds a frequency that matches the requested range for a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
min_freqMinimum allowable frequency in Hz
target_freqTarget clock frequency in Hz
max_freqMaximum allowable frequency in Hz
match_freqPointer to store the matched frequency in Hz
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_get_num_parents()

int tisci_cmd_clk_get_num_parents ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint8_t * num_parents )

Get the number of parent clocks for a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
num_parentsPointer to store the number of parent clocks
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_get_parent()

int tisci_cmd_clk_get_parent ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint8_t * parent_id )

Get the parent clock for a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
parent_idPointer to store the identifier of the parent clock
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_is_auto()

int tisci_cmd_clk_is_auto ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
bool * req_state )

Check if the clock is being auto-managed.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
req_statePointer to store whether the clock is auto-managed
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_is_off()

int tisci_cmd_clk_is_off ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
bool * req_state,
bool * curr_state )

Check if the clock is OFF.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
req_statePointer to store whether the clock is managed and disabled
curr_statePointer to store whether the clock is NOT ready for operation
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_is_on()

int tisci_cmd_clk_is_on ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
bool * req_state,
bool * curr_state )

Check if the clock is ON.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
req_statePointer to store whether the clock is managed and enabled
curr_statePointer to store whether the clock is ready for operation
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_set_freq()

int tisci_cmd_clk_set_freq ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint64_t min_freq,
uint64_t target_freq,
uint64_t max_freq )

Set a frequency for a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
min_freqMinimum allowable frequency in Hz
target_freqTarget clock frequency in Hz
max_freqMaximum allowable frequency in Hz
Returns
0 if successful, or an error code

◆ tisci_cmd_clk_set_parent()

int tisci_cmd_clk_set_parent ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint8_t parent_id )

Set the parent clock for a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
parent_idIdentifier of the parent clock to set
Returns
0 if successful, or an error code

◆ tisci_cmd_dev_get_clcnt()

int tisci_cmd_dev_get_clcnt ( const struct device * dev,
uint32_t dev_id,
uint32_t * count )

Get the context loss counter for a device.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
countPointer to store the context loss counter
Returns
0 if successful, or an error code

◆ tisci_cmd_dev_is_idle()

int tisci_cmd_dev_is_idle ( const struct device * dev,
uint32_t dev_id,
bool * r_state )

Check if the device is requested to be idle.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
r_statePointer to store the result (true if requested to be idle)
Returns
0 if successful, or an error code

◆ tisci_cmd_dev_is_on()

int tisci_cmd_dev_is_on ( const struct device * dev,
uint32_t dev_id,
bool * r_state,
bool * curr_state )

Check if the device is requested to be ON.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
r_statePointer to store the result (true if requested to be ON)
curr_statePointer to store the result (true if currently ON and active)
Returns
0 if successful, or an error code

◆ tisci_cmd_dev_is_stop()

int tisci_cmd_dev_is_stop ( const struct device * dev,
uint32_t dev_id,
bool * r_state,
bool * curr_state )

Check if the device is requested to be stopped.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
r_statePointer to store the result (true if requested to be stopped)
curr_statePointer to store the result (true if currently stopped)
Returns
0 if successful, or an error code

◆ tisci_cmd_dev_is_trans()

int tisci_cmd_dev_is_trans ( const struct device * dev,
uint32_t dev_id,
bool * curr_state )

Check if the device is currently transitioning.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
curr_statePointer to store the result (true if currently transitioning)
Returns
0 if successful, or an error code

◆ tisci_cmd_dev_is_valid()

int tisci_cmd_dev_is_valid ( const struct device * dev,
uint32_t dev_id )

Check if a device ID is valid.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
Returns
0 if the device ID is valid, or an error code

◆ tisci_cmd_get_clock()

int tisci_cmd_get_clock ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
bool needs_ssc,
bool can_change_freq,
bool enable_input_term )

Get control of a clock from TI SCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
needs_ssc'true' if Spread Spectrum clock is desired, else 'false'
can_change_freq'true' if frequency change is desired, else 'false'
enable_input_term'true' if input termination is desired, else 'false'
Returns
0 if successful, or an error code

◆ tisci_cmd_get_clock_state()

int tisci_cmd_get_clock_state ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint8_t * programmed_state,
uint8_t * current_state )

Get the state of a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
programmed_statePointer to store the requested state of the clock
current_statePointer to store the current state of the clock
Returns
0 if successful, or an error code

◆ tisci_cmd_get_device()

int tisci_cmd_get_device ( const struct device * dev,
uint32_t dev_id )

Request exclusive access to a device managed by TISCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
Returns
0 if successful, or an error code

◆ tisci_cmd_get_device_exclusive()

int tisci_cmd_get_device_exclusive ( const struct device * dev,
uint32_t dev_id )

◆ tisci_cmd_get_device_resets()

int tisci_cmd_get_device_resets ( const struct device * dev,
uint32_t dev_id,
uint32_t * reset_state )

Get reset state for a device managed by TISCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
reset_statePointer to store the reset state
Returns
0 if successful, or an error code

◆ tisci_cmd_get_fwl_region()

int tisci_cmd_get_fwl_region ( const struct device * dev,
struct tisci_msg_fwl_region * region )

Get firewall region configuration.

Retrieves the configuration of a firewall region including permissions, addresses, and control settings.

Parameters
devPointer to the TI SCI device
regionPointer to store the firewall region configuration. The fwl_id, region, and n_permission_regs fields must be set before calling this function.
Returns
0 if successful, or an error code

◆ tisci_cmd_get_proc_boot_status()

int tisci_cmd_get_proc_boot_status ( const struct device * dev,
uint8_t proc_id,
uint64_t * bv,
uint32_t * cfg_flags,
uint32_t * ctrl_flags,
uint32_t * sts_flags )

Command to get the processor boot status.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
bvPointer to store the boot vector
cfg_flagsPointer to store the configuration flags
ctrl_flagsPointer to store the control flags
sts_flagsPointer to store the status flags
Returns
0 if successful, or an error code

◆ tisci_cmd_get_resource_range()

int tisci_cmd_get_resource_range ( const struct device * dev,
uint32_t dev_id,
uint8_t subtype,
uint16_t * range_start,
uint16_t * range_num )

Get a range of resources assigned to the host.

Parameters
devPointer to the TI SCI device
dev_idTISCI device ID
subtypeResource assignment subtype being requested
range_startPointer to store the start index of the resource range
range_numPointer to store the number of resources in the range
Returns
0 if successful, or an error code

◆ tisci_cmd_get_resource_range_from_shost()

int tisci_cmd_get_resource_range_from_shost ( const struct device * dev,
uint32_t dev_id,
uint8_t subtype,
uint8_t s_host,
uint16_t * range_start,
uint16_t * range_num )

Get a range of resources assigned to a specified host.

Parameters
devPointer to the TI SCI device
dev_idTISCI device ID
subtypeResource assignment subtype being requested
s_hostHost processor ID to which the resources are allocated
range_startPointer to store the start index of the resource range
range_numPointer to store the number of resources in the range
Returns
0 if successful, or an error code

◆ tisci_cmd_get_revision()

int tisci_cmd_get_revision ( const struct device * dev,
struct tisci_version_info * ver )

Get the revision information of the TI SCI firmware.

Queries the TI SCI firmware for its version and revision information. The retrieved information is stored in the provided ver structure.

Parameters
devPointer to the TI SCI device
verPointer to a structure where the firmware version information will be stored
Returns
0 if successful, or a negative error code on failure

◆ tisci_cmd_idle_clock()

int tisci_cmd_idle_clock ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id )

Idle a clock that is under control of TI SCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
Returns
0 if successful, or an error code

◆ tisci_cmd_idle_device()

int tisci_cmd_idle_device ( const struct device * dev,
uint32_t dev_id )

Command to idle a device managed by TISCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
Returns
0 if successful, or an error code

◆ tisci_cmd_idle_device_exclusive()

int tisci_cmd_idle_device_exclusive ( const struct device * dev,
uint32_t dev_id )

◆ tisci_cmd_proc_auth_boot_image()

int tisci_cmd_proc_auth_boot_image ( const struct device * dev,
uint64_t * image_addr,
uint32_t * image_size )

Command to authenticate and load the image, then set the processor configuration flags.

Parameters
devPointer to the TI SCI device
image_addrPointer to the memory address of the payload image and certificate
image_sizePointer to the size of the image after authentication
Returns
0 if successful, or an error code

◆ tisci_cmd_proc_handover()

int tisci_cmd_proc_handover ( const struct device * dev,
uint8_t proc_id,
uint8_t host_id )

Command to handover a physical processor control to a host in the processor's access control list.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
host_idHost ID to get the control of the processor
Returns
0 if successful, or an error code

◆ tisci_cmd_proc_release()

int tisci_cmd_proc_release ( const struct device * dev,
uint8_t proc_id )

Command to release a physical processor control.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
Returns
0 if successful, or an error code

◆ tisci_cmd_proc_request()

int tisci_cmd_proc_request ( const struct device * dev,
uint8_t proc_id )

Command to request a physical processor control.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
Returns
0 if successful, or an error code

◆ tisci_cmd_proc_shutdown_no_wait()

int tisci_cmd_proc_shutdown_no_wait ( const struct device * dev,
uint8_t proc_id )

Command to shutdown a core without requesting or waiting for a response.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
Returns
0 if successful, or an error code

◆ tisci_cmd_put_clock()

int tisci_cmd_put_clock ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id )

Release a clock from control back to TI SCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
Returns
0 if successful, or an error code

◆ tisci_cmd_put_device()

int tisci_cmd_put_device ( const struct device * dev,
uint32_t dev_id )

Command to release a device managed by TISCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
Returns
0 if successful, or an error code

◆ tisci_cmd_query_msmc()

int tisci_cmd_query_msmc ( const struct device * dev,
uint64_t * msmc_start,
uint64_t * msmc_end )

Query the available MSMC memory range.

Queries the TI SCI firmware for the currently available MSMC (Multi-Standard Shared Memory Controller) memory range.

Parameters
devPointer to the TI SCI device
msmc_startPointer to store the MSMC start address
msmc_endPointer to store the MSMC end address
Returns
0 if successful, or an error code

◆ tisci_cmd_ring_config()

int tisci_cmd_ring_config ( const struct device * dev,
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 )

Configure a RA ring.

Parameters
devPointer to the TI SCI device
valid_paramsBitfield defining validity of ring configuration parameters
nav_idDevice ID of Navigator Subsystem from which the ring is allocated
indexRing index
addr_loThe ring base address low 32 bits
addr_hiThe ring base address high 32 bits
countNumber of ring elements
modeThe mode of the ring
sizeThe ring element size
order_idSpecifies the ring's bus order ID
Returns
0 if successful, or an error code

◆ tisci_cmd_rm_irq_release()

int tisci_cmd_rm_irq_release ( const struct device * dev,
struct tisci_irq_release_req * req )

Release a Navigator Subsystem IRQ.

Releases an interrupt route in the Navigator Subsystem using the provided request structure.

Parameters
devPointer to the TI SCI device
reqPointer to the IRQ release request structure
Returns
0 if successful, or an error code

◆ tisci_cmd_rm_irq_set()

int tisci_cmd_rm_irq_set ( const struct device * dev,
struct tisci_irq_set_req * req )

Set a Navigator Subsystem IRQ.

Sets up an interrupt route in the Navigator Subsystem using the provided request structure.

Parameters
devPointer to the TI SCI device
reqPointer to the IRQ set request structure
Returns
0 if successful, or an error code

◆ tisci_cmd_rm_psil_pair()

int tisci_cmd_rm_psil_pair ( const struct device * dev,
uint32_t nav_id,
uint32_t src_thread,
uint32_t dst_thread )

Pair PSI-L source thread to destination thread.

Pairs a PSI-L source thread to a destination thread in the Navigator Subsystem.

Parameters
devPointer to the TI SCI device
nav_idNavigator Subsystem device ID
src_threadSource thread ID
dst_threadDestination thread ID
Returns
0 if successful, or an error code

◆ tisci_cmd_rm_psil_unpair()

int tisci_cmd_rm_psil_unpair ( const struct device * dev,
uint32_t nav_id,
uint32_t src_thread,
uint32_t dst_thread )

Unpair PSI-L source thread from destination thread.

Unpairs a PSI-L source thread from a destination thread in the Navigator Subsystem.

Parameters
devPointer to the TI SCI device
nav_idNavigator Subsystem device ID
src_threadSource thread ID
dst_threadDestination thread ID
Returns
0 if successful, or an error code

◆ tisci_cmd_rm_udmap_rx_ch_cfg()

int tisci_cmd_rm_udmap_rx_ch_cfg ( const struct device * dev,
const struct tisci_msg_rm_udmap_rx_ch_cfg * params )

Configure a UDMAP receive channel.

Configures the non-real-time registers of a Navigator Subsystem UDMAP receive channel.

Parameters
devPointer to the TI SCI device
paramsPointer to the receive channel configuration parameters
Returns
0 if successful, or an error code

◆ tisci_cmd_rm_udmap_tx_ch_cfg()

int tisci_cmd_rm_udmap_tx_ch_cfg ( const struct device * dev,
const struct tisci_msg_rm_udmap_tx_ch_cfg * params )

Configure a UDMAP transmit channel.

Configures the non-real-time registers of a Navigator Subsystem UDMAP transmit channel.

Parameters
devPointer to the TI SCI device
paramsPointer to the transmit channel configuration parameters
Returns
0 if successful, or an error code

◆ tisci_cmd_set_device_resets()

int tisci_cmd_set_device_resets ( const struct device * dev,
uint32_t dev_id,
uint32_t reset_state )

Set resets for a device managed by TISCI.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
reset_stateDevice-specific reset bit field
Returns
0 if successful, or an error code

◆ tisci_cmd_set_fwl_region()

int tisci_cmd_set_fwl_region ( const struct device * dev,
const struct tisci_msg_fwl_region * region )

Configure a firewall region.

Sets up a firewall region with the specified configuration parameters including permissions, addresses, and control settings.

Parameters
devPointer to the TI SCI device
regionPointer to the firewall region configuration parameters
Returns
0 if successful, or an error code

◆ tisci_cmd_set_proc_boot_cfg()

int tisci_cmd_set_proc_boot_cfg ( const struct device * dev,
uint8_t proc_id,
uint64_t bootvector,
uint32_t config_flags_set,
uint32_t config_flags_clear )

Command to set the processor boot configuration flags.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
bootvectorBoot vector address
config_flags_setConfiguration flags to be set
config_flags_clearConfiguration flags to be cleared
Returns
0 if successful, or an error code

◆ tisci_cmd_set_proc_boot_ctrl()

int tisci_cmd_set_proc_boot_ctrl ( const struct device * dev,
uint8_t proc_id,
uint32_t control_flags_set,
uint32_t control_flags_clear )

Command to set the processor boot control flags.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
control_flags_setControl flags to be set
control_flags_clearControl flags to be cleared
Returns
0 if successful, or an error code

◆ tisci_cmd_sys_reset()

int tisci_cmd_sys_reset ( const struct device * dev)

Request a system reset.

Commands the TI SCI firmware to perform a system reset.

Parameters
devPointer to the TI SCI device
Returns
0 if successful, or an error code

◆ tisci_get_device_state()

int tisci_get_device_state ( const struct device * dev,
uint32_t dev_id,
uint32_t * clcnt,
uint32_t * resets,
uint8_t * p_state,
uint8_t * c_state )

Get the state of a device.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clcntPointer to store the Context Loss Count
resetsPointer to store the reset count
p_statePointer to store the programmed state
c_statePointer to store the current state
Returns
0 if successful, or an error code

◆ tisci_get_resource_range()

int tisci_get_resource_range ( const struct device * dev,
uint32_t dev_id,
uint8_t subtype,
uint8_t s_host,
uint16_t * range_start,
uint16_t * range_num )

Get a range of resources assigned to a host.

Parameters
devPointer to the TI SCI device
dev_idTISCI device ID
subtypeResource assignment subtype being requested
s_hostHost processor ID to which the resources are allocated
range_startPointer to store the start index of the resource range
range_numPointer to store the number of resources in the range
Returns
0 if successful, or an error code

◆ tisci_proc_wait_boot_status_no_wait()

int tisci_proc_wait_boot_status_no_wait ( const struct device * dev,
uint8_t proc_id,
uint8_t num_wait_iterations,
uint8_t num_match_iterations,
uint8_t delay_per_iteration_us,
uint8_t delay_before_iterations_us,
uint32_t status_flags_1_set_all_wait,
uint32_t status_flags_1_set_any_wait,
uint32_t status_flags_1_clr_all_wait,
uint32_t status_flags_1_clr_any_wait )

Helper function to wait for a processor boot status without requesting or waiting for a response.

Parameters
devPointer to the TI SCI device
proc_idProcessor ID this request is for
num_wait_iterationsTotal number of iterations to check before timeout
num_match_iterationsNumber of consecutive matches required to confirm status
delay_per_iteration_usDelay in microseconds between each status check
delay_before_iterations_usDelay in microseconds before the first status check
status_flags_1_set_all_waitFlags that must all be set to 1
status_flags_1_set_any_waitFlags where at least one must be set to 1
status_flags_1_clr_all_waitFlags that must all be cleared to 0
status_flags_1_clr_any_waitFlags where at least one must be cleared to 0
Returns
0 if successful, or an error code

◆ tisci_set_clock_state()

int tisci_set_clock_state ( const struct device * dev,
uint32_t dev_id,
uint8_t clk_id,
uint32_t flags,
uint8_t state )

Set the state of a clock.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
clk_idClock identifier for the device for this request
flagsHeader flags as needed
stateState to request for the clock
Returns
0 if successful, or an error code

◆ tisci_set_device_state()

int tisci_set_device_state ( const struct device * dev,
uint32_t dev_id,
uint32_t flags,
uint8_t state )

Set the state of a device.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
flagsFlags to set for the device
stateState to move the device to:
  • 0: Device is off
  • 1: Device is on
  • 2: Device is in retention
  • 3: Device is in reset
Returns
0 if successful, or an error code

◆ tisci_set_device_state_no_wait()

int tisci_set_device_state_no_wait ( const struct device * dev,
uint32_t dev_id,
uint32_t flags,
uint8_t state )

Set the state of a device without waiting for a response.

Parameters
devPointer to the TI SCI device
dev_idDevice identifier for this request
flagsFlags to set for the device
stateState to move the device to:
  • 0: Device is off
  • 1: Device is on
  • 2: Device is in retention
  • 3: Device is in reset
Returns
0 if successful, or an error code