diff mbox

[U-Boot,1/9] arm: Add warnings about using gdata

Message ID 1419361499-31967-2-git-send-email-sjg@chromium.org
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Simon Glass Dec. 23, 2014, 7:04 p.m. UTC
We need to get rid of this SPL-specific setting of the global_data pointer.
It is already set up in start.S immediately before board_init_f() is called,
and there may be information there that is needed (e.g. pre-reloc malloc
info).

Signed-off-by: Simon Glass <sjg@chromium.org>
---

 arch/arm/lib/spl.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Igor Grinberg Dec. 24, 2014, 6:53 a.m. UTC | #1
Hi Simon,

On 12/23/14 21:04, Simon Glass wrote:
> We need to get rid of this SPL-specific setting of the global_data pointer.
> It is already set up in start.S immediately before board_init_f() is called,
> and there may be information there that is needed (e.g. pre-reloc malloc
> info).
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
> 
>  arch/arm/lib/spl.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
> index dfcc596..c41850a 100644
> --- a/arch/arm/lib/spl.c
> +++ b/arch/arm/lib/spl.c
> @@ -15,6 +15,11 @@
>  
>  /* Pointer to as well as the global data structure for SPL */
>  DECLARE_GLOBAL_DATA_PTR;
> +
> +/*
> + * WARNING: This is going away very soon. Don't use it and don't submit
> + * pafches that rely on it. The global_data area is set up in crt0.S.
> + */
>  gd_t gdata __attribute__ ((section(".data")));
>  
>  /*
> @@ -28,7 +33,7 @@ void __weak board_init_f(ulong dummy)
>  	/* Clear the BSS. */
>  	memset(__bss_start, 0, __bss_end - __bss_start);
>  
> -	/* Set global data pointer. */
> +	/* TODO: Remove settings of the global data pointer here */

Why do you need this patch at all if you remove this stuff in 9/9?

>  	gd = &gdata;
>  
>  	board_init_r(NULL, 0);
>
Simon Glass Dec. 29, 2014, 4:24 p.m. UTC | #2
Hi Igor,

On 23 December 2014 at 23:53, Igor Grinberg <grinberg@compulab.co.il> wrote:
> Hi Simon,
>
> On 12/23/14 21:04, Simon Glass wrote:
>> We need to get rid of this SPL-specific setting of the global_data pointer.
>> It is already set up in start.S immediately before board_init_f() is called,
>> and there may be information there that is needed (e.g. pre-reloc malloc
>> info).
>>
>> Signed-off-by: Simon Glass <sjg@chromium.org>
>> ---
>>
>>  arch/arm/lib/spl.c | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
>> index dfcc596..c41850a 100644
>> --- a/arch/arm/lib/spl.c
>> +++ b/arch/arm/lib/spl.c
>> @@ -15,6 +15,11 @@
>>
>>  /* Pointer to as well as the global data structure for SPL */
>>  DECLARE_GLOBAL_DATA_PTR;
>> +
>> +/*
>> + * WARNING: This is going away very soon. Don't use it and don't submit
>> + * pafches that rely on it. The global_data area is set up in crt0.S.
>> + */
>>  gd_t gdata __attribute__ ((section(".data")));
>>
>>  /*
>> @@ -28,7 +33,7 @@ void __weak board_init_f(ulong dummy)
>>       /* Clear the BSS. */
>>       memset(__bss_start, 0, __bss_end - __bss_start);
>>
>> -     /* Set global data pointer. */
>> +     /* TODO: Remove settings of the global data pointer here */
>
> Why do you need this patch at all if you remove this stuff in 9/9?

I imagine that 9/9 might take some time to be applied, since it needs
testing, so I've put that in as a clean-up patch.
>
>>       gd = &gdata;
>>
>>       board_init_r(NULL, 0);

Regards,
Simon
Igor Grinberg Dec. 30, 2014, 7:39 a.m. UTC | #3
Hi Simon,

On 12/29/14 18:24, Simon Glass wrote:
> Hi Igor,
> 
> On 23 December 2014 at 23:53, Igor Grinberg <grinberg@compulab.co.il> wrote:
>> Hi Simon,
>>
>> On 12/23/14 21:04, Simon Glass wrote:
>>> We need to get rid of this SPL-specific setting of the global_data pointer.
>>> It is already set up in start.S immediately before board_init_f() is called,
>>> and there may be information there that is needed (e.g. pre-reloc malloc
>>> info).
>>>
>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>> ---
>>>
>>>  arch/arm/lib/spl.c | 7 ++++++-
>>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
>>> index dfcc596..c41850a 100644
>>> --- a/arch/arm/lib/spl.c
>>> +++ b/arch/arm/lib/spl.c
>>> @@ -15,6 +15,11 @@
>>>
>>>  /* Pointer to as well as the global data structure for SPL */
>>>  DECLARE_GLOBAL_DATA_PTR;
>>> +
>>> +/*
>>> + * WARNING: This is going away very soon. Don't use it and don't submit
>>> + * pafches that rely on it. The global_data area is set up in crt0.S.
>>> + */
>>>  gd_t gdata __attribute__ ((section(".data")));
>>>
>>>  /*
>>> @@ -28,7 +33,7 @@ void __weak board_init_f(ulong dummy)
>>>       /* Clear the BSS. */
>>>       memset(__bss_start, 0, __bss_end - __bss_start);
>>>
>>> -     /* Set global data pointer. */
>>> +     /* TODO: Remove settings of the global data pointer here */
>>
>> Why do you need this patch at all if you remove this stuff in 9/9?
> 
> I imagine that 9/9 might take some time to be applied, since it needs
> testing, so I've put that in as a clean-up patch.

