2010-03-26, 19:19
Hey McGeagh,
thinking of re-designing my approach using your scratchbox method and using my custom kernel and file system built with Freescale's Linux Target Image Builder (LTIB). Right now I have a boot time of 4 seconds which is much faster then ~30-40 seconds with Ubuntu.
I am still getting my environment setup per your instructions (currently hung up on /arm-scripts/install-pkgs.sh ) It can't seem to be able to download all of the packages yet
One thing that I did notice is that the compiler selected in the documentation (cs2007q1) does not support the ARMv7 architecture which is on the Cortex-A8. Therefor it does not support the NEON co-processor nor does it fully support VFPv3 which is on the Cortex-A8. some of the math operations will be executed by software as VFPv2 is not completely IEEE754 compliant in hardware. VFPv3 is fully IEEE754 compliant in hardware (but unfortunately not pipelined) but the compiler needs to be aware of it's existence.
NEON will provide another huge performance boost to XBMC with it's SIMD capabilities but again the compiler needs to be aware of it. GCC 4.3.3 or better needs to be used which means cs2008q3 or later and apparently scratchbox-toolchain-arm-linux-cs2009q3-67 exists which should do the job.
here are the CFLAGS that I usually use for the Cortex-A8, I have seen a 3-4x performance improvement using these over ARMv6 flags
CFLAGS="-O3 -march=armv7-a -mtune=cortex-a8 -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon -ftree-vectorize -fomit-frame-pointer -ffast-math"
I'm still working through the issues and I'm sure that I will need your help soon.
Thanks,
Jeff
thinking of re-designing my approach using your scratchbox method and using my custom kernel and file system built with Freescale's Linux Target Image Builder (LTIB). Right now I have a boot time of 4 seconds which is much faster then ~30-40 seconds with Ubuntu.
I am still getting my environment setup per your instructions (currently hung up on /arm-scripts/install-pkgs.sh ) It can't seem to be able to download all of the packages yet
One thing that I did notice is that the compiler selected in the documentation (cs2007q1) does not support the ARMv7 architecture which is on the Cortex-A8. Therefor it does not support the NEON co-processor nor does it fully support VFPv3 which is on the Cortex-A8. some of the math operations will be executed by software as VFPv2 is not completely IEEE754 compliant in hardware. VFPv3 is fully IEEE754 compliant in hardware (but unfortunately not pipelined) but the compiler needs to be aware of it's existence.
NEON will provide another huge performance boost to XBMC with it's SIMD capabilities but again the compiler needs to be aware of it. GCC 4.3.3 or better needs to be used which means cs2008q3 or later and apparently scratchbox-toolchain-arm-linux-cs2009q3-67 exists which should do the job.
here are the CFLAGS that I usually use for the Cortex-A8, I have seen a 3-4x performance improvement using these over ARMv6 flags
CFLAGS="-O3 -march=armv7-a -mtune=cortex-a8 -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon -ftree-vectorize -fomit-frame-pointer -ffast-math"
I'm still working through the issues and I'm sure that I will need your help soon.
Thanks,
Jeff