Hi Michael,

On 5 March 2015 at 06:29, Michael van der Westhuizen
<[email protected]> wrote:
> Resurrecting this old thread…
>
> Jason,
>
> We’re presently getting CONFIG_OF_EMBED up on a 32 bit PPC target and hit a 
> problem that made me think of this thread.
>
> What we’re seeing (in v2014.07) is that the FDT pointer is not necessarily 
> aligned in the wrapper assembly file.  We’ve worked around this with the 
> following patch.  You may want to try a similar patch to see if it resolves 
> your problem.

This was fixed in mainline around November. You could cherry-pick
5c30bf4 into your branch.

Regards,
Simon

>
> Michael
>
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 072abaa..987298f 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -251,6 +251,7 @@ quiet_cmd_dt_S_dtb= DTB     $@
>  cmd_dt_S_dtb=                                          \
>  (                                                      \
>         echo '.section .dtb.init.rodata,"a"';           \
> +       echo '.align 4';                \
>         echo '.global __dtb_$(*F)_begin';               \
>         echo '__dtb_$(*F)_begin:';                      \
>         echo '.incbin "$<" ';                           \
>
>
>> On 09 Dec 2014, at 4:17 PM, Simon Glass <[email protected]> wrote:
>>
>> (sorry, forgot to cc list)
>>
>> On 9 December 2014 at 07:17, Simon Glass <[email protected]> wrote:
>>> Hi,
>>>
>>> On 8 December 2014 at 01:54, Duxiaoqiang <[email protected]> wrote:
>>>> Hi Michael,
>>>>
>>>> Thanks for your information.
>>>>
>>>> My working result show that public exponent is not the only problem caused 
>>>> by 64bit alignment, there are also some other problems caused by it, for 
>>>> example: load image after verify step.
>>>
>>> If you post your console output then perhaps we might be able to suggest a 
>>> fix.
>>>
>>>>
>>>> May be we should add a patch to cover all 64 bit platform's alignment.
>>>>
>>>> For we need verified boot feature to solve some problems, I also spent 
>>>> some time trying to solve the problem.
>>>>
>>>> But I am not very familiar with uboot FDT'S design, it may spend me long 
>>>> time so not very convenient for me to solve this problem.
>>>>
>>>> So I want to know do you have time to fix this problem recently, and 
>>>> what's your plan.
>>>
>>> I haven't tried this on 64-bit ARM. I may be able to do so later in the 
>>> month.
>>>
>>>>
>>>> Thanks very much.
>>>>
>>>> Sincerely
>>>> Jason
>>>>> Hi All,
>>>>>
>>>>> Apologies for the delayed response, I’ve been on vacation.
>>>>
>>>>> Since this was working for you (Duxiaoqiang) previously it suggests that 
>>>>> you are using the default public exponent.  If this is still the case you 
>>>>> could, as a temporary workaround, remove the public exponent from your 
>>>>> public key data to avoid executing the code causing the abort.
>>>>>
>>>>> Simon: Yes, we’ll need an alignment-safe version of fdt64_to_cpu.
>>>>>
>>>>> Michael
>>>>
>>>>>> On 02 Dec 2014, at 12:31 AM, Simon Glass <[email protected]> wrote:
>>>>>>
>>>>>> +Michael, U-Boot mailing list
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> On 30 November 2014 at 19:26, Duxiaoqiang <[email protected]> wrote:
>>>>>>>
>>>>>>> Hi Simon
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> When I test verified boot with new version of U-boot and new version of 
>>>>>>> mkimage, I encountered a alignment problem about RSA public key 
>>>>>>> exponents.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I tested verified boot successful few months ago with version of 
>>>>>>> 2014.07-rc4, but failed with the same configuration and operations this 
>>>>>>> time.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Problem logs as below:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I debug this problem and noticed that the problem was caused by 
>>>>>>> pulic_exponent’s address: 0xff78a04c, this address was not aligned to 8 
>>>>>>> byte, but this address was pointed by a uint64 * type of pointer.
>>>>>>>
>>>>>>> Panic happened in function rsa_verify_with_keynode, just as below:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> By compared the u-boot.dtb file that signed with RSA public key, I 
>>>>>>> noticed that there are differences about PUBLIC_EXPONENT.
>>>>>>>
>>>>>>> With the older version of mkimage, there’s no public exponent section. 
>>>>>>> And this problem only happens when I use the new version of mkimage 
>>>>>>> tool.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I also checked uboot’s code, it seems that there’s lack of mechanism to 
>>>>>>> guarantee the alignment about public exponent section.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Can you give some suggestions about this problem. Appreciate your time.
>>>>>>
>>>>>> Copying Michael. Perhaps we need a safer version of fdt64_to_cpu()?
>>>>>>
>>>>>> But you might be the first to run this on aarch64. I have not tried it
>>>>>> yet, but I do now have a platform.
>>>
>>> REgards,
>>> Simon
>
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to