All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Hogan <james.hogan@imgtec.com>
To: Rob Herring <robherring2@gmail.com>
Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <rob.herring@calxeda.com>,
	Aurelien Jacquiot <a-jacquiot@ti.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Chris Zankel <chris@zankel.net>, "H. Peter Anvin" <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>, Jonas Bonn <jonas@southpole.se>,
	Mark Salter <msalter@redhat.com>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Michal Simek <monstr@monstr.eu>,
	microblaze-uclinux@itee.uq.edu.au,
	Paul Mackerras <paulus@samba.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	Russell King <linux@arm.linux.org.uk>,
	Thomas Gleixner <tglx@linutronix.de>,
	Vineet Gupta <vgupta@synopsys.com>,
	Will Deacon <will.deacon@arm.com>,
	x86@kernel.org
Subject: Re: [PATCH 00/28] Early flattened DT init consolidation
Date: Mon, 23 Sep 2013 10:58:45 +0100	[thread overview]
Message-ID: <524010D5.9000208@imgtec.com> (raw)
In-Reply-To: <1379372965-22359-1-git-send-email-robherring2@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5020 bytes --]

On 17/09/13 00:08, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> This is the first of 2 series to do some consolidation of per
> architecture Device Tree code. We now have 12 architectures with DT
> support. As new architectures have been added, much of the DT related
> code for the early flattened DT scanning has been duplicated. Yet little
> of this code is architecture specific. This series has 4 main parts:
> 
> - Create a common function to copy built-in dtb's out of init section
> - Create a single, common function to scan the FDT
> - Removal of early_init_dt_setup_initrd_arch
> - Create common functions for machine matching with DT
> 
> The entire series is available here:
> git://sources.calxeda.com/kernel/linux.git dt-cleanup

Hi Rob,

I gave this branch a try on metag.

The following patches break the build:
e09b397e of: only include prom.h on sparc
740de19c of: remove empty arch prom.h headers

because metag's prom.h has a setup_machine_fdt function declaration
which is used in arch/metag/kernel/setup.c (and defined in
arch/metag/kernel/devtree.c). Please move that declaration elsewhere
(asm/setup.h would seem appropriate) if you're going to remove prom.h.


Also I appear to hit the BUG_ON at
drivers/of/fdt.c:511/of_get_flat_dt_root().

This is because on metag we try interpreting the command line argument
as a device tree and only use the built-in DT if that fails. Previously
we relied on the be32_to_cpu(devtree->magic) != OF_DT_HEADER check in
setup_machine_fdt. The following seems to fix it:

