[U-Boot] [PATCH 3/4] x86: Force the lib_sysinfo structure to be in the .data section

Graeme Russ graeme.russ at gmail.com
Fri Dec 2 22:10:04 CET 2011


Hi Gabe,

On 30/11/11 17:07, Gabe Black wrote:
> Otherwise it ends up in the .bss section. U-boot assumes that it doesn't
> need to copy it over during relocation, and instead fills that whole
> section with zeroes. If we really were booting from ROM that would be
> appropriate, but we need some information from the coreboot tables (memory
> size) before then and have to fill that structure before relocation. We
> skirt u-boot's assumption by putting this in .data where it assumes there
> is still read only but non-zero data.
> 
> Signed-off-by: Gabe Black <gabeblack at chromium.org>
> ---
>  arch/x86/cpu/coreboot/sysinfo.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/x86/cpu/coreboot/sysinfo.c b/arch/x86/cpu/coreboot/sysinfo.c
> index 464f8a1..e74fe0a 100644
> --- a/arch/x86/cpu/coreboot/sysinfo.c
> +++ b/arch/x86/cpu/coreboot/sysinfo.c
> @@ -30,4 +30,10 @@
>  
>  #include <asm/ic/coreboot/sysinfo.h>
>  
> -struct sysinfo_t lib_sysinfo;
> +/*
> + * This needs to be in the .data section so that it's copied over during
> + * relocation. By default it's put in the .bss section which is simply filled
> + * with zeroes when transitioning from "ROM", which is really RAM, to other
> + * RAM.
> + */
> +struct sysinfo_t lib_sysinfo __attribute__((section(".data")));

I think this can be logically folded into the first patch

Regards,

Graeme


More information about the U-Boot mailing list