[U-Boot] [PATCH 2/7] firmware: ti_sci: Add support for firewall management

Lokesh Vutla lokeshvutla at ti.com
Thu Feb 14 03:43:18 UTC 2019


[...snip..]

>  /**
> diff --git a/drivers/firmware/ti_sci.h b/drivers/firmware/ti_sci.h
> index 81591fb0c7..2c92f475ed 100644
> --- a/drivers/firmware/ti_sci.h
> +++ b/drivers/firmware/ti_sci.h
> @@ -50,6 +50,10 @@
>  #define TISCI_MSG_PROC_AUTH_BOOT_IMIAGE	0xc120
>  #define TISCI_MSG_GET_PROC_BOOT_STATUS	0xc400
>  
> +#define TISCI_MSG_FWL_SET		0x9000
> +#define TISCI_MSG_FWL_GET		0x9001
> +#define TISCI_MSG_FWL_CHANGE_OWNER	0x9002
> +
>  /**
>   * struct ti_sci_msg_hdr - Generic Message Header for All messages and responses
>   * @type:	Type of messages: One of TI_SCI_MSG* values
> @@ -677,4 +681,130 @@ struct ti_sci_msg_resp_get_proc_boot_status {
>  	u32 status_flags;
>  } __packed;
>  
> +#define FWL_MAX_PRIVID_SLOTS 3U
> +
> +/**
> + * struct ti_sci_msg_fwl_set_firewall_region_req - Request for configuring the firewall permissions.
> + *
> + * @hdr:		Generic Header
> + *
> + * @fwl_id:		Firewall ID in question
> + * @region:		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:	Number of permission registers to set
> + * @control:		Contents of the firewall CONTROL register to set
> + * @permissions:	Contents of the firewall PERMISSION register to set
> + * @start_address:	Contents of the firewall START_ADDRESS register to set
> + * @end_address:	Contents of the firewall END_ADDRESS register to set
> + */
> +
> +struct ti_sci_msg_fwl_set_firewall_region_req {
> +	struct ti_sci_msg_hdr	hdr;
> +	u16			fwl_id;
> +	u16			region;
> +	u32			n_permission_regs;
> +	u32			control;
> +	u32			permissions[FWL_MAX_PRIVID_SLOTS];
> +	u64			start_address;
> +	u64			end_address;
> +} __packed;
> +
> +/**
> + * struct ti_sci_msg_fwl_set_firewall_region_resp - Response for configuring the firewall permissions
> + *
> + * @hdr:		Generic Header
> + */
> +struct ti_sci_msg_fwl_set_firewall_region_resp {
> +	struct ti_sci_msg_hdr hdr;
> +} __packed;

If it is just the header then you can drop this structure. Use the header
directly in the commands.


Thanks and regards,
Lokesh


More information about the U-Boot mailing list