devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: Simon Glass <sjg@chromium.org>
Cc: U-Boot Mailing List <u-boot@lists.denx.de>,
	Devicetree Discuss <devicetree-discuss@lists.ozlabs.org>,
	Tom Warren <twarren@nvidia.com>,
	Jerry Van Baren <vanbaren@cideas.com>
Subject: Re: [PATCH v4 04/20] arm: fdt: Ensure that an embedded fdt is word-aligned
Date: Sun, 19 Feb 2012 19:33:27 +0100	[thread overview]
Message-ID: <4F414077.7040100@aribaud.net> (raw)
In-Reply-To: <CAPnjgZ2sq7Gx8XQ3OG0a6sAVS_S_F7V3XkyCXMz2GvA=e+y_Vg@mail.gmail.com>

Hi Simon,

Le 19/02/2012 17:23, Simon Glass a écrit :

> Sorry I had that wrong - it's not the link step I am bothered by, it is the
> objcopy step.
>
> What I would like to do is mark the input section, created by objcopy, with
> a particular alignment so that the linker does the right thing. This
> feature appears to be present in objcopy but does not appear to work.
> Perhaps I should debug that first to see what is going on.

(Formally there are two "objcopy steps" in u-boot building. One happens 
after the link step, where from the u-boot ELF binary objcopy derives 
the u-boot.bin pure binary and u-boot.srec S-Record file. I suspect 
you're referring to the other one, which happens before the link stage 
and which turns the binary FDT data into an ELF-linkable object. Correct?)

Maybe one is allowed to specify alignment requirements when making an 
ELF object file from a pure binary with objcopy; but obviously it does 
not work as you want it to, whereas section alignment in linker scripts 
is a tried and proven method.

>>>> So I must be missing something. Can you clarify the scenario that gets
>>>
>>> fixed here?
>>>
>>> The fdt blob is in one of the object files. If during linking the file
>>> before it has a data segment whose size is not a multiple of 4, then the
>>> fdt object can be misaligned in the output.
>>
>>
>> Understood. This example of an alignment failure scenario shows that the
> failure cause is indeed that the FDT is embedded in the .data output
> section at link time.
>>
>>
>>>> Not that I am against the patch, mind you, quite the opposite. I am just
>>>
>>> wondering about the pros and cons of having a separated (and aligned) DTS
>>> data *output* section and placing that section after .code and .data
> rather
>>> than between them.
>>>
>>> Bear in mind that embedding the fdt in the image is really only for
>>> development.
>>
>>
>> Understood, and I think that's one more reason to make sure that the act
> of FDT embedding does not alter .data input section ordering.
>
> Well it is just a data section really.

So are the relocation tables in .rel.dyn and .dynsyms, but that does not 
mean they have to go to the "dot data" output section.

>>> We could have a separate output section if you like. Up to you.
>>
>>
>> I much prefer embedded FDT data to be explicitly mapped to a a dedicated
> .fdt output section in u-boot.lds, because it ensures that aligment
> constaints for .fdt and .data can be controlled independently.
>
> I will take a look at this.

Thanks. This should be fairly easy to do in the linker script by 
inserting an output section (e.g. ".fdt") after .data, aligning the 
start of that section to a word boundary, and explicitly mapping the 
.data section of the FDT object file into it.

> Regards,
> Simon

