From: nicolas.ferre@atmel.com (Nicolas Ferre)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 2/2] ARM: DT: kernel: DT cpu node bindings update
Date: Wed, 17 Apr 2013 11:35:24 +0200 [thread overview]
Message-ID: <516E6CDC.9010005@atmel.com> (raw)
In-Reply-To: <1366042402-8987-3-git-send-email-lorenzo.pieralisi@arm.com>
On 04/15/2013 06:13 PM, Lorenzo Pieralisi :
> In order to extend the current cpu nodes bindings to newer CPUs
> inclusive of AArch64 and to update support for older ARM CPUs this
> patch updates device tree documentation for the cpu nodes bindings.
>
> Main changes:
>
> - adds 64-bit bindings (inclusive of cpus node #address-cells updates)
> - defines behaviour on pre and post v7 uniprocessor systems
> - adds ARM 11MPcore specific reg property definition
>
> DT cpu map parsing code must be made compliant with the latest bindings
> updates, hence this patch also updates the arm_dt_init_cpu_maps() function
> with checks and additional parsing rules.
>
> Uniprocessor systems predating v7 do not parse the cpus node at all
> since the reg property is meaningless on those systems.
>
> Device trees for 64-bit systems can be taken as device tree input also
> for 64-bit CPUs running in 32-bit mode. The code checks that the reg entries
> are zeroed as required in the respective fields and detects automatically
> the cpus node #address-cells value so that device tree written for
> 64-bit ARM platforms (cpus #address-cells == 2) can still be taken as
> input. The correct device tree entries are to be set up by the boot
> loader, kernel code just checks that device tree entries in the cpus
> node are as expected for a 32-bit CPU (reg[63:24] == 0).
>
> cpu node entries with invalid reg property or containing duplicates are
> ignored and the device tree parsing is not stopped anymore when such
> entries are encountered, the device tree cpu entry is just skipped.
>
> A device tree with cpu nodes missing the boot CPU MPIDR is considered a
> hard error and the kernel flags this up as a bug to force firmware updates.
>
> The updates to cpus/cpu node bindings for ARM require all in-kernel dts files
> present in the mainline to be made compliant to the latest specification.
>
> This patch also updates ARM in-kernel non-compliant dts files to the latest
> cpus/cpu nodes bindings specification.
>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> ---
> Documentation/devicetree/bindings/arm/cpus.txt | 335 +++++++++++++++++++++----
> arch/arm/boot/dts/exynos5440.dtsi | 7 +
> arch/arm/boot/dts/omap3.dtsi | 4 +
> arch/arm/boot/dts/omap4.dtsi | 5 +
> arch/arm/boot/dts/omap5.dtsi | 5 +
> arch/arm/boot/dts/r8a7740.dtsi | 3 +
> arch/arm/boot/dts/sh7372.dtsi | 4 +
> arch/arm/boot/dts/sunxi.dtsi | 4 +
Hi,
If it can be done easily, can you please consider the upcoming (3.10)
cortex-a5 SoC:
arch/arm/boot/dts/sama5d3.dtsi
It is in linux-next through arm-soc/at91/at91/soc
> arch/arm/kernel/devtree.c | 82 +++---
> 9 files changed, 377 insertions(+), 72 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
> index f32494d..b1ef3d8 100644
> --- a/Documentation/devicetree/bindings/arm/cpus.txt
> +++ b/Documentation/devicetree/bindings/arm/cpus.txt
> @@ -1,4 +1,6 @@
> -* ARM CPUs binding description
> +=============================
> +ARM CPUs bindings description
> +=============================
>
> The device tree allows to describe the layout of CPUs in a system through
> the "cpus" node, which in turn contains a number of subnodes (ie "cpu")
> @@ -8,70 +10,317 @@ Bindings for CPU nodes follow the ePAPR standard, available from:
>
> http://devicetree.org
>
> -For the ARM architecture every CPU node must contain the following properties:
> -
> -- device_type: must be "cpu"
> -- reg: property matching the CPU MPIDR[23:0] register bits
> - reg[31:24] bits must be set to 0
> -- compatible: should be one of:
> - "arm,arm1020"
> - "arm,arm1020e"
> - "arm,arm1022"
> - "arm,arm1026"
> - "arm,arm720"
> - "arm,arm740"
> - "arm,arm7tdmi"
> - "arm,arm920"
Here we have: "arm,arm920t" for at91rm9200.dtsi
> - "arm,arm922"
> - "arm,arm925"
> - "arm,arm926"
Oh, I missed this one: the strange thing is that *all* arm926 variants
have a compatible string of this form: "arm,arm926ejs"
(using: git grep "arm,arm9" next/master)
Should we change? Is there a rule for this naming?
> - "arm,arm940"
> - "arm,arm946"
> - "arm,arm9tdmi"
> - "arm,cortex-a5"
> - "arm,cortex-a7"
> - "arm,cortex-a8"
> - "arm,cortex-a9"
> - "arm,cortex-a15"
> - "arm,arm1136"
> - "arm,arm1156"
> - "arm,arm1176"
> - "arm,arm11mpcore"
> - "faraday,fa526"
> - "intel,sa110"
> - "intel,sa1100"
> - "marvell,feroceon"
> - "marvell,mohawk"
> - "marvell,xsc3"
> - "marvell,xscale"
[..]
Thanks, best regards,
--
Nicolas Ferre
WARNING: multiple messages have this Message-ID (diff)
From: Nicolas Ferre <nicolas.ferre@atmel.com>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Jon Medhurst <tixy@linaro.org>, Andrew Lunn <andrew@lunn.ch>,
Kukjin Kim <kgene.kim@samsung.com>,
Russell King <linux@arm.linux.org.uk>,
Viresh Kumar <viresh.kumar@linaro.org>,
devicetree-discuss@lists.ozlabs.org,
Barry Song <baohua.song@csr.com>, Sekhar Nori <nsekhar@ti.com>,
Rob Herring <rob.herring@calxeda.com>,
Simon Horman <horms@verge.net.au>,
Amit Kucheria <amit.kucheria@linaro.org>,
Catalin Marinas <catalin.marinas@arm.com>,
David Brown <davidb@codeaurora.org>,
Lennert Buytenhek <kernel@wantstofly.org>,
linux-arm-kernel@lists.infradead.org,
Magnus Damm <magnus.damm@gmail.com>
Subject: Re: [RFC PATCH 2/2] ARM: DT: kernel: DT cpu node bindings update
Date: Wed, 17 Apr 2013 11:35:24 +0200 [thread overview]
Message-ID: <516E6CDC.9010005@atmel.com> (raw)
In-Reply-To: <1366042402-8987-3-git-send-email-lorenzo.pieralisi@arm.com>
On 04/15/2013 06:13 PM, Lorenzo Pieralisi :
> In order to extend the current cpu nodes bindings to newer CPUs
> inclusive of AArch64 and to update support for older ARM CPUs this
> patch updates device tree documentation for the cpu nodes bindings.
>
> Main changes:
>
> - adds 64-bit bindings (inclusive of cpus node #address-cells updates)
> - defines behaviour on pre and post v7 uniprocessor systems
> - adds ARM 11MPcore specific reg property definition
>
> DT cpu map parsing code must be made compliant with the latest bindings
> updates, hence this patch also updates the arm_dt_init_cpu_maps() function
> with checks and additional parsing rules.
>
> Uniprocessor systems predating v7 do not parse the cpus node at all
> since the reg property is meaningless on those systems.
>
> Device trees for 64-bit systems can be taken as device tree input also
> for 64-bit CPUs running in 32-bit mode. The code checks that the reg entries
> are zeroed as required in the respective fields and detects automatically
> the cpus node #address-cells value so that device tree written for
> 64-bit ARM platforms (cpus #address-cells == 2) can still be taken as
> input. The correct device tree entries are to be set up by the boot
> loader, kernel code just checks that device tree entries in the cpus
> node are as expected for a 32-bit CPU (reg[63:24] == 0).
>
> cpu node entries with invalid reg property or containing duplicates are
> ignored and the device tree parsing is not stopped anymore when such
> entries are encountered, the device tree cpu entry is just skipped.
>
> A device tree with cpu nodes missing the boot CPU MPIDR is considered a
> hard error and the kernel flags this up as a bug to force firmware updates.
>
> The updates to cpus/cpu node bindings for ARM require all in-kernel dts files
> present in the mainline to be made compliant to the latest specification.
>
> This patch also updates ARM in-kernel non-compliant dts files to the latest
> cpus/cpu nodes bindings specification.
>
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> ---
> Documentation/devicetree/bindings/arm/cpus.txt | 335 +++++++++++++++++++++----
> arch/arm/boot/dts/exynos5440.dtsi | 7 +
> arch/arm/boot/dts/omap3.dtsi | 4 +
> arch/arm/boot/dts/omap4.dtsi | 5 +
> arch/arm/boot/dts/omap5.dtsi | 5 +
> arch/arm/boot/dts/r8a7740.dtsi | 3 +
> arch/arm/boot/dts/sh7372.dtsi | 4 +
> arch/arm/boot/dts/sunxi.dtsi | 4 +
Hi,
If it can be done easily, can you please consider the upcoming (3.10)
cortex-a5 SoC:
arch/arm/boot/dts/sama5d3.dtsi
It is in linux-next through arm-soc/at91/at91/soc
> arch/arm/kernel/devtree.c | 82 +++---
> 9 files changed, 377 insertions(+), 72 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/arm/cpus.txt b/Documentation/devicetree/bindings/arm/cpus.txt
> index f32494d..b1ef3d8 100644
> --- a/Documentation/devicetree/bindings/arm/cpus.txt
> +++ b/Documentation/devicetree/bindings/arm/cpus.txt
> @@ -1,4 +1,6 @@
> -* ARM CPUs binding description
> +=============================
> +ARM CPUs bindings description
> +=============================
>
> The device tree allows to describe the layout of CPUs in a system through
> the "cpus" node, which in turn contains a number of subnodes (ie "cpu")
> @@ -8,70 +10,317 @@ Bindings for CPU nodes follow the ePAPR standard, available from:
>
> http://devicetree.org
>
> -For the ARM architecture every CPU node must contain the following properties:
> -
> -- device_type: must be "cpu"
> -- reg: property matching the CPU MPIDR[23:0] register bits
> - reg[31:24] bits must be set to 0
> -- compatible: should be one of:
> - "arm,arm1020"
> - "arm,arm1020e"
> - "arm,arm1022"
> - "arm,arm1026"
> - "arm,arm720"
> - "arm,arm740"
> - "arm,arm7tdmi"
> - "arm,arm920"
Here we have: "arm,arm920t" for at91rm9200.dtsi
> - "arm,arm922"
> - "arm,arm925"
> - "arm,arm926"
Oh, I missed this one: the strange thing is that *all* arm926 variants
have a compatible string of this form: "arm,arm926ejs"
(using: git grep "arm,arm9" next/master)
Should we change? Is there a rule for this naming?
> - "arm,arm940"
> - "arm,arm946"
> - "arm,arm9tdmi"
> - "arm,cortex-a5"
> - "arm,cortex-a7"
> - "arm,cortex-a8"
> - "arm,cortex-a9"
> - "arm,cortex-a15"
> - "arm,arm1136"
> - "arm,arm1156"
> - "arm,arm1176"
> - "arm,arm11mpcore"
> - "faraday,fa526"
> - "intel,sa110"
> - "intel,sa1100"
> - "marvell,feroceon"
> - "marvell,mohawk"
> - "marvell,xsc3"
> - "marvell,xscale"
[..]
Thanks, best regards,
--
Nicolas Ferre
next prev parent reply other threads:[~2013-04-17 9:35 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-15 16:13 [RFC PATCH 0/2] ARM: DT cpu bindings updates Lorenzo Pieralisi
2013-04-15 16:13 ` Lorenzo Pieralisi
2013-04-15 16:13 ` [RFC PATCH 1/2] ARM: DT: kernel: move temporary cpu map stack array to static data Lorenzo Pieralisi
2013-04-15 16:13 ` Lorenzo Pieralisi
2013-04-15 16:13 ` [RFC PATCH 2/2] ARM: DT: kernel: DT cpu node bindings update Lorenzo Pieralisi
2013-04-15 16:13 ` Lorenzo Pieralisi
2013-04-15 19:26 ` Stephen Warren
2013-04-15 19:26 ` Stephen Warren
2013-04-16 10:45 ` Lorenzo Pieralisi
2013-04-16 10:45 ` Lorenzo Pieralisi
2013-04-16 15:57 ` Stephen Warren
2013-04-16 15:57 ` Stephen Warren
2013-04-16 16:21 ` Benjamin Herrenschmidt
2013-04-16 16:21 ` Benjamin Herrenschmidt
2013-04-16 14:30 ` Dave Martin
2013-04-16 14:30 ` Dave Martin
2013-04-17 9:14 ` Mark Rutland
2013-04-17 9:14 ` Mark Rutland
2013-04-17 15:14 ` Stephen Warren
2013-04-17 15:14 ` Stephen Warren
2013-04-17 16:02 ` Nicolas Pitre
2013-04-17 16:02 ` Nicolas Pitre
2013-04-17 16:23 ` Stephen Warren
2013-04-17 16:23 ` Stephen Warren
2013-04-17 16:36 ` Nicolas Pitre
2013-04-17 16:36 ` Nicolas Pitre
2013-04-17 16:56 ` Dave Martin
2013-04-17 16:56 ` Dave Martin
2013-04-17 16:24 ` Benjamin Herrenschmidt
2013-04-17 16:24 ` Benjamin Herrenschmidt
2013-04-18 12:40 ` Grant Likely
2013-04-18 12:40 ` Grant Likely
2013-04-16 2:41 ` Simon Horman
2013-04-16 2:41 ` Simon Horman
2013-04-16 11:00 ` Lorenzo Pieralisi
2013-04-16 11:00 ` Lorenzo Pieralisi
2013-04-17 9:35 ` Nicolas Ferre [this message]
2013-04-17 9:35 ` Nicolas Ferre
2013-04-17 11:44 ` Lorenzo Pieralisi
2013-04-17 11:44 ` Lorenzo Pieralisi
2013-04-17 9:48 ` Arnd Bergmann
2013-04-17 9:48 ` Arnd Bergmann
2013-04-17 11:02 ` Lorenzo Pieralisi
2013-04-17 11:02 ` Lorenzo Pieralisi
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=516E6CDC.9010005@atmel.com \
--to=nicolas.ferre@atmel.com \
--cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.