diff options
Diffstat (limited to 'poky/meta/conf/machine/include/powerpc')
17 files changed, 313 insertions, 30 deletions
diff --git a/poky/meta/conf/machine/include/powerpc/README b/poky/meta/conf/machine/include/powerpc/README index e87fb5082..e813d2181 100644 --- a/poky/meta/conf/machine/include/powerpc/README +++ b/poky/meta/conf/machine/include/powerpc/README @@ -12,6 +12,6 @@ May of the PowerPC package archictures are based on legacy Linux names. However, a general naming scheme should be similar to: ppc[64][<family>][-nf]. (Note: the default package architectures are "powerpc" and "powerpc64".) -TUNE_PKGARCH is defined as TUNE_PKGARCH_tune-${DEFAULTTUNE}. All -PowerPC tunings are required to define TUNE_PKGARCH_tune-<tune>. +TUNE_PKGARCH is defined as TUNE_PKGARCH:tune-${DEFAULTTUNE}. All +PowerPC tunings are required to define TUNE_PKGARCH:tune-<tune>. diff --git a/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc b/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc index ef18e9ac8..be687e2df 100644 --- a/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc +++ b/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc @@ -5,7 +5,7 @@ DEFAULTTUNE ?= "powerpc" -TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" +TUNE_PKGARCH = "${TUNE_PKGARCH:tune-${DEFAULTTUNE}}" ABIEXTENSION ?= "" # Endian @@ -30,22 +30,22 @@ TUNEVALID[altivec] = "Altivec" # Basic tune definitions AVAILTUNES += "powerpc powerpc-nf powerpcle powerpcle-nf" -TUNE_FEATURES_tune-powerpc-nf = "m32 fpu-soft bigendian" -BASE_LIB_tune-powerpc-nf = "lib" -TUNE_PKGARCH_tune-powerpc-nf = "powerpc-nf" -PACKAGE_EXTRA_ARCHS_tune-powerpc-nf = "powerpc-nf" - -TUNE_FEATURES_tune-powerpc = "m32 fpu-hard bigendian" -BASE_LIB_tune-powerpc = "lib" -TUNE_PKGARCH_tune-powerpc = "powerpc" -PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc" - -TUNE_FEATURES_tune-powerpcle-nf = "m32 fpu-soft" -BASE_LIB_tune-powerpcle-nf = "lib" -TUNE_PKGARCH_tune-powerpcle-nf = "powerpcle-nf" -PACKAGE_EXTRA_ARCHS_tune-powerpcle-nf = "powerpcle-nf" - -TUNE_FEATURES_tune-powerpcle = "m32 fpu-hard" -BASE_LIB_tune-powerpcle = "lib" -TUNE_PKGARCH_tune-powerpcle = "powerpcle" -PACKAGE_EXTRA_ARCHS_tune-powerpcle = "powerpcle" +TUNE_FEATURES:tune-powerpc-nf = "m32 fpu-soft bigendian" +BASE_LIB:tune-powerpc-nf = "lib" +TUNE_PKGARCH:tune-powerpc-nf = "powerpc-nf" +PACKAGE_EXTRA_ARCHS:tune-powerpc-nf = "powerpc-nf" + +TUNE_FEATURES:tune-powerpc = "m32 fpu-hard bigendian" +BASE_LIB:tune-powerpc = "lib" +TUNE_PKGARCH:tune-powerpc = "powerpc" +PACKAGE_EXTRA_ARCHS:tune-powerpc = "powerpc" + +TUNE_FEATURES:tune-powerpcle-nf = "m32 fpu-soft" +BASE_LIB:tune-powerpcle-nf = "lib" +TUNE_PKGARCH:tune-powerpcle-nf = "powerpcle-nf" +PACKAGE_EXTRA_ARCHS:tune-powerpcle-nf = "powerpcle-nf" + +TUNE_FEATURES:tune-powerpcle = "m32 fpu-hard" +BASE_LIB:tune-powerpcle = "lib" +TUNE_PKGARCH:tune-powerpcle = "powerpcle" +PACKAGE_EXTRA_ARCHS:tune-powerpcle = "powerpcle" diff --git a/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc index 467abc5fa..253315186 100644 --- a/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc +++ b/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc @@ -12,12 +12,12 @@ TUNE_CCARGS .= "${@['', ' -mabi=elfv2']['libc-musl' in d.getVar('OVERRIDES').spl AVAILTUNES += "powerpc64 powerpc64le" -TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard bigendian" -BASE_LIB_tune-powerpc64 = "lib64" -TUNE_PKGARCH_tune-powerpc64 = "powerpc64" -PACKAGE_EXTRA_ARCHS_tune-powerpc64 = "powerpc64" +TUNE_FEATURES:tune-powerpc64 = "m64 fpu-hard bigendian" +BASE_LIB:tune-powerpc64 = "lib64" +TUNE_PKGARCH:tune-powerpc64 = "powerpc64" +PACKAGE_EXTRA_ARCHS:tune-powerpc64 = "powerpc64" -TUNE_FEATURES_tune-powerpc64le = "m64 fpu-hard" -BASE_LIB_tune-powerpc64le = "lib64" -TUNE_PKGARCH_tune-powerpc64le = "powerpc64le" -PACKAGE_EXTRA_ARCHS_tune-powerpc64le = "powerpc64le" +TUNE_FEATURES:tune-powerpc64le = "m64 fpu-hard" +BASE_LIB:tune-powerpc64le = "lib64" +TUNE_PKGARCH:tune-powerpc64le = "powerpc64le" +PACKAGE_EXTRA_ARCHS:tune-powerpc64le = "powerpc64le" diff --git a/poky/meta/conf/machine/include/powerpc/tune-power5.inc b/poky/meta/conf/machine/include/powerpc/tune-power5.inc new file mode 100644 index 000000000..e70e40121 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-power5.inc @@ -0,0 +1,24 @@ +DEFAULTTUNE ?= "ppcp5" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power5] = "Enable IBM Power5 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power5', ' -mcpu=power5', '', d)}" + +AVAILTUNES += "ppcp5 ppc64p5" +TUNE_FEATURES:tune-ppcp5 = "m32 fpu-hard power5 altivec bigendian" +BASE_LIB:tune-ppcp5 = "lib" +TUNE_PKGARCH:tune-ppcp5 = "ppcp5" +PACKAGE_EXTRA_ARCHS:tune-ppcp5 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppcp5" + +TUNE_FEATURES:tune-ppc64p5 = "m64 fpu-hard power5 altivec bigendian" +BASE_LIB:tune-ppc64p5 = "lib64" +TUNE_PKGARCH:tune-ppc64p5 = "ppc64p5" +PACKAGE_EXTRA_ARCHS:tune-ppc64p5 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64p5" + +# glibc configure options to get power5 specific library +GLIBC_EXTRA_OECONF:powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power5', '--with-cpu=power5', '', d)}" +GLIBC_EXTRA_OECONF:powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power5', '--with-cpu=power5', '', d)}" + +# QEMU usermode fails with invalid instruction error +MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'power5', ' qemu-usermode', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-power6.inc b/poky/meta/conf/machine/include/powerpc/tune-power6.inc new file mode 100644 index 000000000..eaf89515c --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-power6.inc @@ -0,0 +1,24 @@ +DEFAULTTUNE ?= "ppcp6" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power6] = "Enable IBM Power6 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power6', ' -mcpu=power6', '', d)}" + +AVAILTUNES += "ppcp6 ppc64p6" +TUNE_FEATURES:tune-ppcp6 = "m32 fpu-hard power6 altivec bigendian" +BASE_LIB:tune-ppcp6 = "lib" +TUNE_PKGARCH:tune-ppcp6 = "ppcp6" +PACKAGE_EXTRA_ARCHS:tune-ppcp6 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppcp6" + +TUNE_FEATURES:tune-ppc64p6 = "m64 fpu-hard power6 altivec bigendian" +BASE_LIB:tune-ppc64p6 = "lib64" +TUNE_PKGARCH:tune-ppc64p6 = "ppc64p6" +PACKAGE_EXTRA_ARCHS:tune-ppc64p6 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64p6" + +# glibc configure options to get power6 specific library +GLIBC_EXTRA_OECONF:powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power6', '--with-cpu=power6', '', d)}" +GLIBC_EXTRA_OECONF:powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power6', '--with-cpu=power6', '', d)}" + +# QEMU usermode fails with invalid instruction error +MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'power6', ' qemu-usermode', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-power7.inc b/poky/meta/conf/machine/include/powerpc/tune-power7.inc new file mode 100644 index 000000000..4531ddd85 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-power7.inc @@ -0,0 +1,24 @@ +DEFAULTTUNE ?= "ppcp7" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power7] = "Enable IBM Power7 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power7', ' -mcpu=power7', '', d)}" + +AVAILTUNES += "ppcp7 ppc64p7" +TUNE_FEATURES:tune-ppcp7 = "m32 fpu-hard power7 altivec bigendian" +BASE_LIB:tune-ppcp7 = "lib" +TUNE_PKGARCH:tune-ppcp7 = "ppcp7" +PACKAGE_EXTRA_ARCHS:tune-ppcp7 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppcp7" + +TUNE_FEATURES:tune-ppc64p7 = "m64 fpu-hard power7 altivec bigendian" +BASE_LIB:tune-ppc64p7 = "lib64" +TUNE_PKGARCH:tune-ppc64p7 = "ppc64p7" +PACKAGE_EXTRA_ARCHS:tune-ppc64p7 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64p7" + +# glibc configure options to get power7 specific library +GLIBC_EXTRA_OECONF:powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'power7', '--with-cpu=power7', '', d)}" +GLIBC_EXTRA_OECONF:powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'power7', '--with-cpu=power7', '', d)}" + +# QEMU usermode fails with invalid instruction error +MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'power7', ' qemu-usermode', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-power9.inc b/poky/meta/conf/machine/include/powerpc/tune-power9.inc new file mode 100644 index 000000000..6744731f8 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-power9.inc @@ -0,0 +1,31 @@ +DEFAULTTUNE ?= "ppc64p9le" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[power9] = "Enable IBM Power9 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'power9', ' -mcpu=power9', '', d)}" + +AVAILTUNES += "ppcp9 ppc64p9 ppcp9le ppc64p9le" + +TUNE_FEATURES:tune-ppcp9 = "m32 fpu-hard power9 altivec bigendian" +BASE_LIB:tune-ppcp9 = "lib" +TUNE_PKGARCH:tune-ppcp9 = "ppcp9" +PACKAGE_EXTRA_ARCHS:tune-ppcp9 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppcp9" + +TUNE_FEATURES:tune-ppc64p9 = "m64 fpu-hard power9 altivec bigendian" +BASE_LIB:tune-ppc64p9 = "lib64" +TUNE_PKGARCH:tune-ppc64p9 = "ppc64p9" +PACKAGE_EXTRA_ARCHS:tune-ppc64p9 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64p9" + +TUNE_FEATURES:tune-ppcp9le = "m32 fpu-hard power9 altivec" +BASE_LIB:tune-ppcp9le = "lib" +TUNE_PKGARCH:tune-ppcp9le = "ppcp9le" +PACKAGE_EXTRA_ARCHS:tune-ppcp9le = "${PACKAGE_EXTRA_ARCHS:tune-powerpcle} ppcp9le" + +TUNE_FEATURES:tune-ppc64p9le = "m64 fpu-hard power9 altivec" +BASE_LIB:tune-ppc64p9le = "lib64" +TUNE_PKGARCH:tune-ppc64p9le = "ppc64p9le" +PACKAGE_EXTRA_ARCHS:tune-ppc64p9le = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64le} ppc64p9le" + +# glibc configure options to get power9 specific library +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'power9', '--with-cpu=power9', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppc476.inc b/poky/meta/conf/machine/include/powerpc/tune-ppc476.inc new file mode 100644 index 000000000..54152cb94 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppc476.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "ppc476" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppc476] = "Enable ppc476 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc476', ' -mcpu=476', '', d)}" + +AVAILTUNES += "ppc476" +TUNE_FEATURES:tune-ppc476 = "m32 fpu-hard ppc476 bigendian" +TUNE_PKGARCH:tune-ppc476 = "ppc476" +PACKAGE_EXTRA_ARCHS:tune-ppc476 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppc476" + +# glibc configure options to get 476 specific library (for sqrt) +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppc476', '-with-cpu=476', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppc603e.inc b/poky/meta/conf/machine/include/powerpc/tune-ppc603e.inc new file mode 100644 index 000000000..8beec00f2 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppc603e.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "ppc603e" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppc603e] = "Enable ppc603e specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc603e', ' -mcpu=603e', '', d)}" + +AVAILTUNES += "ppc603e" +TUNE_FEATURES:tune-ppc603e = "m32 fpu-hard ppc603e bigendian" +TUNE_PKGARCH:tune-ppc603e = "ppc603e" +PACKAGE_EXTRA_ARCHS:tune-ppc603e = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppc603e" + +# glibc configure options to get 603e specific library (for sqrt) +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppc603e', '-with-cpu=603e', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppc7400.inc b/poky/meta/conf/machine/include/powerpc/tune-ppc7400.inc new file mode 100644 index 000000000..1e2c9fc2c --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppc7400.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "ppc7400" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppc7400] = "Enable ppc7400 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppc7400', ' -mcpu=7400 -mno-spe', '', d)}" + +AVAILTUNES += "ppc7400" +TUNE_FEATURES:tune-ppc7400 = "m32 fpu-hard ppc7400 altivec bigendian" +TUNE_PKGARCH:tune-ppc7400 = "ppc7400" +PACKAGE_EXTRA_ARCHS:tune-ppc7400 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppc7400" + +# glibc configure options to get 7400 specific library (for sqrt) +#GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppc7400', '--with-cpu=power4', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce300c2.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce300c2.inc new file mode 100644 index 000000000..90171c76d --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce300c2.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "ppce300c2" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppce300c2] = "Enable ppce300c2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c2', ' -mcpu=e300c2', '', d)}" + +AVAILTUNES += "ppce300c2" +TUNE_FEATURES:tune-ppce300c2 = "m32 fpu-soft ppce300c2 bigendian" +TUNE_PKGARCH:tune-ppce300c2 = "ppce300c2" +PACKAGE_EXTRA_ARCHS:tune-ppce300c2 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc-nf} ppce300c2" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce300c3.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce300c3.inc new file mode 100644 index 000000000..b74b6ad97 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce300c3.inc @@ -0,0 +1,23 @@ +DEFAULTTUNE ?= "ppce300c3" + +require conf/machine/include/powerpc/arch-powerpc.inc + +AVAILTUNES += "ppce300c3 ppce300c3-nf" + +# hard-float +TUNEVALID[ppce300c3] = "Enable ppce300c3 specific processor optimizations" +TUNE_FEATURES:tune-ppce300c3 = "${TUNE_FEATURES:tune-powerpc} ppce300c3" +TUNE_PKGARCH:tune-ppce300c3 = "ppce300c3" +PACKAGE_EXTRA_ARCHS:tune-ppce300c3 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppce300c3" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c3', ' -mcpu=e300c3', '', d)}" + +# glibc config options to make use of e300c3 (603e) specific sqrt/sqrtf routines +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c3', '--with-cpu=e300c3', '', d)}" + +# soft-float +TUNEVALID[ppce300c3-nf] = "Enable ppce300c3 specific processor optimizations (no fpu)" +TUNE_FEATURES:tune-ppce300c3-nf = "${TUNE_FEATURES:tune-powerpc-nf} ppce300c3-nf" +TUNE_PKGARCH:tune-ppce300c3-nf = "ppce300c3-nf" +PACKAGE_EXTRA_ARCHS:tune-ppce300c3-nf = "${PACKAGE_EXTRA_ARCHS:tune-powerpc-nf} ppce300c3-nf" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce300c3-nf', ' -mcpu=e300c3', '', d)}" + diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce500.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce500.inc new file mode 100644 index 000000000..aceab321b --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce500.inc @@ -0,0 +1,20 @@ +DEFAULTTUNE ?= "ppce500" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppce500] = "Enable ppce500 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce500', ' -mcpu=8540', '', d)}" + +TUNEVALID[spe] = "Enable SPE ABI extensions" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', [ 'ppce500', 'spe' ], ' -mabi=spe -mspe -mfloat-gprs=single', '', d)}" +TARGET_FPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'ppce500' , 'spe' ], 'ppc-efs', '', d)}" + +# spe is defined potentially in two places, so we want to be sure it will +# only write spe once to the ABIEXTENSIONS field. +SPEABIEXTENSION = "${@bb.utils.filter('TUNE_FEATURES', 'spe', d)}" +ABIEXTENSION .= "${SPEABIEXTENSION}" + +AVAILTUNES += "ppce500" +TUNE_FEATURES:tune-ppce500 = "m32 spe ppce500 bigendian" +TUNE_PKGARCH:tune-ppce500 = "ppce500" +PACKAGE_EXTRA_ARCHS:tune-ppce500 = "ppce500" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce500mc.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce500mc.inc new file mode 100644 index 000000000..e3524a10c --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce500mc.inc @@ -0,0 +1,17 @@ +DEFAULTTUNE ?= "ppce500mc" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppce500mc] = "Enable ppce500mc specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce500mc', ' -mcpu=e500mc', '', d)}" + +AVAILTUNES += "ppce500mc" +TUNE_FEATURES:tune-ppce500mc = "m32 fpu-hard ppce500mc bigendian" +TUNE_PKGARCH:tune-ppce500mc = "ppce500mc" +PACKAGE_EXTRA_ARCHS:tune-ppce500mc = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppce500mc" + +# glibc configure options to get e500mc specific library (for sqrt) +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'ppce500mc', '-with-cpu=e500mc', '', d)}" + +# pass -mcpu=e500mc for ppce500mc kernel cross compile +TARGET_CC_KERNEL_ARCH = "-mcpu=e500mc" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce500v2.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce500v2.inc new file mode 100644 index 000000000..461164d81 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce500v2.inc @@ -0,0 +1,20 @@ +DEFAULTTUNE ?= "ppce500v2" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[ppce500v2] = "Enable ppce500v2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ppce500v2', ' -mcpu=8548', '', d)}" + +TUNEVALID[spe] = "Enable SPE ABI extensions" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', [ 'ppce500v2', 'spe' ], ' -mabi=spe -mspe -mfloat-gprs=double', '', d)}" +TARGET_FPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'ppce500v2' , 'spe' ], 'ppc-efd', '', d)}" + +# spe is defined potentially in two places, so we want to be sure it will +# only write spe once to the ABIEXTENSIONS field. +SPEABIEXTENSION = "${@bb.utils.filter('TUNE_FEATURES', 'spe', d)}" +ABIEXTENSION .= "${SPEABIEXTENSION}" + +AVAILTUNES += "ppce500v2" +TUNE_FEATURES:tune-ppce500v2 = "m32 ppce500v2 bigendian" +TUNE_PKGARCH:tune-ppce500v2 = "ppce500v2" +PACKAGE_EXTRA_ARCHS:tune-ppce500v2 = "ppce500v2" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce5500.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce5500.inc new file mode 100644 index 000000000..2cf7b1737 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce5500.inc @@ -0,0 +1,23 @@ +DEFAULTTUNE ?= "ppce5500" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[e5500] = "Enable Freescale e5500 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'e5500', ' -mcpu=e5500', '', d)}" + +AVAILTUNES += "ppce5500 ppc64e5500" +TUNE_FEATURES:tune-ppce5500 = "m32 fpu-hard e5500 bigendian" +BASE_LIB:tune-ppce5500 = "lib" +TUNE_PKGARCH:tune-ppce5500 = "ppce5500" +PACKAGE_EXTRA_ARCHS:tune-ppce5500 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppce5500" + +TUNE_FEATURES:tune-ppc64e5500 = "m64 fpu-hard e5500 bigendian" +BASE_LIB:tune-ppc64e5500 = "lib64" +TUNE_PKGARCH:tune-ppc64e5500 = "ppc64e5500" +PACKAGE_EXTRA_ARCHS:tune-ppc64e5500 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64e5500" + +# glibc configure options to get e5500 specific library (for sqrt) +GLIBC_EXTRA_OECONF += "${@bb.utils.contains('TUNE_FEATURES', 'e5500', '--with-cpu=e5500', '', d)}" + +# QEMU usermode fails with invalid instruction error (YOCTO: #10304) +MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'e5500', ' qemu-usermode', '', d)}" diff --git a/poky/meta/conf/machine/include/powerpc/tune-ppce6500.inc b/poky/meta/conf/machine/include/powerpc/tune-ppce6500.inc new file mode 100644 index 000000000..e78de350a --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/tune-ppce6500.inc @@ -0,0 +1,24 @@ +DEFAULTTUNE ?= "ppce6500" + +require conf/machine/include/powerpc/arch-powerpc64.inc + +TUNEVALID[e6500] = "Enable Freescale e6500 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'e6500', ' -mcpu=e6500', '', d)}" + +AVAILTUNES += "ppce6500 ppc64e6500" +TUNE_FEATURES:tune-ppce6500 = "m32 fpu-hard e6500 altivec bigendian" +BASE_LIB:tune-ppce6500 = "lib" +TUNE_PKGARCH:tune-ppce6500 = "ppce6500" +PACKAGE_EXTRA_ARCHS:tune-ppce6500 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc} ppce6500" + +TUNE_FEATURES:tune-ppc64e6500 = "m64 fpu-hard e6500 altivec bigendian" +BASE_LIB:tune-ppc64e6500 = "lib64" +TUNE_PKGARCH:tune-ppc64e6500 = "ppc64e6500" +PACKAGE_EXTRA_ARCHS:tune-ppc64e6500 = "${PACKAGE_EXTRA_ARCHS:tune-powerpc64} ppc64e6500" + +# glibc configure options to get e6500 specific library +GLIBC_EXTRA_OECONF:powerpc64 += "${@bb.utils.contains('TUNE_FEATURES', 'e6500', '--with-cpu=e6500', '', d)}" +GLIBC_EXTRA_OECONF:powerpc += "${@bb.utils.contains('TUNE_FEATURES', 'e6500', '--with-cpu=e6500', '', d)}" + +# QEMU usermode fails with invalid instruction error (YOCTO: #10304) +MACHINE_FEATURES_BACKFILL_CONSIDERED:append = "${@bb.utils.contains('TUNE_FEATURES', 'e6500', ' qemu-usermode', '', d)}" |