STRUCT XILINX_DPDMA_HW_DESC(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct xilinx_dpdma_hw_desc β€” DPDMA hardware descriptor

okay so this is a page from the Kernel API Manual, and it's all about struct xilinx_dpdma_hw_desc β€” the DPDMA hardware descriptor. it's giving ✨hardware✨ so you know it's the real low-level stuff, bestie. no cap.


πŸ¦‹ SYNOPSIS

struct xilinx_dpdma_hw_desc {
    u32 control;
    u32 desc_id;
    u32 xfer_size;
    u32 hsize_stride;
    u32 timestamp_lsb;
    u32 timestamp_msb;
    u32 addr_ext;
    u32 next_desc;
    u32 src_addr;
    u32 addr_ext_23;
    u32 addr_ext_45;
    u32 src_addr2;
    u32 src_addr3;
    u32 src_addr4;
    u32 src_addr5;
    u32 crc;
 };

like, that's the whole struct, laid out exactly how the hardware wants it πŸŽ€


🌸 Members β€” the whole cast, one by one πŸ‘‘

  • control β€” the control configuration field. it's literally the little switchboard that tells the descriptor how to behave πŸ’…
  • desc_id β€” the descriptor ID. every descriptor's own little name tag, iykyk ✨
  • xfer_size β€” transfer size. how much is actually moving, periodt 🫢
  • hsize_stride β€” horizontal size and stride, packaged together like a bestie duo πŸŽ€
  • timestamp_lsb β€” the LSB of the time stamp. the low-key half of the timestamp πŸ¦‹
  • timestamp_msb β€” the MSB of the time stamp. the highkey other half ⭐
  • addr_ext β€” the upper 16 bit of a 48 bit address (specifically next_desc and src_addr). that's the top bits, holding the address together πŸ”₯
  • next_desc β€” next descriptor 32 bit address. literally the "and then?" pointer 🧚
  • src_addr β€” payload source address (1st page, 32 LSB) πŸ“
  • addr_ext_23 β€” payload source address (2nd and 3rd pages, 16 LSBs) πŸ’–
  • addr_ext_45 β€” payload source address (4th and 5th pages, 16 LSBs) πŸ’œ
  • src_addr2 β€” payload source address (2nd page, 32 LSB) πŸ“
  • src_addr3 β€” payload source address (3rd page, 32 LSB) 🌈
  • src_addr4 β€” payload source address (4th page, 32 LSB) 🌸
  • src_addr5 β€” payload source address (5th page, 32 LSB) πŸ¦‹
  • crc β€” descriptor CRC. the vibe check that makes sure nothing got corrupted πŸ’€

ngl, five source address fields and a pile of address-extension fields sounds like a lot, but it's just how the hardware describes multi-page payloads β€” every single one of them earns its spot in the struct 🫢


🧚 SEE ALSO

the kernel file lives at ./drivers/dma/xilinx/xilinx_dpdma.c, and here's the full squad of related stuff, fr fr:

lowkey the *_ostand ones sound like they're about to drop a mixtape, but they're genuinely part of the DPDMA API. go read them, bestie 🫢

and that's the page!! sign-off time: this one's from ./drivers/dma/xilinx, in the Kernel API Manual, dated October 2026 β€” mwah, slay, go read your structs πŸ’…βœ¨πŸ‘‘

πŸ“¦ where this page comes from