[meta-freescale] Invalid instruction with qemu-ppc64 for ppc64e6500

Yi Zhao yi.zhao at windriver.com
Tue Nov 1 02:39:30 PDT 2016


Hi Zhenhua,

I use morty branch for both poky and meta-fsl-ppc, machine is t4240rdb-64b.

Add the following line in conf/local.conf:

QEMU_TARGETS_append = " ppc64"

Then run bitbake core-image-sato

You could check the log in 
tmp/work/t4240rdb_64b-poky-linux/core-image-sato/1.0-r0/temp/log.do_rootfs


Thanks,

Yi


在 2016年10月31日 21:58, Zhenhua Luo 写道:
> Hi Yi,
>
> Due to ppce6500 is not supported by qemu-native, the patch is a workaround for the limitation.
>
> May I know which version of poky and meta-fsl-ppc can reproduce the problem?
>
>
> Best Regards,
>
> Zhenhua
>
>> -----Original Message-----
>> From: Yi Zhao [mailto:yi.zhao at windriver.com]
>> Sent: Monday, October 31, 2016 5:13 PM
>> To: meta-freescale at yoctoproject.org
>> Cc: Zhenhua Luo <zhenhua.luo at nxp.com>; Kevin Hao
>> <kexin.hao at windriver.com>
>> Subject: Invalid instruction with qemu-ppc64 for ppc64e6500
>>
>> Hi folks,
>>
>> I tried to build an image with nxp4xxx (DEFAULTTUNE="ppc64e6500"), when
>> do_rootfs tried to run intercept scripts, I got an invalid instruction
>> error:
>>
>> NOTE: Running intercept scripts:
>> NOTE: > Executing update_gio_module_cache intercept ...
>> Invalid instruction
>> NIP 00000000008046ac LR 0000000000000000 CTR 0000000000000000 XER
>> 0000000000000000 CPU#0
>> MSR 8000000000006000 HID0 0000000000000000 HF 0000000000006000 iidx 0
>> didx 0 TB 00510390 2192111342502858 [snip]
>> qemu: uncaught target signal 4 (Illegal instruction) - core dumped
>> /buildarea/build-nxp/tmp/sysroots/nxp-
>> t4xxx/usr/bin/crossscripts/qemuwrapper:
>> line 2: 25969 Illegal instruction (core dumped) qemu-ppc64 -r 3.2.0 -cpu e500mc
>> "$@"
>> WARNING: The postinstall intercept hook 'update_gio_module_cache' failed
>> (exit code: 132)! See log for details!
>> WARNING: The postinstalls for the following packages will be postponed for
>> first boot: libglib-2.0-0
>>
>> The issue is most likely introduced by the commit:
>>
>> commit 27e202f2d9114a64b67c83eb7eafeb12de5ceea7
>> Author: Zhenhua Luo <zhenhua.luo at nxp.com>
>> Date:   Thu Apr 14 17:26:44 2016 +0800
>>
>>       meta/classes/qemu.bbclass: set -cpu of ppce5500/ppce6500 to e500mc
>>
>>       The e5500 and e6500 cpu types are not supported by native qemu, set the
>> value
>>       of -cpu to e500mc. Without this change, build will fail for packages which use
>>       qemuwrapper in compile phase due to the following error.
>>       | Unable to find CPU definition
>>
>>       e.g. gobject-introspection
>>
>>       (From OE-Core rev: e06c5c5447350049ebd1a6245fc2dd2608b265e5)
>>
>>       Signed-off-by: Zhenhua Luo <zhenhua.luo at nxp.com>
>>       Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
>>
>> diff --git a/meta/classes/qemu.bbclass b/meta/classes/qemu.bbclass index
>> f3d3be8..75739db 100644
>> --- a/meta/classes/qemu.bbclass
>> +++ b/meta/classes/qemu.bbclass
>> @@ -52,8 +52,8 @@ QEMU_OPTIONS[vardeps] +=
>> "QEMU_EXTRAOPTIONS_${PACKAGE_ARCH}"
>>
>>    QEMU_EXTRAOPTIONS_ppce500v2 = " -cpu e500v2"
>>    QEMU_EXTRAOPTIONS_ppce500mc = " -cpu e500mc"
>> -QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e5500"
>> -QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e5500"
>> -QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e6500"
>> -QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e6500"
>> +QEMU_EXTRAOPTIONS_ppce5500 = " -cpu e500mc"
>> +QEMU_EXTRAOPTIONS_ppc64e5500 = " -cpu e500mc"
>> +QEMU_EXTRAOPTIONS_ppce6500 = " -cpu e500mc"
>> +QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc"
>>    QEMU_EXTRAOPTIONS_ppc7400 = " -cpu 7400"
>>
>>
>> For my limited knowledge, the ppc64e6500 is a 64bit cpu but e500mc is 32bit, so
>> when qemuwrapper running command qemu-ppc64 -r 3.2.0 -cpu e500mc "$@"
>> would cause this failure.
>> Since the qemu native still doesn't support e6500 cpu, I just remove the
>> line: QEMU_EXTRAOPTIONS_ppc64e6500 = " -cpu e500mc", and the
>> qemuwrapper could work.
>>
>> Is it a appropriate method to solve this issue ?  I'm not familiar with ppc, so don't
>> know if this change could break something else?
>>
>> Thanks,
>> Yi
>>



More information about the meta-freescale mailing list