-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
drm/xe/huc: HuC authentication via GSC
HuC authentication via GSC is performed by submitting the appropriate PXP packet to the GSC FW. This packet can trigger a "pending" reply from the FW, so we need to handle that and resubmit. Note that the auth via GSC can only be performed if the HuC has already been authenticated by the GuC. Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com> Cc: Alan Previn <alan.previn.teres.alexis@intel.com> Cc: John Harrison <John.C.Harrison@Intel.com> Cc: Vivaik Balasubrawmanian <vivaik.balasubrawmanian@intel.com> Reviewed-by: Vivaik Balasubrawmanian <vivaik.balasubrawmanian@intel.com> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
- Loading branch information
Daniele Ceraolo Spurio
authored and
Rodrigo Vivi
committed
Dec 21, 2023
1 parent
7ce5716
commit d8b1571
Showing
7 changed files
with
218 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
/* SPDX-License-Identifier: MIT */ | ||
/* | ||
* Copyright © 2023 Intel Corporation | ||
*/ | ||
|
||
#ifndef _ABI_GSC_PXP_COMMANDS_ABI_H | ||
#define _ABI_GSC_PXP_COMMANDS_ABI_H | ||
|
||
#include <linux/types.h> | ||
|
||
/* Heci client ID for PXP commands */ | ||
#define HECI_MEADDRESS_PXP 17 | ||
|
||
#define PXP_APIVER(x, y) (((x) & 0xFFFF) << 16 | ((y) & 0xFFFF)) | ||
|
||
/* | ||
* there are a lot of status codes for PXP, but we only define the cross-API | ||
* common ones that we actually can handle in the kernel driver. Other failure | ||
* codes should be printed to error msg for debug. | ||
*/ | ||
enum pxp_status { | ||
PXP_STATUS_SUCCESS = 0x0, | ||
PXP_STATUS_ERROR_API_VERSION = 0x1002, | ||
PXP_STATUS_NOT_READY = 0x100e, | ||
PXP_STATUS_PLATFCONFIG_KF1_NOVERIF = 0x101a, | ||
PXP_STATUS_PLATFCONFIG_KF1_BAD = 0x101f, | ||
PXP_STATUS_OP_NOT_PERMITTED = 0x4013 | ||
}; | ||
|
||
/* Common PXP FW message header */ | ||
struct pxp_cmd_header { | ||
u32 api_version; | ||
u32 command_id; | ||
union { | ||
u32 status; /* out */ | ||
u32 stream_id; /* in */ | ||
#define PXP_CMDHDR_EXTDATA_SESSION_VALID GENMASK(0, 0) | ||
#define PXP_CMDHDR_EXTDATA_APP_TYPE GENMASK(1, 1) | ||
#define PXP_CMDHDR_EXTDATA_SESSION_ID GENMASK(17, 2) | ||
}; | ||
/* Length of the message (excluding the header) */ | ||
u32 buffer_len; | ||
} __packed; | ||
|
||
#define PXP43_CMDID_NEW_HUC_AUTH 0x0000003F /* MTL+ */ | ||
|
||
/* PXP-Input-Packet: HUC Auth-only */ | ||
struct pxp43_new_huc_auth_in { | ||
struct pxp_cmd_header header; | ||
u64 huc_base_address; | ||
u32 huc_size; | ||
} __packed; | ||
|
||
/* PXP-Output-Packet: HUC Load and Authentication or Auth-only */ | ||
struct pxp43_huc_auth_out { | ||
struct pxp_cmd_header header; | ||
} __packed; | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters