[OE-core] [PATCH] kernel-fitimage.bbclass: Allow set/unset load address for FDT

Rick Altherr raltherr at google.com
Wed Feb 15 02:51:22 UTC 2017


At a minimum, please resend with a commit message that correctly describes
the change.

On Tue, Feb 14, 2017 at 4:42 PM, Rick Altherr <raltherr at google.com> wrote:

> Whoops. Dropped the list. Adding it back.
>
> On Feb 14, 2017 4:28 PM, "Nikunj Kela" <nikunj.kela at gmail.com> wrote:
>
>> I do agree that this can be fixed in u-boot however I saw a commit for
>> initrd load/entry addresses that make use of UBOOT_RD_* variables in OE, so
>> I thought of adding one for FDT load address.
>>
>> On Tue, Feb 14, 2017 at 4:24 PM, Rick Altherr <raltherr at google.com>
>> wrote:
>>
>>> I don't see harm in taking this patch but it does encourage a poor
>>> practice.
>>>
>>> They probably set the U-Boot boot command to 'bootm <kernel_addr>
>>> <initrd_addr> <fdt_addr>' which is what you do for legacy images. With FIT,
>>> only the address of the FIT itself is strictly needed.  Instead of pinning
>>> the FDT and initrd to fixed address, the U-Boot boot command can be a HUSH
>>> script that checks the FIT for initrd and FDT and falls back to fixed
>>> address if not found.
>>>
>>> I did this recently in OpenBMC's U-Boot for Aspeed SoCs. I'm on my phone
>>> so I don't have a link handy. The advantage is a more compact RAM layout
>>> since U-Boot only allocates exactly the RAM required for the copies.
>>>
>>> Rick
>>>
>>> On Feb 14, 2017 4:04 PM, "Nikunj Kela" <nikunj.kela at gmail.com> wrote:
>>>
>>>> Recently, on freescale ls1043a reference board, I came across a
>>>> situation where if I don't specify the FDT load address in the fitImage,
>>>> the uboot picks up some address however kernel doesn't boot. I looked at
>>>> the freescale supplied BSP and found that load address is required for
>>>> their FDT.
>>>>
>>>> On Tue, Feb 14, 2017 at 2:41 PM, Rick Altherr <raltherr at google.com>
>>>> wrote:
>>>>
>>>>> The attached patch seems to do exactly the opposite of the commit
>>>>> message.  When no "load" property is set for the fdt node, U-Boot will
>>>>> allocate memory dynamically and copy the fdt to the allocated RAM _if
>>>>> needed_.  With this patch, if UBOOT_FDT_LOADADDRESS is set, U-Boot will
>>>>> _always_ attempt to copy the fdt to the specified address.  I'm surprised
>>>>> you need the FDT at a specific address.  Are you able to share more details
>>>>> about the situation you need this option in?
>>>>>
>>>>> On Tue, Feb 14, 2017 at 1:27 PM, Nikunj Kela <nikunj.kela at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> Allow the load address for the FDT segment in the fitImage. This
>>>>>> allows U-Boot to dynamically decide where to load the FDT.
>>>>>>
>>>>>> UBOOT_FDT_LOADADDRESS - Specifies the load address used by u-boot
>>>>>>                 for the FDT
>>>>>>
>>>>>> Signed-off-by: Nikunj Kela <nikunj.kela at gmail.com>
>>>>>> ---
>>>>>>  meta/classes/kernel-fitimage.bbclass | 6 ++++++
>>>>>>  1 file changed, 6 insertions(+)
>>>>>>
>>>>>> diff --git a/meta/classes/kernel-fitimage.bbclass
>>>>>> b/meta/classes/kernel-fitimage.bbclass
>>>>>> index 1c3b4b7..7f9da49 100644
>>>>>> --- a/meta/classes/kernel-fitimage.bbclass
>>>>>> +++ b/meta/classes/kernel-fitimage.bbclass
>>>>>> @@ -127,6 +127,11 @@ EOF
>>>>>>  fitimage_emit_section_dtb() {
>>>>>>
>>>>>>         dtb_csum="sha1"
>>>>>> +       fdt_loadline=""
>>>>>> +
>>>>>> +       if [ -n "${UBOOT_FDT_LOADADDRESS}" ]; then
>>>>>> +               fdt_loadline="load = <${UBOOT_FDT_LOADADDRESS}>;"
>>>>>> +       fi
>>>>>>
>>>>>>         cat << EOF >> ${1}
>>>>>>                  fdt@${2} {
>>>>>> @@ -135,6 +140,7 @@ fitimage_emit_section_dtb() {
>>>>>>                          type = "flat_dt";
>>>>>>                          arch = "${UBOOT_ARCH}";
>>>>>>                          compression = "none";
>>>>>> +                        ${fdt_loadline}
>>>>>>                          hash at 1 {
>>>>>>                                  algo = "${dtb_csum}";
>>>>>>                          };
>>>>>> --
>>>>>> 2.5.0
>>>>>>
>>>>>> --
>>>>>> _______________________________________________
>>>>>> Openembedded-core mailing list
>>>>>> Openembedded-core at lists.openembedded.org
>>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>>>>>
>>>>>
>>>>>
>>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170214/9fd49479/attachment-0002.html>


More information about the Openembedded-core mailing list