STRUCT SDMA_FIRMWARE_HEADER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct sdma_firmware_header(9) πŸ’–

okay bestie, so this is a page from the Kernel API Manual, and today's main character is struct sdma_firmware_header β€” literally the layout of the firmware image. yes, the whole layout. she's the blueprint, the vibe check for the bytes. let's get into it 🫢


✨ NAME ✨

struct sdma_firmware_header β€” Layout of the firmware image. that's it, that's the whole job, and she does it flawlessly πŸ’…


🌸 SYNOPSIS 🌸

struct sdma_firmware_header {
    u32 magic;
    u32 version_major;
    u32 version_minor;
    u32 script_addrs_start;
    u32 num_script_addrs;
    u32 ram_code_start;
    u32 ram_code_size;
 };

look at her. seven fields. all u32. no notes. πŸŽ€


πŸ¦‹ Members πŸ¦‹

okay so every single field, and what she actually means:

  • magic β€” it's "SDMA". that's the whole description. iconic, no cap. it's the little hello at the top so you know you're in the right file πŸ”₯
  • version_major β€” increased whenever the layout of struct sdma_script_start_addrs changes. like, if that struct gets a glow-up, this number has to go up too. them's the rules πŸ‘‘
  • version_minor β€” the firmware minor version (for binary compatible changes). so like, small changes that don't break anything β€” she gets a lil bump 🌈
  • script_addrs_start β€” offset of struct sdma_script_start_addrs in this image. i.e. where in the file to go find her 🧚
  • num_script_addrs β€” Number of script addresses in this image. literally just the count, bestie πŸ’œ
  • ram_code_start β€” offset of SDMA ram image in this firmware image. the starting point, the entrance, the where-it-begins ⭐
  • ram_code_size β€” size of SDMA ram image. how big she is. that's it πŸ’€

🐚 SEE ALSO 🐚

Kernel file ./drivers/dma/imx-sdma.c β€” and honestly the whole friend group:

  • struct sdma_channel_control(9)
  • struct sdma_state_registers(9)
  • struct sdma_context_data(9)
  • struct sdma_desc(9)
  • struct sdma_channel(9)

go read them, they're all slaying in their own lanes πŸ’–


lowkey a reminder that magic must literally be "SDMA" β€” that's not a vibe, that's a requirement πŸŽ€

and that's the page!! sign-off time: this one lives in ./drivers/dma, dated October 2026, and it's the struct sdma_firmware_header(9) manual page. mwah, ily, go read your kernel docs 🫢✨🌸

πŸ“¦ where this page comes from