Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_KHO_ABI_MEMBLOCK_H#define _LINUX_KHO_ABI_MEMBLOCK_H
/** * DOC: memblock kexec handover ABI * * Memblock can serialize its current memory reservations created with * 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. * * 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. * * 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: * * .. code-block:: none * * / { * 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. * * 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. */
/* Top level memblock FDT node name. */#define MEMBLOCK_KHO_FDT "memblock"
/* The compatible string for the memblock FDT root node. */#define MEMBLOCK_KHO_NODE_COMPATIBLE "memblock-v1"
/* The compatible string for the reserve_mem FDT nodes. */#define RESERVE_MEM_KHO_NODE_COMPATIBLE "reserve-mem-v1"
#endif /* _LINUX_KHO_ABI_MEMBLOCK_H */