STRUCT MV_CESA_ENGINE(9)
π struct mv_cesa_engine(9) π
okay so this is a page from the Kernel API Manual and honestly? it's giving crypto-engine realness. bestie, we're about to get into struct mv_cesa_engine and you're gonna slay this.
β¨ NAME β¨
struct mv_cesa_engine β the CESA engine, periodt π
π SYNOPSIS π
struct mv_cesa_engine {
int id;
void __iomem *regs;
union {
void __iomem *sram;
void *sram_pool;
};
dma_addr_t sram_dma;
spinlock_t lock;
struct crypto_async_request *req;
struct clk *clk;
struct clk *zclk;
size_t max_req_len;
u32 int_mask;
struct mv_cesa_dev *cesa;
struct gen_pool *pool;
struct crypto_queue queue;
atomic_t load;
struct mv_cesa_tdma_chain chain_hw;
struct mv_cesa_tdma_chain chain_sw;
struct list_head complete_queue;
int irq;
};
like, look at all those fields. the way that this struct just holds everything? main character energy fr fr π
π¦ MEMBERS π¦
idβ the engine id. that's it, that's the field πͺͺregsβ the engine registers, the actual hardware door πͺ{unnamed_union}β it's anonymous. no name. mysterious. iconic πsramβ the SRAM memory region πΎsram_poolβ the SRAM memory region but pulled from a pool π
sram_dmaβ the DMA address of that SRAM memory region β¨lockβ the engine lock, keep it locked bestie πreqβ the current crypto request, like the one being dealt with right now π¨clkβ the engine clk β°zclkβ the engine zclk β°β° (yes there's two, no I will not explain further, it's literally in the struct)max_req_lenβ the maximum chunk length, and the manpage says this is useful to create the TDMA chain πint_maskβ the interrupt mask cache πcesaβ back-pointer to the parent CESA device, so it knows where it came from π«Άpoolβ the memory pool pointing to the memory region reserved in SRAM π§Ίqueueβ the fifo of the pending crypto requests, they're waiting their turn in line πΆββοΈloadβ the engine load counter, useful for load balancing, it's literally doing the most βοΈchain_hwβ the list of the current tdma descriptors being processed by the hardware. hardware is busy, do not disturb πchain_swβ the list of the current tdma descriptors that will be submitted to the hardware. the next-up squad πΈcomplete_queueβ the fifo of the processed requests by the engine, aka the finished-it pile βirqβ the interrupt request line, it's giving "notice me" π£
π DESCRIPTION π
It's a structure storing CESA engine information. that's the whole vibe. it holds the info. it's the info-holder. no cap π§
π₯ SEE ALSO π₯
- Kernel file
./drivers/crypto/marvell/cesa/cesa.h struct mv_cesa_sec_accel_desc(9)struct mv_cesa_skcipher_op_ctx(9)struct mv_cesa_hash_op_ctx(9)struct mv_cesa_op_ctx(9)struct mv_cesa_tdma_desc(9)struct mv_cesa_sg_dma_iter(9)struct mv_cesa_dma_iter(9)struct mv_cesa_tdma_chain(9)struct mv_cesa_caps(9)struct mv_cesa_dev_dma(9)struct mv_cesa_dev(9)struct mv_cesa_req_ops(9)struct mv_cesa_ctx(9)struct mv_cesa_hash_ctx(9)enum mv_cesa_req_type(9)struct mv_cesa_req(9)struct mv_cesa_sg_std_iter(9)struct mv_cesa_skcipher_std_req(9)struct mv_cesa_skcipher_req(9)struct mv_cesa_ahash_std_req(9)struct mv_cesa_ahash_dma_req(9)struct mv_cesa_ahash_req(9)
like that's the whole friend group right there, go read all of them, iykyk π
and that's the page bestie!! π«Ά this one lives in ./drivers/crypto/marvell/cesa and it's dated October 2026 β so yeah, future-coded of it. mwah, go forth and understand your CESA engines π
β
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms