Hi Peter, On 3 December 2014 at 13:53, Peter Howard <p...@northern-ridge.com.au> wrote: > On Wed, 2014-12-03 at 06:38 -0700, Simon Glass wrote: >> Hi Peter, >> >> On 2 December 2014 at 14:59, Peter Howard <p...@northern-ridge.com.au> wrote: >> > >> > I'm trying to make two changes to building u-boot for the da850evm. >> > * Use the generic board code to get rid of the warning, and >> > * Enable libfdt to allow booting of linux with a standalone dtb >> > image. >> > >> > The first part appears to be simple. Just adding >> > >> > #define CONFIG_SYS_GENERIC_BOARD >> > >> > in include/configs/da850evm.h works with no obvious side-effects. >> > >> > However, adding >> > >> > #define CONFIG_OF_LIBFDT >> > >> > is a different story. It appears to introduce memory corruption when >> > loading the environment. On first boot it gives the "bad CRC!" warning >> > and uses the default environment. If you *don't* save the environment >> > you can boot fine (including manual editing of the environment). However >> > if you save the environment via saveenv bad things happen on the next >> > boot. An example log: >> > >> > U-Boot SPL 2015.01-rc1 (Nov 27 2014 - 14:30:26) >> > >> > >> > U-Boot 2015.01-rc1 (Nov 27 2014 - 14:30:26) >> > >> > I2C: ready >> > DRAM: 64 MiB >> > WARNING: Caches not enabled >> > MMC: davinci: 0 >> > SF: Detected M25P64 with page size 256 Bytes, erase size 64 KiB, total 8 >> > MiB >> > In: serial >> > Out: serial >> > Err: serial >> > SF: Detected M25P64 with page size 256 Bytes, erase size 64 KiB, total 8 >> > MiB >> > Warning: Invalid MAC address read from SPI flash >> > Net: DaVinci-EMAC >> > Error: DaVinci-EMAC address not set. >> > >> > U-Boot > help >> > data abort >> > pc : [<c108ffd8>] lr : [<c10900b4>] >> > sp : c3e5f838 ip : 00000000 fp : c3e5fda4 >> > r10: c10b1f28 r9 : c3e5ff08 r8 : 0000000e >> > r7 : c10b22c4 r6 : c10aa2a0 r5 : 00000000 r4 : 0000001b >> > r3 : c10b8f70 r2 : 00000001 r1 : c3e5f840 r0 : ffffffff >> > Flags: Nzcv IRQs off FIQs off Mode SVC_32 >> > Resetting CPU ... >> > >> > If I rebuild with CONFIG_OF_LIBFDT removed again from da850evm.h the >> > problem disappears. And you can see that the saveenv worked (i.e. the >> > environment is what was saved before the reboot and data abort). >> > >> > I've traced the problem as far as the inline version of console_puts() >> > in common/console.c. The table dispatch there and the fact that the >> > problem appears only when you load the environment makes me think it's >> > memory corruption. >> > >> > Note: if you do *not* specify CONFIG_SYS_GENERIC_BOARD you still get the >> > data abort, however it takes a bit more effort to trigger (like actually >> > looking at the environment :-) ) >> > >> > (Note: This is building against the u-boot-2015.01-rc1 tree) >> > >> > Suggestions? >> >> In case it helps, I got the same symptom (help crashes) and it was due >> to BSS not being cleared. Stefan (on cc) found this problem - he said >> something to do with GDT calculation or handling. However it is just a >> guess and probably has nothing to do with your issue. > > I may be missing something, but the GDT appears to be x86-specific > whereas I'm building for ARMv5.
OK for some reason I thought this was PPC! Maybe you can find your pc in System.map and work out where it is going wrong? Are you hitting some image size limit? pc : [<c108ffd8>] Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot