On Mon, Oct 12, 2009 at 10:10 AM, <myub...@fastmail.fm> wrote: > Thanks for 1) and 2). > For 3), both results show GP register is modified. > the result of ${CROSS_COMPILE}objdump --source cpu.o is: > > void flush_cache(ulong start_addr, ulong size) > { > 7c: 3c1c0000 lui gp,0x0 > 80: 279c0000 addiu gp,gp,0 > 84: 0399e021 addu gp,gp,t9
It looks like the code expects t9 to have the gp value. I need to get my setup up to -current and do a build test with eldk to help much more (we don't do much mips anymore here, so my setup is a bit behind the times). > unsigned long lsize = CONFIG_SYS_CACHELINE_SIZE; > unsigned long addr = start_addr & ~(lsize - 1); > 88: 2403fff0 li v1,-16 > 8c: 00831024 and v0,a0,v1 > unsigned long aend = (start_addr + size - 1) & ~(lsize - 1); > 90: 2484ffff addiu a0,a0,-1 > 94: 00852021 addu a0,a0,a1 > 98: 00831824 and v1,a0,v1 > > while (1) { > cache_op(Hit_Writeback_Inv_D, addr); > 9c: bc550000 cache 0x15,0(v0) > cache_op(Hit_Invalidate_I, addr); > a0: bc500000 cache 0x10,0(v0) > if (addr == aend) > a4: 1443fffd bne v0,v1,9c <flush_cache+0x20> > a8: 24420010 addiu v0,v0,16 > break; > addr += lsize; > } > #if defined(CONFIG_TNETVxxxx) > invalidate_dcache(); > ac: 8f990000 lw t9,0(gp) > b0: 03200008 jr t9 > b4: 00000000 nop > > 000000b8 <do_reset>: > void __attribute__((weak)) _machine_restart(void) > { > } > > For 4), I generated the toolchain by myself using buildroot 2009.08. > Using built-in specs. And the result of gcc -v is: > Target: mips-linux-uclibc > Configured with: > /home/root123/sources/buildroot-2009.08-k/toolchain_build_mips/gcc-4.4.1/configure > --prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu > --target=mips-linux-uclibc --enable-languages=c > --with-sysroot=/home/root123/sources/buildroot-2009.08-k/build_mips/staging_dir > --with-build-time-tools=/home/root123/sources/buildroot-2009.08-k/build_mips/staging_dir/usr/mips-linux-uclibc/bin > --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld > --disable-libssp --disable-tls --enable-shared > --with-gmp=/home/root123/sources/buildroot-2009.08-k/toolchain_build_mips/gmp > --with-mpfr=/home/root123/sources/buildroot-2009.08-k/toolchain_build_mips/mpfr > --disable-nls --enable-threads --disable-multilib > --disable-decimal-float --with-float=soft --with-abi=32 > --with-tune=mips32 : (reconfigured) > /home/root123/sources/buildroot-2009.08-k/toolchain_build_mips/gcc-4.4.1/configure > --prefix=/usr --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu > --target=mips-linux-uclibc --enable-languages=c > --with-sysroot=/home/root123/sources/buildroot-2009.08-k/build_mips/staging_dir > --with-build-time-tools=/home/root123/sources/buildroot-2009.08-k/build_mips/staging_dir/usr/mips-linux-uclibc/bin > --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld > --disable-libssp --disable-tls --enable-shared > --with-gmp=/home/root123/sources/buildroot-2009.08-k/toolchain_build_mips/gmp > --with-mpfr=/home/root123/sources/buildroot-2009.08-k/toolchain_build_mips/mpfr > --disable-nls --enable-threads --disable-multilib > --disable-decimal-float --with-float=soft --with-abi=32 > --with-tune=mips32 > Thread model: posix > gcc version 4.4.1 (GCC) > > For most of the flags above, they are automatically added by buildroot. > Please let me know if there is anything wrong with the setting. > nothing stands out, but I'm not a gcc expert. > 4) I am not familiar with ELDK. It seems to be able to create toolchain > quickly. I will give it a try. How is the toolchain created by ELDK > different from buildroot or openembedded? It comes with a prebuilt toolchain. I believe the compiler version is a bit older than what you are running (looks like 4.2.2 from the web page). _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot