* [U-Boot-Users] builtin OF tree dtb gone
@ 2006-12-16 15:21 Joakim Tjernlund
2006-12-16 15:45 ` Grant Likely
2006-12-16 16:07 ` Jerry Van Baren
0 siblings, 2 replies; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-16 15:21 UTC (permalink / raw)
To: u-boot
While trying out the latest u-boot from my board I noticed that
support for using a prebuilt OF tree compiled int u-boot is gone.
The oftree_dtb symbol is gone and I can't find a replacement.
Why was it removed and is there a replacement?
If there isn't a replacement I request that
one is added.
Jocke
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 15:21 [U-Boot-Users] builtin OF tree dtb gone Joakim Tjernlund
@ 2006-12-16 15:45 ` Grant Likely
2006-12-16 17:23 ` Joakim Tjernlund
2006-12-16 16:07 ` Jerry Van Baren
1 sibling, 1 reply; 25+ messages in thread
From: Grant Likely @ 2006-12-16 15:45 UTC (permalink / raw)
To: u-boot
On 12/16/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> While trying out the latest u-boot from my board I noticed that
> support for using a prebuilt OF tree compiled int u-boot is gone.
> The oftree_dtb symbol is gone and I can't find a replacement.
>
> Why was it removed and is there a replacement?
>
> If there isn't a replacement I request that
> one is added.
It's been replaced with support in the bootm command for passing the .dtb
New boot sequence:
1) load kernel into memory (or flash)
2) load initrd into memory (optional)
3) load .dtb into memory (optional)
4) bootm <kenreladdr> [initrdaddr] [dtbaddr]
If a dtbaddr is provided; then the dtb is passed to the kernel. If it
is not; then old style booting is used instead.
If you don't have an initrd, but do have a .dtb; pass '-' as the initrdarrd.
ie:
tftp 200000 uImage
tftp 400000 lite5200.dtb
bootm 200000 - 400000
Cheers,
g.
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 15:21 [U-Boot-Users] builtin OF tree dtb gone Joakim Tjernlund
2006-12-16 15:45 ` Grant Likely
@ 2006-12-16 16:07 ` Jerry Van Baren
2006-12-16 16:32 ` Joakim Tjernlund
1 sibling, 1 reply; 25+ messages in thread
From: Jerry Van Baren @ 2006-12-16 16:07 UTC (permalink / raw)
To: u-boot
Joakim Tjernlund wrote:
> While trying out the latest u-boot from my board I noticed that
> support for using a prebuilt OF tree compiled int u-boot is gone.
> The oftree_dtb symbol is gone and I can't find a replacement.
>
> Why was it removed and is there a replacement?
>
> If there isn't a replacement I request that
> one is added.
>
> Jocke
I'm not the authority on this, but I believe the intent is that you
compile the blob outside of u-boot and then you can load it into RAM via
tftp or burn it into flash if you want it permanently on the board.
Other than having to download and burn two things (u-boot and the dtb
blob) rather than one, having it burn into flash separately is no
different from compiling it into the u-boot image and is aesthetically
much cleaner and more flexible.
The New Improved[tm] bootm command takes address of the OF blob as the
third parameter (help bootm).
IIRC, Wolfgang was not wild about building the blob into u-boot, it
really isn't a u-boot "thing."
I am looking into/working on a flattened device tree command that would
allow you to manipulate a OF blob in flash or RAM like the current env
variables. I have a dream of integrating it with the env storage, but
all this takes time. (I volunteer for too much - my ego writes checks
that my brain cannot cash. ;-)
Best regards,
gvb
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 16:07 ` Jerry Van Baren
@ 2006-12-16 16:32 ` Joakim Tjernlund
2006-12-16 17:18 ` Pantelis Antoniou
2006-12-16 19:04 ` Wolfgang Denk
0 siblings, 2 replies; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-16 16:32 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: Jerry Van Baren [mailto:gerald.vanbaren at comcast.net]
> Sent: den 16 december 2006 17:08
> To: Joakim Tjernlund
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> Joakim Tjernlund wrote:
> > While trying out the latest u-boot from my board I noticed that
> > support for using a prebuilt OF tree compiled int u-boot is gone.
> > The oftree_dtb symbol is gone and I can't find a replacement.
> >
> > Why was it removed and is there a replacement?
> >
> > If there isn't a replacement I request that
> > one is added.
> >
> > Jocke
>
> I'm not the authority on this, but I believe the intent is that you
> compile the blob outside of u-boot and then you can load it
> into RAM via
> tftp or burn it into flash if you want it permanently on the board.
> Other than having to download and burn two things (u-boot and the dtb
> blob) rather than one, having it burn into flash separately is no
> different from compiling it into the u-boot image and is
> aesthetically
> much cleaner and more flexible.
"Other than having to download and burn two things" is a rather big
deal to me. First it adds extra work actually get two images into the board.
Secondly, now you have to reserve a DTB flash partion so you have
somewhere to store it and that is a waste of space.
Then you have to add even more args to the boot command to tell uboot where
to find it.
To me this new OF seems like a nice feature for developing new
stuff, but once you are done and ready to ship it only complicates
things for boards that don't need this new flexibility.
Jocke
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 16:32 ` Joakim Tjernlund
@ 2006-12-16 17:18 ` Pantelis Antoniou
2006-12-16 18:39 ` Dan Malek
2006-12-16 19:04 ` Wolfgang Denk
1 sibling, 1 reply; 25+ messages in thread
From: Pantelis Antoniou @ 2006-12-16 17:18 UTC (permalink / raw)
To: u-boot
On 16 ??? 2006, at 11:32 ??, Joakim Tjernlund wrote:
>> -----Original Message-----
>> From: Jerry Van Baren [mailto:gerald.vanbaren at comcast.net]
>> Sent: den 16 december 2006 17:08
>> To: Joakim Tjernlund
>> Cc: u-boot-users at lists.sourceforge.net
>> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>>
>> Joakim Tjernlund wrote:
>>> While trying out the latest u-boot from my board I noticed that
>>> support for using a prebuilt OF tree compiled int u-boot is gone.
>>> The oftree_dtb symbol is gone and I can't find a replacement.
>>>
>>> Why was it removed and is there a replacement?
>>>
>>> If there isn't a replacement I request that
>>> one is added.
>>>
>>> Jocke
>>
>> I'm not the authority on this, but I believe the intent is that you
>> compile the blob outside of u-boot and then you can load it
>> into RAM via
>> tftp or burn it into flash if you want it permanently on the board.
>> Other than having to download and burn two things (u-boot and the dtb
>> blob) rather than one, having it burn into flash separately is no
>> different from compiling it into the u-boot image and is
>> aesthetically
>> much cleaner and more flexible.
>
> "Other than having to download and burn two things" is a rather big
> deal to me. First it adds extra work actually get two images into
> the board.
> Secondly, now you have to reserve a DTB flash partion so you have
> somewhere to store it and that is a waste of space.
> Then you have to add even more args to the boot command to tell
> uboot where
> to find it.
>
> To me this new OF seems like a nice feature for developing new
> stuff, but once you are done and ready to ship it only complicates
> things for boards that don't need this new flexibility.
>
> Jocke
>
I agree.
As the guy that did the original implementation, my intent was to
keep the
DTB along with u-boot.
I don't know where you get the idea that it's more "flexible" or
"cleaner" to
have it on a different partition. That blob will never change after
the board
is debugged, so you've only introduced an extra complicated step to
boot a kernel.
When I have enough free time (yeah right) I'll work on getting even
the u-boot
getting it's parameters from the blob - moving stuff away from the
config.h file
if possible.
Regards
Pantelis
>
> ----------------------------------------------------------------------
> ---
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to
> share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?
> page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 15:45 ` Grant Likely
@ 2006-12-16 17:23 ` Joakim Tjernlund
0 siblings, 0 replies; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-16 17:23 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: glikely at gmail.com [mailto:glikely at gmail.com] On Behalf
> Of Grant Likely
> Sent: den 16 december 2006 16:46
> To: Joakim Tjernlund
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> On 12/16/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > While trying out the latest u-boot from my board I noticed that
> > support for using a prebuilt OF tree compiled int u-boot is gone.
> > The oftree_dtb symbol is gone and I can't find a replacement.
> >
> > Why was it removed and is there a replacement?
> >
> > If there isn't a replacement I request that
> > one is added.
>
> It's been replaced with support in the bootm command for
> passing the .dtb
>
> New boot sequence:
> 1) load kernel into memory (or flash)
> 2) load initrd into memory (optional)
> 3) load .dtb into memory (optional)
> 4) bootm <kenreladdr> [initrdaddr] [dtbaddr]
>
hmm, been trying to pass my dtb from within u-boot(0xffc9d90) and it does not
boot. Do I really need to make the of tree avalilable in lower RAM?
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 17:18 ` Pantelis Antoniou
@ 2006-12-16 18:39 ` Dan Malek
2006-12-16 19:39 ` Joakim Tjernlund
0 siblings, 1 reply; 25+ messages in thread
From: Dan Malek @ 2006-12-16 18:39 UTC (permalink / raw)
To: u-boot
On Dec 16, 2006, at 12:18 PM, Pantelis Antoniou wrote:
> As the guy that did the original implementation, my intent was to
> keep theDTB along with u-boot.
> I don't know where you get the idea that it's more "flexible" or
> "cleaner" tohave it on a different partition.
The problem is the dtb is still, and probably always
be changing. My concern is even if you put the dtb
into u-boot, the next version of kernel will probably
not boot properly because the information needed
will be different. So, to boot new kernels you need
to then update u-boot, which is something no one
is going to risk in a product.
All of these ideas are great when you are sitting
in a lab with an evaluation board, you can update
u-boot at will, or constantly change other items
in the flash. In a real product, no one is going to
risk a software update that could turn millions of
working systems into doorstops. Field upgrades
of existing Linux systems are already quite complicated,
and the last thing we need are even more variables
to cause problems or to track for recovery procedures.
These changes that add size and maintenance
complexity to Linux aren't popular for embedded
products. People are starting to look again at
other, even proprietary solutions, due to overall
cost and lifetime product risk. If we keep this up,
we are going to have the best over-engineered
and unused software around.
Thanks.
-- Dan
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 16:32 ` Joakim Tjernlund
2006-12-16 17:18 ` Pantelis Antoniou
@ 2006-12-16 19:04 ` Wolfgang Denk
2006-12-16 19:59 ` Joakim Tjernlund
1 sibling, 1 reply; 25+ messages in thread
From: Wolfgang Denk @ 2006-12-16 19:04 UTC (permalink / raw)
To: u-boot
In message <005b01c7212f$bebff860$1e67a8c0@Jocke> you wrote:
>
> "Other than having to download and burn two things" is a rather big
> deal to me. First it adds extra work actually get two images into the board.
A multi-file image is supposed to work, too. I never tested this,
though.
> Secondly, now you have to reserve a DTB flash partion so you have
> somewhere to store it and that is a waste of space.
> Then you have to add even more args to the boot command to tell uboot where
> to find it.
All this can be dealt with by using a multi-file image.
> To me this new OF seems like a nice feature for developing new
> stuff, but once you are done and ready to ship it only complicates
> things for boards that don't need this new flexibility.
I disagree here.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
If some day we are defeated, well, war has its fortunes, good and
bad.
-- Commander Kor, "Errand of Mercy", stardate 3201.7
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 18:39 ` Dan Malek
@ 2006-12-16 19:39 ` Joakim Tjernlund
2006-12-16 21:27 ` Dan Malek
0 siblings, 1 reply; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-16 19:39 UTC (permalink / raw)
To: u-boot
>
> On Dec 16, 2006, at 12:18 PM, Pantelis Antoniou wrote:
>
> > As the guy that did the original implementation, my intent was to
> > keep theDTB along with u-boot.
> > I don't know where you get the idea that it's more "flexible" or
> > "cleaner" tohave it on a different partition.
>
> The problem is the dtb is still, and probably always
> be changing. My concern is even if you put the dtb
> into u-boot, the next version of kernel will probably
> not boot properly because the information needed
> will be different. So, to boot new kernels you need
> to then update u-boot, which is something no one
> is going to risk in a product.
We do update u-boot in field, no mishaps yet since 2001.
Probably due to a very controlled update procedure.
>
> All of these ideas are great when you are sitting
> in a lab with an evaluation board, you can update
> u-boot at will, or constantly change other items
> in the flash. In a real product, no one is going to
> risk a software update that could turn millions of
> working systems into doorstops. Field upgrades
> of existing Linux systems are already quite complicated,
> and the last thing we need are even more variables
> to cause problems or to track for recovery procedures.
>
> These changes that add size and maintenance
> complexity to Linux aren't popular for embedded
> products. People are starting to look again at
> other, even proprietary solutions, due to overall
> cost and lifetime product risk. If we keep this up,
> we are going to have the best over-engineered
> and unused software around.
I don't get you point w.r.t subject at hand, do you or don't you
support a OF tree compiled into u-boot?
Jocke
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 19:04 ` Wolfgang Denk
@ 2006-12-16 19:59 ` Joakim Tjernlund
2006-12-17 0:37 ` Wolfgang Denk
0 siblings, 1 reply; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-16 19:59 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: u-boot-users-bounces at lists.sourceforge.net
> [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf
> Of Wolfgang Denk
> Sent: den 16 december 2006 20:04
> To: Joakim Tjernlund
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> In message <005b01c7212f$bebff860$1e67a8c0@Jocke> you wrote:
> >
> > "Other than having to download and burn two things" is a rather big
> > deal to me. First it adds extra work actually get two
> images into the board.
>
> A multi-file image is supposed to work, too. I never tested this,
> though.
Don't like this idea, its not a runtime/kernel load feature, IMHO.
What devices that is supported should be provided by firmware.
>
> > Secondly, now you have to reserve a DTB flash partion so you have
> > somewhere to store it and that is a waste of space.
> > Then you have to add even more args to the boot command to
> tell uboot where
> > to find it.
>
> All this can be dealt with by using a multi-file image.
Can you add/modify OF items in a multi-file image?
>
> > To me this new OF seems like a nice feature for developing new
> > stuff, but once you are done and ready to ship it only complicates
> > things for boards that don't need this new flexibility.
>
> I disagree here.
Clearly, but you don't say why. You are saying that a multi-file image
might work but that won't work in a system where you need different OF trees.
I am supposed to supply X multi-file images, one for each board where only the
DTB differ?
Regards
Jocke
>
> Best regards,
>
> Wolfgang Denk
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 19:39 ` Joakim Tjernlund
@ 2006-12-16 21:27 ` Dan Malek
0 siblings, 0 replies; 25+ messages in thread
From: Dan Malek @ 2006-12-16 21:27 UTC (permalink / raw)
To: u-boot
On Dec 16, 2006, at 2:39 PM, Joakim Tjernlund wrote:
> We do update u-boot in field, no mishaps yet since 2001.
> Probably due to a very controlled update procedure.
You should be playing the lottery, then :-)
How do you control a power failure (even done
by the user) between erasing and updating
the flash, as one example of bad things that
can happen during this process?
> I don't get you point w.r.t subject at hand, do you or don't you
> support a OF tree compiled into u-boot?
I don't like the OF for embedded products at all,
but there is no stopping that train. Done properly,
it should be as Pantelis said.... once as part of
the u-boot board port. Of course, when we started
discussing this and provided the first implementation,
its purpose was to pass some environment information
already part of u-boot in a more general way to the
kernel. It has since turned into a completely
different monster.
-- Dan
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-16 19:59 ` Joakim Tjernlund
@ 2006-12-17 0:37 ` Wolfgang Denk
2006-12-17 14:23 ` Joakim Tjernlund
0 siblings, 1 reply; 25+ messages in thread
From: Wolfgang Denk @ 2006-12-17 0:37 UTC (permalink / raw)
To: u-boot
In message <007701c7214c$a1c6f430$1e67a8c0@Jocke> you wrote:
>
> Don't like this idea, its not a runtime/kernel load feature, IMHO.
> What devices that is supported should be provided by firmware.
Then store the DTB in flash, probably as part of your production /
update mechanism. Nobody prevents you from doing this.
> > I disagree here.
>
> Clearly, but you don't say why. You are saying that a multi-file image
> might work but that won't work in a system where you need different OF trees.
Of course not.
> I am supposed to supply X multi-file images, one for each board where only the
> DTB differ?
No.
For a complete system you need U-Boot plus DTB plus Linux kernel
[plus root file system ...]. You may find, that for different boards
any of these components may be different or the same, so no matter
which you bundle together it will work fine in some setups, and be
unconvenient in others. The best flexibility is when all three are
separate, so that's the default option we provide. If you want to
combine U-Boot plus DTB, fine, you define your [flash] memory map. If
you want to combine Linux and DTB, ok, use a multifile image.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Never worry about theory as long as the machinery does what it's
supposed to do. - R. A. Heinlein
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 0:37 ` Wolfgang Denk
@ 2006-12-17 14:23 ` Joakim Tjernlund
2006-12-17 15:10 ` Grant Likely
2006-12-17 17:10 ` Wolfgang Denk
0 siblings, 2 replies; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-17 14:23 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: wd at denx.de [mailto:wd at denx.de]
> Sent: den 17 december 2006 01:38
> To: Joakim Tjernlund
> Cc: u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> In message <007701c7214c$a1c6f430$1e67a8c0@Jocke> you wrote:
> >
> > Don't like this idea, its not a runtime/kernel load feature, IMHO.
> > What devices that is supported should be provided by firmware.
>
> Then store the DTB in flash, probably as part of your production /
> update mechanism. Nobody prevents you from doing this.
Well, newer versions of U-boot prevents me from embedding the OF tree
inside the u-boot image.
>
> > > I disagree here.
> >
> > Clearly, but you don't say why. You are saying that a
> multi-file image
> > might work but that won't work in a system where you need
> different OF trees.
>
> Of course not.
>
> > I am supposed to supply X multi-file images, one for each
> board where only the
> > DTB differ?
>
> No.
>
> For a complete system you need U-Boot plus DTB plus Linux kernel
> [plus root file system ...]. You may find, that for different boards
> any of these components may be different or the same, so no matter
> which you bundle together it will work fine in some setups, and be
> unconvenient in others. The best flexibility is when all three are
> separate, so that's the default option we provide. If you want to
> combine U-Boot plus DTB, fine, you define your [flash] memory map. If
> you want to combine Linux and DTB, ok, use a multifile image.
"in some setups", that's the point. Our setup works fine with
an embedded OF tree in u-boot. If I am to adapt to this new
method of supplying the OF tree, not only will I have to repartion
the flash to fit the tree in there, I also need to make sure
that some 15-20 people learns this new concept for no real gain.
It is nothing wrong with having the ability provide a OF tree
at boot time, but forcing everyone to do so is. The
most flexible way is to have both.
Regards
Jocke
>
>
> Best regards,
>
> Wolfgang Denk
>
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 14:23 ` Joakim Tjernlund
@ 2006-12-17 15:10 ` Grant Likely
2006-12-17 15:40 ` Joakim Tjernlund
2006-12-17 17:10 ` Wolfgang Denk
1 sibling, 1 reply; 25+ messages in thread
From: Grant Likely @ 2006-12-17 15:10 UTC (permalink / raw)
To: u-boot
On 12/17/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
>
> "in some setups", that's the point. Our setup works fine with
> an embedded OF tree in u-boot. If I am to adapt to this new
> method of supplying the OF tree, not only will I have to repartion
> the flash to fit the tree in there, I also need to make sure
> that some 15-20 people learns this new concept for no real gain.
>
> It is nothing wrong with having the ability provide a OF tree
> at boot time, but forcing everyone to do so is. The
> most flexible way is to have both.
This shouldn't be too big a deal. Add the code back for linking the
.dtb into the image. Look in common/boot.c and add a check for if the
third bootm parameter is '-'. If it is, then use the builtin section
for the .dtb address. Then you can either use the builtin version, or
pass a new one. We're not talking a lot of code here.
Alternately; your u-boot image does not totally fill the sectors you
have allocated for it. Since your plan is to update u-boot and the
.dtb at the same time; modify your u-boot build procedure (I think by
using objcopy) to link your .dtb to a known address within the unused
part of the u-boot sectors (so that u-boot+dtb are in a single file)
and make sure the update procedure also changes the default bootm
command to include the known dtb address.
There are lots of options here; and the default code in u-boot is not
forcing you to do it in a particular way.
g.
--
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 15:10 ` Grant Likely
@ 2006-12-17 15:40 ` Joakim Tjernlund
2006-12-17 16:07 ` Joakim Tjernlund
2006-12-17 16:50 ` Pantelis Antoniou
0 siblings, 2 replies; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-17 15:40 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: glikely at gmail.com [mailto:glikely at gmail.com] On Behalf
> Of Grant Likely
> Sent: den 17 december 2006 16:11
> To: Joakim Tjernlund
> Cc: wd at denx.de; u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> On 12/17/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> >
> > "in some setups", that's the point. Our setup works fine with
> > an embedded OF tree in u-boot. If I am to adapt to this new
> > method of supplying the OF tree, not only will I have to repartion
> > the flash to fit the tree in there, I also need to make sure
> > that some 15-20 people learns this new concept for no real gain.
> >
> > It is nothing wrong with having the ability provide a OF tree
> > at boot time, but forcing everyone to do so is. The
> > most flexible way is to have both.
>
> This shouldn't be too big a deal. Add the code back for linking the
> .dtb into the image. Look in common/boot.c and add a check for if the
> third bootm parameter is '-'. If it is, then use the builtin section
> for the .dtb address. Then you can either use the builtin version, or
> pass a new one. We're not talking a lot of code here.
I am looking at this now. I have a DTB linked into uboot at address
0xffc9d90(near end of my 256MB RAM when u-boot has relocated itself).
Passing this address to bootm $loadaddr - 0xffc9d90 makes the
kernel SEGV because the kernel can't access data that high up in RAM
early in the boot process.
Seems to that the u-boot should copy the DTB to an address that
the kernel can access before passing control the kernel. How
else is one supposed to have a DTB in flash that is even higher up
in the address space?
Maybe I have misunderstood something, but I can't se what presently.
>
> Alternately; your u-boot image does not totally fill the sectors you
> have allocated for it. Since your plan is to update u-boot and the
> .dtb at the same time; modify your u-boot build procedure (I think by
> using objcopy) to link your .dtb to a known address within the unused
> part of the u-boot sectors (so that u-boot+dtb are in a single file)
> and make sure the update procedure also changes the default bootm
> command to include the known dtb address.
This option does not really suit me, but thanks for the suggestion.
Jocke
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 15:40 ` Joakim Tjernlund
@ 2006-12-17 16:07 ` Joakim Tjernlund
2006-12-17 17:13 ` Wolfgang Denk
2006-12-17 16:50 ` Pantelis Antoniou
1 sibling, 1 reply; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-17 16:07 UTC (permalink / raw)
To: u-boot
> -----Original Message-----
> From: u-boot-users-bounces at lists.sourceforge.net
> [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf
> Of Joakim Tjernlund
> Sent: den 17 december 2006 16:40
> To: 'Grant Likely'
> Cc: u-boot-users at lists.sourceforge.net; wd at denx.de
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> > -----Original Message-----
> > From: glikely at gmail.com [mailto:glikely at gmail.com] On Behalf
> > Of Grant Likely
> > Sent: den 17 december 2006 16:11
> > To: Joakim Tjernlund
> > Cc: wd at denx.de; u-boot-users at lists.sourceforge.net
> > Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
> >
> > On 12/17/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
> > >
> > > "in some setups", that's the point. Our setup works fine with
> > > an embedded OF tree in u-boot. If I am to adapt to this new
> > > method of supplying the OF tree, not only will I have to repartion
> > > the flash to fit the tree in there, I also need to make sure
> > > that some 15-20 people learns this new concept for no real gain.
> > >
> > > It is nothing wrong with having the ability provide a OF tree
> > > at boot time, but forcing everyone to do so is. The
> > > most flexible way is to have both.
> >
> > This shouldn't be too big a deal. Add the code back for linking the
> > .dtb into the image. Look in common/boot.c and add a check
> for if the
> > third bootm parameter is '-'. If it is, then use the
> builtin section
> > for the .dtb address. Then you can either use the builtin
> version, or
> > pass a new one. We're not talking a lot of code here.
>
> I am looking at this now. I have a DTB linked into uboot at address
> 0xffc9d90(near end of my 256MB RAM when u-boot has relocated itself).
> Passing this address to bootm $loadaddr - 0xffc9d90 makes the
> kernel SEGV because the kernel can't access data that high up in RAM
> early in the boot process.
> Seems to that the u-boot should copy the DTB to an address that
> the kernel can access before passing control the kernel. How
> else is one supposed to have a DTB in flash that is even higher up
> in the address space?
>
> Maybe I have misunderstood something, but I can't se what presently.
Ahh, found it. It is the addr2info check that relocates the OF tree.
addr2info checks if an address is in flash, if so it will relocate it
to lower RAM. But since I got my OF tree in high RAM that won't
happen.
The same would happen if one loaded a OF tree via tftp and placed
it high up in RAM.
I think that the addr2info check should be replaced with something
else that will move the tree to a low enough address if needed.
What would be a good test?
A simple way to support an embedded tree would be:
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 7aae8a6..7b2d221 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -531,8 +531,12 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
image_header_t *hdr = &header;
#ifdef CONFIG_OF_FLAT_TREE
char *of_flat_tree = NULL;
+#ifdef CFG_EMBEDDED_FLAT_TREE
+ ulong of_data = (ulong)oftree_dtb;
+#else
ulong of_data = 0;
#endif
+#endif
Jocke
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 15:40 ` Joakim Tjernlund
2006-12-17 16:07 ` Joakim Tjernlund
@ 2006-12-17 16:50 ` Pantelis Antoniou
2007-01-22 21:03 ` Timur Tabi
1 sibling, 1 reply; 25+ messages in thread
From: Pantelis Antoniou @ 2006-12-17 16:50 UTC (permalink / raw)
To: u-boot
On 17 ??? 2006, at 10:40 ??, Joakim Tjernlund wrote:
>> -----Original Message-----
>> From: glikely at gmail.com [mailto:glikely at gmail.com] On Behalf
>> Of Grant Likely
>> Sent: den 17 december 2006 16:11
>> To: Joakim Tjernlund
>> Cc: wd at denx.de; u-boot-users at lists.sourceforge.net
>> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>>
>> On 12/17/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
>>>
>>> "in some setups", that's the point. Our setup works fine with
>>> an embedded OF tree in u-boot. If I am to adapt to this new
>>> method of supplying the OF tree, not only will I have to repartion
>>> the flash to fit the tree in there, I also need to make sure
>>> that some 15-20 people learns this new concept for no real gain.
>>>
>>> It is nothing wrong with having the ability provide a OF tree
>>> at boot time, but forcing everyone to do so is. The
>>> most flexible way is to have both.
>>
>> This shouldn't be too big a deal. Add the code back for linking the
>> .dtb into the image. Look in common/boot.c and add a check for if
>> the
>> third bootm parameter is '-'. If it is, then use the builtin section
>> for the .dtb address. Then you can either use the builtin
>> version, or
>> pass a new one. We're not talking a lot of code here.
>
> I am looking at this now. I have a DTB linked into uboot at address
> 0xffc9d90(near end of my 256MB RAM when u-boot has relocated itself).
> Passing this address to bootm $loadaddr - 0xffc9d90 makes the
> kernel SEGV because the kernel can't access data that high up in RAM
> early in the boot process.
> Seems to that the u-boot should copy the DTB to an address that
> the kernel can access before passing control the kernel. How
> else is one supposed to have a DTB in flash that is even higher up
> in the address space?
>
> Maybe I have misunderstood something, but I can't se what presently.
>
Yes, the DTB must be placed low-enough in the boot memory to be
accessed.
I'm pretty sure that the original implementation I did made this work.
In fact I'm surprised that the flash pointing thingy even works for
anyone.
Most of powerpc kernels need the initial OF tree to be under the 8MB.
The only way to guarantee that is to copy the OF tree to the stack
of the kernel we are about to boot.
I really don't understand the point of this discussion...
Let's see if I got this right.
OF's initial implementation worked well enough for it's users (Jocke
& others).
There was a change to the OF implementation that makes those users
unhappy.
There is no real technical reason to not accommodate those users.
I feel Jocke's complaints are reasonable. There should be a way to keep
him happy, since the old stuff used to work just fine; in fact I'd argue
it worked better.
That's my opinion anyway.
Regards
Pantelis
>>
>> Alternately; your u-boot image does not totally fill the sectors you
>> have allocated for it. Since your plan is to update u-boot and the
>> .dtb at the same time; modify your u-boot build procedure (I think by
>> using objcopy) to link your .dtb to a known address within the unused
>> part of the u-boot sectors (so that u-boot+dtb are in a single file)
>> and make sure the update procedure also changes the default bootm
>> command to include the known dtb address.
>
> This option does not really suit me, but thanks for the suggestion.
>
> Jocke
>
>
>
> ----------------------------------------------------------------------
> ---
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to
> share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?
> page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> U-Boot-Users mailing list
> U-Boot-Users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/u-boot-users
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 14:23 ` Joakim Tjernlund
2006-12-17 15:10 ` Grant Likely
@ 2006-12-17 17:10 ` Wolfgang Denk
1 sibling, 0 replies; 25+ messages in thread
From: Wolfgang Denk @ 2006-12-17 17:10 UTC (permalink / raw)
To: u-boot
In message <008901c721e6$ece8c160$1e67a8c0@Jocke> you wrote:
> >
> > Then store the DTB in flash, probably as part of your production /
> > update mechanism. Nobody prevents you from doing this.
>
> Well, newer versions of U-boot prevents me from embedding the OF tree
> inside the u-boot image.
I wrote "in flash" - this does not mean that it has to be embedded
within the U-Boot image. It can be simply attached to it's end,
probably with some padding to allow for sector alignment.
> "in some setups", that's the point. Our setup works fine with
> an embedded OF tree in u-boot. If I am to adapt to this new
> method of supplying the OF tree, not only will I have to repartion
> the flash to fit the tree in there, I also need to make sure
It should make very little difference (probably not visible to the
rest of the system), if the tree is embedded within the U-Boot image
or attached to it's end (or if it's preceeding the image).
> that some 15-20 people learns this new concept for no real gain.
You complain abouyt a problem where there is none.
> It is nothing wrong with having the ability provide a OF tree
> at boot time, but forcing everyone to do so is. The
> most flexible way is to have both.
You are not forced into anything here.
If you like, you can still use your own boared-specific lkinker
script and "embed" he tree to any location in your image; you just
have to find a good way to remember the start address. Actually that
should not be too difficult, either. It should be prossible to
automatically set an environment variable to the right address.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Everyting looks interesting until you do it. Then you find it's just
another job. - Terry Pratchett, _Moving Pictures_
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 16:07 ` Joakim Tjernlund
@ 2006-12-17 17:13 ` Wolfgang Denk
2006-12-17 18:03 ` Joakim Tjernlund
0 siblings, 1 reply; 25+ messages in thread
From: Wolfgang Denk @ 2006-12-17 17:13 UTC (permalink / raw)
To: u-boot
In message <009301c721f5$69b25ef0$1e67a8c0@Jocke> you wrote:
>
> Ahh, found it. It is the addr2info check that relocates the OF tree.
> addr2info checks if an address is in flash, if so it will relocate it
> to lower RAM. But since I got my OF tree in high RAM that won't
> happen.
> The same would happen if one loaded a OF tree via tftp and placed
> it high up in RAM.
> I think that the addr2info check should be replaced with something
> else that will move the tree to a low enough address if needed.
>
> What would be a good test?
Probably the "initrd_high" code should be generalized here.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I came home the other night and tried to open the door with my car
keys...and the building started up. So I took it out for a drive. A
cop pulled me over for speeding. He asked me where I live... "Right
here". - Steven Wright
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 17:13 ` Wolfgang Denk
@ 2006-12-17 18:03 ` Joakim Tjernlund
2006-12-17 23:56 ` Wolfgang Denk
0 siblings, 1 reply; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-17 18:03 UTC (permalink / raw)
To: u-boot
On Sun, 2006-12-17 at 18:13 +0100, Wolfgang Denk wrote:
> In message <009301c721f5$69b25ef0$1e67a8c0@Jocke> you wrote:
> >
> > Ahh, found it. It is the addr2info check that relocates the OF tree.
> > addr2info checks if an address is in flash, if so it will relocate it
> > to lower RAM. But since I got my OF tree in high RAM that won't
> > happen.
> > The same would happen if one loaded a OF tree via tftp and placed
> > it high up in RAM.
> > I think that the addr2info check should be replaced with something
> > else that will move the tree to a low enough address if needed.
> >
> > What would be a good test?
>
> Probably the "initrd_high" code should be generalized here.
>
> Best regards,
>
> Wolfgang Denk
>
Wolfgang,
how about this patch:
Make it possible to use a OF tree embedded in u-boot.
Also make sure OF tree is below 8MB.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 7aae8a6..78f8d15 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -531,8 +531,12 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
image_header_t *hdr = &header;
#ifdef CONFIG_OF_FLAT_TREE
char *of_flat_tree = NULL;
+#ifdef CFG_EMBEDDED_FLAT_TREE
+ ulong of_data = (ulong)oftree_dtb;
+#else
ulong of_data = 0;
#endif
+#endif
if ((s = getenv ("initrd_high")) != NULL) {
/* a value of "no" or a similar string will act like 0,
@@ -745,10 +749,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
hdr = (image_header_t *)of_flat_tree;
if (*(ulong *)of_flat_tree == OF_DT_HEADER) {
-#ifndef CFG_NO_FLASH
- if (addr2info((ulong)of_flat_tree) != NULL)
+ if (of_flat_tree >= (char *) (8*1024*1024))
of_data = (ulong)of_flat_tree;
-#endif
} else if (ntohl(hdr->ih_magic) == IH_MAGIC) {
printf("## Flat Device Tree Image at %08lX\n", hdr);
print_image_hdr(hdr);
diff --git a/common/ft_build.c b/common/ft_build.c
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 18:03 ` Joakim Tjernlund
@ 2006-12-17 23:56 ` Wolfgang Denk
2006-12-18 14:39 ` Joakim Tjernlund
0 siblings, 1 reply; 25+ messages in thread
From: Wolfgang Denk @ 2006-12-17 23:56 UTC (permalink / raw)
To: u-boot
Dear Joakim,
in message <1166378632.30422.98.camel@gentoo-jocke.transmode.se> you wrote:
>
> how about this patch:
Sorry, but there are two things I don't like:
> Make it possible to use a OF tree embedded in u-boot.
> Also make sure OF tree is below 8MB.
>
> Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
>
> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> index 7aae8a6..78f8d15 100644
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -531,8 +531,12 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
> image_header_t *hdr = &header;
> #ifdef CONFIG_OF_FLAT_TREE
> char *of_flat_tree = NULL;
> +#ifdef CFG_EMBEDDED_FLAT_TREE
I don't want to have another #ifdef here. It should be possible to do
this (for example in the linker script) without this.
> -#ifndef CFG_NO_FLASH
> - if (addr2info((ulong)of_flat_tree) != NULL)
> + if (of_flat_tree >= (char *) (8*1024*1024))
And I definitely reject such hard-wired and uncommented magic
constants which are wrong on most of the systems.
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
In general, they do what you want, unless you want consistency.
- Larry Wall in the perl man page
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 23:56 ` Wolfgang Denk
@ 2006-12-18 14:39 ` Joakim Tjernlund
2006-12-30 13:10 ` Joakim Tjernlund
0 siblings, 1 reply; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-18 14:39 UTC (permalink / raw)
To: u-boot
On Mon, 2006-12-18 at 00:56 +0100, Wolfgang Denk wrote:
> Dear Joakim,
>
> in message <1166378632.30422.98.camel@gentoo-jocke.transmode.se> you wrote:
> >
> > how about this patch:
>
> Sorry, but there are two things I don't like:
>
> > Make it possible to use a OF tree embedded in u-boot.
> > Also make sure OF tree is below 8MB.
> >
> > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
> >
> > diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> > index 7aae8a6..78f8d15 100644
> > --- a/common/cmd_bootm.c
> > +++ b/common/cmd_bootm.c
> > @@ -531,8 +531,12 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
> > image_header_t *hdr = &header;
> > #ifdef CONFIG_OF_FLAT_TREE
> > char *of_flat_tree = NULL;
> > +#ifdef CFG_EMBEDDED_FLAT_TREE
>
> I don't want to have another #ifdef here. It should be possible to do
> this (for example in the linker script) without this.
Can't figure out how some linker magic would solve this. Somehow
this function needs a handle to where a default tree is stored.
Moved around the code a bit, hope you like this better.
>
> > -#ifndef CFG_NO_FLASH
> > - if (addr2info((ulong)of_flat_tree) != NULL)
> > + if (of_flat_tree >= (char *) (8*1024*1024))
>
> And I definitely reject such hard-wired and uncommented magic
> constants which are wrong on most of the systems.
Right, redid this part. If you don't like this either, we can skip
this part for now.
Regards
Jocke
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index 7aae8a6..b3654ee 100644
--- a/common/cmd_bootm.c
+++ b/common/cmd_bootm.c
@@ -510,6 +510,23 @@ fixup_silent_linux ()
#endif /* CONFIG_SILENT_CONSOLE */
#ifdef CONFIG_PPC
+
+/* Define oftree_dtb to point to you own built in
+ * OF tree if you need one.
+ */
+#ifndef oftree_dtb
+ #define oftree_dtb 0
+#endif
+/* Early in the linux boot process most ppc systems
+ * can only access the first few MB of RAM. If the
+ * OF tree is located higher up in memory than
+ * LINUX_INITIAL_MEMORY, it will be copied to a
+ * lower address where the kernel can access it.
+ */
+#ifndef LINUX_INITIAL_MEMORY
+ #define LINUX_INITIAL_MEMORY (8*1024*1024) /* 8MB */
+#endif
+
static void __attribute__((noinline))
do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
int argc, char *argv[],
@@ -531,7 +548,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
image_header_t *hdr = &header;
#ifdef CONFIG_OF_FLAT_TREE
char *of_flat_tree = NULL;
- ulong of_data = 0;
+ ulong of_data = (ulong)oftree_dtb;
#endif
if ((s = getenv ("initrd_high")) != NULL) {
@@ -745,10 +762,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
hdr = (image_header_t *)of_flat_tree;
if (*(ulong *)of_flat_tree == OF_DT_HEADER) {
-#ifndef CFG_NO_FLASH
- if (addr2info((ulong)of_flat_tree) != NULL)
+ if (of_flat_tree >= (char *) LINUX_INITIAL_MEMORY)
of_data = (ulong)of_flat_tree;
-#endif
} else if (ntohl(hdr->ih_magic) == IH_MAGIC) {
printf("## Flat Device Tree Image at %08lX\n", hdr);
print_image_hdr(hdr);
diff --git a/common/ft_build.c b/common/ft_build.c
^ permalink raw reply related [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-18 14:39 ` Joakim Tjernlund
@ 2006-12-30 13:10 ` Joakim Tjernlund
0 siblings, 0 replies; 25+ messages in thread
From: Joakim Tjernlund @ 2006-12-30 13:10 UTC (permalink / raw)
To: u-boot
Ping.
Didn't you like this either or no time to look at it?
Jocke
> -----Original Message-----
> From: u-boot-users-bounces at lists.sourceforge.net
> [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf
> Of Joakim Tjernlund
> Sent: den 18 december 2006 15:39
> To: Wolfgang Denk
> Cc: 'Grant Likely'; u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>
> On Mon, 2006-12-18 at 00:56 +0100, Wolfgang Denk wrote:
> > Dear Joakim,
> >
> > in message
> <1166378632.30422.98.camel@gentoo-jocke.transmode.se> you wrote:
> > >
> > > how about this patch:
> >
> > Sorry, but there are two things I don't like:
> >
> > > Make it possible to use a OF tree embedded in u-boot.
> > > Also make sure OF tree is below 8MB.
> > >
> > > Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
> > >
> > > diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> > > index 7aae8a6..78f8d15 100644
> > > --- a/common/cmd_bootm.c
> > > +++ b/common/cmd_bootm.c
> > > @@ -531,8 +531,12 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
> > > image_header_t *hdr = &header;
> > > #ifdef CONFIG_OF_FLAT_TREE
> > > char *of_flat_tree = NULL;
> > > +#ifdef CFG_EMBEDDED_FLAT_TREE
> >
> > I don't want to have another #ifdef here. It should be
> possible to do
> > this (for example in the linker script) without this.
>
> Can't figure out how some linker magic would solve this. Somehow
> this function needs a handle to where a default tree is stored.
> Moved around the code a bit, hope you like this better.
>
> >
> > > -#ifndef CFG_NO_FLASH
> > > - if (addr2info((ulong)of_flat_tree) != NULL)
> > > + if (of_flat_tree >= (char *) (8*1024*1024))
> >
> > And I definitely reject such hard-wired and
> uncommented magic
> > constants which are wrong on most of the systems.
>
> Right, redid this part. If you don't like this either, we can skip
> this part for now.
>
> Regards
> Jocke
>
> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
> index 7aae8a6..b3654ee 100644
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -510,6 +510,23 @@ fixup_silent_linux ()
> #endif /* CONFIG_SILENT_CONSOLE */
>
> #ifdef CONFIG_PPC
> +
> +/* Define oftree_dtb to point to you own built in
> + * OF tree if you need one.
> + */
> +#ifndef oftree_dtb
> + #define oftree_dtb 0
> +#endif
> +/* Early in the linux boot process most ppc systems
> + * can only access the first few MB of RAM. If the
> + * OF tree is located higher up in memory than
> + * LINUX_INITIAL_MEMORY, it will be copied to a
> + * lower address where the kernel can access it.
> + */
> +#ifndef LINUX_INITIAL_MEMORY
> + #define LINUX_INITIAL_MEMORY (8*1024*1024) /* 8MB */
> +#endif
> +
> static void __attribute__((noinline))
> do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
> int argc, char *argv[],
> @@ -531,7 +548,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
> image_header_t *hdr = &header;
> #ifdef CONFIG_OF_FLAT_TREE
> char *of_flat_tree = NULL;
> - ulong of_data = 0;
> + ulong of_data = (ulong)oftree_dtb;
> #endif
>
> if ((s = getenv ("initrd_high")) != NULL) {
> @@ -745,10 +762,8 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int fl
> hdr = (image_header_t *)of_flat_tree;
>
> if (*(ulong *)of_flat_tree == OF_DT_HEADER) {
> -#ifndef CFG_NO_FLASH
> - if (addr2info((ulong)of_flat_tree) != NULL)
> + if (of_flat_tree >= (char *)
> LINUX_INITIAL_MEMORY)
> of_data = (ulong)of_flat_tree;
> -#endif
> } else if (ntohl(hdr->ih_magic) == IH_MAGIC) {
> printf("## Flat Device Tree Image at
> %08lX\n", hdr);
> print_image_hdr(hdr);
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2006-12-17 16:50 ` Pantelis Antoniou
@ 2007-01-22 21:03 ` Timur Tabi
2007-01-22 22:06 ` Wolfgang Denk
0 siblings, 1 reply; 25+ messages in thread
From: Timur Tabi @ 2007-01-22 21:03 UTC (permalink / raw)
To: u-boot
Pantelis Antoniou wrote:
> On 17 ??? 2006, at 10:40 ??, Joakim Tjernlund wrote:
>
>>> -----Original Message-----
>>> From: glikely at gmail.com [mailto:glikely at gmail.com] On Behalf
>>> Of Grant Likely
>>> Sent: den 17 december 2006 16:11
>>> To: Joakim Tjernlund
>>> Cc: wd at denx.de; u-boot-users at lists.sourceforge.net
>>> Subject: Re: [U-Boot-Users] builtin OF tree dtb gone
>>>
>>> On 12/17/06, Joakim Tjernlund <joakim.tjernlund@transmode.se> wrote:
>>>> "in some setups", that's the point. Our setup works fine with
>>>> an embedded OF tree in u-boot. If I am to adapt to this new
>>>> method of supplying the OF tree, not only will I have to repartion
>>>> the flash to fit the tree in there, I also need to make sure
>>>> that some 15-20 people learns this new concept for no real gain.
>>>>
>>>> It is nothing wrong with having the ability provide a OF tree
>>>> at boot time, but forcing everyone to do so is. The
>>>> most flexible way is to have both.
>>> This shouldn't be too big a deal. Add the code back for linking the
>>> .dtb into the image. Look in common/boot.c and add a check for if
>>> the
>>> third bootm parameter is '-'. If it is, then use the builtin section
>>> for the .dtb address. Then you can either use the builtin
>>> version, or
>>> pass a new one. We're not talking a lot of code here.
>> I am looking at this now. I have a DTB linked into uboot at address
>> 0xffc9d90(near end of my 256MB RAM when u-boot has relocated itself).
>> Passing this address to bootm $loadaddr - 0xffc9d90 makes the
>> kernel SEGV because the kernel can't access data that high up in RAM
>> early in the boot process.
>> Seems to that the u-boot should copy the DTB to an address that
>> the kernel can access before passing control the kernel. How
>> else is one supposed to have a DTB in flash that is even higher up
>> in the address space?
>>
>> Maybe I have misunderstood something, but I can't se what presently.
>>
>
> Yes, the DTB must be placed low-enough in the boot memory to be
> accessed.
> I'm pretty sure that the original implementation I did made this work.
> In fact I'm surprised that the flash pointing thingy even works for
> anyone.
>
> Most of powerpc kernels need the initial OF tree to be under the 8MB.
Really? The current code puts the OF tree right before the initrd, which is
located at the top of RAM:
Booting using flat device tree at 0xfe250000
Loading Ramdisk to 0fda2000, end 0ff752ef ... OK
Loading Device Tree to 0fd9e000, end 0fd9f48a ...
Address 0fd9e000 is passed to the kernel.
Now granted, I have another bug where function ft_setup() doesn't work at all,
but I don't think that's related.
--
Timur Tabi
Linux Kernel Developer @ Freescale
^ permalink raw reply [flat|nested] 25+ messages in thread
* [U-Boot-Users] builtin OF tree dtb gone
2007-01-22 21:03 ` Timur Tabi
@ 2007-01-22 22:06 ` Wolfgang Denk
0 siblings, 0 replies; 25+ messages in thread
From: Wolfgang Denk @ 2007-01-22 22:06 UTC (permalink / raw)
To: u-boot
In message <45B52696.4070105@freescale.com> you wrote:
>
> Really? The current code puts the OF tree right before the initrd, which is
> located at the top of RAM:
Only if you allow it...
If this doesn't fit for some reason or another, please feel free to
change the behaviour. See the README about "initrd_high".
Best regards,
Wolfgang Denk
--
Software Engineering: Embedded and Realtime Systems, Embedded Linux
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
What is wanted is not the will to believe, but the will to find out,
which is the exact opposite.
-- Bertrand Russell, "Skeptical Essays", 1928
^ permalink raw reply [flat|nested] 25+ messages in thread
end of thread, other threads:[~2007-01-22 22:06 UTC | newest]
Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-16 15:21 [U-Boot-Users] builtin OF tree dtb gone Joakim Tjernlund
2006-12-16 15:45 ` Grant Likely
2006-12-16 17:23 ` Joakim Tjernlund
2006-12-16 16:07 ` Jerry Van Baren
2006-12-16 16:32 ` Joakim Tjernlund
2006-12-16 17:18 ` Pantelis Antoniou
2006-12-16 18:39 ` Dan Malek
2006-12-16 19:39 ` Joakim Tjernlund
2006-12-16 21:27 ` Dan Malek
2006-12-16 19:04 ` Wolfgang Denk
2006-12-16 19:59 ` Joakim Tjernlund
2006-12-17 0:37 ` Wolfgang Denk
2006-12-17 14:23 ` Joakim Tjernlund
2006-12-17 15:10 ` Grant Likely
2006-12-17 15:40 ` Joakim Tjernlund
2006-12-17 16:07 ` Joakim Tjernlund
2006-12-17 17:13 ` Wolfgang Denk
2006-12-17 18:03 ` Joakim Tjernlund
2006-12-17 23:56 ` Wolfgang Denk
2006-12-18 14:39 ` Joakim Tjernlund
2006-12-30 13:10 ` Joakim Tjernlund
2006-12-17 16:50 ` Pantelis Antoniou
2007-01-22 21:03 ` Timur Tabi
2007-01-22 22:06 ` Wolfgang Denk
2006-12-17 17:10 ` Wolfgang Denk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox