History

firmware: ti_sci: Add support for processor control

Texas Instrument's System Control Interface (TI-SCI) Message Protocol is used in Texas Instrument's System on Chip (SoC) such as those in K3 family AM654 SoC to communicate between various compute processors with a central system controller entity. The system controller provides various services including the control of other compute processors within the SoC. Extend the TI-SCI protocol support to add various TI-SCI commands to invoke services associated with power and reset control, and boot vector management of the various compute processors from the Linux kernel.

Suman Anna committed 7 years ago

Commit 1e407f31 parent 68608b53 files · +516 −0Browse files

Showing the changes to include/linux (1 of 3 files). Show all

Unified · Split

include/linux/soc/ti/ti_sci_protocol.h+31−0
@@ -453,12 +453,42 @@ struct ti_sci_rm_udmap_ops { · 452 unmodified lines
453 const struct ti_sci_msg_rm_udmap_flow_cfg *params);453 const struct ti_sci_msg_rm_udmap_flow_cfg *params);
454};454};
455 455
456/**
457 * struct ti_sci_proc_ops - Processor Control operations
458 * @request: Request to control a physical processor. The requesting host
459 * should be in the processor access list
460 * @release: Relinquish a physical processor control
461 * @handover: Handover a physical processor control to another host
462 * in the permitted list
463 * @set_config: Set base configuration of a processor
464 * @set_control: Setup limited control flags in specific cases
465 * @get_status: Get the state of physical processor
466 *
467 * NOTE: The following paramteres are generic in nature for all these ops,
468 * -handle: Pointer to TI SCI handle as retrieved by *ti_sci_get_handle
469 * -pid: Processor ID
470 * -hid: Host ID
471 */
472struct ti_sci_proc_ops {
473 int (*request)(const struct ti_sci_handle *handle, u8 pid);
474 int (*release)(const struct ti_sci_handle *handle, u8 pid);
475 int (*handover)(const struct ti_sci_handle *handle, u8 pid, u8 hid);
476 int (*set_config)(const struct ti_sci_handle *handle, u8 pid,
477 u64 boot_vector, u32 cfg_set, u32 cfg_clr);
478 int (*set_control)(const struct ti_sci_handle *handle, u8 pid,
479 u32 ctrl_set, u32 ctrl_clr);
480 int (*get_status)(const struct ti_sci_handle *handle, u8 pid,
481 u64 *boot_vector, u32 *cfg_flags, u32 *ctrl_flags,
482 u32 *status_flags);
483};
484
456/**485/**
457 * struct ti_sci_ops - Function support for TI SCI486 * struct ti_sci_ops - Function support for TI SCI
458 * @dev_ops: Device specific operations487 * @dev_ops: Device specific operations
459 * @clk_ops: Clock specific operations488 * @clk_ops: Clock specific operations
460 * @rm_core_ops: Resource management core operations.489 * @rm_core_ops: Resource management core operations.
461 * @rm_irq_ops: IRQ management specific operations490 * @rm_irq_ops: IRQ management specific operations
491 * @proc_ops: Processor Control specific operations
462 */492 */
463struct ti_sci_ops {493struct ti_sci_ops {
464 struct ti_sci_core_ops core_ops;494 struct ti_sci_core_ops core_ops;
@@ -469,6 +499,7 @@ struct ti_sci_ops { · 4 unmodified lines
469 struct ti_sci_rm_ringacc_ops rm_ring_ops;499 struct ti_sci_rm_ringacc_ops rm_ring_ops;
470 struct ti_sci_rm_psil_ops rm_psil_ops;500 struct ti_sci_rm_psil_ops rm_psil_ops;
471 struct ti_sci_rm_udmap_ops rm_udmap_ops;501 struct ti_sci_rm_udmap_ops rm_udmap_ops;
502 struct ti_sci_proc_ops proc_ops;
472};503};
473 504
474/**505/**

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t