Amicalement,
-- 
Albert.

  reply	other threads:[~2012-02-19 18:33 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1326342789-5781-1-git-send-email-sjg@chromium.org>
2012-01-12  4:32 ` [PATCH v4 02/20] fdt: Add functions to access phandles, arrays and bools Simon Glass
     [not found]   ` <1326342789-5781-3-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-18 22:01     ` Stephen Warren
2012-01-23  2:03     ` [U-Boot] " Jerry Van Baren
2012-01-12  4:32 ` [PATCH v4 05/20] arm: fdt: Add skeleton device tree file from kernel Simon Glass
     [not found] ` <1326342789-5781-1-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-12  4:32   ` [PATCH v4 01/20] fdt: Tidy up a few fdtdec problems Simon Glass
     [not found]     ` <1326342789-5781-2-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-18 21:58       ` Stephen Warren
2012-01-23  2:03       ` [U-Boot] " Jerry Van Baren
2012-01-12  4:32   ` [PATCH v4 03/20] fdt: Add basic support for decoding GPIO definitions Simon Glass
2012-01-18 22:17     ` Stephen Warren
2012-01-21 17:08       ` Simon Glass
     [not found]         ` <CAPnjgZ0TCNTZjR_Fc1+UvYxyjH-a-Bxtkz60OERR7YmC5tbuug-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-23 18:18           ` Stephen Warren
     [not found]             ` <4F1DA490.6090903-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-01-24 23:11               ` Simon Glass
     [not found]                 ` <CAPnjgZ0eNXhWYtkb+4-FswpByAE7NHXoLz-ngp7Af_P0+u4GiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-24 23:14                   ` Stephen Warren
     [not found]                     ` <74CDBE0F657A3D45AFBB94109FB122FF178CB81F0D-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-24 23:17                       ` Simon Glass
2012-01-12  4:32   ` [PATCH v4 04/20] arm: fdt: Ensure that an embedded fdt is word-aligned Simon Glass
2012-02-18 11:51     ` Albert ARIBAUD
2012-02-18 18:09       ` Simon Glass
2012-02-19  8:27         ` Albert ARIBAUD
2012-02-19 16:23           ` Simon Glass
2012-02-19 18:33             ` Albert ARIBAUD [this message]
2012-02-27 20:27               ` Simon Glass
2012-01-12  4:32   ` [PATCH v4 06/20] tegra: fdt: Add Tegra2x device tree file from kernel Simon Glass
     [not found]     ` <1326342789-5781-7-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-18 22:24       ` Stephen Warren
2012-01-19 23:51         ` Simon Glass
2012-01-20  0:06           ` Stephen Warren
2012-01-12  4:32   ` [PATCH v4 07/20] tegra: fdt: Add device tree file for Tegra2 Seaboard " Simon Glass
2012-01-18 22:28     ` Stephen Warren
2012-01-21 17:20       ` Simon Glass
2012-01-12  4:32   ` [PATCH v4 08/20] fdt: Add staging area for device tree binding documentation Simon Glass
     [not found]     ` <1326342789-5781-9-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-18 22:30       ` Stephen Warren
2012-01-19 23:52         ` Simon Glass
2012-01-12  4:32   ` [PATCH v4 09/20] fdt: Add tegra-usb bindings file from linux Simon Glass
2012-01-12  4:33   ` [PATCH v4 11/20] tegra: fdt: Add clock bindings Simon Glass
     [not found]     ` <1326342789-5781-12-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-19  0:16       ` [PATCH] ARM: tegra: Define Tegra20 CAR binding Stephen Warren
     [not found]         ` <1326932212-30346-1-git-send-email-swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-01-19  5:31           ` Olof Johansson
     [not found]             ` <20120119053143.GA27447-O5ziIzlqnXUVNXGz7ipsyg@public.gmane.org>
2012-01-19 17:17               ` Stephen Warren
     [not found]                 ` <74CDBE0F657A3D45AFBB94109FB122FF1780DAB0CA-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-21  7:32                   ` Olof Johansson
     [not found]                     ` <CAOesGMh=i3EED-XhOpwGj8Vuma3xA0WehRL1iK1LSZfEuetP6Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-21  8:31                       ` Mitch Bradley
2012-01-23 16:18                       ` Stephen Warren
     [not found]                         ` <74CDBE0F657A3D45AFBB94109FB122FF178CB81A90-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-23 17:45                           ` Mitch Bradley
2012-01-23 18:16                       ` Grant Likely
2012-01-22 18:03           ` Simon Glass
     [not found]             ` <CAPnjgZ2t9FnEubWmLyNMGGhr=jEmfb1qzK=SAzRopjbCbHKdrA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-23 16:29               ` Stephen Warren
2012-01-24  9:52           ` Peter De Schrijver
     [not found]             ` <20120124095241.GO10446-Rysk9IDjsxmJz7etNGeUX8VPkgjIgRvpAL8bYrjMMd8@public.gmane.org>
2012-01-24 22:08               ` Stephen Warren
     [not found]                 ` <74CDBE0F657A3D45AFBB94109FB122FF178CB81EC4-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-24 22:32                   ` Colin Cross
     [not found]                     ` <CAMbhsRQYt7RoXTDDPxCgGG2UX5_T86saOyns_0f_Sz-p7-gMTw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-24 22:43                       ` Stephen Warren
     [not found]                         ` <74CDBE0F657A3D45AFBB94109FB122FF178CB81EEB-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2012-01-24 22:59                           ` Colin Cross
     [not found]                             ` <CAMbhsRScz4edCr4Cxa=QbBhuYW1M3GsbKhCbFuo5Zu9PRdNfSg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-25  9:50                               ` Peter De Schrijver
2012-01-12  4:33   ` [PATCH v4 12/20] tegra: usb: fdt: Add additional device tree definitions for USB ports Simon Glass
     [not found]     ` <1326342789-5781-13-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-19  0:19       ` Stephen Warren
2012-01-19 23:53         ` Simon Glass
2012-01-12  4:33   ` [PATCH v4 13/20] tegra: usb: fdt: Add USB definitions for Tegra2 Seaboard Simon Glass
2012-01-12  4:33   ` [PATCH v4 15/20] fdt: Add function to return peripheral/clock ID Simon Glass
2012-01-12  4:33   ` [PATCH v4 20/20] tegra: fdt: Enable FDT support for Seaboard Simon Glass
2012-01-12  4:32 ` [PATCH v4 10/20] tegra: fdt: Add additional USB binding Simon Glass
     [not found]   ` <1326342789-5781-11-git-send-email-sjg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2012-01-18 22:48     ` Stephen Warren
     [not found]       ` <4F174C3E.2090403-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-01-19  5:35         ` Olof Johansson
     [not found]           ` <20120119053523.GB27447-O5ziIzlqnXUVNXGz7ipsyg@public.gmane.org>
2012-01-19  5:55             ` Simon Glass
     [not found]               ` <CAPnjgZ0JAyV8+0kLv=EcM-AhBxE-YSyG-Y7rYPS8PhOAOnq6dw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-19  6:41                 ` Olof Johansson
     [not found]                   ` <CAOesGMjCxryS+3yQZqCP3JYeHpCbUuNHM+rtDBoOQjF6rwLv5g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-19  6:59                     ` Simon Glass
     [not found]                       ` <CAPnjgZ10mwQJ7RubrO_VFdHF+39cHOjLPmQNbYBeERjTWJMU4Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-19  7:13                         ` Olof Johansson
     [not found]                           ` <CAOesGMhOe6enf9BFgpCbvEgtT3F-p5rEsxp8=PG57sxBaQvawQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-01-19 17:33                             ` Stephen Warren
2012-01-19 23:55                               ` Simon Glass

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F414077.7040100@aribaud.net \
    --to=albert.u.boot@aribaud.net \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=sjg@chromium.org \
    --cc=twarren@nvidia.com \
    --cc=u-boot@lists.denx.de \
    --cc=vanbaren@cideas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).