drivers/scsi/mpt3sas/mpi/mpi2_image.h
Source file repositories/reference/linux-study-clean/drivers/scsi/mpt3sas/mpi/mpi2_image.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/scsi/mpt3sas/mpi/mpi2_image.h- Extension
.h- Size
- 19390 bytes
- Lines
- 503
- Domain
- Driver Families
- Bucket
- drivers/scsi
- 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
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef MPI2_IMAGE_H
#define MPI2_IMAGE_H
/*FW Image Header */
typedef struct _MPI2_FW_IMAGE_HEADER {
U32 Signature; /*0x00 */
U32 Signature0; /*0x04 */
U32 Signature1; /*0x08 */
U32 Signature2; /*0x0C */
MPI2_VERSION_UNION MPIVersion; /*0x10 */
MPI2_VERSION_UNION FWVersion; /*0x14 */
MPI2_VERSION_UNION NVDATAVersion; /*0x18 */
MPI2_VERSION_UNION PackageVersion; /*0x1C */
U16 VendorID; /*0x20 */
U16 ProductID; /*0x22 */
U16 ProtocolFlags; /*0x24 */
U16 Reserved26; /*0x26 */
U32 IOCCapabilities; /*0x28 */
U32 ImageSize; /*0x2C */
U32 NextImageHeaderOffset; /*0x30 */
U32 Checksum; /*0x34 */
U32 Reserved38; /*0x38 */
U32 Reserved3C; /*0x3C */
U32 Reserved40; /*0x40 */
U32 Reserved44; /*0x44 */
U32 Reserved48; /*0x48 */
U32 Reserved4C; /*0x4C */
U32 Reserved50; /*0x50 */
U32 Reserved54; /*0x54 */
U32 Reserved58; /*0x58 */
U32 Reserved5C; /*0x5C */
U32 BootFlags; /*0x60 */
U32 FirmwareVersionNameWhat; /*0x64 */
U8 FirmwareVersionName[32]; /*0x68 */
U32 VendorNameWhat; /*0x88 */
U8 VendorName[32]; /*0x8C */
U32 PackageNameWhat; /*0x88 */
U8 PackageName[32]; /*0x8C */
U32 ReservedD0; /*0xD0 */
U32 ReservedD4; /*0xD4 */
U32 ReservedD8; /*0xD8 */
U32 ReservedDC; /*0xDC */
U32 ReservedE0; /*0xE0 */
U32 ReservedE4; /*0xE4 */
U32 ReservedE8; /*0xE8 */
U32 ReservedEC; /*0xEC */
U32 ReservedF0; /*0xF0 */
U32 ReservedF4; /*0xF4 */
U32 ReservedF8; /*0xF8 */
U32 ReservedFC; /*0xFC */
} MPI2_FW_IMAGE_HEADER, *PTR_MPI2_FW_IMAGE_HEADER,
Mpi2FWImageHeader_t, *pMpi2FWImageHeader_t;
/*Signature field */
#define MPI2_FW_HEADER_SIGNATURE_OFFSET (0x00)
#define MPI2_FW_HEADER_SIGNATURE_MASK (0xFF000000)
#define MPI2_FW_HEADER_SIGNATURE (0xEA000000)
#define MPI26_FW_HEADER_SIGNATURE (0xEB000000)
/*Signature0 field */
#define MPI2_FW_HEADER_SIGNATURE0_OFFSET (0x04)
#define MPI2_FW_HEADER_SIGNATURE0 (0x5AFAA55A)
/*Last byte is defined by architecture */
#define MPI26_FW_HEADER_SIGNATURE0_BASE (0x5AEAA500)
#define MPI26_FW_HEADER_SIGNATURE0_ARC_0 (0x5A)
#define MPI26_FW_HEADER_SIGNATURE0_ARC_1 (0x00)
#define MPI26_FW_HEADER_SIGNATURE0_ARC_2 (0x01)
/*legacy (0x5AEAA55A) */
#define MPI26_FW_HEADER_SIGNATURE0_ARC_3 (0x02)
#define MPI26_FW_HEADER_SIGNATURE0 \
(MPI26_FW_HEADER_SIGNATURE0_BASE+MPI26_FW_HEADER_SIGNATURE0_ARC_0)
#define MPI26_FW_HEADER_SIGNATURE0_3516 \
(MPI26_FW_HEADER_SIGNATURE0_BASE+MPI26_FW_HEADER_SIGNATURE0_ARC_1)
#define MPI26_FW_HEADER_SIGNATURE0_4008 \
(MPI26_FW_HEADER_SIGNATURE0_BASE+MPI26_FW_HEADER_SIGNATURE0_ARC_3)
/*Signature1 field */
#define MPI2_FW_HEADER_SIGNATURE1_OFFSET (0x08)
#define MPI2_FW_HEADER_SIGNATURE1 (0xA55AFAA5)
#define MPI26_FW_HEADER_SIGNATURE1 (0xA55AEAA5)
/*Signature2 field */
#define MPI2_FW_HEADER_SIGNATURE2_OFFSET (0x0C)
#define MPI2_FW_HEADER_SIGNATURE2 (0x5AA55AFA)
#define MPI26_FW_HEADER_SIGNATURE2 (0x5AA55AEA)
/*defines for using the ProductID field */
#define MPI2_FW_HEADER_PID_TYPE_MASK (0xF000)
#define MPI2_FW_HEADER_PID_TYPE_SAS (0x2000)
Annotation
- Atlas domain: Driver Families / drivers/scsi.
- 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.