mirror of https://github.com/torvalds/linux.git
Documentation: KHO: add memblock bindings
We introduced KHO into Linux: A framework that allows Linux to pass metadata and memory across kexec from Linux to Linux. KHO reuses fdt as file format and shares a lot of the same properties of firmware-to- Linux boot formats: It needs a stable, documented ABI that allows for forward and backward compatibility as well as versioning. As first user of KHO, we introduced memblock which can now preserve memory ranges reserved with reserve_mem command line options contents across kexec, so you can use the post-kexec kernel to read traces from the pre-kexec kernel. This patch adds memblock schemas similar to "device" device tree ones to a new kho bindings directory. This allows us to force contributors to document the data that moves across KHO kexecs and catch breaking change during review. Link: https://lkml.kernel.org/r/20250509074635.3187114-18-changyuanl@google.com Co-developed-by: Alexander Graf <graf@amazon.com> Signed-off-by: Alexander Graf <graf@amazon.com> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Signed-off-by: Changyuan Lyu <changyuanl@google.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Anthony Yznaga <anthony.yznaga@oracle.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Ashish Kalra <ashish.kalra@amd.com> Cc: Ben Herrenschmidt <benh@kernel.crashing.org> Cc: Borislav Betkov <bp@alien8.de> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Eric Biederman <ebiederm@xmission.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Gowans <jgowans@amazon.com> Cc: Jason Gunthorpe <jgg@nvidia.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Krzysztof Kozlowski <krzk@kernel.org> Cc: Marc Rutland <mark.rutland@arm.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Pasha Tatashin <pasha.tatashin@soleen.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Pratyush Yadav <ptyadav@amazon.de> Cc: Rob Herring <robh@kernel.org> Cc: Saravana Kannan <saravanak@google.com> Cc: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Thomas Gleinxer <tglx@linutronix.de> Cc: Thomas Lendacky <thomas.lendacky@amd.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
3498209ff6
commit
a3d2e34dce
|
|
@ -0,0 +1,39 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Memblock reserved memory
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
|
||||
description: |
|
||||
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.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- reserve-mem-v1
|
||||
|
||||
patternProperties:
|
||||
"$[0-9a-f_]+^":
|
||||
$ref: reserve-mem.yaml#
|
||||
description: reserved memory regions
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memblock {
|
||||
compatible = "memblock-v1";
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
title: Memblock reserved memory regions
|
||||
|
||||
maintainers:
|
||||
- Mike Rapoport <rppt@kernel.org>
|
||||
|
||||
description: |
|
||||
Memblock can serialize its current memory reservations created with
|
||||
reserve_mem command line option across kexec through KHO.
|
||||
This object describes each such region.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- reserve-mem-v1
|
||||
|
||||
start:
|
||||
description: |
|
||||
physical address (u64) of the reserved memory region.
|
||||
|
||||
size:
|
||||
description: |
|
||||
size (u64) of the reserved memory region.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- start
|
||||
- size
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
n1 {
|
||||
compatible = "reserve-mem-v1";
|
||||
start = <0xc06b 0x4000000>;
|
||||
size = <0x04 0x00>;
|
||||
};
|
||||
|
|
@ -15448,6 +15448,7 @@ M: Mike Rapoport <rppt@kernel.org>
|
|||
L: linux-mm@kvack.org
|
||||
S: Maintained
|
||||
F: Documentation/core-api/boot-time-mm.rst
|
||||
F: Documentation/core-api/kho/bindings/memblock/*
|
||||
F: include/linux/memblock.h
|
||||
F: mm/memblock.c
|
||||
F: mm/mm_init.c
|
||||
|
|
|
|||
Loading…
Reference in New Issue