drivers/gpu/drm/xe/xe_uc_fw_types.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/xe/xe_uc_fw_types.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/xe/xe_uc_fw_types.h- Extension
.h- Size
- 5305 bytes
- Lines
- 156
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.h
Detected Declarations
struct xe_bostruct xe_uc_fw_versionstruct xe_uc_fwenum xe_uc_fw_statusenum xe_uc_fw_typeenum xe_uc_fw_version_types
Annotated Snippet
struct xe_uc_fw_version {
/** @branch: branch version of the FW (not always available) */
u16 branch;
/** @major: major version of the FW */
u16 major;
/** @minor: minor version of the FW */
u16 minor;
/** @patch: patch version of the FW */
u16 patch;
/** @build: build version of the FW (not always available) */
u16 build;
};
enum xe_uc_fw_version_types {
XE_UC_FW_VER_RELEASE,
XE_UC_FW_VER_COMPATIBILITY,
XE_UC_FW_VER_TYPE_COUNT
};
/**
* struct xe_uc_fw - Xe micro controller firmware
*/
struct xe_uc_fw {
/** @type: type uC firmware */
enum xe_uc_fw_type type;
union {
/** @status: firmware load status */
const enum xe_uc_fw_status status;
/**
* @__status: private firmware load status - only to be used
* by firmware loading code
*/
enum xe_uc_fw_status __status;
};
/** @path: path to uC firmware */
const char *path;
/** @user_overridden: user provided path to uC firmware via modparam */
bool user_overridden;
/**
* @full_ver_required: driver still under development and not ready
* for backward-compatible firmware. To be used only for **new**
* platforms, i.e. still under require_force_probe protection and not
* supported by i915.
*/
bool full_ver_required;
/** @size: size of uC firmware including css header */
size_t size;
/** @bo: Xe BO for uC firmware */
struct xe_bo *bo;
/** @has_gsc_headers: whether the FW image starts with GSC headers */
bool has_gsc_headers;
/*
* The firmware build process will generate a version header file with
* major and minor version defined. The versions are built into CSS
* header of firmware. The xe kernel driver set the minimal firmware
* version required per platform.
*/
/** @versions: FW versions wanted and found */
struct {
/** @versions.wanted: firmware version wanted by platform */
struct xe_uc_fw_version wanted;
/**
* @versions.wanted_type: type of firmware version wanted
* (release vs compatibility)
*/
enum xe_uc_fw_version_types wanted_type;
/** @versions.found: fw versions found in firmware blob */
struct xe_uc_fw_version found[XE_UC_FW_VER_TYPE_COUNT];
} versions;
/** @rsa_size: RSA size */
u32 rsa_size;
/** @ucode_size: micro kernel size */
u32 ucode_size;
/** @css_offset: offset within the blob at which the CSS is located */
u32 css_offset;
/** @private_data_size: size of private data found in uC css header */
u32 private_data_size;
/** @build_type: Firmware build type (see CSS_UKERNEL_INFO_BUILDTYPE for definitions) */
u32 build_type;
};
#endif
Annotation
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct xe_bo`, `struct xe_uc_fw_version`, `struct xe_uc_fw`, `enum xe_uc_fw_status`, `enum xe_uc_fw_type`, `enum xe_uc_fw_version_types`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.