Dear Michal Simek, In message <1292955178-13018-3-git-send-email-mon...@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.
In the Subject: s/bdiinfo/bd_info/ > index eeef579..8232cf0 100644 > --- a/arch/microblaze/lib/board.c > +++ b/arch/microblaze/lib/board.c > @@ -91,15 +91,16 @@ void board_init (void) > bd_t *bd; > init_fnc_t **init_fnc_ptr; > gd = (gd_t *) CONFIG_SYS_GBL_DATA_OFFSET; > + bd = (bd_t *) CONFIG_SYS_GBL_DATA_OFFSET - GENERATED_BD_INFO_SIZE; This is actually wrong. You are using CONFIG_SYS_GBL_DATA_OFFSET as if it were CONFIG_SYS_GBL_DATA_ADDR, but it ain't so: it is an _offset_, and NOT and address. > - memset ((void *)gd, 0, GENERATED_GBL_DATA_SIZE); > - gd->bd = (bd_t *) (gd + 1); /* At end of global data */ > + memset ((void *)bd, 0, GENERATED_GBL_DATA_SIZE > + + GENERATED_BD_INFO_SIZE); Don't do this. Instead, use two separate memset() calls, one for gd and another one for bd. The stucts may be in a contiguous area now, but you would probably run into nasty bugs if this gets changed one day. Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de I usually tell my classes "if you are using @ and [] together in this class, you will almost certainly NOT get what you want. That's going down the wrong tunnel. There's no cheese at the end of that tunnel." -- Randal L. Schwartz in <8czptuomey....@gadget.cscaper.com> _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot