Hi all,

 

I’m working on booting Linaro LSK 3.10.40 kernel in be8 mode on our Cortex-A9 system.

There is an issue related to VFP instruction. It complain “vstmia” is an undefined instruction.

The VFP is supported in CPU and CONFIG_VFP and CONFIG_VFPv3 are enabled in kernel config.

Are there any patch need to be done for VFP in BE mode?

 

The booting log show as following:

call sys_access(/init)

Freeing unused kernel memory: 2832K (c0600000 - c08c4000)

kernel_init: try to execute '/init' (ramdisk_execute_command)

en->run_init_process(/init)

init (1): undefined instruction: pc=0000aab8

Code: f00f dff8 2a20 1268 (acec) 108b

Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

 

The disassembly code show the undefined instruction is “vstmia”. 

armeb-linux-gnueabihf-objdump -D busybox_unstripped > busy.asm

0000aa90 <__sigsetjmp>:

...

    aab6:       6812            ldr     r2, [r2, #0]

    aab8:       ecac 8b10       vstmia  ip!, {d8-d15}

    aabc:       f412 7f00       tst.w   r2, #512        ; 0x200

 

The rootfs is busybox 1.22.1 compiled by Linaro BE hard floating toolchain.

https://releases.linaro.org/14.04/components/toolchain/binaries/gcc-linaro-armeb-linux-gnueabihf-4.8-2014.04_linux.tar.xz

 

Thanks,

 

Joel