Trouble building spec. toolchain for ARM Hi3531
Mon Apr 21 15:16:00 GMT 2014
I have maybe strange problem, my knowledge is not enough to solve it, so I`m try to find help here.
I have a board with ARM SoC Hi3531. Brief datasheet - http://www.hkvstar.com/pdf/Hi3531.pdf
Specs of processor is:
ARM Cortex A9 dual cores
â Up to 930 MHz
â 32 KB I-cache and 32 KB D-cache
â 256 KB L2 cache
I have an SDK for it. SDK contains linux kernel 3.0.8 with some editions for support this device (march-godnet dir in /arch/arm).
Toolchain is arm-hisiv200-linux-gcc (Hisilicon_v200(gcc4.4-290+glibc-2.11+eabi+nptl)) 4.4.1
There are some precompiled modules for this SoC. Note said that:
Hi3531 support hardware floating-point. And all libs in default file system are compiled to hardware floating-point. So it's strongly recommen$
CFLAGS += -march=armv7-a -mcpu=cortex-a9 âmfloat-abi=softfp -mfpu=vfpv3-d16
CXXFlAGS +=-march=armv7-a -mcpu=cortex-a9 âmfloat-abi=softfp -mfpu=vfpv3-d16
So, as I understand my ARM is
armv7-a, cortex-a9, softfp, vfpv3-d16
On the board there is installed U-boot to SPI slash memory chip. I can connect to board via serial port and get access to U-boot.
So, I can use my kernel via usb or TFTP and edit kernel boot params.
If I compile kernel with toolchain from SDK, everything is good, kernel loads.
I try to build my own toolchain for this SoC, with last gcc, binutils and glibc via crosstool-NG 1.9.0
I have a number of different configs for crosstool-NG, it builds toolchain with no errors, but when I compile kernel (it builds ok), after booting it
via U-boot nothing happens, no errors just a string
Uncopressed kernel ok, booting... (something like this words)
After it usually there is some boot log, but it seems something goes wrong.
I think my mistake is somewhere in configuring Target options menu (ct-ng menuconfig)
Target Architecture - arm
Suffix to the arch-part - nothing
Build a multilib toolchain - NO
Use the MMU - Yes (SoC supports it)
Endianness: - Little endian
Bitness: - 32-bit
Emit assembly for CPU - cortex-a9
Tune for CPU - nothing
Use specific FPU vfpv3-d16
Floating point: softfp
Target CFLAGS - nothing
Target LDFLAGS - nothing
Default instruction set mode - arm
Use Thumb-interworking - no
Use EABI - YES
I use headers from my kernel tree.
gcc - 4.8.1
As I understand settings of binutls, glibc, and others don`t affects step of kernel building and booting, so I left them defaults.
So, I think I need to config Target options right to build and boot kernel.
I`m asking for advice or way to solve this.
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc