On Tue, Mar 6, 2012 at 11:52 AM, Linus Walleij <linus.wall...@linaro.org> wrote: > Hi toolchain folks, > > I have a problem with U-boot compiled for an ARMv4 system (Integrator) > using Linaro 2012.02-20120222, it just crashes. Compiling the same > U-Boot with CodeSourcery 2010-q1 works fine. > > Symptom: > Resetting CPU ... > > undefined instruction > pc : [<07fdecd4>] lr : [<07fdeb34>] > sp : 07f91380 ip : 00000000 fp : 00000001 > r10: 010258fc r9 : 00000000 r8 : 07f94f64 > r7 : 07f94eb0 r6 : 00989680 r5 : 000186a0 r4 : 000186a0 > r3 : 000003e8 r2 : 000f423f r1 : 000f4240 r0 : 05f5e100 > Flags: nzCv IRQs on FIQs on Mode SVC_32 > > (repeated ad nauseam) > > The only hint I have is the constant 000186a0, which appears > here in the put_dec() routine from U-boots vsprintf(), which is > nothing special, it's Douglas Jones' binary to decimal conversion > code from the Linux kernel, but the compiles objects DOES > contain calls to __aeabi_uidivmod, __udivsi3, __div64_32. > > Do we know of any potential trouble in these helpers on ARMv4? > > The file containing these functions is compiled like this: > > arm-linux-gnueabi-gcc -M -g -Os -fno-common -ffixed-r8 -msoft-float > -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0x01000000 > -I/var/linus/u-boot/build-integrator/include2 > -I/var/linus/u-boot/build-integrator/include > -I/var/linus/u-boot/include -fno-builtin -ffreestanding -nostdinc > -isystem > /home/linus/src/gcc-linaro-arm-linux-gnueabi-2012.02-20120222_linux/bin/../lib/gcc/arm-linux-gnueabi/4.6.3/include > -pipe -DCONFIG_ARM -D__ARM__ -marm -mabi=aapcs-linux > -mno-thumb-interwork -march=armv4 -MQ > /var/linus/u-boot/build-integrator/lib/vsprintf.o vsprintf.c >>/var/linus/u-boot/build-integrator/lib/.depend.vsprintf
Hi Linus. Is this the arm-linux-gnueabi-gcc from the Ubuntu binary package? If so then the libgcc is an ARMv7 Thumb-2 VFP binary which won't run on an ARMv4. The kernel gets around this by providing its own helper routines. Does u-boot do the same? The CodeSourcery toolchain is surviving as it targets ARMv5 by default and includes multilibs for earlier architectures? What instructions are at or near 0x07fdecd4 and 07fdeb34? -- Michaels _______________________________________________ linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain