Hi Wolfgang, > So far U-Boot is actually a 32 bit boot loader; address calculations > like this "just wrap around". So far this has not caused problems yet; > what has caused problems is that we can have overlapping sections on > 4xx. Also it's probably overkill that each board has it's own linker > script.
I added some debug and came to the same conclusion about the wrapping math. Full ack on the linker script consolidation. > I would like to see this fixed in this process. Maybe Stefan finds > some spare cycles to address this. > > > > Where is BSS on 44x boards? I dont see any reason we shouldn't be > > > able to put it at the same location. > > > > >From the XPedite1000: > > > > [ 0] NULL 00000000 000000 000000 00 0 > > 0 0 > > [ 1] .resetvec PROGBITS fffffffc 03f2e4 000004 00 AX 0 > > 0 1 > > [ 2] .bootpg PROGBITS fffff000 03e2e8 000250 00 AX 0 > > 0 1 > > [ 3] .text PROGBITS fff80000 000094 0303b0 00 AX 0 > > 0 4 > > [ 4] .rodata PROGBITS fffb03b0 030444 00a14c 00 A 0 > > 0 4 > > [ 5] .reloc PROGBITS fffba500 03a594 002280 00 WA 0 > > 0 4 > > [ 6] .data PROGBITS fffbc780 03c814 00088c 00 WA 0 > > 0 4 > > [ 7] .data.rel.local PROGBITS fffbd00c 03d0a0 000a98 00 WA 0 > > 0 4 > > [ 8] .data.rel.ro.loca PROGBITS fffbdaa4 03db38 0000b0 00 WA 0 > > 0 4 > > [ 9] .data.rel PROGBITS fffbdb54 03dbe8 000100 00 WA 0 > > 0 4 > > [10] .u_boot_cmd PROGBITS fffbdc54 03dce8 000600 00 WA 0 > > 0 4 > > [11] .bss NOBITS fffbe300 03e2e8 011c44 00 WA 0 > > 0 4 > > > > I shied away from this for the 2 reasons above - the bootpg section will > > be wiped out when the bss is cleared for images near their maximum size > > I think it will not be needed any more by then. Its not currently used (at least on 85xx), but I know using it had been mentioned in the past. There's a >3K chunk that's sitting empty right now that could be used. All things being equal I think it would be ideal not to trash a section of U-Boot code - it could be useful and at some point someone's going to be banging their head on the wall trying to figure out why some chunk of assembly code isn't working. > > If everyone is OK with the limitation of #1 above I can make the 85xx > > act like the other PPC boards. The only downside I see is that we could > > never put any non-reset related code in the bootpg. > > What about my suggestion to chose a fixed (random, non-zero) address? I'd vote against this. It'd have to be some area in low memory and people would be bound to accidentally stomp on it and cause all sorts of odd errors- like overwriting the exception vectors, but harder to debug. I personally like the current implementation of putting the bss after the entire U-Boot image. It keeps U-Boot's code, malloc pool, stack, bss, etc all in the same general area which is nice, and has the side benefit that the bootpg won't be overwritten. I know ORing in 0x10 is a bit ugly, but what's the real downside of doing it? Best, Peter _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot