From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Tue, 21 Dec 2010 13:58:27 +0100 Subject: [U-Boot] [PATCH 2/2] microblaze: Fix bdiinfo pointer In-Reply-To: <20101221122635.17EC4126EB19@gemini.denx.de> References: <1292933384-3032-1-git-send-email-monstr@monstr.eu> <1292933384-3032-2-git-send-email-monstr@monstr.eu> <1292933384-3032-3-git-send-email-monstr@monstr.eu> <20101221122635.17EC4126EB19@gemini.denx.de> Message-ID: <4D10A473.2030202@monstr.eu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Wolfgang Denk wrote: > Dear Michal Simek, > > In message <1292933384-3032-3-git-send-email-monstr@monstr.eu> you wrote: >> Patch "Replace CONFIG_SYS_GBL_DATA_SIZE by auto-generated value" >> (sha1: 25ddd1fb0a2281b182529afbc8fda5de2dc16d96) >> introduce GENERATED_GBL_DATA_SIZE which is sizeof aligned gd_t >> (currently 0x40). >> Microblaze configs used 0x40(128) because this place also contained >> board info structure which lies on the top of ram. >> >> This patch is fixing this scheme by extending CONFIG_SYS_GBL_DATA_OFFSET >> value. Doubled GENERATED_GBL_DATA_SIZE size is enough to store >> gd_t and bd_t structures. > > No, I will not accept this. > > Please do not make assumptions abouth the size of bd_t compared to > GENERATED_GBL_DATA_SIZE. Use the correct size instead, as you can > easily get using the sizeof() operator (plus some padding eventually > to guarantee alignment, if needed). I would like to do it but it is not easy to use sizeof because there are some dependencies in macros in common.h(lines 193-201) because I am using CONFIG_SYS_GBL_DATA_OFFSET for monitor/malloc areas. The best will be to be able to generate this value in lib/asm-offsets.c Not sure if you are ok with it. diff --git a/lib/asm-offsets.c b/lib/asm-offsets.c index 2209561..36fc198 100644 --- a/lib/asm-offsets.c +++ b/lib/asm-offsets.c @@ -24,6 +24,8 @@ int main(void) /* Round up to make sure size gives nice stack alignment */ DEFINE(GENERATED_GBL_DATA_SIZE, (sizeof(struct global_data)+15) & ~15); + DEFINE(GENERATED_BD_INFO_SIZE, + (sizeof(struct bd_info)+15) & ~15); return 0; } Michal -- Michal Simek, Ing. (M.Eng) w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/ Microblaze U-BOOT custodian