From: Rob Herring <robh+dt@kernel.org>
To: Maxime Ripard <maxime@cerno.tech>, Grant Likely <grant.likely@arm.com>
Cc: Chen-Yu Tsai <wens@csie.org>,
Jernej Skrabec <jernej.skrabec@siol.net>,
devicetree@vger.kernel.org, Frank Rowand <frowand.list@gmail.com>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
linux-sunxi@googlegroups.com,
Mailing List <devicetree-spec@vger.kernel.org>
Subject: Re: [PATCH 05/54] dt-bindings: Convert Reserved Memory binding to a schema
Date: Wed, 21 Jul 2021 08:30:43 -0600 [thread overview]
Message-ID: <CAL_JsqKAZLBK2UDDUNrO4aaYr886oODB_N_yF70X44gPXs=k5Q@mail.gmail.com> (raw)
In-Reply-To: <20210721140424.725744-6-maxime@cerno.tech>
On Wed, Jul 21, 2021 at 8:04 AM Maxime Ripard <maxime@cerno.tech> wrote:
>
> The Reserved Memory mechanism is supported by Linux thanks to its device
> tree binding.
>
> Now that we have the DT validation in place, let's convert the device
> tree bindings for that driver over to a YAML schema.
Thanks for this!
>
> Cc: Mailing List <devicetree-spec@vger.kernel.org>
> Signed-off-by: Maxime Ripard <maxime@cerno.tech>
> ---
> .../reserved-memory/reserved-memory.txt | 141 ---------------
> .../reserved-memory/reserved-memory.yaml | 167 ++++++++++++++++++
> 2 files changed, 167 insertions(+), 141 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt
> create mode 100644 Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> new file mode 100644
> index 000000000000..b61527f11953
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.yaml
> @@ -0,0 +1,167 @@
> +# SPDX-License-Identifier: GPL-2.0
I think this is okay to dual license. Grant (Linaro) is the original
author and there's only a few lines from other authors.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/reserved-memory/reserved-memory.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: /reserved-memory Node
> +
> +maintainers:
> + - Devicetree Specification Mailing List <devicetree-spec@vger.kernel.org>
> +
> +description: >
> + Reserved memory is specified as a node under the /reserved-memory node. The
> + operating system shall exclude reserved memory from normal usage one can
> + create child nodes describing particular reserved (excluded from normal use)
> + memory regions. Such memory regions are usually designed for the special
> + usage by various device drivers.
> +
> +properties:
> + $nodename:
> + const: reserved-memory
> +
> + "#address-cells": true
> + "#size-cells": true
> + ranges: true
> +
> +patternProperties:
> + "^(?!(ranges))[a-z,-]*(@[0-9]+)?$":
Note that you could drop this and put under 'additionalProperties'.
You would lose some node name checking, but there's really little
standard on these nodes.
> + type: object
> +
> + description: >
> + Each child of the reserved-memory node specifies one or more regions of
> + reserved memory. Each child node may either use a 'reg' property to
> + specify a specific range of reserved memory, or a 'size' property with
> + optional constraints to request a dynamically allocated block of memory.
> +
> + Following the generic-names recommended practice, node names should
> + reflect the purpose of the node (ie. "framebuffer" or "dma-pool"). Unit
> + address (@<address>) should be appended to the name if the node is a
> + static allocation.
> +
> + properties:
> + reg: true
> +
> + size:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + description: >
> + Length based on parent's \#size-cells. Size in bytes of memory to
> + reserve.
> +
> + alignment:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + description: >
> + Length based on parent's \#size-cells. Address boundary for
> + alignment of allocation.
> +
> + alloc-ranges:
> + $ref: /schemas/types.yaml#/definitions/uint32-array
> + description: >
> + Address and Length pairs. Specifies regions of memory that are
> + acceptable to allocate from.
> +
> + compatible:
> + oneOf:
> + - const: shared-dma-pool
> + description: >
> + This indicates a region of memory meant to be used as a shared
> + pool of DMA buffers for a set of devices. It can be used by an
> + operating system to instantiate the necessary pool management
> + subsystem if necessary.
> +
> + # Vendor-specific compatibles in the form <vendor>,[<device>-]<usage>
> + - const: mediatek,trustzone-bootinfo
I think these should be separate schema files. At least, we're going
to need to support separate files because I don't think we want ones
adding custom properties here. This would fail unless we add every
compatible here. We could also be a bit more exact as to which
properties below apply (e.g. linux,.*-default is only valid for
shared-dma-pool).
> +
> + no-map:
> + type: boolean
> + description: >
> + Indicates the operating system must not create a virtual mapping of
> + the region as part of its standard mapping of system memory, nor
> + permit speculative access to it under any circumstances other than
> + under the control of the device driver using the region.
> +
> + reusable:
> + type: boolean
> + description: >
> + The operating system can use the memory in this region with the
> + limitation that the device driver(s) owning the region need to be
> + able to reclaim it back. Typically that means that the operating
> + system can use that region to store volatile or cached data that
> + can be otherwise regenerated or migrated elsewhere.
> +
> + linux,cma-default:
> + type: boolean
> + description: >
> + If this property is present, then Linux will use the region for the
> + default pool of the contiguous memory allocator.
> +
> + linux,dma-default:
> + type: boolean
> + description: >
> + If this property is present, then Linux will use the region for the
> + default pool of the consistent DMA allocator.
> +
> + allOf:
> + - if:
> + required:
> + - no-map
> +
> + then:
> + not:
> + required:
> + - reusable
> +
> + - if:
> + required:
> + - reusable
> +
> + then:
> + not:
> + required:
> + - no-map
> +
> + oneOf:
> + - required:
> + - reg
> +
> + - required:
> + - size
> +
> + additionalProperties: true
> +
> +additionalProperties: true
This should be false, right?
> +
> +examples:
> + - |
> + / {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + model = "MediaTek MT2701 evaluation board";
> + compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
> +
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + /* global autoconfigured region for contiguous allocations */
> + linux,cma {
> + compatible = "shared-dma-pool";
> + reusable;
> + size = <0x4000000>;
> + alignment = <0x2000>;
> + linux,cma-default;
> + };
> +
> + display_reserved: framebuffer@78000000 {
> + reg = <0x78000000 0x800000>;
> + };
> +
> + trustzone-bootinfo@80002000 {
> + compatible = "mediatek,trustzone-bootinfo";
> + reg = <0x80002000 0x1000>;
> + };
> + };
> + };
> +
> +...
> --
> 2.31.1
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-07-21 15:14 UTC|newest]
Thread overview: 128+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-21 14:03 [PATCH 00/54] ARM: dts: Last round of DT schema fixes Maxime Ripard
2021-07-21 14:03 ` [PATCH 01/54] ASoC: dt-bindings: Add WM8978 Binding Maxime Ripard
2021-07-23 21:32 ` Rob Herring
2021-07-26 0:17 ` Mark Brown
2021-07-27 12:21 ` Richard Fitzgerald
2021-07-27 12:58 ` Mark Brown
2021-07-21 14:03 ` [PATCH 02/54] ASoC: dt-bindings: Convert Bluetooth SCO Link binding to a schema Maxime Ripard
2021-07-22 5:35 ` Samuel Holland
2021-07-22 7:58 ` Maxime Ripard
2021-07-21 14:03 ` [PATCH 03/54] ASoC: dt-bindings: Convert SPDIF Transmitter " Maxime Ripard
2021-07-23 21:35 ` Rob Herring
2021-07-21 14:03 ` [PATCH 04/54] ASoC: dt-bindings: Convert Simple Amplifier " Maxime Ripard
2021-07-23 21:36 ` Rob Herring
2021-07-21 14:03 ` [PATCH 05/54] dt-bindings: Convert Reserved Memory " Maxime Ripard
2021-07-21 14:30 ` Rob Herring [this message]
2021-08-18 10:00 ` Maxime Ripard
2021-08-18 12:54 ` Rob Herring
2021-07-22 2:09 ` Rob Herring
2021-07-21 14:03 ` [PATCH 06/54] dt-bindings: arm: Convert ARM CCI-400 " Maxime Ripard
2021-07-22 2:09 ` Rob Herring
2021-07-22 2:26 ` Rob Herring
2021-07-21 14:03 ` [PATCH 07/54] dt-bindings: bluetooth: broadcom: Fix clocks check Maxime Ripard
2021-07-23 21:38 ` Rob Herring
2021-07-21 14:03 ` [PATCH 08/54] dt-bindings: bluetooth: realtek: Add missing max-speed Maxime Ripard
2021-07-23 21:39 ` Rob Herring
2021-07-23 22:56 ` Alistair
2021-07-21 14:03 ` [PATCH 09/54] dt-bindings: clocks: Fix typo in the H6 compatible Maxime Ripard
2021-07-23 21:39 ` Rob Herring
2021-07-21 14:03 ` [PATCH 10/54] dt-bindings: display: panel-lvds: Document panel compatibles Maxime Ripard
2021-07-21 14:14 ` Sam Ravnborg
2021-07-22 2:09 ` Rob Herring
2021-07-22 2:29 ` Rob Herring
2021-08-18 12:43 ` Maxime Ripard
2021-08-18 13:48 ` Rob Herring
2021-08-23 16:31 ` Maxime Ripard
2021-07-21 14:03 ` [PATCH 11/54] dt-bindings: display: simple-bridge: Add corpro, gm7123 compatible Maxime Ripard
2021-07-21 14:16 ` Sam Ravnborg
2021-07-22 9:44 ` Maxime Ripard
2021-07-21 14:03 ` [PATCH 12/54] dt-bindings: gnss: Convert UBlox Neo-6M binding to a schema Maxime Ripard
2021-07-23 21:42 ` Rob Herring
2021-07-21 14:03 ` [PATCH 13/54] dt-bindings: gpio: Convert X-Powers AXP209 GPIO " Maxime Ripard
2021-07-22 2:09 ` Rob Herring
2021-07-22 2:13 ` Rob Herring
2021-07-21 14:03 ` [PATCH 14/54] dt-bindings: hwmon: Add IIO HWMON binding Maxime Ripard
2021-07-22 9:20 ` Jonathan Cameron
2021-07-22 9:34 ` Maxime Ripard
2021-07-23 21:44 ` Rob Herring
2021-07-21 14:03 ` [PATCH 15/54] dt-bindings: iio: st: Remove wrong items length check Maxime Ripard
2021-07-23 21:47 ` Rob Herring
2021-07-23 22:45 ` Linus Walleij
2021-07-21 14:03 ` [PATCH 16/54] dt-bindings: input: Convert ChipOne ICN8318 binding to a schema Maxime Ripard
2021-07-23 21:48 ` Rob Herring
2021-07-21 14:03 ` [PATCH 17/54] dt-bindings: input: Convert Pixcir Touchscreen " Maxime Ripard
2021-07-23 21:49 ` Rob Herring
2021-07-21 14:03 ` [PATCH 18/54] dt-bindings: input: Convert Regulator Haptic " Maxime Ripard
2021-07-23 21:50 ` Rob Herring
2021-07-21 14:03 ` [PATCH 19/54] dt-bindings: input: Convert Silead GSL1680 " Maxime Ripard
2021-07-23 21:51 ` Rob Herring
2021-07-21 14:03 ` [PATCH 20/54] dt-bindings: input: sun4i-lradc: Add wakeup-source Maxime Ripard
2021-07-23 21:52 ` Rob Herring
2021-07-21 14:03 ` [PATCH 21/54] dt-bindings: interconnect: sunxi: Add R40 MBUS compatible Maxime Ripard
2021-07-23 21:52 ` Rob Herring
2021-07-21 14:03 ` [PATCH 22/54] dt-bindings: media: Convert OV5640 binding to a schema Maxime Ripard
2021-07-22 2:09 ` Rob Herring
2021-07-21 14:03 ` [PATCH 23/54] dt-bindings: mfd: Convert X-Powers AC100 " Maxime Ripard
2021-07-23 21:54 ` Rob Herring
2021-08-01 12:15 ` [linux-sunxi] " Chen-Yu Tsai
2021-07-21 14:03 ` [PATCH 24/54] dt-bindings: mfd: Convert X-Powers AXP " Maxime Ripard
2021-07-22 2:09 ` Rob Herring
2021-07-21 14:03 ` [PATCH 25/54] dt-bindings: mmc: Convert MMC Card " Maxime Ripard
2021-07-23 21:57 ` Rob Herring
2021-08-04 11:24 ` Ulf Hansson
2021-07-21 14:03 ` [PATCH 26/54] dt-bindings: net: dwmac: Fix typo in the R40 compatible Maxime Ripard
2021-07-23 21:57 ` Rob Herring
2021-07-21 14:03 ` [PATCH 27/54] dt-bindings: net: wireless: Convert ESP ESP8089 binding to a schema Maxime Ripard
2021-07-23 21:58 ` Rob Herring
[not found] ` <20210806084709.0C279C4338A@smtp.codeaurora.org>
2021-08-18 8:45 ` Maxime Ripard
2021-07-21 14:03 ` [PATCH 28/54] dt-bindings: power: supply: axp20x: Add AXP803 compatible Maxime Ripard
2021-07-23 21:59 ` Rob Herring
2021-08-01 12:16 ` [linux-sunxi] " Chen-Yu Tsai
2021-08-06 21:33 ` Sebastian Reichel
2021-07-21 14:03 ` [PATCH 29/54] dt-bindings: power: supply: axp20x-battery: Add AXP209 compatible Maxime Ripard
2021-07-23 22:00 ` Rob Herring
2021-08-06 21:34 ` Sebastian Reichel
2021-07-21 14:04 ` [PATCH 30/54] dt-bindings: regulator: Convert SY8106A binding to a schema Maxime Ripard
2021-07-23 22:01 ` Rob Herring
2021-07-21 14:04 ` [PATCH 31/54] dt-bindings: sunxi: Add CPU Configuration Controller Binding Maxime Ripard
2021-07-23 22:01 ` Rob Herring
2021-07-21 14:04 ` [PATCH 32/54] dt-bindings: sunxi: Add Allwinner A80 PRCM Binding Maxime Ripard
2021-07-23 22:02 ` Rob Herring
2021-07-21 14:04 ` [PATCH 33/54] dt-bindings: thermal: Make trips node optional Maxime Ripard
2021-07-23 22:03 ` Rob Herring
2021-08-14 13:42 ` Daniel Lezcano
2021-07-21 14:04 ` [PATCH 34/54] dt-bindings: usb: Convert SMSC USB3503 binding to a schema Maxime Ripard
2021-07-23 22:08 ` Rob Herring
2021-07-21 14:04 ` [PATCH 35/54] dt-bindings: usb: dwc3: Fix usb-phy check Maxime Ripard
2021-07-23 22:15 ` Rob Herring
2021-07-29 12:29 ` Maxime Ripard
2021-07-21 14:04 ` [PATCH 36/54] dt-bindings: usb: ehci: Add Allwinner A83t compatible Maxime Ripard
2021-07-23 22:15 ` Rob Herring
2021-07-21 14:04 ` [PATCH 37/54] dt-bindings: usb: ohci: " Maxime Ripard
2021-07-23 22:16 ` Rob Herring
2021-07-21 14:04 ` [PATCH 38/54] dt-bindings: w1: Convert 1-Wire GPIO binding to a schema Maxime Ripard
2021-07-23 22:19 ` Rob Herring
2021-07-21 14:04 ` [PATCH 39/54] ARM: dts: sunxi: Rename power-supply names Maxime Ripard
2021-07-21 14:04 ` [PATCH 40/54] ARM: dts: sunxi: Rename gpio pinctrl names Maxime Ripard
2021-07-21 14:04 ` [PATCH 41/54] ARM: dts: sunxi: Fix OPP arrays Maxime Ripard
2021-07-21 14:04 ` [PATCH 42/54] ARM: dts: sunxi: Fix OPPs node name Maxime Ripard
2021-07-21 14:04 ` [PATCH 43/54] ARM: dts: sunxi: Fix the SPI NOR node names Maxime Ripard
2021-07-21 14:04 ` [PATCH 44/54] ARM: dts: v3s: Remove useless DMA properties Maxime Ripard
2021-07-21 14:04 ` [PATCH 45/54] ARM: dts: tbs711: Fix touchscreen compatible Maxime Ripard
2021-07-21 14:04 ` [PATCH 46/54] ARM: dts: cubieboard4: Remove the dumb-vga-dac compatible Maxime Ripard
2021-08-01 12:19 ` [linux-sunxi] " Chen-Yu Tsai
2021-07-21 14:04 ` [PATCH 47/54] arm64: dts: allwinner: h5: Fix GPU thermal zone node name Maxime Ripard
2021-07-21 14:04 ` [PATCH 48/54] arm64: dts: allwinner: h6: Fix de3 parent clocks ordering Maxime Ripard
2021-07-21 14:04 ` [PATCH 49/54] arm64: dts: allwinner: a100: Fix thermal zone node name Maxime Ripard
2021-07-21 14:04 ` [PATCH 50/54] arm64: dts: allwinner: pinetab: Change regulator node name to avoid warning Maxime Ripard
2021-07-21 14:04 ` [PATCH 51/54] arm64: dts: allwinner: teres-i: Add missing reg Maxime Ripard
2021-07-21 14:04 ` [PATCH 52/54] arm64: dts: allwinner: Remove regulator-ramp-delay Maxime Ripard
2021-07-22 5:55 ` Samuel Holland
2021-07-22 8:16 ` Maxime Ripard
2021-08-06 11:48 ` [linux-sunxi] " Icenowy Zheng
2021-08-06 12:05 ` Chen-Yu Tsai
2021-08-06 12:09 ` Icenowy Zheng
2021-07-21 14:04 ` [PATCH 53/54] arm64: dts: allwinner: teres-i: Remove wakekup-source from the PMIC Maxime Ripard
2021-07-21 14:04 ` [PATCH 54/54] arm64: dts: allwinner: pinephone: Fix BT SCO codec cells size Maxime Ripard
2021-07-21 16:48 ` [PATCH 00/54] ARM: dts: Last round of DT schema fixes Rob Herring
2021-07-29 12:03 ` Maxime Ripard
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='CAL_JsqKAZLBK2UDDUNrO4aaYr886oODB_N_yF70X44gPXs=k5Q@mail.gmail.com' \
--to=robh+dt@kernel.org \
--cc=devicetree-spec@vger.kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=grant.likely@arm.com \
--cc=jernej.skrabec@siol.net \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-sunxi@googlegroups.com \
--cc=maxime@cerno.tech \
--cc=wens@csie.org \
/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;
as well as URLs for NNTP newsgroup(s).