diff --git a/arch/metag/kernel/devtree.c b/arch/metag/kernel/devtree.c
index abe607e..550dd91 100644
--- a/arch/metag/kernel/devtree.c
+++ b/arch/metag/kernel/devtree.c
@@ -52,7 +52,10 @@ struct machine_desc * __init setup_machine_fdt(void *dt)
 {
 	struct machine_desc *mdesc;

-	early_init_dt_scan(dt);
+	/* check device tree validity */
+	if (!early_init_dt_scan(dt))
+		return NULL;
+
 	mdesc = of_flat_dt_match_machine(NULL, arch_get_next_mach);
 	if (!mdesc)
 		dump_machine_table(); /* does not return */

Cheers
James

> 
> Compiled on arm, arm64, microblaze, mips, openrisc, powerpc, sparc,
> xtensa.
> 
> Rob
> 
> Rob Herring (28):
>   c6x: use boot_command_line instead of private c6x_command_line
>   openrisc: use boot_command_line instead of private cmd_line
>   of: create unflatten_and_copy_device_tree
>   arc: use unflatten_and_copy_device_tree
>   openrisc: use unflatten_and_copy_device_tree
>   x86: use unflatten_and_copy_device_tree
>   xtensa: use unflatten_and_copy_device_tree
>   metag: use unflatten_and_copy_device_tree
>   of: Introduce common early_init_dt_scan
>   arc: use early_init_dt_scan
>   arm: use early_init_dt_scan
>   arm64: use early_init_dt_scan
>   c6x: use early_init_dt_scan
>   microblaze: use early_init_dt_scan
>   mips: use early_init_dt_scan
>   openrisc: use early_init_dt_scan
>   xtensa: use early_init_dt_scan
>   of: create default early_init_dt_add_memory_arch
>   arm: set initrd_start/initrd_end for fdt scan
>   arm64: set initrd_start/initrd_end for fdt scan
>   of: remove early_init_dt_setup_initrd_arch
>   openrisc: remove unnecessary prom.c includes
>   of: introduce common FDT machine related functions
>   arc: use common of_flat_dt_match_machine
>   arm: use common of_flat_dt_match_machine
>   arm64: use common of_flat_dt_get_machine_name
>   metag: use common of_flat_dt_match_machine
>   mips: use common of_flat_dt_get_machine_name
> 
>  arch/arc/include/asm/mach_desc.h |   1 -
>  arch/arc/kernel/devtree.c        |  94 +++++++--------------------------
>  arch/arc/kernel/setup.c          |   3 +-
>  arch/arc/mm/init.c               |   7 ---
>  arch/arm/kernel/devtree.c        |  57 ++++++++------------
>  arch/arm/mm/init.c               |  13 ++---
>  arch/arm64/kernel/setup.c        |  60 ++-------------------
>  arch/arm64/mm/init.c             |  24 +++------
>  arch/c6x/include/asm/setup.h     |   2 -
>  arch/c6x/kernel/devicetree.c     |  29 ----------
>  arch/c6x/kernel/setup.c          |  13 +----
>  arch/metag/kernel/devtree.c      |  87 ++++++------------------------
>  arch/metag/kernel/setup.c        |   4 +-
>  arch/metag/mm/init.c             |   9 ----
>  arch/microblaze/kernel/prom.c    |  31 ++---------
>  arch/microblaze/kernel/setup.c   |   2 +-
>  arch/mips/include/asm/prom.h     |   3 --
>  arch/mips/kernel/prom.c          |  60 +--------------------
>  arch/openrisc/kernel/prom.c      |  70 +-----------------------
>  arch/openrisc/kernel/setup.c     |   6 +--
>  arch/powerpc/kernel/prom.c       |   9 ----
>  arch/x86/kernel/devicetree.c     |  42 +++------------
>  arch/xtensa/kernel/setup.c       |  55 +++++--------------
>  drivers/of/fdt.c                 | 111 +++++++++++++++++++++++++++++++++++++--
>  include/linux/of_fdt.h           |  18 +++----
>  25 files changed, 223 insertions(+), 587 deletions(-)
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: James Hogan <james.hogan@imgtec.com>
To: Rob Herring <robherring2@gmail.com>
Cc: <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <rob.herring@calxeda.com>,
	"Aurelien Jacquiot" <a-jacquiot@ti.com>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Chris Zankel <chris@zankel.net>, "H. Peter Anvin" <hpa@zytor.com>,
	"Ingo Molnar" <mingo@redhat.com>, Jonas Bonn <jonas@southpole.se>,
	Mark Salter <msalter@redhat.com>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Michal Simek <monstr@monstr.eu>,
	<microblaze-uclinux@itee.uq.edu.au>,
	Paul Mackerras <paulus@samba.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	Russell King <linux@arm.linux.org.uk>,
	Thomas Gleixner <tglx@linutronix.de>,
	Vineet Gupta <vgupta@synopsys.com>,
	Will Deacon <will.deacon@arm.com>, <x86@kernel.org>
Subject: Re: [PATCH 00/28] Early flattened DT init consolidation
Date: Mon, 23 Sep 2013 10:58:45 +0100	[thread overview]
Message-ID: <524010D5.9000208@imgtec.com> (raw)
In-Reply-To: <1379372965-22359-1-git-send-email-robherring2@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5020 bytes --]

On 17/09/13 00:08, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
> 
> This is the first of 2 series to do some consolidation of per
> architecture Device Tree code. We now have 12 architectures with DT
> support. As new architectures have been added, much of the DT related
> code for the early flattened DT scanning has been duplicated. Yet little
> of this code is architecture specific. This series has 4 main parts:
> 
> - Create a common function to copy built-in dtb's out of init section
> - Create a single, common function to scan the FDT
> - Removal of early_init_dt_setup_initrd_arch
> - Create common functions for machine matching with DT
> 
> The entire series is available here:
> git://sources.calxeda.com/kernel/linux.git dt-cleanup

