mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-07-23 23:33:01 +00:00
firmware: ti_sci: Add support for processor control services
TI-SCI message protocol provides support for controlling of various physical cores available in SoC. In order to control which host is capable of controlling a physical processor core, there is a processor access control list that needs to be populated as part of the board configuration data. Introduce support for the set of TI-SCI message protocol apis that provide us with this capability of controlling physical cores. Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
This commit is contained in:
parent
f369b0f26c
commit
ccbc8b2fdd
3 changed files with 589 additions and 0 deletions
|
@ -222,18 +222,55 @@ struct ti_sci_core_ops {
|
|||
int (*reboot_device)(const struct ti_sci_handle *handle);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ti_sci_proc_ops - Processor specific operations.
|
||||
*
|
||||
* @proc_request: Request for controlling a physical processor.
|
||||
* The requesting host should be in the processor access list.
|
||||
* @proc_release: Relinquish a physical processor control
|
||||
* @proc_handover: Handover a physical processor control to another host
|
||||
* in the permitted list.
|
||||
* @set_proc_boot_cfg: Base configuration of the processor
|
||||
* @set_proc_boot_ctrl: Setup limited control flags in specific cases.
|
||||
* @proc_auth_boot_image:
|
||||
* @get_proc_boot_status: Get the state of physical processor
|
||||
*
|
||||
* NOTE: for all these functions, the following parameters are generic in
|
||||
* nature:
|
||||
* -handle: Pointer to TISCI handle as retrieved by *ti_sci_get_handle
|
||||
* -pid: Processor ID
|
||||
*
|
||||
*/
|
||||
struct ti_sci_proc_ops {
|
||||
int (*proc_request)(const struct ti_sci_handle *handle, u8 pid);
|
||||
int (*proc_release)(const struct ti_sci_handle *handle, u8 pid);
|
||||
int (*proc_handover)(const struct ti_sci_handle *handle, u8 pid,
|
||||
u8 hid);
|
||||
int (*set_proc_boot_cfg)(const struct ti_sci_handle *handle, u8 pid,
|
||||
u64 bv, u32 cfg_set, u32 cfg_clr);
|
||||
int (*set_proc_boot_ctrl)(const struct ti_sci_handle *handle, u8 pid,
|
||||
u32 ctrl_set, u32 ctrl_clr);
|
||||
int (*proc_auth_boot_image)(const struct ti_sci_handle *handle, u8 pid,
|
||||
u64 caddr);
|
||||
int (*get_proc_boot_status)(const struct ti_sci_handle *handle, u8 pid,
|
||||
u64 *bv, u32 *cfg_flags, u32 *ctrl_flags,
|
||||
u32 *sts_flags);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ti_sci_ops - Function support for TI SCI
|
||||
* @board_ops: Miscellaneous operations
|
||||
* @dev_ops: Device specific operations
|
||||
* @clk_ops: Clock specific operations
|
||||
* @core_ops: Core specific operations
|
||||
* @proc_ops: Processor specific operations
|
||||
*/
|
||||
struct ti_sci_ops {
|
||||
struct ti_sci_board_ops board_ops;
|
||||
struct ti_sci_dev_ops dev_ops;
|
||||
struct ti_sci_clk_ops clk_ops;
|
||||
struct ti_sci_core_ops core_ops;
|
||||
struct ti_sci_proc_ops proc_ops;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue