[U-Boot] [RFC PATCH 3/5] common/board_r: manual relocation for cmd table

2015-01-19 Thread Andreas Bießmann
This is required for architectures still need manual relocation like avr32, mk68
and others.

Signed-off-by: Andreas Bießmann 
---

 common/board_r.c |   12 
 1 file changed, 12 insertions(+)

diff --git a/common/board_r.c b/common/board_r.c
index a301cc2..e712902 100644
--- a/common/board_r.c
+++ b/common/board_r.c
@@ -294,6 +294,15 @@ static int initr_announce(void)
return 0;
 }
 
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
+static int initr_manual_reloc_cmdtable(void)
+{
+   fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+  ll_entry_count(cmd_tbl_t, cmd));
+   return 0;
+}
+#endif
+
 #if !defined(CONFIG_SYS_NO_FLASH)
 static int initr_flash(void)
 {
@@ -718,6 +727,9 @@ init_fnc_t init_sequence_r[] = {
initr_serial,
initr_announce,
INIT_FUNC_WATCHDOG_RESET
+#ifdef CONFIG_NEEDS_MANUAL_RELOC
+   initr_manual_reloc_cmdtable,
+#endif
 #ifdef CONFIG_PPC
initr_trap,
 #endif
-- 
1.7.10.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH 3/5] common/board_r: manual relocation for cmd table

2015-01-19 Thread Simon Glass
Hi Andreas,

On 19 January 2015 at 16:29, Andreas Bießmann
 wrote:
> This is required for architectures still need manual relocation like avr32, 
> mk68
> and others.
>
> Signed-off-by: Andreas Bießmann 
> ---
>
>  common/board_r.c |   12 
>  1 file changed, 12 insertions(+)
>
> diff --git a/common/board_r.c b/common/board_r.c
> index a301cc2..e712902 100644
> --- a/common/board_r.c
> +++ b/common/board_r.c
> @@ -294,6 +294,15 @@ static int initr_announce(void)
> return 0;
>  }
>
> +#ifdef CONFIG_NEEDS_MANUAL_RELOC
> +static int initr_manual_reloc_cmdtable(void)
> +{
> +   fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
> +  ll_entry_count(cmd_tbl_t, cmd));
> +   return 0;
> +}
> +#endif
> +
>  #if !defined(CONFIG_SYS_NO_FLASH)
>  static int initr_flash(void)
>  {
> @@ -718,6 +727,9 @@ init_fnc_t init_sequence_r[] = {
> initr_serial,
> initr_announce,
> INIT_FUNC_WATCHDOG_RESET
> +#ifdef CONFIG_NEEDS_MANUAL_RELOC
> +   initr_manual_reloc_cmdtable,
> +#endif
>  #ifdef CONFIG_PPC
> initr_trap,
>  #endif
> --

Reviewed-by: Simon Glass 

Why do you need manual reloc? Is this a toolchain bug?

Regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH 3/5] common/board_r: manual relocation for cmd table

2015-01-19 Thread Andreas Bießmann
Hi Simon,

On 20.01.15 00:34, Simon Glass wrote:
> Hi Andreas,
> 
> On 19 January 2015 at 16:29, Andreas Bießmann
>  wrote:
>> This is required for architectures still need manual relocation like avr32, 
>> mk68
>> and others.
>>
>> Signed-off-by: Andreas Bießmann 
>> ---
>>
>>  common/board_r.c |   12 
>>  1 file changed, 12 insertions(+)
>>
>> diff --git a/common/board_r.c b/common/board_r.c
>> index a301cc2..e712902 100644
>> --- a/common/board_r.c
>> +++ b/common/board_r.c
>> @@ -294,6 +294,15 @@ static int initr_announce(void)
>> return 0;
>>  }
>>
>> +#ifdef CONFIG_NEEDS_MANUAL_RELOC
>> +static int initr_manual_reloc_cmdtable(void)
>> +{
>> +   fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
>> +  ll_entry_count(cmd_tbl_t, cmd));
>> +   return 0;
>> +}
>> +#endif
>> +
>>  #if !defined(CONFIG_SYS_NO_FLASH)
>>  static int initr_flash(void)
>>  {
>> @@ -718,6 +727,9 @@ init_fnc_t init_sequence_r[] = {
>> initr_serial,
>> initr_announce,
>> INIT_FUNC_WATCHDOG_RESET
>> +#ifdef CONFIG_NEEDS_MANUAL_RELOC
>> +   initr_manual_reloc_cmdtable,
>> +#endif
>>  #ifdef CONFIG_PPC
>> initr_trap,
>>  #endif
>> --
> 
> Reviewed-by: Simon Glass 
> 
> Why do you need manual reloc? Is this a toolchain bug?

Just not implemented yet for avr32. It is on my list, but avr32 has not
my highest priority ;)
As long as there are other arches which need this also I think it is
some more time to shift ... the generic board deadline end of 2014 was a
bit stricter, I don't want to kick avr32 out of u-boot now. So let's get
generic board working for avr32 in the next release ;)

Best regards

Andreas Bießmann
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH 3/5] common/board_r: manual relocation for cmd table

2015-01-19 Thread Simon Glass
Hi Andreas,

On 19 January 2015 at 16:41, Andreas Bießmann
 wrote:
> Hi Simon,
>
> On 20.01.15 00:34, Simon Glass wrote:
>> Hi Andreas,
>>
>> On 19 January 2015 at 16:29, Andreas Bießmann
>>  wrote:
>>> This is required for architectures still need manual relocation like avr32, 
>>> mk68
>>> and others.
>>>
>>> Signed-off-by: Andreas Bießmann 
>>> ---
>>>
>>>  common/board_r.c |   12 
>>>  1 file changed, 12 insertions(+)
>>>
>>> diff --git a/common/board_r.c b/common/board_r.c
>>> index a301cc2..e712902 100644
>>> --- a/common/board_r.c
>>> +++ b/common/board_r.c
>>> @@ -294,6 +294,15 @@ static int initr_announce(void)
>>> return 0;
>>>  }
>>>
>>> +#ifdef CONFIG_NEEDS_MANUAL_RELOC
>>> +static int initr_manual_reloc_cmdtable(void)
>>> +{
>>> +   fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
>>> +  ll_entry_count(cmd_tbl_t, cmd));
>>> +   return 0;
>>> +}
>>> +#endif
>>> +
>>>  #if !defined(CONFIG_SYS_NO_FLASH)
>>>  static int initr_flash(void)
>>>  {
>>> @@ -718,6 +727,9 @@ init_fnc_t init_sequence_r[] = {
>>> initr_serial,
>>> initr_announce,
>>> INIT_FUNC_WATCHDOG_RESET
>>> +#ifdef CONFIG_NEEDS_MANUAL_RELOC
>>> +   initr_manual_reloc_cmdtable,
>>> +#endif
>>>  #ifdef CONFIG_PPC
>>> initr_trap,
>>>  #endif
>>> --
>>
>> Reviewed-by: Simon Glass 
>>
>> Why do you need manual reloc? Is this a toolchain bug?
>
> Just not implemented yet for avr32. It is on my list, but avr32 has not
> my highest priority ;)
> As long as there are other arches which need this also I think it is
> some more time to shift ... the generic board deadline end of 2014 was a
> bit stricter, I don't want to kick avr32 out of u-boot now. So let's get
> generic board working for avr32 in the next release ;)

OK - it would be good to tidy this up.

Regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH 3/5] common/board_r: manual relocation for cmd table

2015-01-20 Thread Alexey Brodkin
Hi Simon,

On Mon, 2015-01-19 at 16:34 -0700, Simon Glass wrote:
> Hi Andreas,

> Why do you need manual reloc? Is this a toolchain bug?

>From my experience the only way to escape manual relocation is to use
PIE (Position Independent Executable), but this might not be supported
in a toolchain for AVR (or it doesn't actually work good enough - this I
understood from this message
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=574716)

-Alexey
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [RFC PATCH 3/5] common/board_r: manual relocation for cmd table

2015-01-27 Thread Michal Simek
2015-01-20 0:34 GMT+01:00 Simon Glass :

> Hi Andreas,
>
> On 19 January 2015 at 16:29, Andreas Bießmann
>  wrote:
> > This is required for architectures still need manual relocation like
> avr32, mk68
> > and others.
> >
> > Signed-off-by: Andreas Bießmann 
> > ---
> >
> >  common/board_r.c |   12 
> >  1 file changed, 12 insertions(+)
> >
> > diff --git a/common/board_r.c b/common/board_r.c
> > index a301cc2..e712902 100644
> > --- a/common/board_r.c
> > +++ b/common/board_r.c
> > @@ -294,6 +294,15 @@ static int initr_announce(void)
> > return 0;
> >  }
> >
> > +#ifdef CONFIG_NEEDS_MANUAL_RELOC
> > +static int initr_manual_reloc_cmdtable(void)
> > +{
> > +   fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
> > +  ll_entry_count(cmd_tbl_t, cmd));
> > +   return 0;
> > +}
> > +#endif
> > +
> >  #if !defined(CONFIG_SYS_NO_FLASH)
> >  static int initr_flash(void)
> >  {
> > @@ -718,6 +727,9 @@ init_fnc_t init_sequence_r[] = {
> > initr_serial,
> > initr_announce,
> > INIT_FUNC_WATCHDOG_RESET
> > +#ifdef CONFIG_NEEDS_MANUAL_RELOC
> > +   initr_manual_reloc_cmdtable,
> > +#endif
> >  #ifdef CONFIG_PPC
> > initr_trap,
> >  #endif
> > --
>
> Reviewed-by: Simon Glass 
>

Tested-by: Michal Simek 

I need this patch for microblaze generic-board support.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot