From: Mark Rutland <mark.rutland@arm.com>
To: Simon Glass <sjg@chromium.org>
Cc: devicetree@vger.kernel.org, Rob Herring <robh@kernel.org>,
Ard Biesheuvel <ardb@kernel.org>,
Chiu Chasel <chasel.chiu@intel.com>,
U-Boot Mailing List <u-boot@lists.denx.de>,
Gua Guo <gua.guo@intel.com>,
linux-acpi@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>,
Yunhui Cui <cuiyunhui@bytedance.com>,
ron minnich <rminnich@gmail.com>, Tom Rini <trini@konsulko.com>,
Lean Sheng Tan <sheng.tan@9elements.com>
Subject: Re: [PATCH v3 1/2] schemas: Add a schema for memory map
Date: Wed, 23 Aug 2023 09:58:54 +0100 [thread overview]
Message-ID: <ZOXKTrC_dzN_hUkY@FVFF77S0Q05N> (raw)
In-Reply-To: <20230822203446.4111742-1-sjg@chromium.org>
On Tue, Aug 22, 2023 at 02:34:42PM -0600, Simon Glass wrote:
> The Devicetree specification skips over handling of a logical view of
> the memory map, pointing users to the UEFI specification.
>
> It is common to split firmware into 'Platform Init', which does the
> initial hardware setup and a "Payload" which selects the OS to be booted.
> Thus an handover interface is required between these two pieces.
>
> Where UEFI boot-time services are not available, but UEFI firmware is
> present on either side of this interface, information about memory usage
> and attributes must be presented to the "Payload" in some form.
Today Linux does that by passing:
/chosen/linux,uefi-mmap-start
/chosen/linux,uefi-mmap-size
/chosen/linux,uefi-mmap-desc-size
/chosen/linux,uefi-mmap-desc-ver
... or /chosen/xen,* variants of those.
Can't we document / genericise that?
Pointing to that rather than re-encoding it in DT means that it stays in-sync
with the EFI spec and we won't back ourselves into a corner where we cannot
encode something due to a structural difference. I don't think it's a good idea
to try to re-encode it, or we're just setting ourselves up for futher pain.
Thanks,
Mark.
>
> This aims to provide an initial schema for this mapping.
>
> Note that this is separate from the existing /memory and /reserved-memory
> nodes, since it is mostly concerned with what the memory is used for. It
> may cover only a small fraction of available memory.
>
> For now, no attempt is made to create an exhaustive binding, so there are
> some example types listed. This can be completed once this has passed
> initial review.
>
> This binding does not include a binding for the memory 'attribute'
> property, defined by EFI_BOOT_SERVICES.GetMemoryMap(). It may be useful
> to have that as well, but perhaps not as a bit mask.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v3:
> - Reword commit message again
> - cc a lot more people, from the FFI patch
> - Split out the attributes into the /memory nodes
>
> Changes in v2:
> - Reword commit message
>
> dtschema/schemas/memory-map.yaml | 61 ++++++++++++++++++++++++++++++++
> 1 file changed, 61 insertions(+)
> create mode 100644 dtschema/schemas/memory-map.yaml
>
> diff --git a/dtschema/schemas/memory-map.yaml b/dtschema/schemas/memory-map.yaml
> new file mode 100644
> index 0000000..4b06583
> --- /dev/null
> +++ b/dtschema/schemas/memory-map.yaml
> @@ -0,0 +1,61 @@
> +# SPDX-License-Identifier: BSD-2-Clause
> +# Copyright 2023 Google LLC
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/memory-map.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: /memory-map nodes
> +description: |
> + Common properties always required in /memory-map nodes. These nodes are
> + intended to resolve the nonchalant clause 3.4.1 ("/memory node and UEFI")
> + in the Devicetree Specification.
> +
> +maintainers:
> + - Simon Glass <sjg@chromium.org>
> +
> +properties:
> + $nodename:
> + const: 'memory-map'
> +
> +patternProperties:
> + "^([a-z][a-z0-9\\-]+@[0-9a-f]+)?$":
> + type: object
> + additionalProperties: false
> +
> + properties:
> + reg:
> + minItems: 1
> + maxItems: 1024
> +
> + usage:
> + $ref: /schemas/types.yaml#/definitions/string
> + description: |
> + Describes the usage of the memory region, e.g.:
> +
> + "acpi-reclaim", "acpi-nvs", "bootcode", "bootdata", "bootdata",
> + "runtime-code", "runtime-data".
> +
> + See enum EFI_MEMORY_TYPE in "Unified Extensible Firmware Interface
> + (UEFI) Specification" for all the types. For now there are not
> + listed here.
> +
> + required:
> + - reg
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + memory-map {
> + acpi@f0000 {
> + reg = <0xf0000 0x4000>;
> + usage = "acpi-reclaim";
> + };
> +
> + runtime@12300000 {
> + reg = <0x12300000 0x28000>;
> + usage = "runtime-code";
> + };
> + };
> +...
> --
> 2.42.0.rc1.204.g551eb34607-goog
>
next prev parent reply other threads:[~2023-08-23 9:05 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-22 20:34 [PATCH v3 1/2] schemas: Add a schema for memory map Simon Glass
2023-08-22 20:34 ` [PATCH v3 2/2] memory: Add ECC property Simon Glass
2023-08-23 8:58 ` Mark Rutland [this message]
2023-08-23 14:23 ` [PATCH v3 1/2] schemas: Add a schema for memory map Ard Biesheuvel
2023-08-23 20:04 ` Simon Glass
2023-08-24 9:10 ` Ard Biesheuvel
2023-08-29 16:01 ` Simon Glass
2023-08-29 19:17 ` Simon Glass
2023-08-29 21:32 ` Ard Biesheuvel
2023-08-30 21:10 ` Simon Glass
2023-08-31 12:28 ` Ard Biesheuvel
2023-08-31 19:02 ` Simon Glass
2023-08-31 21:47 ` Ard Biesheuvel
2023-08-31 22:17 ` Simon Glass
2023-08-31 22:39 ` Ard Biesheuvel
2023-09-01 1:12 ` Simon Glass
2023-09-01 10:48 ` Ard Biesheuvel
2023-09-01 11:54 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZOXKTrC_dzN_hUkY@FVFF77S0Q05N \
--to=mark.rutland@arm.com \
--cc=ardb@kernel.org \
--cc=chasel.chiu@intel.com \
--cc=cuiyunhui@bytedance.com \
--cc=devicetree@vger.kernel.org \
--cc=gua.guo@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rminnich@gmail.com \
--cc=robh@kernel.org \
--cc=sheng.tan@9elements.com \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox