LATE BINDING FIRMWARE LAYOUT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… Late binding Firmware Layout πŸ’…

Kernel API Manual ✨ buckle up bestie, we're reading a firmware binary's whole aura ✨


πŸŽ€ the actual breakdown πŸŽ€

okay so picture it: the Late binding binary starts with the FPT header, and that header is literally the map β€” it contains the locations of the various partitions of the binary.

Here's the thing though, we're only interested in one thing: finding out the manifest version. That's the goal. That's the mission. πŸ’…

To get the manifest version, we need to locate the CPD header first. And then β€” plot twist β€” one of the entries in the CPD header points to the manifest header. And the manifest header contains the version. that's it. that's the whole treasure hunt πŸ—ΊοΈβœ¨

so it's giving: FPT header β†’ CPD header β†’ manifest header β†’ version πŸ‘‘

here's the map, no cap (the plain-text rendering is a little cursed but she's iconic and we love her exactly as she is 🫢):

       +================================================+ |  FPT Header
       | +================================================+ |  FPT entries[]
       | |      entry1                                    | |      ...
       | |      entryX                                    | |          "LTES"
       | |          ...                                   | |          offset
       >-----------------------------|------o
       +================================================+      | |
       +================================================+      | |  CPD Header
       |<-----o +================================================+ |  CPD
       entries[]                                 | |      entry1
       | |      ...                                       | |      entryX
       | |          "LTES.man"                            | |           ...
       | |           offset  >----------------------------|------o
       +================================================+      | |
       +================================================+      | |  Manifest
       Header                               |<-----o |      ...
       | |      FW version                                | |      ...
       | +================================================+

like, the arrows literally follow the offset from "LTES" over into the CPD header, then from "LTES.man" into the manifest header, and boom πŸ’₯ β€” FW version is sitting right there in the manifest header. iykyk 🌸


🌈 SEE ALSO 🌈

  • the Kernel file ./drivers/gpu/drm/xe/abi/uc_fw_abi.h β€” go read it, bestie, it's right there πŸ‘€
  • CSS-based Firmware Layout(9)
  • GSC-based Firmware Layout(9)

and that's the whole page, periodt πŸ’œ this one lives under ./drivers/gpu/drm/xe/abi, October 2026 girlie, straight from the Kernel API Manual β€” mwah, go slay your firmware reading πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from