include/linux/mtd/cfi.h
Source file repositories/reference/linux-study-clean/include/linux/mtd/cfi.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/mtd/cfi.h- Extension
.h- Size
- 10123 bytes
- Lines
- 388
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/delay.hlinux/types.hlinux/bug.hlinux/interrupt.hlinux/mtd/flashchip.hlinux/mtd/map.hlinux/mtd/cfi_endian.hlinux/mtd/xip.h
Detected Declarations
struct cfi_identstruct cfi_extquerystruct cfi_pri_intelextstruct cfi_intelext_otpinfostruct cfi_intelext_blockinfostruct cfi_intelext_regioninfostruct cfi_intelext_programming_regioninfostruct cfi_pri_amdstdstruct cfi_pri_atmelstruct cfi_pri_querystruct cfi_bri_querystruct cfi_privatestruct cfi_fixupfunction cfi_interleavefunction cfi_interleave_supportedfunction cfi_read_queryfunction cfi_read_query16
Annotated Snippet
struct cfi_ident {
uint8_t qry[3];
uint16_t P_ID;
uint16_t P_ADR;
uint16_t A_ID;
uint16_t A_ADR;
uint8_t VccMin;
uint8_t VccMax;
uint8_t VppMin;
uint8_t VppMax;
uint8_t WordWriteTimeoutTyp;
uint8_t BufWriteTimeoutTyp;
uint8_t BlockEraseTimeoutTyp;
uint8_t ChipEraseTimeoutTyp;
uint8_t WordWriteTimeoutMax;
uint8_t BufWriteTimeoutMax;
uint8_t BlockEraseTimeoutMax;
uint8_t ChipEraseTimeoutMax;
uint8_t DevSize;
uint16_t InterfaceDesc;
uint16_t MaxBufWriteSize;
uint8_t NumEraseRegions;
uint32_t EraseRegionInfo[]; /* Not host ordered */
} __packed;
/* Extended Query Structure for both PRI and ALT */
struct cfi_extquery {
uint8_t pri[3];
uint8_t MajorVersion;
uint8_t MinorVersion;
} __packed;
/* Vendor-Specific PRI for Intel/Sharp Extended Command Set (0x0001) */
struct cfi_pri_intelext {
uint8_t pri[3];
uint8_t MajorVersion;
uint8_t MinorVersion;
uint32_t FeatureSupport; /* if bit 31 is set then an additional uint32_t feature
block follows - FIXME - not currently supported */
uint8_t SuspendCmdSupport;
uint16_t BlkStatusRegMask;
uint8_t VccOptimal;
uint8_t VppOptimal;
uint8_t NumProtectionFields;
uint16_t ProtRegAddr;
uint8_t FactProtRegSize;
uint8_t UserProtRegSize;
uint8_t extra[];
} __packed;
struct cfi_intelext_otpinfo {
uint32_t ProtRegAddr;
uint16_t FactGroups;
uint8_t FactProtRegSize;
uint16_t UserGroups;
uint8_t UserProtRegSize;
} __packed;
struct cfi_intelext_blockinfo {
uint16_t NumIdentBlocks;
uint16_t BlockSize;
uint16_t MinBlockEraseCycles;
uint8_t BitsPerCell;
uint8_t BlockCap;
} __packed;
struct cfi_intelext_regioninfo {
uint16_t NumIdentPartitions;
uint8_t NumOpAllowed;
uint8_t NumOpAllowedSimProgMode;
uint8_t NumOpAllowedSimEraMode;
uint8_t NumBlockTypes;
struct cfi_intelext_blockinfo BlockTypes[1];
} __packed;
struct cfi_intelext_programming_regioninfo {
uint8_t ProgRegShift;
uint8_t Reserved1;
uint8_t ControlValid;
uint8_t Reserved2;
uint8_t ControlInvalid;
uint8_t Reserved3;
} __packed;
/* Vendor-Specific PRI for AMD/Fujitsu Extended Command Set (0x0002) */
struct cfi_pri_amdstd {
uint8_t pri[3];
Annotation
- Immediate include surface: `linux/delay.h`, `linux/types.h`, `linux/bug.h`, `linux/interrupt.h`, `linux/mtd/flashchip.h`, `linux/mtd/map.h`, `linux/mtd/cfi_endian.h`, `linux/mtd/xip.h`.
- Detected declarations: `struct cfi_ident`, `struct cfi_extquery`, `struct cfi_pri_intelext`, `struct cfi_intelext_otpinfo`, `struct cfi_intelext_blockinfo`, `struct cfi_intelext_regioninfo`, `struct cfi_intelext_programming_regioninfo`, `struct cfi_pri_amdstd`, `struct cfi_pri_atmel`, `struct cfi_pri_query`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.