I personally, like this patch set and think we should move forward with it.
We'll give it a try (hopefully this week), but I don't think it should be
merged before the next merge window.
Is this (1/9) patch intended to go in during the rc?

>>
>>>       gd = &gdata;
>>>
>>>       board_init_r(NULL, 0);
> 
> Regards,
> Simon
>
Simon Glass Dec. 30, 2014, 10:12 p.m. UTC | #4
Hi Igor,

On 30 December 2014 at 00:39, Igor Grinberg <grinberg@compulab.co.il> wrote:
> Hi Simon,
>
> On 12/29/14 18:24, Simon Glass wrote:
>> Hi Igor,
>>
>> On 23 December 2014 at 23:53, Igor Grinberg <grinberg@compulab.co.il> wrote:
>>> Hi Simon,
>>>
>>> On 12/23/14 21:04, Simon Glass wrote:
>>>> We need to get rid of this SPL-specific setting of the global_data pointer.
>>>> It is already set up in start.S immediately before board_init_f() is called,
>>>> and there may be information there that is needed (e.g. pre-reloc malloc
>>>> info).
>>>>
>>>> Signed-off-by: Simon Glass <sjg@chromium.org>
>>>> ---
>>>>
>>>>  arch/arm/lib/spl.c | 7 ++++++-
>>>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
>>>> index dfcc596..c41850a 100644
>>>> --- a/arch/arm/lib/spl.c
>>>> +++ b/arch/arm/lib/spl.c
>>>> @@ -15,6 +15,11 @@
>>>>
>>>>  /* Pointer to as well as the global data structure for SPL */
>>>>  DECLARE_GLOBAL_DATA_PTR;
>>>> +
>>>> +/*
>>>> + * WARNING: This is going away very soon. Don't use it and don't submit
>>>> + * pafches that rely on it. The global_data area is set up in crt0.S.
>>>> + */
>>>>  gd_t gdata __attribute__ ((section(".data")));
>>>>
>>>>  /*
>>>> @@ -28,7 +33,7 @@ void __weak board_init_f(ulong dummy)
>>>>       /* Clear the BSS. */
>>>>       memset(__bss_start, 0, __bss_end - __bss_start);
>>>>
>>>> -     /* Set global data pointer. */
>>>> +     /* TODO: Remove settings of the global data pointer here */
>>>
>>> Why do you need this patch at all if you remove this stuff in 9/9?
>>
>> I imagine that 9/9 might take some time to be applied, since it needs
>> testing, so I've put that in as a clean-up patch.
>
> I personally, like this patch set and think we should move forward with it.
> We'll give it a try (hopefully this week), but I don't think it should be
> merged before the next merge window.
> Is this (1/9) patch intended to go in during the rc?

There's not enough time to test/fix this, so it would be better to
apply it when the merge window opens. Then any breakage can be dealt
with. At least this time we have the patches (this series plus Tom's
patches) so the plan should work.

Regards,
Simon
Tom Rini Jan. 20, 2015, 9:40 p.m. UTC | #5
On Tue, Dec 23, 2014 at 12:04:51PM -0700, Simon Glass wrote:

> We need to get rid of this SPL-specific setting of the global_data pointer.
> It is already set up in start.S immediately before board_init_f() is called,
> and there may be information there that is needed (e.g. pre-reloc malloc
> info).
> 
> Signed-off-by: Simon Glass <sjg@chromium.org>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/arch/arm/lib/spl.c b/arch/arm/lib/spl.c
index dfcc596..c41850a 100644
--- a/arch/arm/lib/spl.c
+++ b/arch/arm/lib/spl.c
@@ -15,6 +15,11 @@ 
 
 /* Pointer to as well as the global data structure for SPL */
 DECLARE_GLOBAL_DATA_PTR;
+
+/*
+ * WARNING: This is going away very soon. Don't use it and don't submit
+ * pafches that rely on it. The global_data area is set up in crt0.S.
+ */
 gd_t gdata __attribute__ ((section(".data")));
 
 /*
@@ -28,7 +33,7 @@  void __weak board_init_f(ulong dummy)
 	/* Clear the BSS. */
 	memset(__bss_start, 0, __bss_end - __bss_start);
 
-	/* Set global data pointer. */
+	/* TODO: Remove settings of the global data pointer here */
 	gd = &gdata;
 
 	board_init_r(NULL, 0);