From: Timur Tabi <hidden> Date: 2007-02-13 23:34:59
The 'linux,boot-cpu' property is obsolete, so remove it from all of the DTS
files and from booting-without-of.txt. The boot CPU is actually defined in
the device tree header, and U-Boot sets that field. The device tree compiler
also complains if the property exists.
Remove a stray 'chosen' section in mpc8272ads.dts. The 'chosen' section is
initialized by U-Boot, so the definition in the DTS is not used anyway.
Signed-off-by: Timur Tabi <redacted>
Signed-off-by: Stuart Yoder <redacted>
---
Note: The '64-bit' property is already defined by the OF PPC
binding and is added to show an example of a property
without a value. We're not actually adding a new property definition.
Documentation/powerpc/booting-without-of.txt | 5 ++---
arch/powerpc/boot/dts/kuroboxHG.dts | 1 -
arch/powerpc/boot/dts/mpc7448hpc2.dts | 5 ++---
arch/powerpc/boot/dts/mpc8272ads.dts | 8 --------
arch/powerpc/boot/dts/mpc8323emds.dts | 7 +++----
arch/powerpc/boot/dts/mpc8360emds.dts | 1 -
arch/powerpc/boot/dts/mpc8560ads.dts | 1 -
arch/powerpc/boot/dts/mpc8641_hpcn.dts | 3 +--
arch/powerpc/boot/dts/mpc866ads.dts | 1 -
arch/powerpc/boot/dts/mpc885ads.dts | 1 -
10 files changed, 8 insertions(+), 25 deletions(-)
@@ -519,7 +519,7 @@ physical memory layout. It also include through /chosen, like in this example, the platform type (mandatory) and the kernel command line arguments (optional).-The /cpus/PowerPC,970@0/linux,boot-cpu property is an example of a+The /cpus/PowerPC,970@0/64-bit property is an example of a property without a value. All other properties have a value. The significance of the #address-cells and #size-cells properties will be explained in chapter IV which defines precisely the required nodes and
@@ -778,7 +778,6 @@ address which can extend beyond that lim bytes - d-cache-size : one cell, size of L1 data cache in bytes - i-cache-size : one cell, size of L1 instruction cache in bytes- - linux, boot-cpu : Should be defined if this cpu is the boot cpu. Recommended properties:
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-02-13 23:58:26
On Tue, 2007-02-13 at 17:34 -0600, Timur Tabi wrote:
The 'linux,boot-cpu' property is obsolete, so remove it from all of the DTS
files and from booting-without-of.txt. The boot CPU is actually defined in
the device tree header, and U-Boot sets that field. The device tree compiler
also complains if the property exists.
Remove a stray 'chosen' section in mpc8272ads.dts. The 'chosen' section is
initialized by U-Boot, so the definition in the DTS is not used anyway.
I think that:
- The /chosen node should be present in the .dts even if empty
- I don't see why you are removing linux,boot-cpu from the
documentation ! It's a fairly important property. Bootloaders are
supposed to provide it on SMP environments and it's used for kexec.
Ben.
quoted hunk
Signed-off-by: Timur Tabi <redacted>
Signed-off-by: Stuart Yoder <redacted>
---
Note: The '64-bit' property is already defined by the OF PPC
binding and is added to show an example of a property
without a value. We're not actually adding a new property definition.
Documentation/powerpc/booting-without-of.txt | 5 ++---
arch/powerpc/boot/dts/kuroboxHG.dts | 1 -
arch/powerpc/boot/dts/mpc7448hpc2.dts | 5 ++---
arch/powerpc/boot/dts/mpc8272ads.dts | 8 --------
arch/powerpc/boot/dts/mpc8323emds.dts | 7 +++----
arch/powerpc/boot/dts/mpc8360emds.dts | 1 -
arch/powerpc/boot/dts/mpc8560ads.dts | 1 -
arch/powerpc/boot/dts/mpc8641_hpcn.dts | 3 +--
arch/powerpc/boot/dts/mpc866ads.dts | 1 -
arch/powerpc/boot/dts/mpc885ads.dts | 1 -
10 files changed, 8 insertions(+), 25 deletions(-)
@@ -519,7 +519,7 @@ physical memory layout. It also include through /chosen, like in this example, the platform type (mandatory) and the kernel command line arguments (optional).-The /cpus/PowerPC,970@0/linux,boot-cpu property is an example of a+The /cpus/PowerPC,970@0/64-bit property is an example of a property without a value. All other properties have a value. The significance of the #address-cells and #size-cells properties will be explained in chapter IV which defines precisely the required nodes and
@@ -778,7 +778,6 @@ address which can extend beyond that lim bytes - d-cache-size : one cell, size of L1 data cache in bytes - i-cache-size : one cell, size of L1 instruction cache in bytes- - linux, boot-cpu : Should be defined if this cpu is the boot cpu. Recommended properties:
From: Timur Tabi <hidden> Date: 2007-02-14 05:15:28
Benjamin Herrenschmidt wrote:
I think that:
- The /chosen node should be present in the .dts even if empty
Only one DTS file has it. It's been removed from every other DTS. Are
you should that instead of removing the last one, I should *add* one to
the other DTS files?
- I don't see why you are removing linux,boot-cpu from the
documentation ! It's a fairly important property.
No, it's a dead property. Specifying linux,boot-cpu in the DTS is
obsolete and deprecated. If you specify it, the device tree compiler
complains. The proper way to specify the device tree is with the -b
parameter to dtc.
From: David Gibson <hidden> Date: 2007-02-14 05:19:24
On Tue, Feb 13, 2007 at 11:15:17PM -0600, Timur Tabi wrote:
Benjamin Herrenschmidt wrote:
quoted
I think that:
- The /chosen node should be present in the .dts even if empty
Only one DTS file has it. It's been removed from every other DTS. Are
you should that instead of removing the last one, I should *add* one to
the other DTS files?
quoted
- I don't see why you are removing linux,boot-cpu from the
documentation ! It's a fairly important property.
No, it's a dead property. Specifying linux,boot-cpu in the DTS is
obsolete and deprecated. If you specify it, the device tree compiler
complains. The proper way to specify the device tree is with the -b
parameter to dtc.
Um.. you may be right in this case, but "the device tree compiler
complains" is (sadly) not in general a good reason to decide
something's bad. The warning code in dtc is pretty bogus and
complains about a number of things it shouldn't while failing to
complain about some things it should. I just haven't had time to make
it much better.
--
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
From: Timur Tabi <hidden> Date: 2007-02-14 05:24:57
David Gibson wrote:
Um.. you may be right in this case, but "the device tree compiler
complains" is (sadly) not in general a good reason to decide
something's bad. The warning code in dtc is pretty bogus and
complains about a number of things it shouldn't while failing to
complain about some things it should. I just haven't had time to make
it much better.
I agree that the DTC has problems, but my understanding is that
linux,boot-cpu is just plain wrong nowadays. Besides, U-Boot overrides
whatever is in the device tree, so it doesn't really matter what you say
in the DTS.
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-02-14 05:28:06
On Tue, 2007-02-13 at 23:15 -0600, Timur Tabi wrote:
Benjamin Herrenschmidt wrote:
quoted
I think that:
- The /chosen node should be present in the .dts even if empty
Only one DTS file has it. It's been removed from every other DTS. Are
you should that instead of removing the last one, I should *add* one to
the other DTS files?
Or just leave them alone for now.
quoted
- I don't see why you are removing linux,boot-cpu from the
documentation ! It's a fairly important property.
No, it's a dead property. Specifying linux,boot-cpu in the DTS is
obsolete and deprecated. If you specify it, the device tree compiler
complains. The proper way to specify the device tree is with the -b
parameter to dtc.
Ah indeed, my bad. We moved that to a header field didn't we ?
/me grumbles about kexec... :-)
Ben.
From: Timur Tabi <hidden> Date: 2007-02-14 05:31:34
Benjamin Herrenschmidt wrote:
quoted
Only one DTS file has it. It's been removed from every other DTS. Are
you should that instead of removing the last one, I should *add* one to
the other DTS files?
Or just leave them alone for now.
Well, it's inconsistent. If you *really* don't want me to remove the
'chosen' node from this one DTS, I'll respin the patch without it. But
I just don't understand why it's okay to leave it there.
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-02-14 05:35:44
On Tue, 2007-02-13 at 23:31 -0600, Timur Tabi wrote:
Benjamin Herrenschmidt wrote:
quoted
quoted
Only one DTS file has it. It's been removed from every other DTS. Are
you should that instead of removing the last one, I should *add* one to
the other DTS files?
Or just leave them alone for now.
Well, it's inconsistent. If you *really* don't want me to remove the
'chosen' node from this one DTS, I'll respin the patch without it. But
I just don't understand why it's okay to leave it there.
To make sure there is one. I suspect kernel bits might get upset if it's
absent.
Ben.
From: Timur Tabi <hidden> Date: 2007-02-14 14:04:08
Benjamin Herrenschmidt wrote:
quoted
I just don't understand why it's okay to leave it there.
To make sure there is one. I suspect kernel bits might get upset if it's
absent.
That's not what I meant. What I don't understand is: what's so special
about the 8272 that its DTS should have a 'chosen' section, but no other
DTS needs one?
Obviously, the kernel needs a 'chosen' section, and that's why U-Boot
adds one. And since U-Boot adds one, the DTS itself doesn't need one.
Does the 8272 never use U-Boot?
I just don't understand why it's okay to leave it there.
To make sure there is one. I suspect kernel bits might get upset if it's
absent.
That's not what I meant. What I don't understand is: what's so special
about the 8272 that its DTS should have a 'chosen' section, but no other
DTS needs one?
Obviously, the kernel needs a 'chosen' section, and that's why U-Boot
adds one. And since U-Boot adds one, the DTS itself doesn't need one.
Does the 8272 never use U-Boot?
Is that dts also for u-boot? maybe they have another bootloader? I know
u-boot creates "chosen" itself, but not all possible bootloaders?
(as a matter of fact, the more I think about those .dts's, the more it
seems to me like they belong to bootloaders, not in the kernel... Just
one word - information duplication...)
Another thing, Timur, if you respin your patch, could you do it against
the current powerpc.git? There's at least one more .dts there that also
would need boot-cpu removed - kuroboxHD.dts.
Thanks
Guennadi
---
Guennadi Liakhovetski
From: Timur Tabi <hidden> Date: 2007-02-14 20:32:08
Guennadi Liakhovetski wrote:
Is that dts also for u-boot? maybe they have another bootloader? I know
u-boot creates "chosen" itself, but not all possible bootloaders?
Well, that's what I'm trying to figure out. I don't see any evidence to suggest
that the 8276 is different from any other 8xxx board, with respect to U-Boot,
and none of the other 8xxx DTS files have a 'chosen' section. Then there's the
fact that the 8276's 'chosen' section is in the *middle* of the DTS, and not at
the end where everyone else puts it, leads me to believe that its presence is an
oversight.
So far, no one who has chimed in on this particular subject has answered this
question: what's so special about the 8276 that its DTS should have a 'chosen'
section when none of the others do?
(as a matter of fact, the more I think about those .dts's, the more it
seems to me like they belong to bootloaders, not in the kernel... Just
one word - information duplication...)
Well, that's a completely separate issue altogether. I believe that they are
kept with the kernel as a convenience, so that we all have more control over
their contents.
Another thing, Timur, if you respin your patch, could you do it against
the current powerpc.git? There's at least one more .dts there that also
would need boot-cpu removed - kuroboxHD.dts.
My patch already removes linux,boot-cpu from kuroboxHD.dts:
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts
b/arch/powerpc/boot/dts/kuroboxHG.dts
index d06b0b0..7531027 100644
(as a matter of fact, the more I think about those .dts's, the more it
seems to me like they belong to bootloaders, not in the kernel... Just
one word - information duplication...)
Well, that's a completely separate issue altogether.
that's why I put it in brackets:-)
I believe that they are
kept with the kernel as a convenience, so that we all have more control over
their contents.
yeah... I read a __part__ of those lengthy discussions... Not willing to
re-start them here, just couldn't help...
quoted hunk
quoted
Another thing, Timur, if you respin your patch, could you do it against
the current powerpc.git? There's at least one more .dts there that also
would need boot-cpu removed - kuroboxHD.dts.
My patch already removes linux,boot-cpu from kuroboxHD.dts:
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts
"HD" and "HG" are not the same - it's a new file in git now...
Thanks
Guennadi
---
Guennadi Liakhovetski
From: Timur Tabi <hidden> Date: 2007-02-14 20:51:22
Guennadi Liakhovetski wrote:
quoted
quoted
Another thing, Timur, if you respin your patch, could you do it against
the current powerpc.git? There's at least one more .dts there that also
would need boot-cpu removed - kuroboxHD.dts.
My patch already removes linux,boot-cpu from kuroboxHD.dts:
diff --git a/arch/powerpc/boot/dts/kuroboxHG.dts
"HD" and "HG" are not the same - it's a new file in git now...
Oh, sorry. I guess I need new glasses.
In that case, I will respin the patch.
--
Timur Tabi
Linux Kernel Developer @ Freescale
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-02-14 20:54:44
On Wed, 2007-02-14 at 08:03 -0600, Timur Tabi wrote:
Benjamin Herrenschmidt wrote:
quoted
quoted
I just don't understand why it's okay to leave it there.
To make sure there is one. I suspect kernel bits might get upset if it's
absent.
That's not what I meant. What I don't understand is: what's so special
about the 8272 that its DTS should have a 'chosen' section, but no other
DTS needs one?
Obviously, the kernel needs a 'chosen' section, and that's why U-Boot
adds one. And since U-Boot adds one, the DTS itself doesn't need one.
Does the 8272 never use U-Boot?
I'm not talking specifically about the 8272. I think we should at it
back to all dts's
Ben.
From: Timur Tabi <hidden> Date: 2007-02-14 21:02:50
Benjamin Herrenschmidt wrote:
quoted
Obviously, the kernel needs a 'chosen' section, and that's why U-Boot
adds one. And since U-Boot adds one, the DTS itself doesn't need one.
Does the 8272 never use U-Boot?
I'm not talking specifically about the 8272. I think we should at it
back to all dts's
Ugh. Considering that U-Boot overrides whatever is in the 'chosen' section, can
you tell me why you think it should be there? If we put an empty 'chosen'
section in the DTS files, are we actually doing anything meaningful?
In the interest of saving time, I'm going to respin my patch without the
'chosen' section removed.
--
Timur Tabi
Linux Kernel Developer @ Freescale
-----Original Message-----
From: Benjamin Herrenschmidt [mailto:benh@kernel.crashing.org]=20
Sent: Wednesday, February 14, 2007 2:55 PM
[snip]
quoted
Obviously, the kernel needs a 'chosen' section, and that's=20
why U-Boot=20
quoted
adds one. And since U-Boot adds one, the DTS itself=20
doesn't need one.=20
quoted
Does the 8272 never use U-Boot?
=20
I'm not talking specifically about the 8272. I think we should at it
back to all dts's
Why do we need the chosen node in the dts files? Is it to generalize
the dts files for use beyond u-boot?
What meaningful properties should it have in the dts?
Stuart
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-02-14 21:17:16
On Wed, 2007-02-14 at 15:02 -0600, Timur Tabi wrote:
Benjamin Herrenschmidt wrote:
quoted
quoted
Obviously, the kernel needs a 'chosen' section, and that's why U-Boot
adds one. And since U-Boot adds one, the DTS itself doesn't need one.
Does the 8272 never use U-Boot?
I'm not talking specifically about the 8272. I think we should at it
back to all dts's
Ugh. Considering that U-Boot overrides whatever is in the 'chosen' section, can
you tell me why you think it should be there? If we put an empty 'chosen'
section in the DTS files, are we actually doing anything meaningful?
In the interest of saving time, I'm going to respin my patch without the
'chosen' section removed.
In case somebody wants to use something else than uboot ? I'd like the
base structure of the mandatory nodes to be there. /chosen is mandatory,
so it should be there.
Ben.
From: Timur Tabi <hidden> Date: 2007-02-14 21:58:08
Benjamin Herrenschmidt wrote:
In case somebody wants to use something else than uboot ? I'd like the
base structure of the mandatory nodes to be there. /chosen is mandatory,
so it should be there.
I just posted a new patch that just deletes linux,boot-cpu and leaves the
'chosen' node alone.
However, there is a valid reason for *not* having a 'chosen' node in the DTS.
Currently, U-Boot does not update the existing 'chosen' node. Instead, it
creates a new one. This means that if one existed in the DTS, then there would
be *two* in the device tree that is passed to the kernel. There is no way to
guarantee that the kernel will use the right one.
Of course, the real solution to this problem is to fix U-Boot. However, there
isn't any signed up to do that, and even if someone posted a patch right now,
there's no telling when it will get applied. And even if it got applied today,
all current U-Boot installations would be broken. Many of these systems will
never be updated.
Therefore, I would say that having a 'chosen' node in the DTS is actually a
*bad* thing, on systems that use U-Boot.
Another work-around would be to update the compiler to delete the chosen node
when it builds the DTB. That's not a bad idea, I think, but until that feature
is implemented, the DTS files should not have a 'chosen' node.
--
Timur Tabi
Linux Kernel Developer @ Freescale
From: Benjamin Herrenschmidt <benh@kernel.crashing.org> Date: 2007-02-14 22:53:53
Of course, the real solution to this problem is to fix U-Boot.
Yup :-)
However, there
isn't any signed up to do that, and even if someone posted a patch right now,
there's no telling when it will get applied. And even if it got applied today,
all current U-Boot installations would be broken. Many of these systems will
never be updated.
But their .dts neither so it doesn't matter does it ?
Therefore, I would say that having a 'chosen' node in the DTS is actually a
*bad* thing, on systems that use U-Boot.
Too bad for them..
Another work-around would be to update the compiler to delete the chosen node
when it builds the DTB. That's not a bad idea, I think, but until that feature
is implemented, the DTS files should not have a 'chosen' node.
From: David Gibson <hidden> Date: 2007-02-14 23:37:03
On Thu, Feb 15, 2007 at 08:17:02AM +1100, Benjamin Herrenschmidt wrote:
On Wed, 2007-02-14 at 15:02 -0600, Timur Tabi wrote:
quoted
Benjamin Herrenschmidt wrote:
quoted
quoted
Obviously, the kernel needs a 'chosen' section, and that's why U-Boot
adds one. And since U-Boot adds one, the DTS itself doesn't need one.
Does the 8272 never use U-Boot?
I'm not talking specifically about the 8272. I think we should at it
back to all dts's
Ugh. Considering that U-Boot overrides whatever is in the 'chosen' section, can
you tell me why you think it should be there? If we put an empty 'chosen'
section in the DTS files, are we actually doing anything meaningful?
In the interest of saving time, I'm going to respin my patch without the
'chosen' section removed.
In case somebody wants to use something else than uboot ? I'd like the
base structure of the mandatory nodes to be there. /chosen is mandatory,
so it should be there.
More specifically:
1) Having an (even empty) /chosen makes life easier for other
bootloaders, which may have quite limited capability to edit
device tree blobs.
2) It seems to me the dts files *included with the kernel*
should be suitable for direct use in zImage wrappers, where
possible, for use with old uboot and other non device tree
capable firmwares.
--
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
From: David Gibson <hidden> Date: 2007-02-14 23:37:36
On Wed, Feb 14, 2007 at 02:09:19PM -0700, Yoder Stuart-B08248 wrote:
quoted
-----Original Message-----
From: Benjamin Herrenschmidt [mailto:benh@kernel.crashing.org]
Sent: Wednesday, February 14, 2007 2:55 PM
[snip]
quoted
quoted
Obviously, the kernel needs a 'chosen' section, and that's
why U-Boot
quoted
adds one. And since U-Boot adds one, the DTS itself
doesn't need one.
quoted
Does the 8272 never use U-Boot?
I'm not talking specifically about the 8272. I think we should at it
back to all dts's
Why do we need the chosen node in the dts files? Is it to generalize
the dts files for use beyond u-boot?
What meaningful properties should it have in the dts?
'interrupt-controller'
--
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
I think that:
- The /chosen node should be present in the .dts even if empty
Only one DTS file has it. It's been removed from every other DTS. Are
you should that instead of removing the last one, I should *add* one to
the other DTS files?
Every device tree is required to have a /chosen node. Now
that doesn't mean DTS files need one; there are some more
options:
-- dtc could add the node whenever it is missing from the DTS;
-- it could be made a requirement of the boot loader to add it;
-- the kernel could be taught to fake one if needed.
Pick your poison :-) I prefer the first option (dtc).
Segher