[U-Boot] [PATCH 2/2] boards: ls2080: Disable fdt copying by default
Scott Wood
oss at buserror.net
Tue Mar 1 17:01:23 CET 2016
On Tue, 2016-03-01 at 06:03 +0000, Bhupesh Sharma wrote:
> > From: york sun
> > Sent: Tuesday, March 01, 2016 11:30 AM
> >
> > On 02/29/2016 09:20 PM, Bhupesh Sharma wrote:
> > > > From: U-Boot [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Scott
> > > > Wood
> > > > Sent: Tuesday, March 01, 2016 7:13 AM
> > > >
> > > > On Tue, 2016-03-01 at 00:08 +0000, york sun wrote:
> > > > > Sorry for top posting. I am on outlook web access.
> > > > >
> > > > > There may be some limitation on fdt relocation. Without setting
> > > > > fdt_high, u -boot relocates the device tree toward the end of
> > > > > useable memory. I haven't got a chance to debug why it doesn't work.
> > > > >
> > > > > This patch is to disable the relocation by default. A magic number
> > > > > 0xa0000000 doesn't make much sense here.
> > > >
> > > > I agree, if the number is arbitrary. But if Linux has a limitation,
> > > > as it does on arm32, then it should be expressed here.
> > > >
> > >
> > > There are explicit requirements for placement of DTB for aarch64 linux.
> > > Linux versions prior to v4.2 also require that the DTB be placed
> > > within the 512 MB region starting at text_offset bytes below the kernel
> > Image:
> > >
> > > http://lxr.free-electrons.com/source/Documentation/arm64/booting.txt#L
> > > 43
> > >
> > > York - have you tested this patch against older kernels like 3.18?
> >
> > Bhupesh,
> >
> > Thanks for the link. It may explained why Linux doesn't boot if fdt_high
> > is not set properly on kernel prior 4.2.
> >
> > I proposed to disable fdt copying by default. It doesn't mean we cannot
> > will won't use fdt_high. My point is, setting an arbitrary value doesn't
> > make much sense.
It's not arbitrary if it comes from a Linux requirement.
> > It could be in overlap with ramdisk, or something else.
How? It's an upper limit. It's not a directive to put the fdt at a specific
address. U-Boot knows where the ramdisk is and should avoid overlapping them.
> > Since we are using FIT image for this board, it is easy to set correct
> > load address for kernel/ramdisk/dtb.
How does FIT make that any easier? Picking correct addresses is the same
challenge as before -- now it's just specified in a different location.
> > Device tree can be used in place.
> > However, it is user's choice on how to use the memory. We can write a
> > README as a guideline but it makes no sense to default to 0xa0000000.
>
> Thanks York. I agree that 0xa0000000 was an address we found suitable during
> our earlier
> Linux boot attempts and we kept using it.
>
> Updating the README to add a suitable guideline seems like a proper approach
> to me.
Updating a README that people won't read is better than having U-Boot do the
right thing by default?
> > As I am working on enabling high region memory, I found it even more
> > inappropriate to set fdt_high to any arbitrary value. Actually, variables
> > including kernel_start, kernel_load, kernel_size should be removed. They
> > don't serve users well if the board doesn't have preloaded image to
> > specific address, which is almost certain on most boards. Those variables
> > are only useful for shipping boards from manufacture with preloaded
> > images.
> >
>
> +1
This is true regarding kernel_start/kernel_size, but not kernel_load which
tells you what a sane place would be to load an image, rather than describing
an image that is already there.
-Scott
More information about the U-Boot
mailing list