On Thu, Sep 09, 2010 at 02:40:50PM -0500, Timur Tabi wrote: > Ira W. Snyder wrote: > > As noted in another email, it appears that U-Boot puts the FDT in such a > > place that Linux overwrites it with the BSS. The CONFIG_PROVE_LOCKING=y > > option expands the BSS by a large amount, which causes the error. It > > isn't directly lockdep related. > > > > I don't know if this is a U-Boot problem or a Linux problem. I have no > > idea how to fix the bug. > > I wonder if this patch that I wrote for U-Boot will fix the problem: > > http://lists.denx.de/pipermail/u-boot/2010-May/071822.html >
Nope, I tried it and it doesn't fix the problem. It relocates the FDT to exactly the same address as before the patch. I think the problem is that the U-Boot loader doesn't take into account the Linux kernel's BSS size, and puts the FDT too close. Here is the relevant U-Boot output after applying your patch. It was not changed from the previous output. Booting using the fdt blob at 0x226a278 Uncompressing Kernel Image ... OK Loading Ramdisk to 0fe9f000, end 0ff75699 ... OK Loading Device Tree to 007f8000, end 007ff78f ... OK My ramdisk is right near the end of RAM. This board has 256MB of RAM. 0x0ff75699 / 1024 / 1024 == 255.4586 The FDT is just before the 8MB boundary: 0x007ff78f / 1024 / 1024 == 7.9979 My uncompressed vmlinux.bin.gz is ~3.5MB: i...@rena ~/devel/correlator/fit-image $ zcat vmlinux.bin.gz > vmlinux.bin i...@rena ~/devel/correlator/fit-image $ du -b vmlinux.bin 3573068 vmlinux.bin As posted in my other email, Linux's BSS is ~5.2MB: (gdb) print __bss_start $23 = 0xc0369000 <Address 0xc0369000 out of bounds> (gdb) print __bss_stop $25 = 0xc08a0c48 <Address 0xc08a0c48 out of bounds> (0xc08a0c48 - 0xc0369000) / 1024 / 1024 == 5.21784210205078125 Total (code + BSS): 3573068 + 5471304 == 9044372 (~8.62MB) That easily overruns the location where U-Boot puts the FDT. Is this a U-Boot bug, meaning I should post this information on the U-Boot mailing list? Thanks, Ira _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev