drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.h
Source file repositories/reference/linux-study-clean/drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.h- Extension
.h- Size
- 5267 bytes
- Lines
- 173
- Domain
- Driver Families
- Bucket
- drivers/crypto
- 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/pci.hlinux/types.hlinux/module.hotx2_cpt_hw_types.hotx2_cpt_common.h
Detected Declarations
struct otx2_cpt_bitmapstruct otx2_cpt_enginesstruct otx2_cpt_ucode_ver_numstruct otx2_cpt_ucode_hdrstruct otx2_cpt_ucodestruct otx2_cpt_uc_info_tstruct otx2_cpt_engs_availablestruct otx2_cpt_engs_rsvdstruct otx2_cpt_mirror_infostruct otx2_cpt_eng_grp_infostruct otx2_cpt_eng_grpsstruct otx2_cptpf_devenum otx2_cpt_ucode_type
Annotated Snippet
struct otx2_cpt_bitmap {
unsigned long bits[OTX2_CPT_ENGS_BITMASK_LEN];
int size;
};
struct otx2_cpt_engines {
int type;
int count;
};
/* Microcode version number */
struct otx2_cpt_ucode_ver_num {
u8 nn;
u8 xx;
u8 yy;
u8 zz;
};
struct otx2_cpt_ucode_hdr {
struct otx2_cpt_ucode_ver_num ver_num;
u8 ver_str[OTX2_CPT_UCODE_VER_STR_SZ];
__be32 code_length;
u32 padding[3];
};
struct otx2_cpt_ucode {
u8 ver_str[OTX2_CPT_UCODE_VER_STR_SZ + 1];/*
* ucode version in readable
* format
*/
struct otx2_cpt_ucode_ver_num ver_num;/* ucode version number */
char filename[OTX2_CPT_NAME_LENGTH];/* ucode filename */
dma_addr_t dma; /* phys address of ucode image */
void *va; /* virt address of ucode image */
u32 size; /* ucode image size */
int type; /* ucode image type SE, IE, AE or SE+IE */
};
struct otx2_cpt_uc_info_t {
struct list_head list;
struct otx2_cpt_ucode ucode;/* microcode information */
const struct firmware *fw;
};
/* Maximum and current number of engines available for all engine groups */
struct otx2_cpt_engs_available {
int max_se_cnt;
int max_ie_cnt;
int max_ae_cnt;
int se_cnt;
int ie_cnt;
int ae_cnt;
};
/* Engines reserved to an engine group */
struct otx2_cpt_engs_rsvd {
int type; /* engine type */
int count; /* number of engines attached */
int offset; /* constant offset of engine type in the bitmap */
unsigned long *bmap; /* attached engines bitmap */
struct otx2_cpt_ucode *ucode; /* ucode used by these engines */
};
struct otx2_cpt_mirror_info {
int is_ena; /*
* is mirroring enabled, it is set only for engine
* group which mirrors another engine group
*/
int idx; /*
* index of engine group which is mirrored by this
* group, set only for engine group which mirrors
* another group
*/
int ref_count; /*
* number of times this engine group is mirrored by
* other groups, this is set only for engine group
* which is mirrored by other group(s)
*/
};
struct otx2_cpt_eng_grp_info {
struct otx2_cpt_eng_grps *g; /* pointer to engine_groups structure */
/* engines attached */
struct otx2_cpt_engs_rsvd engs[OTX2_CPT_MAX_ETYPES_PER_GRP];
/* ucodes information */
struct otx2_cpt_ucode ucode[OTX2_CPT_MAX_ETYPES_PER_GRP];
/* engine group mirroring information */
struct otx2_cpt_mirror_info mirror;
int idx; /* engine group index */
bool is_enabled; /*
Annotation
- Immediate include surface: `linux/pci.h`, `linux/types.h`, `linux/module.h`, `otx2_cpt_hw_types.h`, `otx2_cpt_common.h`.
- Detected declarations: `struct otx2_cpt_bitmap`, `struct otx2_cpt_engines`, `struct otx2_cpt_ucode_ver_num`, `struct otx2_cpt_ucode_hdr`, `struct otx2_cpt_ucode`, `struct otx2_cpt_uc_info_t`, `struct otx2_cpt_engs_available`, `struct otx2_cpt_engs_rsvd`, `struct otx2_cpt_mirror_info`, `struct otx2_cpt_eng_grp_info`.
- Atlas domain: Driver Families / drivers/crypto.
- 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.