drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h
Source file repositories/reference/linux-study-clean/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/crypto/marvell/octeontx/otx_cptpf_ucode.h- Extension
.h- Size
- 5484 bytes
- Lines
- 179
- 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.hotx_cpt_hw_types.h
Detected Declarations
struct otx_cpt_bitmapstruct otx_cpt_enginesstruct otx_cpt_ucode_ver_numstruct otx_cpt_ucode_hdrstruct otx_cpt_ucodestruct tar_ucode_info_tstruct otx_cpt_engs_availablestruct otx_cpt_engs_rsvdstruct otx_cpt_mirror_infostruct otx_cpt_eng_grp_infostruct otx_cpt_eng_grpsenum otx_cpt_ucode_type
Annotated Snippet
struct otx_cpt_bitmap {
unsigned long bits[OTX_CPT_ENGS_BITMASK_LEN];
int size;
};
struct otx_cpt_engines {
int type;
int count;
};
/* Microcode version number */
struct otx_cpt_ucode_ver_num {
u8 nn;
u8 xx;
u8 yy;
u8 zz;
};
struct otx_cpt_ucode_hdr {
struct otx_cpt_ucode_ver_num ver_num;
u8 ver_str[OTX_CPT_UCODE_VER_STR_SZ];
__be32 code_length;
u32 padding[3];
};
struct otx_cpt_ucode {
u8 ver_str[OTX_CPT_UCODE_VER_STR_SZ];/*
* ucode version in readable format
*/
struct otx_cpt_ucode_ver_num ver_num;/* ucode version number */
char filename[OTX_CPT_UCODE_NAME_LENGTH]; /* ucode filename */
dma_addr_t dma; /* phys address of ucode image */
dma_addr_t align_dma; /* aligned phys address of ucode image */
void *va; /* virt address of ucode image */
void *align_va; /* aligned virt address of ucode image */
u32 size; /* ucode image size */
int type; /* ucode image type SE or AE */
};
struct tar_ucode_info_t {
struct list_head list;
struct otx_cpt_ucode ucode;/* microcode information */
const u8 *ucode_ptr; /* pointer to microcode in tar archive */
};
/* Maximum and current number of engines available for all engine groups */
struct otx_cpt_engs_available {
int max_se_cnt;
int max_ae_cnt;
int se_cnt;
int ae_cnt;
};
/* Engines reserved to an engine group */
struct otx_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 otx_cpt_ucode *ucode; /* ucode used by these engines */
};
struct otx_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 otx_cpt_eng_grp_info {
struct otx_cpt_eng_grps *g; /* pointer to engine_groups structure */
struct device_attribute info_attr; /* group info entry attr */
/* engines attached */
struct otx_cpt_engs_rsvd engs[OTX_CPT_MAX_ETYPES_PER_GRP];
/* Microcode information */
struct otx_cpt_ucode ucode[OTX_CPT_MAX_ETYPES_PER_GRP];
/* sysfs info entry name */
char sysfs_info_name[OTX_CPT_UCODE_NAME_LENGTH];
/* engine group mirroring information */
struct otx_cpt_mirror_info mirror;
Annotation
- Immediate include surface: `linux/pci.h`, `linux/types.h`, `linux/module.h`, `otx_cpt_hw_types.h`.
- Detected declarations: `struct otx_cpt_bitmap`, `struct otx_cpt_engines`, `struct otx_cpt_ucode_ver_num`, `struct otx_cpt_ucode_hdr`, `struct otx_cpt_ucode`, `struct tar_ucode_info_t`, `struct otx_cpt_engs_available`, `struct otx_cpt_engs_rsvd`, `struct otx_cpt_mirror_info`, `struct otx_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.