Files
poky/meta/conf/machine/include/mips/tune-mips-24k.inc
André Draszik 1ebec491aa tune-mips-24k: add QEMU_EXTRAOPTIONS for DSP and MIPS16e cores
The core emulated by default by qemu-mips(el) just crashes with
illegal instruction when encountering DSP and/or MIPS16e
instructions - we have to specify a CPU that supports the extra
instructions.

This is an issue when generating a rootfs and e.g. running some
of the package postinstall scriptlets.

The patch to qemu to add 24KEc as a CPU has been accepted
upstream, so let's use that CPU here as well as needed.

(From OE-Core rev: 8af17075f56241dd8f3ea86c609adbd73f248218)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-01 11:47:11 +01:00

52 lines
2.6 KiB
HTML

DEFAULTTUNE ?= "mips32r2-24kc"
MIPSPKGSFX_MIPS16E ??= ""
require conf/machine/include/tune-mips32r2.inc
require conf/machine/include/mips/feature-mips-mips16e.inc
TUNEVALID[24kc] = "Enable MIPS 24Kc processor optimizations"
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kc", " -mtune=24kc", "", d)}"
TUNEVALID[24kec] = "Enable MIPS 24KEc processor optimizations, including DSP"
TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "24kec", " -mtune=24kec -mdsp", "", d)}"
AVAILTUNES += "mips32r2-24kc mips32r2-24kec mips32r2-24kec-m16"
AVAILTUNES += "mips32r2el-24kc mips32r2el-24kec mips32r2el-24kec-m16"
# big endian: kc, kc+dsp=kec, kc+dsp+mips16e=kec-m16
TUNE_FEATURES_tune-mips32r2-24kc = "${TUNE_FEATURES_tune-mips32r2-nf} 24kc"
TUNE_FEATURES_tune-mips32r2-24kec = "${TUNE_FEATURES_tune-mips32r2-nf} 24kec"
TUNE_FEATURES_tune-mips32r2-24kec-m16 = "${TUNE_FEATURES_tune-mips32r2-24kec} mips16e"
MIPSPKGSFX_VARIANT_tune-mips32r2-24kc = "mips32r2-24kc"
PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kc = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2-nf} mips32r2-24kc-nf"
QEMU_EXTRAOPTIONS_mips32r2-24kc-nf = " -cpu 24Kc"
MIPSPKGSFX_VARIANT_tune-mips32r2-24kec = "mips32r2-24kec"
PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kec = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kc} mips32r2-24kec-nf"
QEMU_EXTRAOPTIONS_mips32r2-24kec-nf = " -cpu 24KEc"
MIPSPKGSFX_VARIANT_tune-mips32r2-24kec-m16 = "mips32r2-24kec${MIPSPKGSFX_MIPS16E}"
PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kec-m16 = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2-24kec} mips32r2-24kec-m16-nf"
QEMU_EXTRAOPTIONS_mips32r2-24kec-m16-nf = " -cpu 24KEc"
# little endian: kc, kc+dsp=kec, kc+dsp+mips16e=kec-m16
TUNE_FEATURES_tune-mips32r2el-24kc = "${TUNE_FEATURES_tune-mips32r2el-nf} 24kc"
TUNE_FEATURES_tune-mips32r2el-24kec = "${TUNE_FEATURES_tune-mips32r2el-nf} 24kec"
TUNE_FEATURES_tune-mips32r2el-24kec-m16 = "${TUNE_FEATURES_tune-mips32r2el-24kec} mips16e"
MIPSPKGSFX_VARIANT_tune-mips32r2el-24kc = "mips32r2el-24kc"
PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kc = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2el-nf} mips32r2el-24kc-nf"
QEMU_EXTRAOPTIONS_mips32r2el-24kc-nf = " -cpu 24Kc"
MIPSPKGSFX_VARIANT_tune-mips32r2el-24kec = "mips32r2el-24kec"
PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kec = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kc} mips32r2el-24kec-nf"
QEMU_EXTRAOPTIONS_mips32r2el-24kec-nf = " -cpu 24KEc"
MIPSPKGSFX_VARIANT_tune-mips32r2el-24kec-m16 = "mips32r2el-24kec${MIPSPKGSFX_MIPS16E}"
PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kec-m16 = "${PACKAGE_EXTRA_ARCHS_tune-mips32r2el-24kec} mips32r2el-24kec-m16-nf"
QEMU_EXTRAOPTIONS_mips32r2el-24kec-m16-nf = " -cpu 24KEc"