Hi Rob,

I gave this branch a try on metag.

The following patches break the build:
e09b397e of: only include prom.h on sparc
740de19c of: remove empty arch prom.h headers

because metag's prom.h has a setup_machine_fdt function declaration
which is used in arch/metag/kernel/setup.c (and defined in
arch/metag/kernel/devtree.c). Please move that declaration elsewhere
(asm/setup.h would seem appropriate) if you're going to remove prom.h.


Also I appear to hit the BUG_ON at
drivers/of/fdt.c:511/of_get_flat_dt_root().

This is because on metag we try interpreting the command line argument
as a device tree and only use the built-in DT if that fails. Previously
we relied on the be32_to_cpu(devtree->magic) != OF_DT_HEADER check in
setup_machine_fdt. The following seems to fix it:

diff --git a/arch/metag/kernel/devtree.c b/arch/metag/kernel/devtree.c
index abe607e..550dd91 100644
--- a/arch/metag/kernel/devtree.c
+++ b/arch/metag/kernel/devtree.c
@@ -52,7 +52,10 @@ struct machine_desc * __init setup_machine_fdt(void *dt)
 {
 	struct machine_desc *mdesc;

-	early_init_dt_scan(dt);
+	/* check device tree validity */
+	if (!early_init_dt_scan(dt))
+		return NULL;
+
 	mdesc = of_flat_dt_match_machine(NULL, arch_get_next_mach);
 	if (!mdesc)
 		dump_machine_table(); /* does not return */

Cheers
James

> 
> Compiled on arm, arm64, microblaze, mips, openrisc, powerpc, sparc,
> xtensa.
> 
> Rob
> 
> Rob Herring (28):
>   c6x: use boot_command_line instead of private c6x_command_line
>   openrisc: use boot_command_line instead of private cmd_line
>   of: create unflatten_and_copy_device_tree
>   arc: use unflatten_and_copy_device_tree
>   openrisc: use unflatten_and_copy_device_tree
>   x86: use unflatten_and_copy_device_tree
>   xtensa: use unflatten_and_copy_device_tree
>   metag: use unflatten_and_copy_device_tree
>   of: Introduce common early_init_dt_scan
>   arc: use early_init_dt_scan
>   arm: use early_init_dt_scan
>   arm64: use early_init_dt_scan
>   c6x: use early_init_dt_scan
>   microblaze: use early_init_dt_scan
>   mips: use early_init_dt_scan
>   openrisc: use early_init_dt_scan
>   xtensa: use early_init_dt_scan
>   of: create default early_init_dt_add_memory_arch
>   arm: set initrd_start/initrd_end for fdt scan
>   arm64: set initrd_start/initrd_end for fdt scan
>   of: remove early_init_dt_setup_initrd_arch
>   openrisc: remove unnecessary prom.c includes
>   of: introduce common FDT machine related functions
>   arc: use common of_flat_dt_match_machine
>   arm: use common of_flat_dt_match_machine
>   arm64: use common of_flat_dt_get_machine_name
>   metag: use common of_flat_dt_match_machine
>   mips: use common of_flat_dt_get_machine_name
> 
>  arch/arc/include/asm/mach_desc.h |   1 -
>  arch/arc/kernel/devtree.c        |  94 +++++++--------------------------
>  arch/arc/kernel/setup.c          |   3 +-
>  arch/arc/mm/init.c               |   7 ---
>  arch/arm/kernel/devtree.c        |  57 ++++++++------------
>  arch/arm/mm/init.c               |  13 ++---
>  arch/arm64/kernel/setup.c        |  60 ++-------------------
>  arch/arm64/mm/init.c             |  24 +++------
>  arch/c6x/include/asm/setup.h     |   2 -
>  arch/c6x/kernel/devicetree.c     |  29 ----------
>  arch/c6x/kernel/setup.c          |  13 +----
>  arch/metag/kernel/devtree.c      |  87 ++++++------------------------
>  arch/metag/kernel/setup.c        |   4 +-
>  arch/metag/mm/init.c             |   9 ----
>  arch/microblaze/kernel/prom.c    |  31 ++---------
>  arch/microblaze/kernel/setup.c   |   2 +-
>  arch/mips/include/asm/prom.h     |   3 --
>  arch/mips/kernel/prom.c          |  60 +--------------------
>  arch/openrisc/kernel/prom.c      |  70 +-----------------------
>  arch/openrisc/kernel/setup.c     |   6 +--
>  arch/powerpc/kernel/prom.c       |   9 ----
>  arch/x86/kernel/devicetree.c     |  42 +++------------
>  arch/xtensa/kernel/setup.c       |  55 +++++--------------
>  drivers/of/fdt.c                 | 111 +++++++++++++++++++++++++++++++++++++--
>  include/linux/of_fdt.h           |  18 +++----
>  25 files changed, 223 insertions(+), 587 deletions(-)
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  parent reply	other threads:[~2013-09-23  9:58 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-16 23:08 [PATCH 00/28] Early flattened DT init consolidation Rob Herring
2013-09-16 23:08 ` Rob Herring
2013-09-16 23:08 ` [PATCH 01/28] c6x: use boot_command_line instead of private c6x_command_line Rob Herring
2013-09-18  3:07   ` Grant Likely
2013-09-18 13:35   ` Mark Salter
2013-09-16 23:08 ` [PATCH 02/28] openrisc: use boot_command_line instead of private cmd_line Rob Herring
2013-09-16 23:08   ` Rob Herring
     [not found] ` <1379372965-22359-1-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-16 23:08   ` [PATCH 03/28] of: create unflatten_and_copy_device_tree Rob Herring
2013-09-16 23:08     ` Rob Herring
2013-09-17  5:24     ` Vineet Gupta
2013-09-18  3:15     ` Grant Likely
2013-09-16 23:09   ` [PATCH 04/28] arc: use unflatten_and_copy_device_tree Rob Herring
2013-09-16 23:09     ` Rob Herring
2013-09-17  5:27     ` Vineet Gupta
2013-09-17  5:27       ` Vineet Gupta
2013-09-16 23:09 ` [PATCH 05/28] openrisc: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 06/28] x86: " Rob Herring
2013-09-16 23:09 ` [PATCH 07/28] xtensa: " Rob Herring
     [not found]   ` <1379372965-22359-8-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-23 10:52     ` Max Filippov
2013-09-23 10:52       ` Max Filippov
2013-09-16 23:09 ` [PATCH 08/28] metag: " Rob Herring
2013-09-16 23:09 ` [PATCH 09/28] of: Introduce common early_init_dt_scan Rob Herring
     [not found]   ` <1379372965-22359-10-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-17  5:46     ` Vineet Gupta
2013-09-17  5:46       ` Vineet Gupta
2013-09-18  3:24     ` Grant Likely
2013-09-18  3:24       ` Grant Likely
2013-09-16 23:09 ` [PATCH 10/28] arc: use early_init_dt_scan Rob Herring
2013-09-17  6:37   ` Vineet Gupta
2013-09-17  6:37     ` Vineet Gupta
2013-09-16 23:09 ` [PATCH 11/28] arm: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 12/28] arm64: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:43   ` Catalin Marinas
2013-09-17  8:43     ` Catalin Marinas
2013-09-17  8:43     ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 13/28] c6x: " Rob Herring
     [not found]   ` <1379372965-22359-14-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-17 12:00     ` Mark Salter
2013-09-17 12:00       ` Mark Salter
2013-09-16 23:09 ` [PATCH 14/28] microblaze: " Rob Herring
2013-09-17 13:05   ` Michal Simek
2013-09-16 23:09 ` [PATCH 15/28] mips: " Rob Herring
2013-09-17  4:32   ` John Crispin
2013-09-16 23:09 ` [PATCH 16/28] openrisc: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 17/28] xtensa: " Rob Herring
     [not found]   ` <1379372965-22359-18-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-23 10:53     ` Max Filippov
2013-09-23 10:53       ` Max Filippov
2013-09-16 23:09 ` [PATCH 18/28] of: create default early_init_dt_add_memory_arch Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:46   ` Catalin Marinas
2013-09-17  8:46     ` Catalin Marinas
2013-09-17  8:46     ` Catalin Marinas
2013-09-17 13:01     ` Rob Herring
2013-09-17 13:01       ` Rob Herring
2013-09-17 13:01       ` Rob Herring
2013-09-17 15:28       ` Catalin Marinas
2013-09-17 15:28         ` Catalin Marinas
2013-09-17 15:28         ` Catalin Marinas
2013-09-18  3:33   ` Grant Likely
2013-09-18  3:33     ` Grant Likely
2013-09-18  3:33     ` Grant Likely
2013-09-18 15:09     ` Rob Herring
2013-09-18 15:09       ` Rob Herring
2013-09-18 15:09       ` Rob Herring
2013-09-22 12:16       ` Grant Likely
2013-09-22 12:16         ` Grant Likely
2013-09-22 12:16         ` Grant Likely
2013-09-16 23:09 ` [PATCH 19/28] arm: set initrd_start/initrd_end for fdt scan Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-18  3:36   ` Grant Likely
2013-09-18  3:36     ` Grant Likely
2013-09-18  3:36     ` Grant Likely
2013-09-16 23:09 ` [PATCH 20/28] arm64: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:50   ` Catalin Marinas
2013-09-17  8:50     ` Catalin Marinas
2013-09-17  8:50     ` Catalin Marinas
2013-09-18  3:36     ` Grant Likely
2013-09-18  3:36       ` Grant Likely
2013-09-18  3:36       ` Grant Likely
2013-09-16 23:09 ` [PATCH 21/28] of: remove early_init_dt_setup_initrd_arch Rob Herring
2013-09-17  6:45   ` Vineet Gupta
2013-09-18  3:39   ` Grant Likely
2013-09-16 23:09 ` [PATCH 22/28] openrisc: remove unnecessary prom.c includes Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 23/28] of: introduce common FDT machine related functions Rob Herring
     [not found]   ` <1379372965-22359-24-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-18  3:44     ` Grant Likely
