[U-Boot] [PATCH 2/2] microblaze: Fix bdiinfo pointer

Michal Simek monstr at monstr.eu
Tue Dec 21 13:58:27 CET 2010


Wolfgang Denk wrote:
> Dear Michal Simek,
> 
> In message <1292933384-3032-3-git-send-email-monstr at 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


More information about the U-Boot mailing list