drivers/gpu/drm/nouveau/include/nvfw/acr.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/nouveau/include/nvfw/acr.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/nouveau/include/nvfw/acr.h
Extension
.h
Size
5755 bytes
Lines
238
Domain
Driver Families
Bucket
drivers/gpu
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct wpr_header {
#define WPR_HEADER_V0_FALCON_ID_INVALID                              0xffffffff
	u32 falcon_id;
	u32 lsb_offset;
	u32 bootstrap_owner;
	u32 lazy_bootstrap;
#define WPR_HEADER_V0_STATUS_NONE                                             0
#define WPR_HEADER_V0_STATUS_COPY                                             1
#define WPR_HEADER_V0_STATUS_VALIDATION_CODE_FAILED                           2
#define WPR_HEADER_V0_STATUS_VALIDATION_DATA_FAILED                           3
#define WPR_HEADER_V0_STATUS_VALIDATION_DONE                                  4
#define WPR_HEADER_V0_STATUS_VALIDATION_SKIPPED                               5
#define WPR_HEADER_V0_STATUS_BOOTSTRAP_READY                                  6
	u32 status;
};

void wpr_header_dump(struct nvkm_subdev *, const struct wpr_header *);

struct wpr_header_v1 {
#define WPR_HEADER_V1_FALCON_ID_INVALID                              0xffffffff
	u32 falcon_id;
	u32 lsb_offset;
	u32 bootstrap_owner;
	u32 lazy_bootstrap;
	u32 bin_version;
#define WPR_HEADER_V1_STATUS_NONE                                             0
#define WPR_HEADER_V1_STATUS_COPY                                             1
#define WPR_HEADER_V1_STATUS_VALIDATION_CODE_FAILED                           2
#define WPR_HEADER_V1_STATUS_VALIDATION_DATA_FAILED                           3
#define WPR_HEADER_V1_STATUS_VALIDATION_DONE                                  4
#define WPR_HEADER_V1_STATUS_VALIDATION_SKIPPED                               5
#define WPR_HEADER_V1_STATUS_BOOTSTRAP_READY                                  6
#define WPR_HEADER_V1_STATUS_REVOCATION_CHECK_FAILED                          7
	u32 status;
};

void wpr_header_v1_dump(struct nvkm_subdev *, const struct wpr_header_v1 *);

struct wpr_generic_header {
#define WPR_GENERIC_HEADER_ID_LSF_UCODE_DESC     1
#define WPR_GENERIC_HEADER_ID_LSF_WPR_HEADER     2
#define WPR_GENERIC_HEADER_ID_LSF_SHARED_SUB_WPR 3
#define WPR_GENERIC_HEADER_ID_LSF_LSB_HEADER     4
	u16 identifier;
	u16 version;
	u32 size;
};

struct wpr_header_v2 {
	struct wpr_generic_header hdr;
	struct wpr_header_v1 wpr;
};

void wpr_header_v2_dump(struct nvkm_subdev *, const struct wpr_header_v2 *);

struct lsf_signature {
	u8 prd_keys[2][16];
	u8 dbg_keys[2][16];
	u32 b_prd_present;
	u32 b_dbg_present;
	u32 falcon_id;
};

struct lsf_signature_v1 {
	u8 prd_keys[2][16];
	u8 dbg_keys[2][16];
	u32 b_prd_present;
	u32 b_dbg_present;
	u32 falcon_id;
	u32 supports_versioning;
	u32 version;
	u32 depmap_count;
	u8 depmap[11/*LSF_LSB_DEPMAP_SIZE*/ * 2 * 4];
	u8 kdf[16];
};

struct lsb_header_tail {
	u32 ucode_off;
	u32 ucode_size;
	u32 data_size;
	u32 bl_code_size;
	u32 bl_imem_off;
	u32 bl_data_off;
	u32 bl_data_size;
	u32 app_code_off;
	u32 app_code_size;
	u32 app_data_off;
	u32 app_data_size;
	u32 flags;
};

Annotation

Implementation Notes