2013-09-18  3:44       ` Grant Likely
2013-10-04 18:49     ` Grant Likely
2013-10-04 18:49       ` Grant Likely
2013-09-16 23:09 ` [PATCH 24/28] arc: use common of_flat_dt_match_machine Rob Herring
2013-09-17  6:50   ` Vineet Gupta
2013-09-17  6:50     ` Vineet Gupta
2013-09-16 23:09 ` [PATCH 25/28] arm: " Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-16 23:09 ` [PATCH 26/28] arm64: use common of_flat_dt_get_machine_name Rob Herring
2013-09-16 23:09   ` Rob Herring
2013-09-17  8:53   ` Catalin Marinas
2013-09-17  8:53     ` Catalin Marinas
2013-09-17  8:53     ` Catalin Marinas
2013-09-16 23:09 ` [PATCH 27/28] metag: use common of_flat_dt_match_machine Rob Herring
2013-09-16 23:09 ` [PATCH 28/28] mips: use common of_flat_dt_get_machine_name Rob Herring
2013-09-17  4:32   ` John Crispin
2013-09-17  4:32     ` John Crispin
2013-09-23  9:58 ` James Hogan [this message]
2013-09-23  9:58   ` [PATCH 00/28] Early flattened DT init consolidation James Hogan

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=524010D5.9000208@imgtec.com \
    --to=james.hogan@imgtec.com \
    --cc=a-jacquiot@ti.com \
    --cc=benh@kernel.crashing.org \
    --cc=catalin.marinas@arm.com \
    --cc=chris@zankel.net \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=hpa@zytor.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=jonas@southpole.se \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=microblaze-uclinux@itee.uq.edu.au \
    --cc=mingo@redhat.com \
    --cc=monstr@monstr.eu \
    --cc=msalter@redhat.com \
    --cc=paulus@samba.org \
    --cc=ralf@linux-mips.org \
    --cc=rob.herring@calxeda.com \
    --cc=robherring2@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=vgupta@synopsys.com \
    --cc=will.deacon@arm.com \
    --cc=x86@kernel.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.