Firewall TISCI Description¶
This chapter provides information on Firewall API’s provided by system firmware. There are three firewall API as listed below.
TISCI Message ID | Message Name | Available in GP | Avialable in HS-FS |
---|---|---|---|
0x9000 | TISCI_MSG_SET_FWL_REGION. | Yes | Yes |
0x9001 | TISCI_MSG_GET_FWL_REGION. | Yes | Yes |
0x9002 | TISCI_MSG_CHANGE_FWL_OWNER. | Yes | Yes |
Background Information¶
Each firewall in the system is assigned an owner. Ownership is assigned using Host ID. Only a owner of a firewall can
- Configure the firewall permissions
- Query the firewall permissions
- Transfer the firewall ownership to another owner(host)
Note
For additional firewall information, checkout the Firewall FAQ.
Initial Configuration¶
System firmware configures the firewalls in the following manner on startup.
- DMSC/TIFS internal memories are firewalled. Firewall ownership is assigned to DMSC/TIFS.
- Secure proxy and associated resources required for DMSC/TIFS operation are firewalled. Firewall ownership is assigned to DMSC/TIFS.
- Navss/DMSS resources not used by DMSC/TIFS are firewalled and ownership of the firewalls is assigned to Resource Manager(RM). The intent is that RM programs the firewalls for Navss/DMSS resources based on resource assignment in board configuration.
API Description¶
TISCI Message ID¶
TISCI_MSG_SET_FWL_REGION (0x9000U)
Message to set a firewall region configuration
struct tisci_msg_fwl_set_firewall_region_req
Request for configuring the firewall permissions.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | Common TI-SCI header |
fwl_id | u16 | firewall ID in question. fwl_id is defined in the TRM. |
region | u16 | Region or channel number to set config info This field is unused in case of a simple firewall and must be initialized to zero. In case of a region based firewall, this field indicates the region in question. (index starting from 0) In case of a channel based firewall, this field indicates the channel in question (index starting from 0) |
n_permission_regs | u32 | Number of permission registers to set |
control | u32 | Contents of the firewall CONTROL register to set |
permissions | u32 | Contents of the firewall PERMISSION register to set |
start_address | soc_phys_addr_t | Contents of the firewall START_ADDRESS register to set. The address is restricted to 44-bit; otherwise, it returns failure. |
end_address | soc_phys_addr_t | Contents of the firewall END_ADDRESS register to set. The address is restricted to 44-bit; otherwise, it returns failure. |
struct tisci_msg_fwl_set_firewall_region_resp
Response for configuring the firewall permissions.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | Generic TISCI message header. ACK response indicates that firewall configuration is succesful. NACK response indicates that the configuration was not performed. |
TISCI Message ID¶
TISCI_MSG_GET_FWL_REGION (0x9001U)
Message to get a firewall region configuration
struct tisci_msg_fwl_get_firewall_region_req
Request for retrieving the firewall permissions.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | Generic TISCI message header. |
fwl_id | u16 | firewall ID in question. fwl_id is defined in the TRM. |
region | u16 | Region or channel number to set config info |
n_permission_regs | u32 | Number of permission registers to retrieve |
This field is unused in case of a simple firewall and must be initialized to zero. In case of a region based firewall, this field indicates the region in question (index starting from 0). In case of a channel based firewall, this field indicates the channel in question (index starting from 0).
struct tisci_msg_fwl_get_firewall_region_resp
Response for retrieving the firewall permissions.
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | Generic TISCI message header. A ACK response in the hdr indicates that the message was processed. successfully. A NACK response indicates failure to retrieve firewall permissions. |
fwl_id | u16 | firewall ID in question. fwl_id is defined in the TRM. |
region | u16 | Region or channel number to set config info This field is unused in case of a simple firewall and must be initialized to zero. In case of a region based firewall, this field indicates the region in question. (index starting from 0) In case of a channel based firewall, this field indicates the channel in question (index starting from 0) |
n_permission_regs | u32 | Number of permission registers retrieved |
control | u32 | Contents of the firewall CONTROL register |
permissions | u32 | Contents of the firewall PERMISSION registers |
start_address | soc_phys_addr_t | Contents of the firewall START_ADDRESS register This is not applicable for channelized firewalls. The returned address is restricted to 44-bit. |
end_address | soc_phys_addr_t | Contents of the firewall END_ADDRESS register This is not applicable for channelized firewalls. The returned address is restricted to 44-bit. |
TISCI_MSG_CHANGE_FWL_OWNER - Change Firewall Owner¶
Usage:
Message Type | Normal |
Secure Queue Only? | No |
TISCI Message ID¶
TISCI_MSG_CHANGE_FWL_OWNER (0x9002U)
Message to change firewall region owner
struct tisci_msg_fwl_change_owner_info_req
Request for a change owner operation
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | Common TI-SCI header |
fwl_id | u16 | firewall ID in question |
region | u16 | Region or channel number if applicable |
owner_index | u8 | New owner index to transfer ownership to |
struct tisci_msg_fwl_change_owner_info_resp
Response for a change owner operation
Parameter | Type | Description |
---|---|---|
hdr | struct tisci_header | Common TI-SCI header ACK response indicates that change owner operation is succesful. NACK response indicates that change owner operation failed. |
fwl_id | u16 | firewall ID specified in request |
region | u16 | Region or channel number specified in request |
owner_index | u8 | owner index specified in request |
owner_privid | u8 | new owner priv-ID returned by DMSC. This field is currently initialized to zero by DMSC. |
owner_permission_bits | u16 | new owner permission bits returned by DMSC. This field is currently initialized to zero by DMSC. |