[U-Boot] [RFC PATCH 1/5] armv7: move boot hook before '_start'

Dr. Philipp Tomsich philipp.tomsich at theobroma-systems.com
Tue Jun 13 09:44:46 UTC 2017


Marek,

> On 13 Jun 2017, at 10:42, Marek Vasut <marex at denx.de> wrote:
> 
> On 06/13/2017 03:51 AM, Kever Yang wrote:
>> Hi Marek,
> 
> Hi,
> 
>> On 06/07/2017 02:28 PM, Marek Vasut wrote:
>>> On 06/07/2017 04:28 AM, Kever Yang wrote:
>>>> Hi Andre, Steve, Marek,
>>>> 
>>>>     Could you help to check how to make it work with this patch on
>>>> sunxi, bcm and socfpga platform?
>>> The socfpga expects the hook at that exact position (0x40 I think) , so
>>> if you moved it somewhere, you broke socfpga.
>> 
>> I know this break socfpga, and that's why I cc you for help, could you
>> help the take a look if we can have a solution on socfpga to "make it
>> work with this patch"?
> 
> Can you generate the same u-boot binary with this patch ? If so, then it
> will work on socfpga. SoCFPGA expects that small piece of stuff at
> offset 0x40 , so if you move this boot0 hook, it will break. HTH

So the SoCFPGA-implementation relies on the boot0 hook to always start
at 0x40?  Then this needs fixing anyway… or it will break once someone
else touches the armv7 startup code.

That said, I read your comment to mean that the following changes would
work for SoCFPGA:
1.	arch/arm/lib/vectors.S:
		#if CONFIG_IS_ENABLED(BOOT0_HOOK)
			… pull in the boot0 hook, which needs to contain the vectors
		#else
			b reset
			… remaining vectors … 
		#endif
2.	boot0.h (for socfpga):
		b reset
		… remaining vectors …
		/* now at 0x40 */
		… whatever currently lives in the boot0.h for socfpga ...

Ok?

> 
>> Comments from Philipp[0] show that its reasonable for this patch set,
>> I don't know how the boot0-hook works in socfpga and also sunxi and bcm,
>> could you help me to fix the hook content upon this patch?
>> 
>> Thanks,
>> - Kever
>> [0]https://www.mail-archive.com/u-boot@lists.denx.de/msg252823.html
>>> 
>>>> Thanks,
>>>> - Kever
>>>> On 05/31/2017 06:50 PM, Kever Yang wrote:
>>>>> The boot0 hook suppose to add some data before the SPL data,
>>>>> let's move it at very begining and before '_start'.
>>>>> 
>>>>> Signed-off-by: Kever Yang <kever.yang at rock-chips.com>
>>>>> ---
>>>>> 
>>>>>   arch/arm/lib/vectors.S | 19 ++++++++++---------
>>>>>   1 file changed, 10 insertions(+), 9 deletions(-)
>>>>> 
>>>>> diff --git a/arch/arm/lib/vectors.S b/arch/arm/lib/vectors.S
>>>>> index f53b1e9..b4cd825 100644
>>>>> --- a/arch/arm/lib/vectors.S
>>>>> +++ b/arch/arm/lib/vectors.S
>>>>> @@ -35,6 +35,16 @@
>>>>>         .section ".vectors", "ax"
>>>>>   +#ifdef CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK
>>>>> +/*
>>>>> + * Various SoCs need something special and SoC-specific up front in
>>>>> + * order to boot, allow them to set that in their boot0.h file and
>>>>> then
>>>>> + * use it here.
>>>>> + */
>>>>> +#include <asm/arch/boot0.h>
>>>>> +
>>>>> +#endif
>>>>> +
>>>>>   /*
>>>>> 
>>>>> *************************************************************************
>>>>> 
>>>>>    *
>>>>> @@ -60,15 +70,6 @@ _start:
>>>>>       ldr    pc, _irq
>>>>>       ldr    pc, _fiq
>>>>>   -#ifdef CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK
>>>>> -/*
>>>>> - * Various SoCs need something special and SoC-specific up front in
>>>>> - * order to boot, allow them to set that in their boot0.h file and
>>>>> then
>>>>> - * use it here.
>>>>> - */
>>>>> -#include <asm/arch/boot0.h>
>>>>> -#endif
>>>>> -
>>>>>   /*
>>>>> 
>>>>> *************************************************************************
>>>>> 
>>>>>    *
>>>> 
>>> 
>> 
>> 
> 
> 
> -- 
> Best regards,
> Marek Vasut



More information about the U-Boot mailing list