Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
On Fri, Oct 09, 2009 at 01:07:57AM -0600, Grant Likely wrote: > On Fri, Oct 9, 2009 at 12:35 AM, David Gibson > wrote: > > On Tue, Oct 06, 2009 at 10:30:59PM -0600, Grant Likely wrote: > >> Add a common header file for working with the flattened device tree > >> data structure and merge the shared data tags used by Microblaze and > >> PowerPC > >> > >> Signed-off-by: Grant Likely > >> --- > >> > >> arch/microblaze/include/asm/prom.h | 12 +--- > >> arch/powerpc/include/asm/prom.h | 12 +--- > >> include/linux/of_fdt.h | 30 ++ > >> 3 files changed, 32 insertions(+), 22 deletions(-) > >> create mode 100644 include/linux/of_fdt.h > >> > >> diff --git a/arch/microblaze/include/asm/prom.h > >> b/arch/microblaze/include/asm/prom.h > >> index 64e8b3a..5f461f0 100644 > >> --- a/arch/microblaze/include/asm/prom.h > >> +++ b/arch/microblaze/include/asm/prom.h > >> @@ -17,20 +17,10 @@ > >> #ifndef _ASM_MICROBLAZE_PROM_H > >> #define _ASM_MICROBLAZE_PROM_H > >> #ifdef __KERNEL__ > >> - > >> -/* Definitions used by the flattened device tree */ > >> -#define OF_DT_HEADER 0xd00dfeed /* marker */ > >> -#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ > >> -#define OF_DT_END_NODE 0x2 /* End node */ > >> -#define OF_DT_PROP 0x3 /* Property: name off, size, content */ > >> -#define OF_DT_NOP 0x4 /* nop */ > >> -#define OF_DT_END 0x9 > >> - > >> -#define OF_DT_VERSION 0x10 > > > > > > So, if you're merging all these, I guess the question is do we also > > want to merge them with scripts/dtc/libfdt/fdt.h, and by extension > > with the upstream libfdt header file which defines the same things. > > I see your question and raise you another. Where should the merge > file live for it to be included both by dtc and kernel code? Or should > it just be cloned in the kernel tree? Yeah, a good question. As I see it there are two options. Number one is just make sure everything relevant that the kernel needs is in the libfdt version, then just have the kernel code reference it from its location in scripts/dtc. Other option is we clone the file in the kernel tree. Requires keeping in sync, in theory at least, but since that file has been pretty static (since it's only supposed to contain passive structures/constants related to the physical flat tree structure - no code or prototypes). -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
On Fri, Oct 9, 2009 at 12:35 AM, David Gibson wrote: > On Tue, Oct 06, 2009 at 10:30:59PM -0600, Grant Likely wrote: >> Add a common header file for working with the flattened device tree >> data structure and merge the shared data tags used by Microblaze and >> PowerPC >> >> Signed-off-by: Grant Likely >> --- >> >> arch/microblaze/include/asm/prom.h | 12 +--- >> arch/powerpc/include/asm/prom.h | 12 +--- >> include/linux/of_fdt.h | 30 ++ >> 3 files changed, 32 insertions(+), 22 deletions(-) >> create mode 100644 include/linux/of_fdt.h >> >> diff --git a/arch/microblaze/include/asm/prom.h >> b/arch/microblaze/include/asm/prom.h >> index 64e8b3a..5f461f0 100644 >> --- a/arch/microblaze/include/asm/prom.h >> +++ b/arch/microblaze/include/asm/prom.h >> @@ -17,20 +17,10 @@ >> #ifndef _ASM_MICROBLAZE_PROM_H >> #define _ASM_MICROBLAZE_PROM_H >> #ifdef __KERNEL__ >> - >> -/* Definitions used by the flattened device tree */ >> -#define OF_DT_HEADER 0xd00dfeed /* marker */ >> -#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ >> -#define OF_DT_END_NODE 0x2 /* End node */ >> -#define OF_DT_PROP 0x3 /* Property: name off, size, content */ >> -#define OF_DT_NOP 0x4 /* nop */ >> -#define OF_DT_END 0x9 >> - >> -#define OF_DT_VERSION 0x10 > > > So, if you're merging all these, I guess the question is do we also > want to merge them with scripts/dtc/libfdt/fdt.h, and by extension > with the upstream libfdt header file which defines the same things. I see your question and raise you another. Where should the merge file live for it to be included both by dtc and kernel code? Or should it just be cloned in the kernel tree? g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
On Tue, Oct 06, 2009 at 10:30:59PM -0600, Grant Likely wrote: > Add a common header file for working with the flattened device tree > data structure and merge the shared data tags used by Microblaze and > PowerPC > > Signed-off-by: Grant Likely > --- > > arch/microblaze/include/asm/prom.h | 12 +--- > arch/powerpc/include/asm/prom.h| 12 +--- > include/linux/of_fdt.h | 30 ++ > 3 files changed, 32 insertions(+), 22 deletions(-) > create mode 100644 include/linux/of_fdt.h > > diff --git a/arch/microblaze/include/asm/prom.h > b/arch/microblaze/include/asm/prom.h > index 64e8b3a..5f461f0 100644 > --- a/arch/microblaze/include/asm/prom.h > +++ b/arch/microblaze/include/asm/prom.h > @@ -17,20 +17,10 @@ > #ifndef _ASM_MICROBLAZE_PROM_H > #define _ASM_MICROBLAZE_PROM_H > #ifdef __KERNEL__ > - > -/* Definitions used by the flattened device tree */ > -#define OF_DT_HEADER 0xd00dfeed /* marker */ > -#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ > -#define OF_DT_END_NODE 0x2 /* End node */ > -#define OF_DT_PROP 0x3 /* Property: name off, size, content */ > -#define OF_DT_NOP0x4 /* nop */ > -#define OF_DT_END0x9 > - > -#define OF_DT_VERSION0x10 So, if you're merging all these, I guess the question is do we also want to merge them with scripts/dtc/libfdt/fdt.h, and by extension with the upstream libfdt header file which defines the same things. -- David Gibson| I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [microblaze-uclinux] Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
Grant Likely wrote: > On Wed, Oct 7, 2009 at 6:14 AM, Michal Simek wrote: >> >> Stephen Rothwell wrote: >>> Hi Grant, >>> >>> Just first obvious thing: >>> >>> On Tue, 06 Oct 2009 22:30:59 -0600 Grant Likely >>> wrote: diff --git a/arch/microblaze/include/asm/prom.h b/arch/microblaze/include/asm/prom.h index 64e8b3a..5f461f0 100644 --- a/arch/microblaze/include/asm/prom.h +++ b/arch/microblaze/include/asm/prom.h @@ -17,20 +17,10 @@ #ifndef _ASM_MICROBLAZE_PROM_H #define _ASM_MICROBLAZE_PROM_H #ifdef __KERNEL__ - -/* Definitions used by the flattened device tree */ -#define OF_DT_HEADER0xd00dfeed /* marker */ >>> This is used in arch/microblaze/kernel/head.S, but you move its >>> definition inside "#ifndef __ASSEMBLY__" below. You should probably >>> replace the include of asm/prom.h in arch/microblaze/kernel/head.S with >>> linux/of_fdt.h (assuming that the comment in there is correct). >> yes, Stephen is right here. I created one patch (in attachment) which fixed >> it. I tested your >> patches on Microblaze (noMMU and MMU) and I have no problem with compilation >> and simple boot-up >> works for both versions too. >> >> With that my patch: Acked-by: Michal Simek > > Thanks. I'll merge your change with my patch so that bisect isn't broken. if is possible to do it, please do it. Thanks, Michal > > g. > -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/ Microblaze U-BOOT custodian ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
On Tue, Oct 6, 2009 at 11:14 PM, Benjamin Herrenschmidt wrote: > On Tue, 2009-10-06 at 22:30 -0600, Grant Likely wrote: > >> --- /dev/null >> +++ b/include/linux/of_fdt.h >> @@ -0,0 +1,30 @@ >> +/* >> + * Definitions for working with the Flattened Device Tree data format >> + * >> + * Copyright (C) 1996-2005 Paul Mackerras. >> + * >> + * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp. >> + * Updates for SPARC by David S. Miller >> + * Merged to common code by Grant Likely > > I think you should prune the above. Make it (c) myself since I wrote the > FDT code initially. You can add back (c) of other people as you add more > stuff here I suppose. > > No big deal tho. No problem. What is the exact copyright text that you'd like to see here? I'm not going to guess on other people's copyright notice. :-) g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [microblaze-uclinux] Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
On Wed, Oct 7, 2009 at 6:14 AM, Michal Simek wrote: > > > Stephen Rothwell wrote: >> Hi Grant, >> >> Just first obvious thing: >> >> On Tue, 06 Oct 2009 22:30:59 -0600 Grant Likely >> wrote: >>> diff --git a/arch/microblaze/include/asm/prom.h >>> b/arch/microblaze/include/asm/prom.h >>> index 64e8b3a..5f461f0 100644 >>> --- a/arch/microblaze/include/asm/prom.h >>> +++ b/arch/microblaze/include/asm/prom.h >>> @@ -17,20 +17,10 @@ >>> #ifndef _ASM_MICROBLAZE_PROM_H >>> #define _ASM_MICROBLAZE_PROM_H >>> #ifdef __KERNEL__ >>> - >>> -/* Definitions used by the flattened device tree */ >>> -#define OF_DT_HEADER 0xd00dfeed /* marker */ >> >> This is used in arch/microblaze/kernel/head.S, but you move its >> definition inside "#ifndef __ASSEMBLY__" below. You should probably >> replace the include of asm/prom.h in arch/microblaze/kernel/head.S with >> linux/of_fdt.h (assuming that the comment in there is correct). > > yes, Stephen is right here. I created one patch (in attachment) which fixed > it. I tested your > patches on Microblaze (noMMU and MMU) and I have no problem with compilation > and simple boot-up > works for both versions too. > > With that my patch: Acked-by: Michal Simek Thanks. I'll merge your change with my patch so that bisect isn't broken. g. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [microblaze-uclinux] Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
Stephen Rothwell wrote: > Hi Grant, > > Just first obvious thing: > > On Tue, 06 Oct 2009 22:30:59 -0600 Grant Likely > wrote: >> diff --git a/arch/microblaze/include/asm/prom.h >> b/arch/microblaze/include/asm/prom.h >> index 64e8b3a..5f461f0 100644 >> --- a/arch/microblaze/include/asm/prom.h >> +++ b/arch/microblaze/include/asm/prom.h >> @@ -17,20 +17,10 @@ >> #ifndef _ASM_MICROBLAZE_PROM_H >> #define _ASM_MICROBLAZE_PROM_H >> #ifdef __KERNEL__ >> - >> -/* Definitions used by the flattened device tree */ >> -#define OF_DT_HEADER0xd00dfeed /* marker */ > > This is used in arch/microblaze/kernel/head.S, but you move its > definition inside "#ifndef __ASSEMBLY__" below. You should probably > replace the include of asm/prom.h in arch/microblaze/kernel/head.S with > linux/of_fdt.h (assuming that the comment in there is correct). yes, Stephen is right here. I created one patch (in attachment) which fixed it. I tested your patches on Microblaze (noMMU and MMU) and I have no problem with compilation and simple boot-up works for both versions too. With that my patch: Acked-by: Michal Simek Thanks, Michal P.S.: I have my provider - it block my emails - that's why the patch is in attachment. > >> -#define OF_DT_BEGIN_NODE0x1 /* Start of node, full name */ >> -#define OF_DT_END_NODE 0x2 /* End node */ >> -#define OF_DT_PROP 0x3 /* Property: name off, size, content */ >> -#define OF_DT_NOP 0x4 /* nop */ >> -#define OF_DT_END 0x9 >> - >> -#define OF_DT_VERSION 0x10 >> - >> #ifndef __ASSEMBLY__ >> >> #include >> +#include >> #include >> #include >> #include > -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/ Microblaze U-BOOT custodian >From 73b16544fe8410ec8e8e893aa3357093e985 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Wed, 7 Oct 2009 14:04:01 +0200 Subject: [PATCH] of: microblaze: of_fdt.h is used in asm code. Microblaze uses OF_DT_HEADER macro to identify DTB. Reported-by: Stephen Rothwell Signed-off-by: Michal Simek --- arch/microblaze/kernel/head.S |2 +- include/linux/of_fdt.h|3 +++ 2 files changed, 4 insertions(+), 1 deletions(-) diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S index 697ce30..3091619 100644 --- a/arch/microblaze/kernel/head.S +++ b/arch/microblaze/kernel/head.S @@ -31,7 +31,7 @@ #include #include #include -#include /* for OF_DT_HEADER */ +#include /* for OF_DT_HEADER */ #ifdef CONFIG_MMU #include /* COMMAND_LINE_SIZE */ diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h index b41bd18..44fecfa 100644 --- a/include/linux/of_fdt.h +++ b/include/linux/of_fdt.h @@ -30,6 +30,7 @@ #define OF_DT_VERSION 0x10 +#ifndef __ASSEMBLY__ /* * This is what gets passed to the kernel by prom_init or kexec * @@ -84,4 +85,6 @@ extern int prom_remove_property(struct device_node *np, struct property *prop); extern int prom_update_property(struct device_node *np, struct property *newprop, struct property *oldprop); +#endif /* __ASSEMBLY__ */ + #endif /* _LINUX_OF_FDT_H */ -- 1.5.5.1 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
On Tue, 2009-10-06 at 22:30 -0600, Grant Likely wrote: > --- /dev/null > +++ b/include/linux/of_fdt.h > @@ -0,0 +1,30 @@ > +/* > + * Definitions for working with the Flattened Device Tree data format > + * > + * Copyright (C) 1996-2005 Paul Mackerras. > + * > + * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp. > + * Updates for SPARC by David S. Miller > + * Merged to common code by Grant Likely I think you should prune the above. Make it (c) myself since I wrote the FDT code initially. You can add back (c) of other people as you add more stuff here I suppose. No big deal tho. Ben. > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License > + * as published by the Free Software Foundation; either version > + * 2 of the License, or (at your option) any later version. > + */ > + > +#ifndef _LINUX_OF_FDT_H > +#define _LINUX_OF_FDT_H > + > +/* Definitions used by the flattened device tree */ > +#define OF_DT_HEADER 0xd00dfeed /* marker */ > +#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ > +#define OF_DT_END_NODE 0x2 /* End node */ > +#define OF_DT_PROP 0x3 /* Property: name off, size, > + * content */ > +#define OF_DT_NOP0x4 /* nop */ > +#define OF_DT_END0x9 > + > +#define OF_DT_VERSION0x10 > + > +#endif /* _LINUX_OF_FDT_H */ ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [RFC PATCH 05/12] of: add common header for flattened device tree representation
Hi Grant, Just first obvious thing: On Tue, 06 Oct 2009 22:30:59 -0600 Grant Likely wrote: > > diff --git a/arch/microblaze/include/asm/prom.h > b/arch/microblaze/include/asm/prom.h > index 64e8b3a..5f461f0 100644 > --- a/arch/microblaze/include/asm/prom.h > +++ b/arch/microblaze/include/asm/prom.h > @@ -17,20 +17,10 @@ > #ifndef _ASM_MICROBLAZE_PROM_H > #define _ASM_MICROBLAZE_PROM_H > #ifdef __KERNEL__ > - > -/* Definitions used by the flattened device tree */ > -#define OF_DT_HEADER 0xd00dfeed /* marker */ This is used in arch/microblaze/kernel/head.S, but you move its definition inside "#ifndef __ASSEMBLY__" below. You should probably replace the include of asm/prom.h in arch/microblaze/kernel/head.S with linux/of_fdt.h (assuming that the comment in there is correct). > -#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ > -#define OF_DT_END_NODE 0x2 /* End node */ > -#define OF_DT_PROP 0x3 /* Property: name off, size, content */ > -#define OF_DT_NOP0x4 /* nop */ > -#define OF_DT_END0x9 > - > -#define OF_DT_VERSION0x10 > - > #ifndef __ASSEMBLY__ > > #include > +#include > #include > #include > #include -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ pgpqWoCuSjWiy.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[RFC PATCH 05/12] of: add common header for flattened device tree representation
Add a common header file for working with the flattened device tree data structure and merge the shared data tags used by Microblaze and PowerPC Signed-off-by: Grant Likely --- arch/microblaze/include/asm/prom.h | 12 +--- arch/powerpc/include/asm/prom.h| 12 +--- include/linux/of_fdt.h | 30 ++ 3 files changed, 32 insertions(+), 22 deletions(-) create mode 100644 include/linux/of_fdt.h diff --git a/arch/microblaze/include/asm/prom.h b/arch/microblaze/include/asm/prom.h index 64e8b3a..5f461f0 100644 --- a/arch/microblaze/include/asm/prom.h +++ b/arch/microblaze/include/asm/prom.h @@ -17,20 +17,10 @@ #ifndef _ASM_MICROBLAZE_PROM_H #define _ASM_MICROBLAZE_PROM_H #ifdef __KERNEL__ - -/* Definitions used by the flattened device tree */ -#define OF_DT_HEADER 0xd00dfeed /* marker */ -#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ -#define OF_DT_END_NODE 0x2 /* End node */ -#define OF_DT_PROP 0x3 /* Property: name off, size, content */ -#define OF_DT_NOP 0x4 /* nop */ -#define OF_DT_END 0x9 - -#define OF_DT_VERSION 0x10 - #ifndef __ASSEMBLY__ #include +#include #include #include #include diff --git a/arch/powerpc/include/asm/prom.h b/arch/powerpc/include/asm/prom.h index c918db5..7181f8a 100644 --- a/arch/powerpc/include/asm/prom.h +++ b/arch/powerpc/include/asm/prom.h @@ -17,6 +17,7 @@ * 2 of the License, or (at your option) any later version. */ #include +#include #include #include #include @@ -29,17 +30,6 @@ #define of_prop_cmp(s1, s2)strcmp((s1), (s2)) #define of_node_cmp(s1, s2)strcasecmp((s1), (s2)) -/* Definitions used by the flattened device tree */ -#define OF_DT_HEADER 0xd00dfeed /* marker */ -#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ -#define OF_DT_END_NODE 0x2 /* End node */ -#define OF_DT_PROP 0x3 /* Property: name off, size, -* content */ -#define OF_DT_NOP 0x4 /* nop */ -#define OF_DT_END 0x9 - -#define OF_DT_VERSION 0x10 - /* * This is what gets passed to the kernel by prom_init or kexec * diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h new file mode 100644 index 000..f81d3f8 --- /dev/null +++ b/include/linux/of_fdt.h @@ -0,0 +1,30 @@ +/* + * Definitions for working with the Flattened Device Tree data format + * + * Copyright (C) 1996-2005 Paul Mackerras. + * + * Updates for PPC64 by Peter Bergner & David Engebretsen, IBM Corp. + * Updates for SPARC by David S. Miller + * Merged to common code by Grant Likely + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version + * 2 of the License, or (at your option) any later version. + */ + +#ifndef _LINUX_OF_FDT_H +#define _LINUX_OF_FDT_H + +/* Definitions used by the flattened device tree */ +#define OF_DT_HEADER 0xd00dfeed /* marker */ +#define OF_DT_BEGIN_NODE 0x1 /* Start of node, full name */ +#define OF_DT_END_NODE 0x2 /* End node */ +#define OF_DT_PROP 0x3 /* Property: name off, size, +* content */ +#define OF_DT_NOP 0x4 /* nop */ +#define OF_DT_END 0x9 + +#define OF_DT_VERSION 0x10 + +#endif /* _LINUX_OF_FDT_H */ ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev