drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
Source file repositories/reference/linux-study-clean/drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/ipu7/abi/ipu7_fw_boot_abi.h- Extension
.h- Size
- 6424 bytes
- Lines
- 164
- Domain
- Driver Families
- Bucket
- drivers/staging
- 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
ipu7_fw_common_abi.hipu7_fw_syscom_abi.h
Detected Declarations
struct ia_gofo_logger_configstruct ia_gofo_boot_configstruct ia_gofo_secondary_boot_configenum ia_gofo_buttress_reg_idenum ia_gofo_boot_uc_tile_frequency_unitsenum ia_gofo_boot_state
Annotated Snippet
struct ia_gofo_logger_config {
u8 use_source_severity;
u8 source_severity[IA_GOFO_FWLOG_MAX_LOGGER_SOURCES];
u8 use_channels_enable_bitmask;
u8 channels_enable_bitmask;
u8 padding[1];
ia_gofo_addr_t hw_printf_buffer_base_addr;
u32 hw_printf_buffer_size_bytes;
};
#pragma pack(push, 1)
#define IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX_PER_APP \
((u32)IA_GOFO_FW_BOOT_ID_MAX)
#define IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_IS_OFFSET (0U)
#define IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_PS_OFFSET \
((IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_IS_OFFSET) + \
(u32)(IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX_PER_APP))
#define IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_PRIMARY_OFFSET (0U)
#define IA_GOFO_CCG_IPU_BUTTRESS_FW_BOOT_PARAMS_SECONDARY_OFFSET (0x3000 / 4U)
#define IA_GOFO_HKR_IPU_BUTTRESS_FW_BOOT_PARAMS_SECONDARY_OFFSET \
(IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX_PER_APP * 2U)
#define IA_GOFO_HKR_HIF_BUTTRESS_FW_BOOT_PARAMS_SECONDARY_OFFSET \
(IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX_PER_APP)
#define IA_GOFO_CCG_IPU_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX \
(IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX_PER_APP * 4U)
#define IA_GOFO_HKR_IPU_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX \
(IA_GOFO_BUTTRESS_FW_BOOT_PARAMS_MAX_REG_IDX_PER_APP * 4U)
#define IA_GOFO_BOOT_RESERVED_SIZE (58U)
#define IA_GOFO_BOOT_SECONDARY_RESERVED_SIZE (IA_GOFO_BOOT_RESERVED_SIZE)
#define IA_GOFO_BOOT_SECONDARY_RESERVED_FIELDS \
(sizeof(ia_gofo_addr_t) + sizeof(ia_gofo_addr_t) + sizeof(u32))
enum ia_gofo_buttress_reg_id {
IA_GOFO_FW_BOOT_CONFIG_ID = 0,
IA_GOFO_FW_BOOT_STATE_ID = 1,
IA_GOFO_FW_BOOT_RESERVED1_ID = IA_GOFO_FW_BOOT_STATE_ID,
IA_GOFO_FW_BOOT_SYSCOM_QUEUE_INDICES_BASE_ID = 2,
IA_GOFO_FW_BOOT_UNTRUSTED_ADDR_MIN_ID = 3,
IA_GOFO_FW_BOOT_RESERVED0_ID = IA_GOFO_FW_BOOT_UNTRUSTED_ADDR_MIN_ID,
IA_GOFO_FW_BOOT_MESSAGING_VERSION_ID = 4,
IA_GOFO_FW_BOOT_ID_MAX
};
enum ia_gofo_boot_uc_tile_frequency_units {
IA_GOFO_FW_BOOT_UC_FREQUENCY_UNITS_MHZ = 0,
IA_GOFO_FW_BOOT_UC_FREQUENCY_UNITS_HZ = 1,
IA_GOFO_FW_BOOT_UC_FREQUENCY_UNITS_N
};
#define IA_GOFO_FW_BOOT_STATE_IS_CRITICAL(boot_state) \
(0xdead0000 == ((boot_state) & 0xffff0000))
struct ia_gofo_boot_config {
u32 length;
struct ia_gofo_version_s config_version;
struct ia_gofo_msg_version_list client_version_support;
ia_gofo_addr_t pkg_dir;
ia_gofo_addr_t subsys_config;
u32 uc_tile_frequency;
u16 checksum;
u8 uc_tile_frequency_units;
u8 padding[1];
u32 reserved[IA_GOFO_BOOT_RESERVED_SIZE];
struct syscom_config_s syscom_context_config;
};
struct ia_gofo_secondary_boot_config {
u32 length;
struct ia_gofo_version_s config_version;
struct ia_gofo_msg_version_list client_version_support;
u8 reserved1[IA_GOFO_BOOT_SECONDARY_RESERVED_FIELDS];
u16 checksum;
u8 padding[2];
u32 reserved2[IA_GOFO_BOOT_SECONDARY_RESERVED_SIZE];
struct syscom_config_s syscom_context_config;
};
#pragma pack(pop)
#define IA_GOFO_WDT_TIMEOUT_ERR 0xdead0401
#define IA_GOFO_MEM_FATAL_DME_ERR 0xdead0801
#define IA_GOFO_MEM_UNCORRECTABLE_LOCAL_ERR 0xdead0802
#define IA_GOFO_MEM_UNCORRECTABLE_DIRTY_ERR 0xdead0803
#define IA_GOFO_MEM_UNCORRECTABLE_DTAG_ERR 0xdead0804
#define IA_GOFO_MEM_UNCORRECTABLE_CACHE_ERR 0xdead0805
#define IA_GOFO_DOUBLE_EXCEPTION_ERR 0xdead0806
#define IA_GOFO_BIST_DMEM_FAULT_DETECTION_ERR 0xdead1000
#define IA_GOFO_BIST_DATA_INTEGRITY_FAILURE 0xdead1010
Annotation
- Immediate include surface: `ipu7_fw_common_abi.h`, `ipu7_fw_syscom_abi.h`.
- Detected declarations: `struct ia_gofo_logger_config`, `struct ia_gofo_boot_config`, `struct ia_gofo_secondary_boot_config`, `enum ia_gofo_buttress_reg_id`, `enum ia_gofo_boot_uc_tile_frequency_units`, `enum ia_gofo_boot_state`.
- Atlas domain: Driver Families / drivers/staging.
- 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.