Home
last modified time | relevance | path

Searched full:pxp (Results 1 – 25 of 96) sorted by relevance

1234

/Linux-v6.6/drivers/gpu/drm/i915/pxp/
Dintel_pxp.c23 * DOC: PXP
25 * PXP (Protected Xe Path) is a feature available in Gen12 and newer platforms.
29 * Objects can opt-in to PXP encryption at creation time via the
35 * Protected objects are tied to a pxp session; currently we only support one
45 * Some of the PXP setup operations are performed by the Management Engine,
50 bool intel_pxp_is_supported(const struct intel_pxp *pxp) in intel_pxp_is_supported() argument
52 return IS_ENABLED(CONFIG_DRM_I915_PXP) && pxp; in intel_pxp_is_supported()
55 bool intel_pxp_is_enabled(const struct intel_pxp *pxp) in intel_pxp_is_enabled() argument
57 return IS_ENABLED(CONFIG_DRM_I915_PXP) && pxp && pxp->ce; in intel_pxp_is_enabled()
60 bool intel_pxp_is_active(const struct intel_pxp *pxp) in intel_pxp_is_active() argument
[all …]
Dintel_pxp_session.c18 static bool intel_pxp_session_is_in_play(struct intel_pxp *pxp, u32 id) in intel_pxp_session_is_in_play() argument
20 struct intel_uncore *uncore = pxp->ctrl_gt->uncore; in intel_pxp_session_is_in_play()
26 sip = intel_uncore_read(uncore, KCR_SIP(pxp->kcr_base)); in intel_pxp_session_is_in_play()
31 static int pxp_wait_for_session_state(struct intel_pxp *pxp, u32 id, bool in_play) in pxp_wait_for_session_state() argument
33 struct intel_uncore *uncore = pxp->ctrl_gt->uncore; in pxp_wait_for_session_state()
44 KCR_SIP(pxp->kcr_base), in pxp_wait_for_session_state()
54 static int pxp_create_arb_session(struct intel_pxp *pxp) in pxp_create_arb_session() argument
56 struct intel_gt *gt = pxp->ctrl_gt; in pxp_create_arb_session()
59 pxp->arb_is_valid = false; in pxp_create_arb_session()
61 if (intel_pxp_session_is_in_play(pxp, ARB_SESSION)) { in pxp_create_arb_session()
[all …]
Dintel_pxp_tee.c54 static int intel_pxp_tee_io_message(struct intel_pxp *pxp, in intel_pxp_tee_io_message() argument
59 struct drm_i915_private *i915 = pxp->ctrl_gt->i915; in intel_pxp_tee_io_message()
60 struct i915_pxp_component *pxp_component = pxp->pxp_component; in intel_pxp_tee_io_message()
63 mutex_lock(&pxp->tee_mutex); in intel_pxp_tee_io_message()
76 drm_err(&i915->drm, "Failed to send PXP TEE message\n"); in intel_pxp_tee_io_message()
82 drm_err(&i915->drm, "Failed to receive PXP TEE message\n"); in intel_pxp_tee_io_message()
88 "Failed to receive PXP TEE message due to unexpected output size\n"); in intel_pxp_tee_io_message()
98 mutex_unlock(&pxp->tee_mutex); in intel_pxp_tee_io_message()
102 int intel_pxp_tee_stream_message(struct intel_pxp *pxp, in intel_pxp_tee_stream_message() argument
109 struct drm_i915_private *i915 = pxp->ctrl_gt->i915; in intel_pxp_tee_stream_message()
[all …]
Dintel_pxp_pm.c14 void intel_pxp_suspend_prepare(struct intel_pxp *pxp) in intel_pxp_suspend_prepare() argument
16 if (!intel_pxp_is_enabled(pxp)) in intel_pxp_suspend_prepare()
19 intel_pxp_end(pxp); in intel_pxp_suspend_prepare()
21 intel_pxp_invalidate(pxp); in intel_pxp_suspend_prepare()
24 void intel_pxp_suspend(struct intel_pxp *pxp) in intel_pxp_suspend() argument
28 if (!intel_pxp_is_enabled(pxp)) in intel_pxp_suspend()
31 with_intel_runtime_pm(&pxp->ctrl_gt->i915->runtime_pm, wakeref) { in intel_pxp_suspend()
32 intel_pxp_fini_hw(pxp); in intel_pxp_suspend()
33 pxp->hw_state_invalidated = false; in intel_pxp_suspend()
37 void intel_pxp_resume_complete(struct intel_pxp *pxp) in intel_pxp_resume_complete() argument
[all …]
Dintel_pxp_irq.c21 * intel_pxp_irq_handler - Handles PXP interrupts.
22 * @pxp: pointer to pxp struct
25 void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir) in intel_pxp_irq_handler() argument
29 if (GEM_WARN_ON(!intel_pxp_is_enabled(pxp))) in intel_pxp_irq_handler()
32 gt = pxp->ctrl_gt; in intel_pxp_irq_handler()
41 /* immediately mark PXP as inactive on termination */ in intel_pxp_irq_handler()
42 intel_pxp_mark_termination_in_progress(pxp); in intel_pxp_irq_handler()
43 pxp->session_events |= PXP_TERMINATION_REQUEST | PXP_INVAL_REQUIRED; in intel_pxp_irq_handler()
47 pxp->session_events |= PXP_TERMINATION_COMPLETE; in intel_pxp_irq_handler()
49 if (pxp->session_events) in intel_pxp_irq_handler()
[all …]
Dintel_pxp_gsccs.c52 gsccs_send_message(struct intel_pxp *pxp, in gsccs_send_message() argument
58 struct intel_gt *gt = pxp->ctrl_gt; in gsccs_send_message()
60 struct gsccs_session_resources *exec_res = &pxp->gsccs_res; in gsccs_send_message()
80 mutex_lock(&pxp->tee_mutex); in gsccs_send_message()
116 drm_err(&i915->drm, "failed to send gsc PXP msg (%d)\n", ret); in gsccs_send_message()
122 drm_err(&i915->drm, "gsc PXP reply with invalid validity marker\n"); in gsccs_send_message()
127 drm_dbg(&i915->drm, "gsc PXP reply status has error = 0x%08x\n", in gsccs_send_message()
133 drm_dbg(&i915->drm, "gsc PXP reply is busy\n"); in gsccs_send_message()
147 drm_warn(&i915->drm, "caller with insufficient PXP reply size %u (%zu)\n", in gsccs_send_message()
159 mutex_unlock(&pxp->tee_mutex); in gsccs_send_message()
[all …]
Dintel_pxp_debugfs.c23 struct intel_pxp *pxp = m->private; in pxp_info_show() local
26 if (!intel_pxp_is_enabled(pxp)) { in pxp_info_show()
27 drm_printf(&p, "pxp disabled\n"); in pxp_info_show()
31 drm_printf(&p, "active: %s\n", str_yes_no(intel_pxp_is_active(pxp))); in pxp_info_show()
32 drm_printf(&p, "instance counter: %u\n", pxp->key_instance); in pxp_info_show()
47 struct intel_pxp *pxp = data; in pxp_terminate_set() local
48 struct intel_gt *gt = pxp->ctrl_gt; in pxp_terminate_set()
51 if (!intel_pxp_is_active(pxp)) in pxp_terminate_set()
56 intel_pxp_irq_handler(pxp, GEN12_DISPLAY_PXP_STATE_TERMINATED_INTERRUPT); in pxp_terminate_set()
59 timeout_ms = intel_pxp_get_backend_timeout_ms(pxp); in pxp_terminate_set()
[all …]
Dintel_pxp.h16 bool intel_pxp_is_supported(const struct intel_pxp *pxp);
17 bool intel_pxp_is_enabled(const struct intel_pxp *pxp);
18 bool intel_pxp_is_active(const struct intel_pxp *pxp);
23 void intel_pxp_init_hw(struct intel_pxp *pxp);
24 void intel_pxp_fini_hw(struct intel_pxp *pxp);
26 void intel_pxp_mark_termination_in_progress(struct intel_pxp *pxp);
27 void intel_pxp_tee_end_arb_fw_session(struct intel_pxp *pxp, u32 arb_session_id);
29 int intel_pxp_get_readiness_status(struct intel_pxp *pxp);
30 int intel_pxp_get_backend_timeout_ms(struct intel_pxp *pxp);
31 int intel_pxp_start(struct intel_pxp *pxp);
[all …]
Dintel_pxp_pm.h12 void intel_pxp_suspend_prepare(struct intel_pxp *pxp);
13 void intel_pxp_suspend(struct intel_pxp *pxp);
14 void intel_pxp_resume_complete(struct intel_pxp *pxp);
15 void intel_pxp_runtime_suspend(struct intel_pxp *pxp);
17 static inline void intel_pxp_suspend_prepare(struct intel_pxp *pxp) in intel_pxp_suspend_prepare() argument
21 static inline void intel_pxp_suspend(struct intel_pxp *pxp) in intel_pxp_suspend() argument
25 static inline void intel_pxp_resume_complete(struct intel_pxp *pxp) in intel_pxp_resume_complete() argument
29 static inline void intel_pxp_runtime_suspend(struct intel_pxp *pxp) in intel_pxp_runtime_suspend() argument
33 static inline void intel_pxp_runtime_resume(struct intel_pxp *pxp) in intel_pxp_runtime_resume() argument
35 intel_pxp_resume_complete(pxp); in intel_pxp_runtime_resume()
Dintel_pxp_cmd_interface_43.h12 /* PXP-Cmd-Op definitions */
17 /* PXP-Packet sizes for MTL's GSCCS-HECI instruction */
20 /* PXP-Packet size for MTL's NEW_HUC_AUTH instruction */
23 /* PXP-Input-Packet: HUC Load and Authentication */
29 /* PXP-Input-Packet: HUC Auth-only */
36 /* PXP-Output-Packet: HUC Load and Authentication or Auth-only */
41 /* PXP-Input-Packet: Init PXP session */
44 /* header.stream_id fields for vesion 4.3 of Init PXP session: */
55 /* PXP-Input-Packet: Init PXP session */
Dintel_pxp_gsccs.h23 void intel_pxp_gsccs_fini(struct intel_pxp *pxp);
24 int intel_pxp_gsccs_init(struct intel_pxp *pxp);
26 int intel_pxp_gsccs_create_session(struct intel_pxp *pxp, int arb_session_id);
27 void intel_pxp_gsccs_end_arb_fw_session(struct intel_pxp *pxp, u32 arb_session_id);
30 static inline void intel_pxp_gsccs_fini(struct intel_pxp *pxp) in intel_pxp_gsccs_fini() argument
34 static inline int intel_pxp_gsccs_init(struct intel_pxp *pxp) in intel_pxp_gsccs_init() argument
41 bool intel_pxp_gsccs_is_ready_for_sessions(struct intel_pxp *pxp);
Dintel_pxp_irq.h23 void intel_pxp_irq_enable(struct intel_pxp *pxp);
24 void intel_pxp_irq_disable(struct intel_pxp *pxp);
25 void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir);
27 static inline void intel_pxp_irq_handler(struct intel_pxp *pxp, u16 iir) in intel_pxp_irq_handler() argument
31 static inline void intel_pxp_irq_enable(struct intel_pxp *pxp) in intel_pxp_irq_enable() argument
35 static inline void intel_pxp_irq_disable(struct intel_pxp *pxp) in intel_pxp_irq_disable() argument
Dintel_pxp_cmd_interface_42.h12 /* PXP-Opcode for Init Session */
15 /* PXP-Opcode for Invalidate Stream Key */
18 /* PXP-Input-Packet: Init Session (Arb-Session) */
26 /* PXP-Output-Packet: Init Session */
31 /* PXP-Input-Packet: Invalidate Stream Key */
37 /* PXP-Output-Packet: Invalidate Stream Key */
Dintel_pxp_huc.c17 int intel_pxp_huc_load_and_auth(struct intel_pxp *pxp) in intel_pxp_huc_load_and_auth() argument
28 if (!pxp || !pxp->pxp_component) in intel_pxp_huc_load_and_auth()
31 gt = pxp->ctrl_gt; in intel_pxp_huc_load_and_auth()
36 /* write the PXP message into the lmem (the sg list) */ in intel_pxp_huc_load_and_auth()
43 err = intel_pxp_tee_stream_message(pxp, client_id, fence_id, in intel_pxp_huc_load_and_auth()
Dintel_pxp_types.h20 * struct intel_pxp - pxp state
24 * @ctrl_gt: poiner to the tile that owns the controls for PXP subsystem assets that
61 * @pxp_component_added: track if the pxp component has been added.
66 /** @ce: kernel-owned context used for PXP operations */
89 /** @stream_cmd: LMEM obj used to send stream PXP commands to the GSC */
91 struct drm_i915_gem_object *obj; /* contains PXP command memory */
92 void *vaddr; /* virtual memory for PXP command */
Dintel_pxp_session.h14 void intel_pxp_session_management_init(struct intel_pxp *pxp);
15 void intel_pxp_terminate(struct intel_pxp *pxp, bool post_invalidation_needs_restart);
17 static inline void intel_pxp_session_management_init(struct intel_pxp *pxp) in intel_pxp_session_management_init() argument
21 static inline void intel_pxp_terminate(struct intel_pxp *pxp, bool post_invalidation_needs_restart) in intel_pxp_terminate() argument
Dintel_pxp_tee.h11 int intel_pxp_tee_component_init(struct intel_pxp *pxp);
12 void intel_pxp_tee_component_fini(struct intel_pxp *pxp);
14 int intel_pxp_tee_cmd_create_arb_session(struct intel_pxp *pxp,
17 int intel_pxp_tee_stream_message(struct intel_pxp *pxp,
Dintel_pxp_cmd.c18 /* stall until prior PXP and MFX/HCP/HUC objects are cmopleted */
27 /* pxp off */ in pxp_emit_session_selection()
37 /* pxp on */ in pxp_emit_session_selection()
97 int intel_pxp_terminate_session(struct intel_pxp *pxp, u32 id) in intel_pxp_terminate_session() argument
100 struct intel_context *ce = pxp->ce; in intel_pxp_terminate_session()
104 if (!intel_pxp_is_enabled(pxp)) in intel_pxp_terminate_session()
Dintel_pxp_debugfs.h13 void intel_pxp_debugfs_register(struct intel_pxp *pxp);
16 intel_pxp_debugfs_register(struct intel_pxp *pxp) in intel_pxp_debugfs_register() argument
/Linux-v6.6/Documentation/devicetree/bindings/media/
Dfsl,imx6ull-pxp.yaml5 $id: http://devicetree.org/schemas/media/fsl,imx6ull-pxp.yaml#
15 The Pixel Pipeline (PXP) is a memory-to-memory graphics processing engine
24 - fsl,imx6ul-pxp
25 - fsl,imx6ull-pxp
26 - fsl,imx7d-pxp
29 - fsl,imx6sll-pxp
30 - fsl,imx6sx-pxp
31 - const: fsl,imx6ull-pxp
62 - fsl,imx6sx-pxp
63 - fsl,imx6ul-pxp
[all …]
/Linux-v6.6/include/drm/
Di915_pxp_tee_interface.h14 * struct i915_pxp_component_ops - ops for PXP services.
16 * @send: sends data to PXP
17 * @receive: receives data from PXP
35 * drivers for the PXP services
36 * @tee_dev: device that provide the PXP service from TEE Bus.
/Linux-v6.6/drivers/misc/mei/pxp/
Dmei_pxp.c9 * The mei_pxp driver acts as a translation layer between PXP
10 * protocol implementer (I915) and ME FW by translating PXP
26 * mei_pxp_send_message() - Sends a PXP message to ME FW.
53 * mei_pxp_receive_message() - Receives a PXP message from ME FW.
139 * mei_pxp_component_match - compare function for matching mei pxp.
141 * The function checks if the driver is i915, the subcomponent is PXP
142 * and the grand parent of pxp and the parent of i915 are the same
147 * @data: compare data (mei pxp device)
260 MODULE_DESCRIPTION("MEI PXP");
DKconfig6 tristate "Intel PXP services of ME Interface"
10 MEI Support for PXP Services on Intel platforms.
12 Enables the ME FW services required for PXP support through
/Linux-v6.6/drivers/gpu/drm/i915/
DMakefile345 # Protected execution platform (PXP) support. Base support is required for HuC
347 pxp/intel_pxp.o \
348 pxp/intel_pxp_tee.o \
349 pxp/intel_pxp_huc.o
352 pxp/intel_pxp_cmd.o \
353 pxp/intel_pxp_debugfs.o \
354 pxp/intel_pxp_gsccs.o \
355 pxp/intel_pxp_irq.o \
356 pxp/intel_pxp_pm.o \
357 pxp/intel_pxp_session.o
/Linux-v6.6/drivers/net/ethernet/qlogic/qed/
Dqed_hw.c37 struct pxp_ptt_entry pxp; member
58 p_pool->ptts[i].pxp.offset = QED_BAR_INVALID_OFFSET; in qed_ptt_pool_alloc()
59 p_pool->ptts[i].pxp.pretend.control = 0; in qed_ptt_pool_alloc()
79 p_ptt->pxp.offset = QED_BAR_INVALID_OFFSET; in qed_ptt_invalidate()
143 return le32_to_cpu(p_ptt->pxp.offset) << 2; in qed_ptt_get_hw_addr()
174 p_ptt->pxp.offset = cpu_to_le32(new_hw_addr >> 2); in qed_ptt_set_win()
179 le32_to_cpu(p_ptt->pxp.offset)); in qed_ptt_set_win()
313 p_ptt->pxp.pretend.control = cpu_to_le16(control); in qed_fid_pretend()
314 p_ptt->pxp.pretend.fid.concrete_fid.fid = cpu_to_le16(fid); in qed_fid_pretend()
319 *(u32 *)&p_ptt->pxp.pretend); in qed_fid_pretend()
[all …]

1234