MEMBLOCK KEXEC HANDOVER ABI(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ memblock kexec handover ABI(9) β€” NAME πŸŽ€

okay so bestie, this is the memblock kexec handover ABI page from the Kernel API Manual, section 9 β€” and it's lowkey iconic because it's all about carrying memblock's reserved-memory state across kexec without losing the physical addresses. periodt. πŸ’…

✨ DESCRIPTION ✨

Memblock can serialize its current memory reservations created with the reserve_mem command line option across kexec through KHO. The post-KHO kernel can then consume these reservations, and they are guaranteed to have the same physical address. no cap. 🫢

The state is serialized using Flattened Device Tree (FDT) format. Any modification to the FDT structure, node properties, or the compatible strings constitutes a breaking change. Such changes require incrementing the version number in the relevant _COMPATIBLE string to prevent a new kernel from misinterpreting data from an old kernel. 🚨

Changes are allowed provided the compatibility version is incremented. However, backward/forward compatibility is only guaranteed for kernels supporting the same ABI version. that's the vibe check, fr fr. πŸ¦‹

🌸 FDT Structure Overview 🌸

The entire memblock state is encapsulated within a single KHO entry named "memblock". This entry contains an FDT with the following layout:

/ {
        compatible = "memblock-v1";

        n1 {
                compatible = "reserve-mem-v1";
                start = <0xc06b 0x4000000>;
                size = <0x04 0x00>;
        };
};

πŸ‘‘ Main memblock node (/) πŸ‘‘

  • compatible: "memblock-v1" β€” identifies the overall memblock ABI version. slay. ✨

🧚 reserved_mem node 🧚

These nodes describe all reserve_mem regions. The node name is the name defined by the user for a reserve_mem region.

  • compatible: "reserve-mem-v1" β€” identifies the ABI version of reserve_mem descriptions.
  • start: u64 β€” physical address of the reserved memory region. πŸ“
  • size: u64 β€” size in bytes of the reserved memory region. πŸ“

πŸ‘€ SEE ALSO πŸ‘€

  • Kernel file ./include/linux/kho/abi/memblock.h

mwah πŸ’‹ β€” this page came from source/version ./include/linux/kho/abi, dated October 2026, in the Kernel API Manual, for memblock kexec handover ABI(9). bye bestie, go read that header file πŸ«ΆπŸ’–

πŸ“¦ where this page comes from