[U-Boot] Use .data section in SPL ?

Hi.
I notice SPL is using .data section
u32 *boot_params_ptr = NULL; struct spl_image_info spl_image;
/* Define board data structure */ static bd_t bdata __attribute__ ((section(".data")));
If SPL is running on an execute-in-place device such NOR flash, .data section is not writable.
common/spl/spl_nor.c does not work.
Shall we ban global variables on SPL (and pre-relocation) ?
or
Shall we make .data section available?
Best Regards Masahiro Yamada

On Wed, Dec 10, 2014 at 04:39:39PM +0900, Masahiro Yamada wrote:
Hi.
I notice SPL is using .data section
u32 *boot_params_ptr = NULL; struct spl_image_info spl_image;
/* Define board data structure */ static bd_t bdata __attribute__ ((section(".data")));
If SPL is running on an execute-in-place device such NOR flash, .data section is not writable.
common/spl/spl_nor.c does not work.
spl_nor.c only works today on PowerPC where there's nothing shoved into the .data section.
And all of this is related to what's needed to enable DM in SPL on ARM as well, iirc anyhow.

Hi Tom,
On 10 December 2014 at 07:06, Tom Rini trini@ti.com wrote:
On Wed, Dec 10, 2014 at 04:39:39PM +0900, Masahiro Yamada wrote:
Hi.
I notice SPL is using .data section
u32 *boot_params_ptr = NULL; struct spl_image_info spl_image;
/* Define board data structure */ static bd_t bdata __attribute__ ((section(".data")));
If SPL is running on an execute-in-place device such NOR flash, .data section is not writable.
common/spl/spl_nor.c does not work.
spl_nor.c only works today on PowerPC where there's nothing shoved into the .data section.
And all of this is related to what's needed to enable DM in SPL on ARM as well, iirc anyhow.
Can you please explain the SPL problem on ARM a bit more? If It could understand what is going on, or how to repeat it, I might be able to help. I'd really like to enable this DM SPL support...
Regards, Simon

On Wed, Dec 10, 2014 at 06:56:02PM -0700, Simon Glass wrote:
Hi Tom,
On 10 December 2014 at 07:06, Tom Rini trini@ti.com wrote:
On Wed, Dec 10, 2014 at 04:39:39PM +0900, Masahiro Yamada wrote:
Hi.
I notice SPL is using .data section
u32 *boot_params_ptr = NULL; struct spl_image_info spl_image;
/* Define board data structure */ static bd_t bdata __attribute__ ((section(".data")));
If SPL is running on an execute-in-place device such NOR flash, .data section is not writable.
common/spl/spl_nor.c does not work.
spl_nor.c only works today on PowerPC where there's nothing shoved into the .data section.
And all of this is related to what's needed to enable DM in SPL on ARM as well, iirc anyhow.
Can you please explain the SPL problem on ARM a bit more? If It could understand what is going on, or how to repeat it, I might be able to help. I'd really like to enable this DM SPL support...
Did you see the WIP patch I sent out in reply to the SPL DM series?

Hi Tom,
On 10 December 2014 at 19:04, Tom Rini trini@ti.com wrote:
On Wed, Dec 10, 2014 at 06:56:02PM -0700, Simon Glass wrote:
Hi Tom,
On 10 December 2014 at 07:06, Tom Rini trini@ti.com wrote:
On Wed, Dec 10, 2014 at 04:39:39PM +0900, Masahiro Yamada wrote:
Hi.
I notice SPL is using .data section
u32 *boot_params_ptr = NULL; struct spl_image_info spl_image;
/* Define board data structure */ static bd_t bdata __attribute__ ((section(".data")));
If SPL is running on an execute-in-place device such NOR flash, .data section is not writable.
common/spl/spl_nor.c does not work.
spl_nor.c only works today on PowerPC where there's nothing shoved into the .data section.
And all of this is related to what's needed to enable DM in SPL on ARM as well, iirc anyhow.
Can you please explain the SPL problem on ARM a bit more? If It could understand what is going on, or how to repeat it, I might be able to help. I'd really like to enable this DM SPL support...
Did you see the WIP patch I sent out in reply to the SPL DM series?
Not that I recall - you mean this one?
http://patchwork.ozlabs.org/patch/417792/
I might have been asleep. Will take a look.
Regards, Simon

On Wed, Dec 10, 2014 at 07:13:51PM -0700, Simon Glass wrote:
Hi Tom,
On 10 December 2014 at 19:04, Tom Rini trini@ti.com wrote:
On Wed, Dec 10, 2014 at 06:56:02PM -0700, Simon Glass wrote:
Hi Tom,
On 10 December 2014 at 07:06, Tom Rini trini@ti.com wrote:
On Wed, Dec 10, 2014 at 04:39:39PM +0900, Masahiro Yamada wrote:
Hi.
I notice SPL is using .data section
u32 *boot_params_ptr = NULL; struct spl_image_info spl_image;
/* Define board data structure */ static bd_t bdata __attribute__ ((section(".data")));
If SPL is running on an execute-in-place device such NOR flash, .data section is not writable.
common/spl/spl_nor.c does not work.
spl_nor.c only works today on PowerPC where there's nothing shoved into the .data section.
And all of this is related to what's needed to enable DM in SPL on ARM as well, iirc anyhow.
Can you please explain the SPL problem on ARM a bit more? If It could understand what is going on, or how to repeat it, I might be able to help. I'd really like to enable this DM SPL support...
Did you see the WIP patch I sent out in reply to the SPL DM series?
Not that I recall - you mean this one?
http://patchwork.ozlabs.org/patch/417792/
I might have been asleep. Will take a look.
Yup, that's the one. Fixing that (and the similar constructs the other TI platforms have) and then a few other similar constructs elsewhere is why we have to throw things into .data but write to them today in ARM.
participants (3)
-
Masahiro Yamada
-
Simon Glass
-
Tom Rini