Hi Bin, On Wed, 20 Jan 2021 at 22:35, Bin Meng <bmeng...@gmail.com> wrote: > > Hi Simon, > > On Sun, Jan 17, 2021 at 5:54 AM Simon Glass <s...@chromium.org> wrote: > > > > The part of U-Boot that actually ends up in u-boot-nodtb.bin is not built > > with any particular alignment. It ends at the start of the BSS section. > > The BSS section selects its own alignment, which may larger. > > I don't see start of the BSS section has alignment in the linker script. > > > This means that there can be a gap of a few bytes between the image > > ending and BSS starting. > > > > Since u-boot.bin is build by joining u-boot-nodtb.bin and u-boot.dtb (with > > perhaps some padding for BSS), the expected result is not obtained. U-Boot > > uses the end of BSS to find the devicetree, so this means that it cannot > > be found. > > Please explain this in more details, maybe showing a failure case with > exact bss start/size and where U-Boot expects to get the device tree > but it's not > > > > > Add 32-byte alignment of BSS so that the image size is correct and > > appending the devicetree will place it at the end of BSS. > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > arch/x86/cpu/u-boot-spl.lds | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/x86/cpu/u-boot-spl.lds b/arch/x86/cpu/u-boot-spl.lds > > index e6c22895b35..e0c70b076b8 100644 > > --- a/arch/x86/cpu/u-boot-spl.lds > > +++ b/arch/x86/cpu/u-boot-spl.lds > > @@ -43,6 +43,7 @@ SECTIONS > > __binman_sym_start = .; > > KEEP(*(SORT(.binman_sym*))); > > __binman_sym_end = .; > > + . = ALIGN(32); > > Is 32 safe enough?
I'll send a new version expanding this. I have not seen >32-byte alignment so far. > > > } > > > > _image_binary_end = .; > > -- Regards, Simon