#include "xe_huc.h"
#include <linux/delay.h>
#include <drm/drm_managed.h>
#include "abi/gsc_pxp_commands_abi.h"
#include "regs/xe_gsc_regs.h"
#include "regs/xe_guc_regs.h"
#include "xe_assert.h"
#include "xe_bo.h"
#include "xe_device.h"
#include "xe_force_wake.h"
#include "xe_gsc_submit.h"
#include "xe_gt.h"
#include "xe_gt_printk.h"
#include "xe_guc.h"
#include "xe_map.h"
#include "xe_mmio.h"
#include "xe_sriov.h"
#include "xe_uc_fw.h"
static struct xe_gt *
huc_to_gt(struct xe_huc *huc)
{ … }
static struct xe_device *
huc_to_xe(struct xe_huc *huc)
{ … }
static struct xe_guc *
huc_to_guc(struct xe_huc *huc)
{ … }
static void free_gsc_pkt(struct drm_device *drm, void *arg)
{ … }
#define PXP43_HUC_AUTH_INOUT_SIZE …
static int huc_alloc_gsc_pkt(struct xe_huc *huc)
{ … }
int xe_huc_init(struct xe_huc *huc)
{ … }
int xe_huc_init_post_hwconfig(struct xe_huc *huc)
{ … }
int xe_huc_upload(struct xe_huc *huc)
{ … }
#define huc_auth_msg_wr(xe_, map_, offset_, field_, val_) …
#define huc_auth_msg_rd(xe_, map_, offset_, field_) …
static u32 huc_emit_pxp_auth_msg(struct xe_device *xe, struct iosys_map *map,
u32 wr_offset, u32 huc_offset, u32 huc_size)
{ … }
static int huc_auth_via_gsccs(struct xe_huc *huc)
{ … }
static const struct { … } huc_auth_modes[XE_HUC_AUTH_TYPES_COUNT] = …;
bool xe_huc_is_authenticated(struct xe_huc *huc, enum xe_huc_auth_types type)
{ … }
int xe_huc_auth(struct xe_huc *huc, enum xe_huc_auth_types type)
{ … }
void xe_huc_sanitize(struct xe_huc *huc)
{ … }
void xe_huc_print_info(struct xe_huc *huc, struct drm_printer *p)
{ … }