From mboxrd@z Thu Jan 1 00:00:00 1970 From: Graeme Russ Date: Sat, 03 Dec 2011 08:10:04 +1100 Subject: [U-Boot] [PATCH 3/4] x86: Force the lib_sysinfo structure to be in the .data section In-Reply-To: <1322633275-10542-4-git-send-email-gabeblack@chromium.org> References: <1322633275-10542-1-git-send-email-gabeblack@chromium.org> <1322633275-10542-4-git-send-email-gabeblack@chromium.org> Message-ID: <4ED93EAC.7040904@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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 > > -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