diff options
Diffstat (limited to 'poky/meta/conf/machine/include')
79 files changed, 2534 insertions, 0 deletions
diff --git a/poky/meta/conf/machine/include/README b/poky/meta/conf/machine/include/README new file mode 100644 index 0000000000..d66130acbc --- /dev/null +++ b/poky/meta/conf/machine/include/README @@ -0,0 +1,100 @@ +2012/03/30 - Mark Hatle <mark.hatle@windriver.com> + - Initial Revision + + +Introduction +============ +The individual CPU, and ABI tunings are contained in this directory. A +number of local and global variables are used to control the way the +tunings are setup and how they work together to specify an optimized +configuration. + +The following is brief summary of the generic components that are used +in these tunings. + +AVAILTUNES - This is a list of all of the tuning definitions currently +available in the system. Not all tunes in this list may be compatible +with the machine configuration, or each other in a multilib +configuration. Each tuning file can add to this list using "+=", but +should never replace the list using "=". + +DEFAULTTUNE - This specifies the tune to use for a particular build. +Each tune should specify a reasonable default, which can be overriden by +a machine or multilib configuration. The specified tune must be listed +in the AVAILTUNES. + +TUNEVALID[feature] - The <feature> is defined with a human readable +explanation for what it does. All architectural, cpu, abi, etc tuning +features must be defined using TUNEVALID. + +TUNECONFLICTS[feature] - A list of features which conflict with <feature>. +New sanity checks will try to reject combinations in which a single +tuning ends up with features which conflict with each other. + +TUNE_FEATURES - This is automatically defined as TUNE_FEATURES_tune-<tune>. +See TUNE_FEATURES_tune-<tune> for more information. + +TUNE_FEATURES_tune-<tune> - Specify the features used to describe a +specific tune. This is a list of features that a tune support, each +feature must be in the TUNEVALID list. Note: the tune and a given +feature name may be the same, but they have different purposes. Only +features may be used to change behavior, while tunes are used to +describe an overall set of features. + +ABIEXTENSION - An ABI extension may be specified by a specific feature +or other tuning setting, such as TARGET_FPU. Any ABI extensions either +need to be defined in the architectures base arch file, i.e. +ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune +files with a ".=". Spaces are not allowed in this variable. + +TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings. +These should be additive when defined using "+=". All items in this +list should be dynamic! i.e. +${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)} + +TUNE_ARCH - The GNU canonical arch for a specific architecture. i.e. +arm, armeb, mips, mips64, etc. This value is used by bitbake to setup +configure. TUNE_ARCH definitions are specific to a given architecture. +They may be a single static definition, or may be dynamically adjusted. +See each architecture's README for details for that CPU family. + +TUNE_PKGARCH - The package architecture used by the packaging systems to +define the architecture, abi and tuning of a particular package. +Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to +each architecture. See each architectures README for details for that +CPU family. + +PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package +architectures. By default this is equal to +PACKAGE_EXTRA_ARCHS_tune-<tune>. If an architecture deviates from the +default it will be listed in the architecture README. + +PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures +that are compatible with this specific tune. The package arch of this +tune must be in the list. + +TARGET_FPU - The FPU setting for a given tune, hard (generate floating +point instructions), soft (generate internal gcc calls), "other" +architecture specific floating point. This is synchronized with the +compiler and other toolchain items. This should be dynamically +configured in the same way that TUNE_CCARGS is. + +BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI. This is +used in a multilib configuration to place the libraries in the correct, +non-conflicting locations. + + +Best Practice +============= +The tune infrastructure is designed to be hierarchical. When writing a +new tune file for a "fast-forward" CPU architecture (one that supports +everything from a previous generation), it is recommended to require the +previous generation tune file and specify PACKAGE_EXTRA_ARCHS using the +previous generation's override and appending the new tune. Note that +only one previous tune file should be included to avoid mutiple includes +of the base arch which could lead to a broken configuration due to +multiple prepend and append assignments. + +For example, for x86, there is a common x86/arch-x86.inc which is +included in the base i586 tune file. The core2 tune builds +on that, and corei7 builds on core2. diff --git a/poky/meta/conf/machine/include/arm/README b/poky/meta/conf/machine/include/arm/README new file mode 100644 index 0000000000..a1beb75fdf --- /dev/null +++ b/poky/meta/conf/machine/include/arm/README @@ -0,0 +1,40 @@ +2012/03/30 - Mark Hatle <mark.hatle@windriver.com> + - Initial Revision + +The ARM architecture definitions are split among a number of files. +The primary definitions for the variables are handled by the core +arch-arm.inc file. + +TUNE_ARCH is set to either "arm" or "armeb" depending on the value +of the existence of the "bigendian" feature in a given tune. + +A small set of ARM specific variables have been defined to allow +TUNE_PKGARCH to be automatically defined. Optimized tunings must NOT +change the definiton of TUNE_PKGARCH. TUNE_PKGACH_tune-<tune> will be +ignored. The format of the package arch is enforced by the TUNE_PKGARCH +default. The format must be of the form: +<armversion>[t][e][hf][b][-vfp][-neon] + +TUNE_PKGARCH is defined as: +${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU} + +ARMPKGARCH - This is the core package arch component specified by each +tuning. This is the primary identifier of a tuning. Usual values are: +arm, armv4, armv5, armv6, armv7a, etc. + +ARMPKGSFX_THUMB - This is the thumb specific suffix. Curently it is +defined in feature-arm-thumb.inc. + +ARMPKGSFX_DSP - This is the DSP specific suffix. Currently this is set +to 'e' when on armv5 and the dsp feature is enabled. + +ARMPKGSFX_EABI - This is the eabi specific suffix. There are currently +two defined ABIs specificed, standard EABI and Hard Float (VFP) EABI. +When the callconvention-hard is enabled, "hf" is specified, otherwise it +is blank. + +ARMPKGSFX_ENDIAN - This is the endian specific suffix. It is defined in +the core arch-arm.inc file. + +ARMPKGSFX_FPU - This is the FPU specific suffix. The suffix indicates +specific FPU optimizations. 'vfp' and 'neon' are both defined. diff --git a/poky/meta/conf/machine/include/arm/arch-arm.inc b/poky/meta/conf/machine/include/arm/arch-arm.inc new file mode 100644 index 0000000000..99625d8417 --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-arm.inc @@ -0,0 +1,16 @@ + +TUNEVALID[bigendian] = "Enable big-endian mode." + +ARMPKGARCH = "${ARMPKGARCH_tune-${DEFAULTTUNE}}" +ARMPKGSFX_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'b', '', d)}" +ARMPKGSFX_FPU ??= "" +ARMPKGSFX_DSP ??= "" +ARMPKGSFX_EABI ??= "" +ARMPKGSFX_THUMB ??= "" + +TUNE_ARCH = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'armeb', 'arm', d)}" +TUNE_PKGARCH = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}" + +ABIEXTENSION = "eabi" + +TARGET_FPU = "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}" diff --git a/poky/meta/conf/machine/include/arm/arch-arm64.inc b/poky/meta/conf/machine/include/arm/arch-arm64.inc new file mode 100644 index 0000000000..5f90763f7f --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-arm64.inc @@ -0,0 +1,36 @@ +DEFAULTTUNE ?= "aarch64" + +require conf/machine/include/arm/arch-armv7ve.inc + +TUNEVALID[aarch64] = "Enable instructions for aarch64" + +MACHINEOVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', ':aarch64', '' ,d)}" + +# Little Endian base configs +AVAILTUNES += "aarch64 aarch64_be" +ARMPKGARCH_tune-aarch64 ?= "aarch64" +ARMPKGARCH_tune-aarch64_be ?= "aarch64_be" +TUNE_FEATURES_tune-aarch64 = "aarch64" +TUNE_FEATURES_tune-aarch64_be = "${TUNE_FEATURES_tune-aarch64} bigendian" +BASE_LIB_tune-aarch64 = "lib64" +BASE_LIB_tune-aarch64_be = "lib64" + +PACKAGE_EXTRA_ARCHS_tune-aarch64 = "aarch64" +PACKAGE_EXTRA_ARCHS_tune-aarch64_be = "aarch64_be" + +ARMPKGSFX_ENDIAN_64 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '_be', '', d)}" +TUNE_ARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}" +TUNE_PKGARCH_64 = "aarch64${ARMPKGSFX_ENDIAN_64}" +ABIEXTENSION_64 = "" +TARGET_FPU_64 = "" + +# Duplicated from arch-arm.inc +TUNE_ARCH_32 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'armeb', 'arm', d)}" +TUNE_PKGARCH_32 = "${ARMPKGARCH}${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}${ARMPKGSFX_EABI}${ARMPKGSFX_ENDIAN}${ARMPKGSFX_FPU}" +ABIEXTENSION_32 = "eabi" +TARGET_FPU_32 = "${@d.getVar('TUNE_CCARGS_MFLOAT') or 'soft'}" + +TUNE_ARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_ARCH_64}', '${TUNE_ARCH_32}' ,d)}" +TUNE_PKGARCH = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TUNE_PKGARCH_64}', '${TUNE_PKGARCH_32}' ,d)}" +ABIEXTENSION = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${ABIEXTENSION_64}', '${ABIEXTENSION_32}' ,d)}" +TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'aarch64', '${TARGET_FPU_64}', '${TARGET_FPU_32}' ,d)}" diff --git a/poky/meta/conf/machine/include/arm/arch-armv4.inc b/poky/meta/conf/machine/include/arm/arch-armv4.inc new file mode 100644 index 0000000000..813ed159dc --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv4.inc @@ -0,0 +1,34 @@ +DEFAULTTUNE ?= "armv4" + +TUNEVALID[arm] = "Enable ARM instruction set" +TUNEVALID[armv4] = "Enable instructions for ARMv4" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4', ' -march=armv4${ARMPKGSFX_THUMB}', '', d)}" +# enable --fix-v4bx when we have armv4 in TUNE_FEATURES, but then disable it when we have also armv5 or thumb +# maybe we should extend bb.utils.contains to support check for any checkvalues in value, now it does +# checkvalues.issubset(val) which cannot be used for negative test of foo neither bar in value +FIX_V4BX_ARMV4 = "${@bb.utils.contains('TUNE_FEATURES', 'armv4', '--fix-v4bx', '', d)}" +FIX_V4BX_ARMV5 = "${@bb.utils.contains('TUNE_FEATURES', 'armv5', '', '${FIX_V4BX_ARMV4}', d)}" +FIX_V4BX = "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '', '${FIX_V4BX_ARMV5}', d)}" +TARGET_LD_KERNEL_ARCH += "${FIX_V4BX}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv4', 'armv4:', '' ,d)}" + +require conf/machine/include/arm/arch-arm.inc +require conf/machine/include/arm/feature-arm-thumb.inc + +# Little Endian +AVAILTUNES += "armv4 armv4t" +ARMPKGARCH_tune-armv4 ?= "armv4" +ARMPKGARCH_tune-armv4t ?= "armv4" +TUNE_FEATURES_tune-armv4 = "arm armv4" +TUNE_FEATURES_tune-armv4t = "${TUNE_FEATURES_tune-armv4} thumb" +PACKAGE_EXTRA_ARCHS_tune-armv4 = "arm armv4" +PACKAGE_EXTRA_ARCHS_tune-armv4t = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv4t" + +# Big Endian +AVAILTUNES += "armv4b armv4tb" +ARMPKGARCH_tune-armv4b ?= "armv4" +ARMPKGARCH_tune-armv4tb ?= "armv4" +TUNE_FEATURES_tune-armv4b = "${TUNE_FEATURES_tune-armv4} bigendian" +TUNE_FEATURES_tune-armv4tb = "${TUNE_FEATURES_tune-armv4t} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv4b = "armeb armv4b" +PACKAGE_EXTRA_ARCHS_tune-armv4tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv4tb" diff --git a/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc b/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc new file mode 100644 index 0000000000..1f16085fcd --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv5-dsp.inc @@ -0,0 +1,52 @@ +ARMPKGSFX_DSP = "${@bb.utils.contains('TUNE_FEATURES', [ 'armv5', 'dsp' ], 'e', '', d)}" +TUNEVALID[dsp] = "ARM DSP functionality" + +require conf/machine/include/arm/arch-armv5.inc + +# Little Endian +AVAILTUNES += "armv5e armv5te" +ARMPKGARCH_tune-armv5e ?= "armv5" +ARMPKGARCH_tune-armv5te ?= "armv5" +TUNE_FEATURES_tune-armv5e = "${TUNE_FEATURES_tune-armv5} dsp" +TUNE_FEATURES_tune-armv5te = "${TUNE_FEATURES_tune-armv5t} dsp" +PACKAGE_EXTRA_ARCHS_tune-armv5e = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5e" +PACKAGE_EXTRA_ARCHS_tune-armv5te = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5e armv5te" + +# Little Endian + VFP/DSP +AVAILTUNES += "armv5e-vfp armv5te-vfp armv5ehf-vfp armv5tehf-vfp" +ARMPKGARCH_tune-armv5e-vfp ?= "armv5" +ARMPKGARCH_tune-armv5te-vfp ?= "armv5" +ARMPKGARCH_tune-armv5ehf-vfp ?= "armv5" +ARMPKGARCH_tune-armv5tehf-vfp ?= "armv5" +TUNE_FEATURES_tune-armv5e-vfp = "${TUNE_FEATURES_tune-armv5e} vfp" +TUNE_FEATURES_tune-armv5te-vfp = "${TUNE_FEATURES_tune-armv5te} vfp" +TUNE_FEATURES_tune-armv5ehf-vfp = "${TUNE_FEATURES_tune-armv5e-vfp} callconvention-hard" +TUNE_FEATURES_tune-armv5tehf-vfp = "${TUNE_FEATURES_tune-armv5te-vfp} callconvention-hard" +PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5-vfp} armv5e armv5e-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp} armv5e armv5te armv5e-vfp armv5te-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp} armv5ehf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp} armv5ehf-vfp armv5tehf-vfp" + +# Big Endian +AVAILTUNES += "armv5eb armv5teb" +ARMPKGARCH_tune-armv5eb ?= "armv5" +ARMPKGARCH_tune-armv5teb ?= "armv5" +TUNE_FEATURES_tune-armv5eb = "${TUNE_FEATURES_tune-armv5e} bigendian" +TUNE_FEATURES_tune-armv5teb = "${TUNE_FEATURES_tune-armv5te} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv5eb = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5eb" +PACKAGE_EXTRA_ARCHS_tune-armv5teb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5eb armv5teb" + +# Big Endian + VFP/DSP +AVAILTUNES += "armv5eb-vfp armv5teb-vfp armv5ehfb-vfp armv5tehfb-vfp" +ARMPKGARCH_tune-armv5eb-vfp ?= "armv5" +ARMPKGARCH_tune-armv5teb-vfp ?= "armv5" +ARMPKGARCH_tune-armv5ehfb-vfp ?= "armv5" +ARMPKGARCH_tune-armv5tehfb-vfp ?= "armv5" +TUNE_FEATURES_tune-armv5eb-vfp = "${TUNE_FEATURES_tune-armv5e-vfp} bigendian" +TUNE_FEATURES_tune-armv5teb-vfp = "${TUNE_FEATURES_tune-armv5te-vfp} bigendian" +TUNE_FEATURES_tune-armv5ehfb-vfp = "${TUNE_FEATURES_tune-armv5ehf-vfp} bigendian" +TUNE_FEATURES_tune-armv5tehfb-vfp = "${TUNE_FEATURES_tune-armv5tehf-vfp} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp} armv5eb armv5eb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp} armv5eb armv5teb armv5eb-vfp armv5teb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp} armv5ehfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp} armv5ehfb-vfp armv5tehfb-vfp" diff --git a/poky/meta/conf/machine/include/arm/arch-armv5.inc b/poky/meta/conf/machine/include/arm/arch-armv5.inc new file mode 100644 index 0000000000..46f631c819 --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv5.inc @@ -0,0 +1,57 @@ +DEFAULTTUNE ?= "armv5" + +TUNEVALID[armv5] = "Enable instructions for ARMv5" +TUNECONFLICTS[armv5] = "armv4" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5', ' -march=armv5${ARMPKGSFX_THUMB}${ARMPKGSFX_DSP}', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv5', 'armv5:', '' ,d)}" + +require conf/machine/include/arm/arch-armv4.inc +require conf/machine/include/arm/feature-arm-vfp.inc + +# Little Endian +AVAILTUNES += "armv5 armv5t" +ARMPKGARCH_tune-armv5 ?= "armv5" +ARMPKGARCH_tune-armv5t ?= "armv5" +TUNE_FEATURES_tune-armv5 = "arm armv5" +TUNE_FEATURES_tune-armv5t = "${TUNE_FEATURES_tune-armv5} thumb" +PACKAGE_EXTRA_ARCHS_tune-armv5 = "${PACKAGE_EXTRA_ARCHS_tune-armv4} armv5" +PACKAGE_EXTRA_ARCHS_tune-armv5t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} armv5 armv5t" + +# Little Endian + VFP/DSP +AVAILTUNES += "armv5-vfp armv5t-vfp armv5hf-vfp armv5thf-vfp" +ARMPKGARCH_tune-armv5-vfp ?= "armv5" +ARMPKGARCH_tune-armv5t-vfp ?= "armv5" +ARMPKGARCH_tune-armv5hf-vfp ?= "armv5" +ARMPKGARCH_tune-armv5thf-vfp ?= "armv5" +TUNE_FEATURES_tune-armv5-vfp = "${TUNE_FEATURES_tune-armv5} vfp" +TUNE_FEATURES_tune-armv5t-vfp = "${TUNE_FEATURES_tune-armv5t} vfp" +TUNE_FEATURES_tune-armv5hf-vfp = "${TUNE_FEATURES_tune-armv5-vfp} callconvention-hard" +TUNE_FEATURES_tune-armv5thf-vfp = "${TUNE_FEATURES_tune-armv5t-vfp} callconvention-hard" +PACKAGE_EXTRA_ARCHS_tune-armv5-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5} armv5-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5t-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5t} armv5-vfp armv5t-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5hf-vfp = "armv5hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5thf-vfp = "armv5hf-vfp armv5thf-vfp" + +# Big Endian +AVAILTUNES += "armv5b armv5tb" +ARMPKGARCH_tune-armv5b ?= "armv5" +ARMPKGARCH_tune-armv5tb ?= "armv5" +TUNE_FEATURES_tune-armv5b = "${TUNE_FEATURES_tune-armv5} bigendian" +TUNE_FEATURES_tune-armv5tb = "${TUNE_FEATURES_tune-armv5t} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv5b = "${PACKAGE_EXTRA_ARCHS_tune-armv4b} armv5b" +PACKAGE_EXTRA_ARCHS_tune-armv5tb = "${PACKAGE_EXTRA_ARCHS_tune-armv4tb} armv5b armv5tb" + +# Big Endian + VFP/DSP +AVAILTUNES += "armv5b-vfp armv5tb-vfp armv5hfb-vfp armv5thfb-vfp" +ARMPKGARCH_tune-armv5b-vfp ?= "armv5" +ARMPKGARCH_tune-armv5tb-vfp ?= "armv5" +ARMPKGARCH_tune-armv5hfb-vfp ?= "armv5" +ARMPKGARCH_tune-armv5thfb-vfp ?= "armv5" +TUNE_FEATURES_tune-armv5b-vfp = "${TUNE_FEATURES_tune-armv5-vfp} bigendian" +TUNE_FEATURES_tune-armv5tb-vfp = "${TUNE_FEATURES_tune-armv5t-vfp} bigendian" +TUNE_FEATURES_tune-armv5hfb-vfp = "${TUNE_FEATURES_tune-armv5hf-vfp} bigendian" +TUNE_FEATURES_tune-armv5thfb-vfp = "${TUNE_FEATURES_tune-armv5thf-vfp} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv5b-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5b} armv5b-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5tb-vfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5tb} armv5b-vfp armv5tb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5hfb-vfp = "armv5hfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv5thfb-vfp = "armv5hfb-vfp armv5thfb-vfp" diff --git a/poky/meta/conf/machine/include/arm/arch-armv6.inc b/poky/meta/conf/machine/include/arm/arch-armv6.inc new file mode 100644 index 0000000000..6c838e999c --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv6.inc @@ -0,0 +1,50 @@ +DEFAULTTUNE ?= "armv6hf" + +TUNEVALID[armv6] = "Enable instructions for ARMv6" +TUNECONFLICTS[armv6] = "armv4 armv5" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6', ' -march=armv6', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv6', 'armv6:', '' ,d)}" + +require conf/machine/include/arm/arch-armv5-dsp.inc + +# Little Endian +AVAILTUNES += "armv6-novfp armv6t-novfp armv6 armv6t armv6hf armv6thf" +ARMPKGARCH_tune-armv6-novfp ?= "armv6" +ARMPKGARCH_tune-armv6t-novfp ?= "armv6" +ARMPKGARCH_tune-armv6 ?= "armv6" +ARMPKGARCH_tune-armv6t ?= "armv6" +ARMPKGARCH_tune-armv6hf ?= "armv6" +ARMPKGARCH_tune-armv6thf ?= "armv6" +TUNE_FEATURES_tune-armv6-novfp = "arm armv6" +TUNE_FEATURES_tune-armv6t-novfp = "${TUNE_FEATURES_tune-armv6-novfp} thumb" +TUNE_FEATURES_tune-armv6 = "${TUNE_FEATURES_tune-armv6-novfp} vfp" +TUNE_FEATURES_tune-armv6t = "${TUNE_FEATURES_tune-armv6t-novfp} vfp" +TUNE_FEATURES_tune-armv6hf = "${TUNE_FEATURES_tune-armv6} callconvention-hard" +TUNE_FEATURES_tune-armv6thf = "${TUNE_FEATURES_tune-armv6t} callconvention-hard" +PACKAGE_EXTRA_ARCHS_tune-armv6-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5e} armv6" +PACKAGE_EXTRA_ARCHS_tune-armv6t-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} armv6 armv6t" +PACKAGE_EXTRA_ARCHS_tune-armv6 = "${PACKAGE_EXTRA_ARCHS_tune-armv5e-vfp} armv6 armv6-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv6t = "${PACKAGE_EXTRA_ARCHS_tune-armv5te-vfp} armv6 armv6t armv6-vfp armv6t-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv6hf = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehf-vfp} armv6hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv6thf = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehf-vfp} armv6hf-vfp armv6thf-vfp" + +# Big Endian +AVAILTUNES += "armv6b-novfp armv6tb-novfp armv6b armv6tb armv6hfb armv6thfb" +ARMPKGARCH_tune-armv6b-novfp ?= "armv6" +ARMPKGARCH_tune-armv6tb-novfp ?= "armv6" +ARMPKGARCH_tune-armv6b ?= "armv6" +ARMPKGARCH_tune-armv6tb ?= "armv6" +ARMPKGARCH_tune-armv6hfb ?= "armv6" +ARMPKGARCH_tune-armv6thfb ?= "armv6" +TUNE_FEATURES_tune-armv6b-novfp = "${TUNE_FEATURES_tune-armv6-novfp} bigendian" +TUNE_FEATURES_tune-armv6tb-novfp = "${TUNE_FEATURES_tune-armv6t-novfp} bigendian" +TUNE_FEATURES_tune-armv6b = "${TUNE_FEATURES_tune-armv6} bigendian" +TUNE_FEATURES_tune-armv6tb = "${TUNE_FEATURES_tune-armv6t} bigendian" +TUNE_FEATURES_tune-armv6hfb = "${TUNE_FEATURES_tune-armv6hf} bigendian" +TUNE_FEATURES_tune-armv6thfb = "${TUNE_FEATURES_tune-armv6thf} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv6b-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb} armv6b" +PACKAGE_EXTRA_ARCHS_tune-armv6tb-novfp = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} armv6b armv6tb" +PACKAGE_EXTRA_ARCHS_tune-armv6b = "${PACKAGE_EXTRA_ARCHS_tune-armv5eb-vfp} armv6b armv6b-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv6tb = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb-vfp} armv6b armv6tb armv6b-vfp armv6tb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv6hfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5ehfb-vfp} armv6hfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv6thfb = "${PACKAGE_EXTRA_ARCHS_tune-armv5tehfb-vfp} armv6hfb-vfp armv6thfb-vfp" diff --git a/poky/meta/conf/machine/include/arm/arch-armv7a.inc b/poky/meta/conf/machine/include/arm/arch-armv7a.inc new file mode 100644 index 0000000000..bad1c27059 --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv7a.inc @@ -0,0 +1,141 @@ +DEFAULTTUNE ?= "armv7athf" + +TUNEVALID[armv7a] = "Enable instructions for ARMv7-a" +TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', ' -march=armv7-a', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 'armv7a:', '' ,d)}" + +require conf/machine/include/arm/arch-armv6.inc +require conf/machine/include/arm/feature-arm-neon.inc + +# Little Endian base configs +AVAILTUNES += "armv7a armv7at armv7a-vfpv3d16 armv7at-vfpv3d16 armv7a-vfpv3 armv7at-vfpv3 armv7a-neon armv7at-neon armv7a-neon-vfpv4 armv7at-neon-vfpv4" +ARMPKGARCH_tune-armv7a ?= "armv7a" +ARMPKGARCH_tune-armv7at ?= "armv7a" +ARMPKGARCH_tune-armv7a-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7at-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7a-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7at-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7a-neon ?= "armv7a" +ARMPKGARCH_tune-armv7at-neon ?= "armv7a" +ARMPKGARCH_tune-armv7a-neon-vfpv4 ?= "armv7a" +ARMPKGARCH_tune-armv7at-neon-vfpv4 ?= "armv7a" +TUNE_FEATURES_tune-armv7a = "arm armv7a vfp" +TUNE_FEATURES_tune-armv7at = "${TUNE_FEATURES_tune-armv7a} thumb" +TUNE_FEATURES_tune-armv7a-vfpv3d16 = "${TUNE_FEATURES_tune-armv7a} vfpv3d16" +TUNE_FEATURES_tune-armv7at-vfpv3d16 = "${TUNE_FEATURES_tune-armv7at} vfpv3d16" +TUNE_FEATURES_tune-armv7a-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3d16} vfpv3" +TUNE_FEATURES_tune-armv7at-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3d16} vfpv3" +TUNE_FEATURES_tune-armv7a-neon = "${TUNE_FEATURES_tune-armv7a} neon" +TUNE_FEATURES_tune-armv7at-neon = "${TUNE_FEATURES_tune-armv7at} neon" +TUNE_FEATURES_tune-armv7a-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7a-neon} vfpv4" +TUNE_FEATURES_tune-armv7at-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7at-neon} vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7a = "${PACKAGE_EXTRA_ARCHS_tune-armv6} armv7a armv7a-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7at = "${PACKAGE_EXTRA_ARCHS_tune-armv6t} armv7a armv7a-vfp armv7at2-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-vfpv3d16 armv7at2-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3d16} armv7a-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3d16} armv7a-vfpv3 armv7at2-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7a-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7a-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7at-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7a-neon armv7at2-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7a-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} armv7a-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7at-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} armv7a-neon-vfpv4 armv7at2-neon-vfpv4" + +# HF Tunes +AVAILTUNES += "armv7ahf armv7athf armv7ahf-vfpv3d16 armv7athf-vfpv3d16 armv7ahf-vfpv3 armv7athf-vfpv3 armv7ahf-neon armv7athf-neon armv7ahf-neon-vfpv4 armv7athf-neon-vfpv4" +ARMPKGARCH_tune-armv7ahf ?= "armv7a" +ARMPKGARCH_tune-armv7athf ?= "armv7a" +ARMPKGARCH_tune-armv7ahf-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7athf-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7ahf-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7athf-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7ahf-neon ?= "armv7a" +ARMPKGARCH_tune-armv7athf-neon ?= "armv7a" +ARMPKGARCH_tune-armv7ahf-neon-vfpv4 ?= "armv7a" +ARMPKGARCH_tune-armv7athf-neon-vfpv4 ?= "armv7a" +TUNE_FEATURES_tune-armv7ahf = "${TUNE_FEATURES_tune-armv7a} callconvention-hard" +TUNE_FEATURES_tune-armv7athf = "${TUNE_FEATURES_tune-armv7at} callconvention-hard" +TUNE_FEATURES_tune-armv7ahf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7a-vfpv3d16} callconvention-hard" +TUNE_FEATURES_tune-armv7athf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7at-vfpv3d16} callconvention-hard" +TUNE_FEATURES_tune-armv7ahf-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3} callconvention-hard" +TUNE_FEATURES_tune-armv7athf-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3} callconvention-hard" +TUNE_FEATURES_tune-armv7ahf-neon = "${TUNE_FEATURES_tune-armv7a-neon} callconvention-hard" +TUNE_FEATURES_tune-armv7athf-neon = "${TUNE_FEATURES_tune-armv7at-neon} callconvention-hard" +TUNE_FEATURES_tune-armv7ahf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} callconvention-hard" +TUNE_FEATURES_tune-armv7athf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7at-neon-vfpv4} callconvention-hard" +PACKAGE_EXTRA_ARCHS_tune-armv7ahf = "${PACKAGE_EXTRA_ARCHS_tune-armv6hf} armv7ahf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7athf = "${PACKAGE_EXTRA_ARCHS_tune-armv6thf} armv7ahf-vfp armv7at2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-vfpv3d16 armv7at2hf-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3d16} armv7ahf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3d16} armv7ahf-vfpv3 armv7at2hf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7ahf-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7ahf-neon armv7at2hf-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} armv7ahf-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} armv7ahf-neon-vfpv4 armv7at2hf-neon-vfpv4" + +# Big Endian +AVAILTUNES += "armv7ab armv7atb armv7ab-vfpv3d16 armv7atb-vfpv3d16 armv7ab-vfpv3 armv7atb-vfpv3 armv7ab-neon armv7atb-neon armv7ab-neon-vfpv4 armv7atb-neon-vfpv4" +ARMPKGARCH_tune-armv7ab ?= "armv7a" +ARMPKGARCH_tune-armv7atb ?= "armv7a" +ARMPKGARCH_tune-armv7ab-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7atb-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7ab-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7atb-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7ab-neon ?= "armv7a" +ARMPKGARCH_tune-armv7atb-neon ?= "armv7a" +ARMPKGARCH_tune-armv7ab-neon-vfpv4 ?= "armv7a" +ARMPKGARCH_tune-armv7atb-neon-vfpv4 ?= "armv7a" +TUNE_FEATURES_tune-armv7ab = "${TUNE_FEATURES_tune-armv7a} bigendian" +TUNE_FEATURES_tune-armv7atb = "${TUNE_FEATURES_tune-armv7at} bigendian" +TUNE_FEATURES_tune-armv7ab-vfpv3d16 = "${TUNE_FEATURES_tune-armv7a-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7atb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7at-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7ab-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7atb-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7ab-neon = "${TUNE_FEATURES_tune-armv7a-neon} bigendian" +TUNE_FEATURES_tune-armv7atb-neon = "${TUNE_FEATURES_tune-armv7at-neon} bigendian" +TUNE_FEATURES_tune-armv7ab-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7a-neon-vfpv4} bigendian" +TUNE_FEATURES_tune-armv7atb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7at-neon-vfpv4} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv7ab = "${PACKAGE_EXTRA_ARCHS_tune-armv6b} armv7ab-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7atb = "${PACKAGE_EXTRA_ARCHS_tune-armv6tb} armv7ab-vfp armv7at2b-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-vfpv3d16 armv7at2b-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-vfpv3d16} armv7ab-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-vfpv3d16} armv7ab-vfpv3 armv7at2b-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7ab-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7ab-neon armv7at2b-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab-neon} armv7ab-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb-neon} armv7ab-neon-vfpv4 armv7at2b-neon-vfpv4" + +# Big Endian + HF +AVAILTUNES += "armv7ahfb armv7athfb armv7ahfb-vfpv3d16 armv7athfb-vfpv3d16 armv7ahfb-vfpv3 armv7athfb-vfpv3 armv7ahfb-neon armv7athfb-neon armv7ahfb-neon-vfpv4 armv7athfb-neon-vfpv4" +ARMPKGARCH_tune-armv7ahfb ?= "armv7a" +ARMPKGARCH_tune-armv7athfb ?= "armv7a" +ARMPKGARCH_tune-armv7ahfb-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7athfb-vfpv3d16 ?= "armv7a" +ARMPKGARCH_tune-armv7ahfb-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7athfb-vfpv3 ?= "armv7a" +ARMPKGARCH_tune-armv7ahfb-neon ?= "armv7a" +ARMPKGARCH_tune-armv7athfb-neon ?= "armv7a" +ARMPKGARCH_tune-armv7ahfb-neon-vfpv4 ?= "armv7a" +ARMPKGARCH_tune-armv7athfb-neon-vfpv4 ?= "armv7a" +TUNE_FEATURES_tune-armv7ahfb = "${TUNE_FEATURES_tune-armv7ahf} bigendian" +TUNE_FEATURES_tune-armv7athfb = "${TUNE_FEATURES_tune-armv7athf} bigendian" +TUNE_FEATURES_tune-armv7ahfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ahf-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7athfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7athf-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7ahfb-vfpv3 = "${TUNE_FEATURES_tune-armv7ahf-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7athfb-vfpv3 = "${TUNE_FEATURES_tune-armv7athf-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7ahfb-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} bigendian" +TUNE_FEATURES_tune-armv7athfb-neon = "${TUNE_FEATURES_tune-armv7athf-neon} bigendian" +TUNE_FEATURES_tune-armv7ahfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ahf-neon-vfpv4} bigendian" +TUNE_FEATURES_tune-armv7athfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7athf-neon-vfpv4} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv7ahfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6hfb} armv7ahfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7athfb = "${PACKAGE_EXTRA_ARCHS_tune-armv6thfb} armv7ahfb-vfp armv7at2hfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-vfpv3d16 armv7at2hfb-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-vfpv3d16} armv7ahfb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-vfpv3d16} armv7ahfb-vfpv3 armv7at2hfb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7ahfb-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7ahfb-neon armv7at2hfb-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb-neon} armv7ahfb-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb-neon} armv7ahfb-neon-vfpv4 armv7at2hfb-neon-vfpv4" diff --git a/poky/meta/conf/machine/include/arm/arch-armv7ve.inc b/poky/meta/conf/machine/include/arm/arch-armv7ve.inc new file mode 100644 index 0000000000..4d9260fecb --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv7ve.inc @@ -0,0 +1,140 @@ +DEFAULTTUNE ?= "armv7vethf" + +TUNEVALID[armv7ve] = "Enable instructions for ARMv7ve" +TUNECONFLICTS[armv7ve] = "armv4 armv5 armv6 armv7 armv7a" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', ' -march=armv7ve', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 'armv7ve:', '' ,d)}" + +require conf/machine/include/arm/arch-armv7a.inc + +# Little Endian base configs +AVAILTUNES += "armv7ve armv7vet armv7ve-vfpv3d16 armv7vet-vfpv3d16 armv7ve-vfpv3 armv7vet-vfpv3 armv7ve-neon armv7vet-neon armv7ve-neon-vfpv4 armv7vet-neon-vfpv4" +ARMPKGARCH_tune-armv7ve ?= "armv7ve" +ARMPKGARCH_tune-armv7vet ?= "armv7ve" +ARMPKGARCH_tune-armv7ve-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vet-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7ve-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vet-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7ve-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7vet-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7ve-neon-vfpv4 ?= "armv7ve" +ARMPKGARCH_tune-armv7vet-neon-vfpv4 ?= "armv7ve" +TUNE_FEATURES_tune-armv7ve = "arm armv7ve vfp" +TUNE_FEATURES_tune-armv7vet = "${TUNE_FEATURES_tune-armv7ve} thumb" +TUNE_FEATURES_tune-armv7ve-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ve} vfpv3d16" +TUNE_FEATURES_tune-armv7vet-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vet} vfpv3d16" +TUNE_FEATURES_tune-armv7ve-vfpv3 = "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} vfpv3" +TUNE_FEATURES_tune-armv7vet-vfpv3 = "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} vfpv3" +TUNE_FEATURES_tune-armv7ve-neon = "${TUNE_FEATURES_tune-armv7ve} neon" +TUNE_FEATURES_tune-armv7vet-neon = "${TUNE_FEATURES_tune-armv7vet} neon" +TUNE_FEATURES_tune-armv7ve-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon} vfpv4" +TUNE_FEATURES_tune-armv7vet-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon} vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7ve = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} armv7ve armv7ve-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7vet = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} armv7ve armv7ve-vfp armv7vet2-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-vfpv3d16 armv7vet2-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-vfpv3d16} armv7ve-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-vfpv3d16} armv7ve-vfpv3 armv7vet2-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} armv7ve-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} armv7ve-neon armv7vet2-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} armv7ve-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} armv7ve-neon-vfpv4 armv7vet2-neon-vfpv4" + +# HF Tunes +AVAILTUNES += "armv7vehf armv7vethf armv7vehf-vfpv3d16 armv7vethf-vfpv3d16 armv7vehf-vfpv3 armv7vethf-vfpv3 armv7vehf-neon armv7vethf-neon armv7vehf-neon-vfpv4 armv7vethf-neon-vfpv4" +ARMPKGARCH_tune-armv7vehf ?= "armv7ve" +ARMPKGARCH_tune-armv7vethf ?= "armv7ve" +ARMPKGARCH_tune-armv7vehf-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethf-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vehf-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethf-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vehf-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7vethf-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7vehf-neon-vfpv4 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethf-neon-vfpv4 ?= "armv7ve" +TUNE_FEATURES_tune-armv7vehf = "${TUNE_FEATURES_tune-armv7ve} callconvention-hard" +TUNE_FEATURES_tune-armv7vethf = "${TUNE_FEATURES_tune-armv7vet} callconvention-hard" +TUNE_FEATURES_tune-armv7vehf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} callconvention-hard" +TUNE_FEATURES_tune-armv7vethf-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} callconvention-hard" +TUNE_FEATURES_tune-armv7vehf-vfpv3 = "${TUNE_FEATURES_tune-armv7ve-vfpv3} callconvention-hard" +TUNE_FEATURES_tune-armv7vethf-vfpv3 = "${TUNE_FEATURES_tune-armv7vet-vfpv3} callconvention-hard" +TUNE_FEATURES_tune-armv7vehf-neon = "${TUNE_FEATURES_tune-armv7ve-neon} callconvention-hard" +TUNE_FEATURES_tune-armv7vethf-neon = "${TUNE_FEATURES_tune-armv7vet-neon} callconvention-hard" +TUNE_FEATURES_tune-armv7vehf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} callconvention-hard" +TUNE_FEATURES_tune-armv7vethf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} callconvention-hard" +PACKAGE_EXTRA_ARCHS_tune-armv7vehf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} armv7vehf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7vethf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} armv7vehf-vfp armv7vet2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-vfpv3d16 armv7vet2hf-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-vfpv3d16} armv7vehf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-vfpv3d16} armv7vehf-vfpv3 armv7vet2hf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} armv7vehf-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} armv7vehf-neon armv7vet2hf-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} armv7vehf-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} armv7vehf-neon-vfpv4 armv7vet2hf-neon-vfpv4" + +# Big Endian +AVAILTUNES += "armv7veb armv7vetb armv7veb-vfpv3d16 armv7vetb-vfpv3d16 armv7veb-vfpv3 armv7vetb-vfpv3 armv7veb-neon armv7vetb-neon armv7veb-neon-vfpv4 armv7vetb-neon-vfpv4" +ARMPKGARCH_tune-armv7veb ?= "armv7ve" +ARMPKGARCH_tune-armv7vetb ?= "armv7ve" +ARMPKGARCH_tune-armv7veb-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vetb-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7veb-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vetb-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7veb-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7vetb-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7veb-neon-vfpv4 ?= "armv7ve" +ARMPKGARCH_tune-armv7vetb-neon-vfpv4 ?= "armv7ve" +TUNE_FEATURES_tune-armv7veb = "${TUNE_FEATURES_tune-armv7ve} bigendian" +TUNE_FEATURES_tune-armv7vetb = "${TUNE_FEATURES_tune-armv7vet} bigendian" +TUNE_FEATURES_tune-armv7veb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7ve-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7vetb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vet-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7veb-vfpv3 = "${TUNE_FEATURES_tune-armv7ve-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7vetb-vfpv3 = "${TUNE_FEATURES_tune-armv7vet-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7veb-neon = "${TUNE_FEATURES_tune-armv7ve-neon} bigendian" +TUNE_FEATURES_tune-armv7vetb-neon = "${TUNE_FEATURES_tune-armv7vet-neon} bigendian" +TUNE_FEATURES_tune-armv7veb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} bigendian" +TUNE_FEATURES_tune-armv7vetb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv7veb = "${PACKAGE_EXTRA_ARCHS_tune-armv7ab} armv7veb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7vetb = "${PACKAGE_EXTRA_ARCHS_tune-armv7atb} armv7veb-vfp armv7vet2b-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-vfpv3d16 armv7vet2b-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-vfpv3d16} armv7veb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-vfpv3d16} armv7veb-vfpv3 armv7vet2b-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb} armv7veb-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb} armv7veb-neon armv7vet2b-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7veb-neon} armv7veb-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vetb-neon} armv7veb-neon-vfpv4 armv7vet2b-neon-vfpv4" + +# Big Endian + HF +AVAILTUNES += "armv7vehfb armv7vethfb armv7vehfb-vfpv3d16 armv7vethfb-vfpv3d16 armv7vehfb-vfpv3 armv7vethfb-vfpv3 armv7vehfb-neon armv7vethfb-neon armv7vehfb-neon-vfpv4 armv7vethfb-neon-vfpv4" +ARMPKGARCH_tune-armv7vehfb ?= "armv7ve" +ARMPKGARCH_tune-armv7vethfb ?= "armv7ve" +ARMPKGARCH_tune-armv7vehfb-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethfb-vfpv3d16 ?= "armv7ve" +ARMPKGARCH_tune-armv7vehfb-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethfb-vfpv3 ?= "armv7ve" +ARMPKGARCH_tune-armv7vehfb-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7vethfb-neon ?= "armv7ve" +ARMPKGARCH_tune-armv7vehfb-neon-vfpv4 ?= "armv7ve" +ARMPKGARCH_tune-armv7vethfb-neon-vfpv4 ?= "armv7ve" +TUNE_FEATURES_tune-armv7vehfb = "${TUNE_FEATURES_tune-armv7vehf} bigendian" +TUNE_FEATURES_tune-armv7vethfb = "${TUNE_FEATURES_tune-armv7vethf} bigendian" +TUNE_FEATURES_tune-armv7vehfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vehf-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7vethfb-vfpv3d16 = "${TUNE_FEATURES_tune-armv7vethf-vfpv3d16} bigendian" +TUNE_FEATURES_tune-armv7vehfb-vfpv3 = "${TUNE_FEATURES_tune-armv7vehf-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7vethfb-vfpv3 = "${TUNE_FEATURES_tune-armv7vethf-vfpv3} bigendian" +TUNE_FEATURES_tune-armv7vehfb-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} bigendian" +TUNE_FEATURES_tune-armv7vethfb-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} bigendian" +TUNE_FEATURES_tune-armv7vehfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} bigendian" +TUNE_FEATURES_tune-armv7vethfb-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} bigendian" +PACKAGE_EXTRA_ARCHS_tune-armv7vehfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahfb} armv7vehfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7vethfb = "${PACKAGE_EXTRA_ARCHS_tune-armv7athfb} armv7vehfb-vfp armv7vet2hfb-vfp" +PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-vfpv3d16 armv7vet2hfb-vfpv3d16" +PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-vfpv3d16} armv7vehfb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-vfpv3d16} armv7vehfb-vfpv3 armv7vet2hfb-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb} armv7vehfb-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb} armv7vehfb-neon armv7vet2hfb-neon" +PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehfb-neon} armv7vehfb-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethfb-neon} armv7vehfb-neon-vfpv4 armv7vet2hfb-neon-vfpv4" diff --git a/poky/meta/conf/machine/include/arm/arch-armv8.inc b/poky/meta/conf/machine/include/arm/arch-armv8.inc new file mode 100644 index 0000000000..5e832fae6d --- /dev/null +++ b/poky/meta/conf/machine/include/arm/arch-armv8.inc @@ -0,0 +1 @@ +require conf/machine/include/arm/arch-arm64.inc diff --git a/poky/meta/conf/machine/include/arm/feature-arm-neon.inc b/poky/meta/conf/machine/include/arm/feature-arm-neon.inc new file mode 100644 index 0000000000..b34af8e7c7 --- /dev/null +++ b/poky/meta/conf/machine/include/arm/feature-arm-neon.inc @@ -0,0 +1,18 @@ +# GCC supports following options: +# 'vfp', 'vfpv3', 'vfpv3-fp16', 'vfpv3-d16', 'vfpv3-d16-fp16', 'vfpv3xd', 'vfpv3xd-fp16', 'neon', 'neon-fp16', 'vfpv4', 'vfpv4-d16', 'fpv4-sp-d16', 'neon-vfpv4', 'fpv5-d16', 'fpv5-sp-d16', 'fp-armv8', 'neon-fp-armv8', and 'crypto-neon-fp-armv8' + +# Only some combinations are supported here. +# 'vfp', -mfloat-abi parameter and 'hf' suffix is implemented in feature-arm-vfp.inc + +TUNEVALID[neon] = "Enable Neon SIMD accelerator unit." +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'neon', ' neon', '', d)}" + +TUNEVALID[vfpv3d16] = "Enable Vector Floating Point Version 3 with 16 registers (vfpv3-d16) unit." +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', ' vfpv3-d16', '', d)}" + +TUNEVALID[vfpv3] = "Enable Vector Floating Point Version 3 with 32 registers (vfpv3) unit." +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv3', ' vfpv3', '' , d)}" + +TUNEVALID[vfpv4] = "Enable Vector Floating Point Version 4 (vfpv4) unit." +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfpv4', ' vfpv4', '', d)}" +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', [ 'vfpv4', 'neon' ], ' neon-vfpv4', '', d)}" diff --git a/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc b/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc new file mode 100644 index 0000000000..0b47ccad02 --- /dev/null +++ b/poky/meta/conf/machine/include/arm/feature-arm-thumb.inc @@ -0,0 +1,30 @@ + +TUNEVALID[thumb] = "Support Thumb instructions" + +ARM_THUMB_SUFFIX = "${@bb.utils.contains_any('TUNE_FEATURES', 'armv4 armv5 armv6', 't', 't2', d)}" + +# If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb") +# If the device doesn't support ARM, then always set "thumb" even when +# some recipe explicitly sets ARM_INSTRUCTION_SET to "arm" +ARM_THUMB_OPT = "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET') == 'thumb']}" +ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}" + +python () { + if bb.utils.contains('TUNE_FEATURES', 'thumb', False, True, d): + return + selected = d.getVar('ARM_INSTRUCTION_SET') + if selected == None: + return + used = d.getVar('ARM_M_OPT') + if selected != used: + pn = d.getVar('PN') + bb.warn("Recipe '%s' selects ARM_INSTRUCTION_SET to be '%s', but tune configuration overrides it to '%s'" % (pn, selected, used)) +} + +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' -m${ARM_M_OPT}', '', d)}" + +# Add suffix from ARM_THUMB_SUFFIX only if after all this we still set ARM_M_OPT to thumb +ARMPKGSFX_THUMB .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_SUFFIX}', '', d) if d.getVar('ARM_M_OPT') == 'thumb' else ''}" + +# what about armv7m devices which don't support -marm (e.g. Cortex-M3)? +TARGET_CC_KERNEL_ARCH += "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}" diff --git a/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc b/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc new file mode 100644 index 0000000000..7ae745669b --- /dev/null +++ b/poky/meta/conf/machine/include/arm/feature-arm-vfp.inc @@ -0,0 +1,14 @@ +# This is only for VFPv1 or VFPv2, other vfp* tunes are defined in +# feature-arm-neon.inc, because they are available only for armv7* +# and this .inc file is included from armv5 + +TUNEVALID[vfp] = "Enable Vector Floating Point (vfp) unit." +TUNE_CCARGS_MFPU .= "${@bb.utils.contains('TUNE_FEATURES', 'vfp', ' vfp', '', d)}" + +TUNE_CCARGS .= "${@ (' -mfpu=%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1]) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" +ARMPKGSFX_FPU = "${@ ('-%s' % d.getVar('TUNE_CCARGS_MFPU').split()[-1].replace('vfpv3-d16', 'vfpv3d16')) if (d.getVar('TUNE_CCARGS_MFPU') != '') else ''}" + +TUNEVALID[callconvention-hard] = "Enable EABI hard float call convention, requires VFP." +TUNE_CCARGS_MFLOAT = "${@ bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hard', 'softfp', d) if (d.getVar('TUNE_CCARGS_MFPU') != '') else '' }" +TUNE_CCARGS .= "${@ ' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}" +ARMPKGSFX_EABI = "${@ 'hf' if (d.getVar('TUNE_CCARGS_MFLOAT') == 'hard') else ''}" diff --git a/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc b/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc new file mode 100644 index 0000000000..eab7171cb2 --- /dev/null +++ b/poky/meta/conf/machine/include/microblaze/arch-microblaze.inc @@ -0,0 +1,53 @@ +# MicroBlaze architecture tune feature configuration + +# Architecture feature and override +TUNEVALID[microblaze] = "MicroBlaze" +MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "", d)}" + +# Endian +TUNEVALID[bigendian] = "Use Microblaze Big Endian" +TUNECONFLICTS[bigendian] += "v10.0" + +MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el", d)}" + +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "-mbig-endian", "-mlittle-endian", d)}" + +# General features +TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter" +TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions" +TUNEVALID[reorder] = "Enable Reorder Instructions" +TUNECONFLICTS[reorder] += "v8.00 v8.10 v8.20" + +# Core configuration tune optimizations +TUNEVALID[frequency-optimized] = "Enabling tuning for frequency optimized core (AREA_OPTIMIZED_2)" +TUNECONFLICTS[frequency-optimized] += "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6" + +# Feature compiler args +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift", d)}" +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare", d)}" +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-mxl-frequency", "", d)}" + +# Disable reorder for v8.30 if pattern-compare is not enabled +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "reorder", \ + bb.utils.contains("TUNE_FEATURES", "v8.30", \ + bb.utils.contains("TUNE_FEATURES", "pattern-compare", \ + "-mxl-reorder", "-mno-xl-reorder", d), \ + "-mxl-reorder", d), "-mno-xl-reorder", d)}" + +# Feature package architecture formatting +MBPKGARCH_TUNE = "" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "", d)}" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "", d)}" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "", d)}" +MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-fo", "", d)}" + +# Additional features +require conf/machine/include/microblaze/feature-microblaze-versions.inc +require conf/machine/include/microblaze/feature-microblaze-math.inc + +# Architecture name, either 'microblazeeb' or 'microblazeel' depending on endianess +TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el", d)}" + +# Package Architecture formatting +TUNE_PKGARCH = "microblaze${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}" + diff --git a/poky/meta/conf/machine/include/microblaze/feature-microblaze-math.inc b/poky/meta/conf/machine/include/microblaze/feature-microblaze-math.inc new file mode 100644 index 0000000000..a31516659c --- /dev/null +++ b/poky/meta/conf/machine/include/microblaze/feature-microblaze-math.inc @@ -0,0 +1,33 @@ +# This include describes the math features (integer and floating point) that +# are available for the MicroBlaze ISA + +TUNEVALID[multiply-low] = "Hardware multipler with 32 bit result" +TUNEVALID[multiply-high] = "Hardware multipler with 64 bit result" +TUNEVALID[divide-hard] = "Hardware divider" +TUNEVALID[fpu-soft] = "Software FPU" +TUNEVALID[fpu-hard] = "Hardware FPU in basic mode" +TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)" + +TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended" +TUNECONFLICTS[fpu-hard] = "fpu-soft" +TUNECONFLICTS[fpu-hard-extended] = "fpu-soft" + +# Compiler args +TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], '-mno-xl-soft-mul', '-mxl-soft-mul', d)}" +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mxl-multiply-high', '', d)}" + +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-mno-xl-soft-div', '-mxl-soft-div', d)}" + +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}" +TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], '-mhard-float', '', d)}" +TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-mxl-float-convert -mxl-float-sqrt', '', d)}" + +# Set target fpu (bitbake known target) to soft or hard (basic or extended) +TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}" + +# Package Architecture formatting +MBPKGARCH_MATH = "" +MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}" +MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '', d)}" +MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-fe', bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '-fb', '', d), d)}" + diff --git a/poky/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc b/poky/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc new file mode 100644 index 0000000000..955674fff9 --- /dev/null +++ b/poky/meta/conf/machine/include/microblaze/feature-microblaze-versions.inc @@ -0,0 +1,67 @@ +# MicroBlaze versions are defined as features, the features are setup to +# conflict with other versions as well as unavailable features for particular +# versions. +# +# Versions before v9.0 of MicroBlaze use a versioning scheme of "vX.YY.Z" +# (where Z = [abc]). For v8.* versions of MicroBlaze the revision (Z) changes +# did not affect ABI and are ignored by this tune configuration. Though this +# format is expected by GCC including the revision, but this is defaulted to +# ".a". +# +# Since v9.0 of MicroBlaze the revision (Z) part of versions was entirely +# dropped and the version scheme was changed to "vX.Y". + +def microblaze_current_version(d, gcc = False): + import re + # find the current version, and convert it to major/minor integers + version = None + for t in (d.getVar("TUNE_FEATURES") or "").split(): + m = re.search("^v(\d+)\.(\d+)", t) + if m: + version = int(m.group(1)), int(m.group(2)) + break + + # format the version string in generic or GCC specific formats + if version: + if version[0] <= 8: + return ("v%d.%02d" % version[0:2]) + (".a" if gcc else "") + else: + return "v%d.%d" % version[0:2] + return "" + +# MicroBlaze versions +TUNEVALID[v8.00] = "MicroBlaze version 8.00" +TUNEVALID[v8.10] = "MicroBlaze version 8.10" +TUNEVALID[v8.20] = "MicroBlaze version 8.20" +TUNEVALID[v8.30] = "MicroBlaze version 8.30" +TUNEVALID[v8.40] = "MicroBlaze version 8.40" +TUNEVALID[v8.50] = "MicroBlaze version 8.50" +TUNEVALID[v9.0] = "MicroBlaze version 9.0" +TUNEVALID[v9.1] = "MicroBlaze version 9.1" +TUNEVALID[v9.2] = "MicroBlaze version 9.2" +TUNEVALID[v9.3] = "MicroBlaze version 9.3" +TUNEVALID[v9.4] = "MicroBlaze version 9.4" +TUNEVALID[v9.5] = "MicroBlaze version 9.5" +TUNEVALID[v9.6] = "MicroBlaze version 9.6" +TUNEVALID[v10.0] = "MicroBlaze version 10.0" + +# Version conflict matrix +TUNECONFLICTS[v8.00] = "" +TUNECONFLICTS[v8.10] = "v8.00" +TUNECONFLICTS[v8.20] = "v8.00 v8.10" +TUNECONFLICTS[v8.30] = "v8.00 v8.10 v8.20" +TUNECONFLICTS[v8.40] = "v8.00 v8.10 v8.20 v8.30" +TUNECONFLICTS[v8.50] = "v8.00 v8.10 v8.20 v8.30 v8.40" +TUNECONFLICTS[v9.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50" +TUNECONFLICTS[v9.1] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0" +TUNECONFLICTS[v9.2] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1" +TUNECONFLICTS[v9.3] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2" +TUNECONFLICTS[v9.4] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3" +TUNECONFLICTS[v9.5] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4" +TUNECONFLICTS[v9.6] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5" +TUNECONFLICTS[v10.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6" + +# Version flags +TUNE_CCARGS += "-mcpu=${@microblaze_current_version(d, True)}" +MBPKGARCH_VERSION = "-${@microblaze_current_version(d)}" + diff --git a/poky/meta/conf/machine/include/mips/README b/poky/meta/conf/machine/include/mips/README new file mode 100644 index 0000000000..f36e87b45a --- /dev/null +++ b/poky/meta/conf/machine/include/mips/README @@ -0,0 +1,56 @@ +2016/09/30 - Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> + - Add Release 6 support + +2012/03/30 - Mark Hatle <mark.hatle@windriver.com> + - Initial Version + +MIPS currently defines 12 ABIs. Combinations of: + *) Big/Little Endian + *) Hardware/Software Floating Point + *) o32, n32, n64 ABI + +Release 6 of the ISA is a major revision and doesn't build up on previous +releases of the ISA. + +For more details about tuples, check https://wiki.debian.org/Multiarch/Tuples + +TUNE_ARCH, the GNU canonical arch, is defined as: + +"mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}" + +The package arch is defined in such a way to generated a standard naming +scheme. The scheme is: <mips variant>[-nf][-n32] + +TUNE_PKGARCH is defined as: + +${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI} + +The following is a list of MIPS specific variables: + +MIPSPKGSFX_BYTE - This is defined as either blank and "64" for MIPS64 CPUs. + +MIPSPKGSFX_ENDIAN - For bigendian hardware this is blank, otherwise it's +defined as "el". + +MIPSPKGSFX_ENDIAN2 - For bigendian hardware this is "eb", otherwise it's +defined as "el". + +MIPSPKGSFX_VARIANT_tune-<tune> - In the default tunings it is set to the +same value as TUNE_ARCH. In custom, optimized tunings, the value should +be modified to more precisely describe the tuning. + +MIPSPKGSFX_FPU - The value is set to "" or "-nf", where "-nf" indicates +that the tune is using a non-floating point ABI. + +MIPSPKGSFX_ABI - This is used to specify an alternative ABI when the previous +values are not enough to distringuish the package. "-n32" is added when +building for N32 ABI. + +MIPSPKGSFX_R6 - This is used to specify the presence of release 6. +"r6" is added in the tuple for release 6 of the isa. + +MIPSPKGSFX_64R6 - This is used to specify "isa" in the tuple. +Release 6 onwards we use "mipsisa64" instead of just "mips64". + +MIPSPKGSFX_32R6 - This is used to specify "isa32" in the tuple. +Release 6 onwards we use "mipsisa32" instead of just "mips". diff --git a/poky/meta/conf/machine/include/mips/arch-mips.inc b/poky/meta/conf/machine/include/mips/arch-mips.inc new file mode 100644 index 0000000000..2f625119cb --- /dev/null +++ b/poky/meta/conf/machine/include/mips/arch-mips.inc @@ -0,0 +1,151 @@ +# MIPS Architecture definition +# 12 defined ABIs, all combinations of: +# *) Big/Little Endian +# *) Hardware/Software Floating Point +# *) o32, n32, n64 ABI + +DEFAULTTUNE ?= "mips" + +# Endianess +TUNEVALID[bigendian] = "Enable big-endian mode" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', ' -meb', ' -mel', d)}" + +# ABI flags +TUNEVALID[o32] = "MIPS o32 ABI" +TUNECONFLICTS[o32] = "n32 n64" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'o32', ' -mabi=32', '', d)}" + +TUNEVALID[n32] = "MIPS64 n32 ABI" +TUNECONFLICTS[n32] = "o32 n64" +ABIEXTENSION .= "${@bb.utils.filter('TUNE_FEATURES', 'n32' ,d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'n32', ' -mabi=n32', '', d)}" + +# user mode qemu doesn't support mips64 n32: "Invalid ELF image for this architecture" +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'n32', 'qemu-usermode', '', d)}" + +TUNEVALID[n64] = "MIPS64 n64 ABI" +TUNECONFLICTS[n64] = "o32 n32" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'n64', ' -mabi=64', '', d)}" + +# Floating point +TUNEVALID[fpu-hard] = "Use hardware FPU" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', ' -msoft-float', d)}" +TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '', 'soft', d)}" + +# MIPS r6 ABI +TUNEVALID[r6] = "Use r6" +TUNEVALID[mipsisa64r6] = "Use 64r6" +TUNEVALID[mipsisa32r6] = "Use 32r6" + +# Package naming +MIPSPKGSFX_ENDIAN = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', '', 'el', d)}" +MIPSPKGSFX_ENDIAN2 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'eb', 'el', d)}" +MIPSPKGSFX_BYTE = "${@bb.utils.contains('TUNE_FEATURES', 'n64' , '64', '', d)}" +MIPSPKGSFX_BYTE .= "${@bb.utils.contains('TUNE_FEATURES', 'n32' , '64', '', d)}" +MIPSPKGSFX_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard' , '', '-nf', d)}" +MIPSPKGSFX_ABI = "${@bb.utils.contains('TUNE_FEATURES', 'n32', '-n32', '', d)}" +MIPSPKGSFX_R6 = "${@bb.utils.filter('TUNE_FEATURES', 'r6', d)}" +MIPSPKGSFX_64R6 = "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', 'isa', '', d)}" +MIPSPKGSFX_32R6 = "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa32r6', 'isa32', '', d)}" + +TUNE_ARCH = "mips${MIPSPKGSFX_32R6}${MIPSPKGSFX_64R6}${MIPSPKGSFX_BYTE}${MIPSPKGSFX_R6}${MIPSPKGSFX_ENDIAN}" +TUNE_PKGARCH = "${MIPSPKGSFX_VARIANT_tune-${DEFAULTTUNE}}${MIPSPKGSFX_FPU}${MIPSPKGSFX_ABI}" + +# Various Global Machine Overrides +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n64', 'mipsarchn64${MIPSPKGSFX_ENDIAN2}:', '' ,d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'o32', 'mipsarcho32${MIPSPKGSFX_ENDIAN2}:', '' ,d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'mipsarchn32${MIPSPKGSFX_ENDIAN2}:', '' ,d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n64', 'mipsarchn64:', '' ,d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'o32', 'mipsarcho32:', '' ,d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'n32', 'mipsarchn32:', '' ,d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'r6', 'mipsarchr6:', '' ,d)}" +MACHINEOVERRIDES =. "mipsarch${MIPSPKGSFX_ENDIAN2}:" +MACHINEOVERRIDES =. "mipsarch:" + +# Base tunes +AVAILTUNES += "mips mips64-n32 mips64 mipsel mips64el-n32 mips64el mips-nf mips64-nf-n32 mips64-nf mipsel-nf mips64el-nf-n32 mips64el-nf" +TUNE_FEATURES_tune-mips = "o32 bigendian fpu-hard" +BASE_LIB_tune-mips = "lib" +MIPSPKGSFX_VARIANT_tune-mips = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips = "mips" + +TUNE_FEATURES_tune-mips64-n32 = "n32 bigendian fpu-hard" +BASE_LIB_tune-mips64-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64-n32 = "mips64-n32" + +TUNE_FEATURES_tune-mips64 = "n64 bigendian fpu-hard" +BASE_LIB_tune-mips64 = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64 = "mips64" + +TUNE_FEATURES_tune-mipsel = "o32 fpu-hard" +BASE_LIB_tune-mipsel = "lib" +MIPSPKGSFX_VARIANT_tune-mipsel = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsel = "mipsel" + +TUNE_FEATURES_tune-mips64el-n32 = "n32 fpu-hard" +BASE_LIB_tune-mips64el-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64el-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64el-n32 = "mips64el-n32" + +TUNE_FEATURES_tune-mips64el = "n64 fpu-hard" +BASE_LIB_tune-mips64el = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64el = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64el = "mips64el" + +TUNE_FEATURES_tune-mips-nf = "o32 bigendian" +BASE_LIB_tune-mips-nf = "lib" +MIPSPKGSFX_VARIANT_tune-mips-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips-nf = "mips-nf" + +TUNE_FEATURES_tune-mips64-nf-n32 = "n32 bigendian" +BASE_LIB_tune-mips64-nf-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64-nf-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-n32 = "mips64-nf-n32" + +TUNE_FEATURES_tune-mips64-nf = "n64 bigendian" +BASE_LIB_tune-mips64-nf = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64-nf = "mips64-nf" + +TUNE_FEATURES_tune-mipsel-nf = "o32" +BASE_LIB_tune-mipsel-nf = "lib" +MIPSPKGSFX_VARIANT_tune-mipsel-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsel-nf = "mipsel-nf" + +TUNE_FEATURES_tune-mips64el-nf-n32 = "n32" +BASE_LIB_tune-mips64el-nf-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64el-nf-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-n32 = "mips64el-nf-n32" + +TUNE_FEATURES_tune-mips64el-nf = "n64" +BASE_LIB_tune-mips64el-nf = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64el-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf = "mips64el-nf" + +# MIPS 64 + o32 +AVAILTUNES += "mips64-o32 mips64el-o32" + +TUNE_FEATURES_tune-mips64-o32 = "o32 bigendian fpu-hard" +BASE_LIB_tune-mips64-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64-o32 = "mips mips64-o32" + +TUNE_FEATURES_tune-mips64el-o32 = "o32 fpu-hard" +BASE_LIB_tune-mips64el-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64el-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64el-o32 = "mipsel mips64el-o32 mips64el-o32" + +# MIPS 64 o32 and Soft Float +AVAILTUNES += "mips64-nf-o32 mips64el-nf-o32" + +TUNE_FEATURES_tune-mips64-nf-o32 = "o32 bigendian" +BASE_LIB_tune-mips64-nf-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64-nf-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64-nf-o32 = "mips-nf mips64-nf-o32" + +TUNE_FEATURES_tune-mips64el-nf-o32 = "o32" +BASE_LIB_tune-mips64el-nf-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64el-nf-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64el-nf-o32 = "mipsel-nf mips64el-nf-o32" diff --git a/poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc b/poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc new file mode 100644 index 0000000000..101d5331bc --- /dev/null +++ b/poky/meta/conf/machine/include/mips/feature-mips-mips16e.inc @@ -0,0 +1,17 @@ +TUNEVALID[mips16e] = "Build target packages with MIPS16e ASE instructions" +MIPS_MIPS16E_OPT = "${@['mno-mips16', 'mips16'][d.getVar('MIPS_INSTRUCTION_SET') == 'mips16e']}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' -${MIPS_MIPS16E_OPT}', '', d)}" + +MIPSPKGSFX_MIPS16E .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', '-m16', '', d) if d.getVar('MIPS_MIPS16E_OPT') == 'mips16' else ''}" + +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows mips16e code to be executed on a primarily +# mips32/64 system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. +TUNEVALID[no-interlink-compressed] = "Disable mixing of standard and MIPS16e code" +MIPS16_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-interlink-compressed', ' -mno-interlink-compressed', ' -minterlink-compressed', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' ${MIPS16_TUNE_CCARGS}', '', d)}" +OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ':mips16e', '', d)}" + +# show status (if compiling in MIPS16e mode) +BUILDCFG_VARS += "${@['', 'MIPS_INSTRUCTION_SET'][d.getVar('MIPS_INSTRUCTION_SET') == 'mips16e']}" diff --git a/poky/meta/conf/machine/include/mips/tune-mips-24k.inc b/poky/meta/conf/machine/include/mips/tune-mips-24k.inc new file mode 100644 index 0000000000..828acd42e3 --- /dev/null +++ b/poky/meta/conf/machine/include/mips/tune-mips-24k.inc @@ -0,0 +1,51 @@ +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" diff --git a/poky/meta/conf/machine/include/powerpc/README b/poky/meta/conf/machine/include/powerpc/README new file mode 100644 index 0000000000..e87fb5082c --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/README @@ -0,0 +1,17 @@ +2012/03/30 - Mark Hatle <mark.hatle@windriver.com> + - Initial revision + +There are 4 primary PowerPC ABIs. +# *) Hard/Soft Floating Point +# *) 32-bit/64-bit + +TUNE_ARCH is defined as either "powerpc" or "powerpc64" based on the m32 +or m64 feature. + +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>. + diff --git a/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc b/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc new file mode 100644 index 0000000000..9cf6b88fd1 --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/arch-powerpc.inc @@ -0,0 +1,34 @@ +# Power Architecture definition +# Four defined ABIs, all combinations of: +# *) Hard/Soft Floating Point +# *) 32-bit/64-bit + +DEFAULTTUNE ?= "powerpc" + +TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" +ABIEXTENSION ?= "" + +TUNEVALID[m32] = "Power ELF32 standard ABI" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', ' -m32', '', d)}" +TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', 'powerpc', '', d)}" + +TUNEVALID[fpu-hard] = "Use hardware FPU." +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard', ' -mhard-float', '', d)}" + +TUNEVALID[fpu-soft] = "Use software FPU." +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', ' -msoft-float', '', d)}" +TARGET_FPU .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', 'soft', '', d)}" + +TUNEVALID[altivec] = "Altivec" + +# Basic tune definitions +AVAILTUNES += "powerpc powerpc-nf" +TUNE_FEATURES_tune-powerpc-nf = "m32 fpu-soft" +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" +BASE_LIB_tune-powerpc = "lib" +TUNE_PKGARCH_tune-powerpc = "powerpc" +PACKAGE_EXTRA_ARCHS_tune-powerpc = "powerpc" diff --git a/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc b/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc new file mode 100644 index 0000000000..f751c6b76c --- /dev/null +++ b/poky/meta/conf/machine/include/powerpc/arch-powerpc64.inc @@ -0,0 +1,17 @@ +DEFAULTTUNE ?= "powerpc64" + +require conf/machine/include/powerpc/arch-powerpc.inc + +TUNEVALID[m64] = "Power ELF64 standard ABI" +TUNECONFLICTS[m64] = "m32 nf" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}" +TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', [ 'm64' ], 'powerpc64', '', d)}" + +# user mode qemu doesn't support ppc64 +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'm64', 'qemu-usermode', '', d)}" + +AVAILTUNES += "powerpc64" +TUNE_FEATURES_tune-powerpc64 = "m64 fpu-hard" +BASE_LIB_tune-powerpc64 = "lib64" +TUNE_PKGARCH_tune-powerpc64 = "powerpc64" +PACKAGE_EXTRA_ARCHS_tune-powerpc64 = "powerpc64" diff --git a/poky/meta/conf/machine/include/qemu.inc b/poky/meta/conf/machine/include/qemu.inc new file mode 100644 index 0000000000..aa332fecc2 --- /dev/null +++ b/poky/meta/conf/machine/include/qemu.inc @@ -0,0 +1,30 @@ +PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg" +PREFERRED_PROVIDER_virtual/egl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgl ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa" +PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa" + +XSERVER ?= "xserver-xorg \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-swrast xserver-xorg-extension-glx', '', d)} \ + xf86-video-fbdev \ + " + +MACHINE_FEATURES = "alsa bluetooth usbgadget screen" + +MACHINEOVERRIDES =. "qemuall:" + +IMAGE_FSTYPES += "tar.bz2 ext4" + +# Don't include kernels in standard images +RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "" + +# Use a common kernel recipe for all QEMU machines +PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" + +EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native" + +# Provide the nfs server kernel module for all qemu images +KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc" +KERNEL_FEATURES_append_pn-linux-yocto-rt = " features/nfsd/nfsd-enable.scc" + +IMAGE_CLASSES += "qemuboot" diff --git a/poky/meta/conf/machine/include/qemuboot-mips.inc b/poky/meta/conf/machine/include/qemuboot-mips.inc new file mode 100644 index 0000000000..7d9fa52da6 --- /dev/null +++ b/poky/meta/conf/machine/include/qemuboot-mips.inc @@ -0,0 +1,8 @@ +# For runqemu +IMAGE_CLASSES += "qemuboot" +QB_MEM = "-m 256" +QB_MACHINE = "-machine malta" +QB_KERNEL_CMDLINE_APPEND = "console=ttyS0 console=tty" +# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_OPT_APPEND = "-vga cirrus -show-cursor -usb -device usb-tablet -device virtio-rng-pci" +QB_SYSTEM_NAME = "qemu-system-${TUNE_ARCH}" diff --git a/poky/meta/conf/machine/include/qemuboot-x86.inc b/poky/meta/conf/machine/include/qemuboot-x86.inc new file mode 100644 index 0000000000..1456bf7e8b --- /dev/null +++ b/poky/meta/conf/machine/include/qemuboot-x86.inc @@ -0,0 +1,17 @@ +# For runqemu +IMAGE_CLASSES += "qemuboot" +QB_SYSTEM_NAME_x86 = "qemu-system-i386" +QB_CPU_x86 = "-cpu pentium2" +QB_CPU_KVM_x86 = "-cpu pentium2" + +QB_SYSTEM_NAME_x86-64 = "qemu-system-x86_64" +QB_CPU_x86-64 = "-cpu core2duo" +QB_CPU_KVM_x86-64 = "-cpu core2duo" + +QB_AUDIO_DRV = "alsa" +QB_AUDIO_OPT = "-soundhw ac97,es1370" +QB_KERNEL_CMDLINE_APPEND = "vga=0 uvesafb.mode_option=${UVESA_MODE} oprofile.timer=1 uvesafb.task_timeout=-1" +# Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy +QB_OPT_APPEND = "-vga vmware -show-cursor -usb -device usb-tablet -device virtio-rng-pci" + +UVESA_MODE ?= "640x480-32" diff --git a/poky/meta/conf/machine/include/sh/README b/poky/meta/conf/machine/include/sh/README new file mode 100644 index 0000000000..b351acdd28 --- /dev/null +++ b/poky/meta/conf/machine/include/sh/README @@ -0,0 +1,11 @@ +2012/03/30 - Mark Hatle <mark.hatle@windriver.com> + - Initial Revision + +Both big endian and little endian are defined for SH. + +Experimental -- SH tunings have not been validated. + +The TUNE_ARCH is defined as ${TUNE_ARCH_tune-${DEFAULTTUNE}}. + +The TUNE_PKGARCH is defind as ${TUNE_PKGARCH_tune-${DEFAULTTUNE}}. + diff --git a/poky/meta/conf/machine/include/sh/arch-sh.inc b/poky/meta/conf/machine/include/sh/arch-sh.inc new file mode 100644 index 0000000000..bdfbf52ca1 --- /dev/null +++ b/poky/meta/conf/machine/include/sh/arch-sh.inc @@ -0,0 +1,9 @@ +# SH Architecture definition + +DEFAULTTUNE ?= "sh" + +TUNE_ARCH = "${TUNE_ARCH_tune-${DEFAULTTUNE}}" +TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" + +TUNEVALID[bigendian] = "Enabled big-endian mode." +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', ' -mb', ' -ml', d)}" diff --git a/poky/meta/conf/machine/include/soc-family.inc b/poky/meta/conf/machine/include/soc-family.inc new file mode 100644 index 0000000000..1ff0899812 --- /dev/null +++ b/poky/meta/conf/machine/include/soc-family.inc @@ -0,0 +1,3 @@ +# Add SOC_FAMILY to machine overrides so we get access to e.g. 'omap3' and 'ti335x' +SOC_FAMILY ??= "" +MACHINEOVERRIDES =. "${@['', '${SOC_FAMILY}:']['${SOC_FAMILY}' != '']}" diff --git a/poky/meta/conf/machine/include/tune-arm1136jf-s.inc b/poky/meta/conf/machine/include/tune-arm1136jf-s.inc new file mode 100644 index 0000000000..c5de63e1cc --- /dev/null +++ b/poky/meta/conf/machine/include/tune-arm1136jf-s.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "armv6hf" + +require conf/machine/include/arm/arch-armv6.inc + +TUNEVALID[arm1136jfs] = "Enable arm1136jfs specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm1136jfs', ' -mcpu=arm1136jf-s', '', d)}" + +AVAILTUNES += "arm1136jfs" +ARMPKGARCH_tune-arm1136jfs = "arm1136jfs" +TUNE_FEATURES_tune-arm1136jfs = "${TUNE_FEATURES_tune-armv6} arm1136jfs" +PACKAGE_EXTRA_ARCHS_tune-arm1136jfs = "${PACKAGE_EXTRA_ARCHS_tune-armv6} arm1136jfs-vfp" diff --git a/poky/meta/conf/machine/include/tune-arm920t.inc b/poky/meta/conf/machine/include/tune-arm920t.inc new file mode 100644 index 0000000000..c6e74b6772 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-arm920t.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "armv4t" + +require conf/machine/include/arm/arch-armv4.inc + +TUNEVALID[arm920t] = "Enable arm920t specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm920t', ' -mcpu=arm920t', '', d)}" + +AVAILTUNES += "arm920t" +ARMPKGARCH_tune-arm920t = "arm920t" +TUNE_FEATURES_tune-arm920t = "${TUNE_FEATURES_tune-armv4t} arm920t" +PACKAGE_EXTRA_ARCHS_tune-arm920t = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm920t arm920tt" diff --git a/poky/meta/conf/machine/include/tune-arm926ejs.inc b/poky/meta/conf/machine/include/tune-arm926ejs.inc new file mode 100644 index 0000000000..81bcda339b --- /dev/null +++ b/poky/meta/conf/machine/include/tune-arm926ejs.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "armv5te" + +require conf/machine/include/arm/arch-armv5-dsp.inc + +TUNEVALID[arm926ejs] = "Enable arm926ejs specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm926ejs', ' -mcpu=arm926ej-s', '', d)}" + +AVAILTUNES += "arm926ejs" +ARMPKGARCH_tune-arm926ejs = "arm926ejs" +TUNE_FEATURES_tune-arm926ejs = "${TUNE_FEATURES_tune-armv5te} arm926ejs" +PACKAGE_EXTRA_ARCHS_tune-arm926ejs = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} arm926ejste arm926ejse" diff --git a/poky/meta/conf/machine/include/tune-arm9tdmi.inc b/poky/meta/conf/machine/include/tune-arm9tdmi.inc new file mode 100644 index 0000000000..e9c2b8fcf5 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-arm9tdmi.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "armv4t" + +require conf/machine/include/arm/arch-armv4.inc + +TUNEVALID[arm9tdmi] = "Enable arm9tdmi specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'arm9tdmi', ' -mcpu=arm9tdmi', '', d)}" + +AVAILTUNES += "arm9tdmi" +ARMPKGARCH_tune-arm9tdmi = "arm9tdmi" +TUNE_FEATURES_tune-arm9tdmi = "${TUNE_FEATURES_tune-armv4t} arm9tdmi" +PACKAGE_EXTRA_ARCHS_tune-arm9tdmi = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} arm9tdmit" diff --git a/poky/meta/conf/machine/include/tune-atom.inc b/poky/meta/conf/machine/include/tune-atom.inc new file mode 100644 index 0000000000..5e1bb74c6c --- /dev/null +++ b/poky/meta/conf/machine/include/tune-atom.inc @@ -0,0 +1,2 @@ +# Atom tunings are the same as core2 for now... +require conf/machine/include/tune-core2.inc diff --git a/poky/meta/conf/machine/include/tune-c3.inc b/poky/meta/conf/machine/include/tune-c3.inc new file mode 100644 index 0000000000..1b272b2505 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-c3.inc @@ -0,0 +1,12 @@ +require conf/machine/include/x86/arch-x86.inc + +TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations" +TUNECONFLICTS[c3] = "m64 mx32" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'c3', ' -march=c3 -mtune=c3', '', d)}" + +AVAILTUNES += "c3" +TUNE_FEATURES_tune-c3 = "${TUNE_FEATURES_tune-x86} c3" +BASE_LIBS_tune-c3 = "${BASE_LIB_tune-x86}" +# The following should likely be something other then i586... +TUNE_PKGARCH_tune-c3 = "i586" +PACKAGE_EXTRA_ARCHS_tune-c3 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586" diff --git a/poky/meta/conf/machine/include/tune-core2.inc b/poky/meta/conf/machine/include/tune-core2.inc new file mode 100644 index 0000000000..c686bb4682 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-core2.inc @@ -0,0 +1,38 @@ +# Settings for the GCC(1) cpu-type "core2": +# +# Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 +# instruction set support. +# +# This tune is recommended for the Intel Core 2 CPU family, including Conroe, +# Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond. +# +DEFAULTTUNE ?= "core2-32" + +# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS +require conf/machine/include/tune-i686.inc + +# Extra tune features +TUNEVALID[core2] = "Enable core2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'core2', ' -march=core2 -mtune=core2 -msse3 -mfpmath=sse', '', d)}" + +# Extra tune selections +AVAILTUNES += "core2-32" +TUNE_FEATURES_tune-core2-32 = "${TUNE_FEATURES_tune-x86} core2" +BASE_LIB_tune-core2-32 = "lib" +TUNE_PKGARCH_tune-core2-32 = "core2-32" +PACKAGE_EXTRA_ARCHS_tune-core2-32 = "${PACKAGE_EXTRA_ARCHS_tune-i686} core2-32" +QEMU_EXTRAOPTIONS_core2-32 = " -cpu core2duo" + +AVAILTUNES += "core2-64" +TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2" +BASE_LIB_tune-core2-64 = "lib64" +TUNE_PKGARCH_tune-core2-64 = "core2-64" +PACKAGE_EXTRA_ARCHS_tune-core2-64 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64} core2-64" +QEMU_EXTRAOPTIONS_core2-64 = " -cpu core2duo" + +AVAILTUNES += "core2-64-x32" +TUNE_FEATURES_tune-core2-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} core2" +BASE_LIB_tune-core2-64-x32 = "libx32" +TUNE_PKGARCH_tune-core2-64-x32 = "core2-64-x32" +PACKAGE_EXTRA_ARCHS_tune-core2-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-x86-64-x32} core2-64-x32" +QEMU_EXTRAOPTIONS_core2-64-x32 = " -cpu core2duo" diff --git a/poky/meta/conf/machine/include/tune-corei7.inc b/poky/meta/conf/machine/include/tune-corei7.inc new file mode 100644 index 0000000000..6edfb680e2 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-corei7.inc @@ -0,0 +1,39 @@ +# Settings for the GCC(1) cpu-type "corei7": +# +# Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 +# and SSE4.2 instruction set support. +# +# This tune is recommended for Intel Nehalem and Silvermont (e.g. Bay Trail) CPUs +# (and beyond). +# +DEFAULTTUNE ?= "corei7-64" + +# Pull in the previous tune in to pull in PACKAGE_EXTRA_ARCHS +require conf/machine/include/tune-core2.inc + + +# Extra tune features +TUNEVALID[corei7] = "Enable corei7 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'corei7', ' -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2', '', d)}" + +# Extra tune selections +AVAILTUNES += "corei7-32" +TUNE_FEATURES_tune-corei7-32 = "${TUNE_FEATURES_tune-x86} corei7" +BASE_LIB_tune-corei7-32 = "lib" +TUNE_PKGARCH_tune-corei7-32 = "corei7-32" +PACKAGE_EXTRA_ARCHS_tune-corei7-32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-32} corei7-32" +QEMU_EXTRAOPTIONS_corei7-32 = " -cpu Nehalem,check=false" + +AVAILTUNES += "corei7-64" +TUNE_FEATURES_tune-corei7-64 = "${TUNE_FEATURES_tune-x86-64} corei7" +BASE_LIB_tune-corei7-64 = "lib64" +TUNE_PKGARCH_tune-corei7-64 = "corei7-64" +PACKAGE_EXTRA_ARCHS_tune-corei7-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7-64" +QEMU_EXTRAOPTIONS_corei7-64 = " -cpu Nehalem,check=false" + +AVAILTUNES += "corei7-64-x32" +TUNE_FEATURES_tune-corei7-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} corei7" +BASE_LIB_tune-corei7-64-x32 = "libx32" +TUNE_PKGARCH_tune-corei7-64-x32 = "corei7-64-x32" +PACKAGE_EXTRA_ARCHS_tune-corei7-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64-x32} corei7-64-x32" +QEMU_EXTRAOPTIONS_corei7-64-x32 = " -cpu Nehalem,check=false" diff --git a/poky/meta/conf/machine/include/tune-cortexa15.inc b/poky/meta/conf/machine/include/tune-cortexa15.inc new file mode 100644 index 0000000000..25e99f93d7 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortexa15.inc @@ -0,0 +1,48 @@ +DEFAULTTUNE ?= "armv7vethf-neon" + +require conf/machine/include/arm/arch-armv7ve.inc + +TUNEVALID[cortexa15] = "Enable Cortex-A15 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa15', ' -mcpu=cortex-a15', '', d)}" + +# Little Endian base configs +AVAILTUNES += "cortexa15 cortexa15t cortexa15-neon cortexa15t-neon cortexa15-neon-vfpv4 cortexa15t-neon-vfpv4" +ARMPKGARCH_tune-cortexa15 = "cortexa15" +ARMPKGARCH_tune-cortexa15t = "cortexa15" +ARMPKGARCH_tune-cortexa15-neon = "cortexa15" +ARMPKGARCH_tune-cortexa15t-neon = "cortexa15" +ARMPKGARCH_tune-cortexa15-neon-vfpv4 = "cortexa15" +ARMPKGARCH_tune-cortexa15t-neon-vfpv4 = "cortexa15" +TUNE_FEATURES_tune-cortexa15 = "${TUNE_FEATURES_tune-armv7ve} cortexa15" +TUNE_FEATURES_tune-cortexa15t = "${TUNE_FEATURES_tune-armv7vet} cortexa15" +TUNE_FEATURES_tune-cortexa15-neon = "${TUNE_FEATURES_tune-armv7ve-neon} cortexa15" +TUNE_FEATURES_tune-cortexa15t-neon = "${TUNE_FEATURES_tune-armv7vet-neon} cortexa15" +TUNE_FEATURES_tune-cortexa15-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa15" +TUNE_FEATURES_tune-cortexa15t-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa15" +PACKAGE_EXTRA_ARCHS_tune-cortexa15 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa15-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa15t = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa15-vfp cortexa15t2-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa15-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa15-vfp cortexa15-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa15t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} cortexa15-vfp cortexa15-neon cortexa15t2-vfp cortexa15t2-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa15-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4} cortexa15-vfp cortexa15-neon cortexa15-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa15t-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4} cortexa15-vfp cortexa15-neon cortexa15-neon-vfpv4 cortexa15t2-vfp cortexa15t2-neon cortexa15t2-neon-vfpv4" + +# HF Tunes +AVAILTUNES += "cortexa15hf cortexa15thf cortexa15hf-neon cortexa15thf-neon cortexa15hf-neon-vfpv4 cortexa15thf-neon-vfpv4" +ARMPKGARCH_tune-cortexa15hf = "cortexa15" +ARMPKGARCH_tune-cortexa15thf = "cortexa15" +ARMPKGARCH_tune-cortexa15hf-neon = "cortexa15" +ARMPKGARCH_tune-cortexa15thf-neon = "cortexa15" +ARMPKGARCH_tune-cortexa15hf-neon-vfpv4 = "cortexa15" +ARMPKGARCH_tune-cortexa15thf-neon-vfpv4 = "cortexa15" +TUNE_FEATURES_tune-cortexa15hf = "${TUNE_FEATURES_tune-armv7vehf} cortexa15" +TUNE_FEATURES_tune-cortexa15thf = "${TUNE_FEATURES_tune-armv7vethf} cortexa15" +TUNE_FEATURES_tune-cortexa15hf-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa15" +TUNE_FEATURES_tune-cortexa15thf-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa15" +TUNE_FEATURES_tune-cortexa15hf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa15" +TUNE_FEATURES_tune-cortexa15thf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa15" +PACKAGE_EXTRA_ARCHS_tune-cortexa15hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa15hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa15thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa15hf-vfp cortexa15t2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa15hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa15hf-vfp cortexa15hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa15thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} cortexa15hf-vfp cortexa15hf-neon cortexa15t2hf-vfp cortexa15t2hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa15hf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4} cortexa15hf-vfp cortexa15hf-neon cortexa15hf-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa15thf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4} cortexa15hf-vfp cortexa15hf-neon cortexa15hf-neon-vfpv4 cortexa15t2hf-vfp cortexa15t2hf-neon cortexa15t2hf-neon-vfpv4" diff --git a/poky/meta/conf/machine/include/tune-cortexa17.inc b/poky/meta/conf/machine/include/tune-cortexa17.inc new file mode 100644 index 0000000000..40392f9bcc --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortexa17.inc @@ -0,0 +1,48 @@ +DEFAULTTUNE ?= "armv7vethf-neon" + +require conf/machine/include/arm/arch-armv7ve.inc + +TUNEVALID[cortexa17] = "Enable Cortex-A17 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa17', ' -mcpu=cortex-a17', '', d)}" + +# Little Endian base configs +AVAILTUNES += "cortexa17 cortexa17t cortexa17-neon cortexa17t-neon cortexa17-neon-vfpv4 cortexa17t-neon-vfpv4" +ARMPKGARCH_tune-cortexa17 = "cortexa17" +ARMPKGARCH_tune-cortexa17t = "cortexa17" +ARMPKGARCH_tune-cortexa17-neon = "cortexa17" +ARMPKGARCH_tune-cortexa17t-neon = "cortexa17" +ARMPKGARCH_tune-cortexa17-neon-vfpv4 = "cortexa17" +ARMPKGARCH_tune-cortexa17t-neon-vfpv4 = "cortexa17" +TUNE_FEATURES_tune-cortexa17 = "${TUNE_FEATURES_tune-armv7ve} cortexa17" +TUNE_FEATURES_tune-cortexa17t = "${TUNE_FEATURES_tune-armv7vet} cortexa17" +TUNE_FEATURES_tune-cortexa17-neon = "${TUNE_FEATURES_tune-armv7ve-neon} cortexa17" +TUNE_FEATURES_tune-cortexa17t-neon = "${TUNE_FEATURES_tune-armv7vet-neon} cortexa17" +TUNE_FEATURES_tune-cortexa17-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa17" +TUNE_FEATURES_tune-cortexa17t-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa17" +PACKAGE_EXTRA_ARCHS_tune-cortexa17 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa17-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa17t = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa17-vfp cortexa17t2-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa17-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa17-vfp cortexa17-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa17t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} cortexa17-vfp cortexa17-neon cortexa17t2-vfp cortexa17t2-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa17-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4} cortexa17-vfp cortexa17-neon cortexa17-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa17t-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4} cortexa17-vfp cortexa17-neon cortexa17-neon-vfpv4 cortexa17t2-vfp cortexa17t2-neon cortexa17t2-neon-vfpv4" + +# HF Tunes +AVAILTUNES += "cortexa17hf cortexa17thf cortexa17hf-neon cortexa17thf-neon cortexa17hf-neon-vfpv4 cortexa17thf-neon-vfpv4" +ARMPKGARCH_tune-cortexa17hf = "cortexa17" +ARMPKGARCH_tune-cortexa17thf = "cortexa17" +ARMPKGARCH_tune-cortexa17hf-neon = "cortexa17" +ARMPKGARCH_tune-cortexa17thf-neon = "cortexa17" +ARMPKGARCH_tune-cortexa17hf-neon-vfpv4 = "cortexa17" +ARMPKGARCH_tune-cortexa17thf-neon-vfpv4 = "cortexa17" +TUNE_FEATURES_tune-cortexa17hf = "${TUNE_FEATURES_tune-armv7vehf} cortexa17" +TUNE_FEATURES_tune-cortexa17thf = "${TUNE_FEATURES_tune-armv7vethf} cortexa17" +TUNE_FEATURES_tune-cortexa17hf-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa17" +TUNE_FEATURES_tune-cortexa17thf-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa17" +TUNE_FEATURES_tune-cortexa17hf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa17" +TUNE_FEATURES_tune-cortexa17thf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa17" +PACKAGE_EXTRA_ARCHS_tune-cortexa17hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa17hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa17thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa17hf-vfp cortexa17t2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa17hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa17hf-vfp cortexa17hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa17thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} cortexa17hf-vfp cortexa17hf-neon cortexa17t2hf-vfp cortexa17t2hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa17hf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4} cortexa17hf-vfp cortexa17hf-neon cortexa17hf-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa17thf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4} cortexa17hf-vfp cortexa17hf-neon cortexa17hf-neon-vfpv4 cortexa17t2hf-vfp cortexa17t2hf-neon cortexa17t2hf-neon-vfpv4" diff --git a/poky/meta/conf/machine/include/tune-cortexa5.inc b/poky/meta/conf/machine/include/tune-cortexa5.inc new file mode 100644 index 0000000000..1f0cda6640 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortexa5.inc @@ -0,0 +1,36 @@ +DEFAULTTUNE ?= "armv7athf-neon" + +require conf/machine/include/arm/arch-armv7a.inc + +TUNEVALID[cortexa5] = "Enable Cortex-A5 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa5', ' -mcpu=cortex-a5', '', d)}" + +# Little Endian base configs +AVAILTUNES += "cortexa5 cortexa5t cortexa5-neon cortexa5t-neon" +ARMPKGARCH_tune-cortexa5 = "cortexa5" +ARMPKGARCH_tune-cortexa5t = "cortexa5" +ARMPKGARCH_tune-cortexa5-neon = "cortexa5" +ARMPKGARCH_tune-cortexa5t-neon = "cortexa5" +TUNE_FEATURES_tune-cortexa5 = "${TUNE_FEATURES_tune-armv7a} cortexa5" +TUNE_FEATURES_tune-cortexa5t = "${TUNE_FEATURES_tune-armv7at} cortexa5" +TUNE_FEATURES_tune-cortexa5-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa5" +TUNE_FEATURES_tune-cortexa5t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa5" +PACKAGE_EXTRA_ARCHS_tune-cortexa5 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa5-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa5t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa5-vfp cortexa5t2-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa5-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa5-vfp cortexa5-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa5t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa5-vfp cortexa5-neon cortexa5t2-vfp cortexa5t2-neon" + +# HF Tunes +AVAILTUNES += "cortexa5hf cortexa5thf cortexa5hf-neon cortexa5thf-neon" +ARMPKGARCH_tune-cortexa5hf = "cortexa5" +ARMPKGARCH_tune-cortexa5thf = "cortexa5" +ARMPKGARCH_tune-cortexa5hf-neon = "cortexa5" +ARMPKGARCH_tune-cortexa5thf-neon = "cortexa5" +TUNE_FEATURES_tune-cortexa5hf = "${TUNE_FEATURES_tune-armv7ahf} cortexa5" +TUNE_FEATURES_tune-cortexa5thf = "${TUNE_FEATURES_tune-armv7athf} cortexa5" +TUNE_FEATURES_tune-cortexa5hf-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa5" +TUNE_FEATURES_tune-cortexa5thf-neon = "${TUNE_FEATURES_tune-armv7athf-neon} cortexa5" +PACKAGE_EXTRA_ARCHS_tune-cortexa5hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa5hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa5thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa5hf-vfp cortexa5t2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa5hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa5hf-vfp cortexa5hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa5thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa5hf-vfp cortexa5hf-neon cortexa5t2hf-vfp cortexa5t2hf-neon" diff --git a/poky/meta/conf/machine/include/tune-cortexa7.inc b/poky/meta/conf/machine/include/tune-cortexa7.inc new file mode 100644 index 0000000000..52415d9c8b --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortexa7.inc @@ -0,0 +1,48 @@ +DEFAULTTUNE ?= "armv7vethf-neon" + +require conf/machine/include/arm/arch-armv7ve.inc + +TUNEVALID[cortexa7] = "Enable Cortex-A7 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa7', ' -mcpu=cortex-a7', '', d)}" + +# Little Endian base configs +AVAILTUNES += "cortexa7 cortexa7t cortexa7-neon cortexa7t-neon cortexa7-neon-vfpv4 cortexa7t-neon-vfpv4" +ARMPKGARCH_tune-cortexa7 = "cortexa7" +ARMPKGARCH_tune-cortexa7t = "cortexa7" +ARMPKGARCH_tune-cortexa7-neon = "cortexa7" +ARMPKGARCH_tune-cortexa7t-neon = "cortexa7" +ARMPKGARCH_tune-cortexa7-neon-vfpv4 = "cortexa7" +ARMPKGARCH_tune-cortexa7t-neon-vfpv4 = "cortexa7" +TUNE_FEATURES_tune-cortexa7 = "${TUNE_FEATURES_tune-armv7ve} cortexa7" +TUNE_FEATURES_tune-cortexa7t = "${TUNE_FEATURES_tune-armv7vet} cortexa7" +TUNE_FEATURES_tune-cortexa7-neon = "${TUNE_FEATURES_tune-armv7ve-neon} cortexa7" +TUNE_FEATURES_tune-cortexa7t-neon = "${TUNE_FEATURES_tune-armv7vet-neon} cortexa7" +TUNE_FEATURES_tune-cortexa7-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7ve-neon-vfpv4} cortexa7" +TUNE_FEATURES_tune-cortexa7t-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vet-neon-vfpv4} cortexa7" +PACKAGE_EXTRA_ARCHS_tune-cortexa7 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa7-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa7t = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet} cortexa7-vfp cortexa7t2-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon} cortexa7-vfp cortexa7-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon} cortexa7-vfp cortexa7-neon cortexa7t2-vfp cortexa7t2-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa7-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve-neon-vfpv4} cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa7t-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vet-neon-vfpv4} cortexa7-vfp cortexa7-neon cortexa7-neon-vfpv4 cortexa7t2-vfp cortexa7t2-neon cortexa7t2-neon-vfpv4" + +# HF Tunes +AVAILTUNES += "cortexa7hf cortexa7thf cortexa7hf-neon cortexa7thf-neon cortexa7hf-neon-vfpv4 cortexa7thf-neon-vfpv4" +ARMPKGARCH_tune-cortexa7hf = "cortexa7" +ARMPKGARCH_tune-cortexa7thf = "cortexa7" +ARMPKGARCH_tune-cortexa7hf-neon = "cortexa7" +ARMPKGARCH_tune-cortexa7thf-neon = "cortexa7" +ARMPKGARCH_tune-cortexa7hf-neon-vfpv4 = "cortexa7" +ARMPKGARCH_tune-cortexa7thf-neon-vfpv4 = "cortexa7" +TUNE_FEATURES_tune-cortexa7hf = "${TUNE_FEATURES_tune-armv7vehf} cortexa7" +TUNE_FEATURES_tune-cortexa7thf = "${TUNE_FEATURES_tune-armv7vethf} cortexa7" +TUNE_FEATURES_tune-cortexa7hf-neon = "${TUNE_FEATURES_tune-armv7vehf-neon} cortexa7" +TUNE_FEATURES_tune-cortexa7thf-neon = "${TUNE_FEATURES_tune-armv7vethf-neon} cortexa7" +TUNE_FEATURES_tune-cortexa7hf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vehf-neon-vfpv4} cortexa7" +TUNE_FEATURES_tune-cortexa7thf-neon-vfpv4 = "${TUNE_FEATURES_tune-armv7vethf-neon-vfpv4} cortexa7" +PACKAGE_EXTRA_ARCHS_tune-cortexa7hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf} cortexa7hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa7thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf} cortexa7hf-vfp cortexa7t2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon} cortexa7hf-vfp cortexa7hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon} cortexa7hf-vfp cortexa7hf-neon cortexa7t2hf-vfp cortexa7t2hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa7hf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vehf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4" +PACKAGE_EXTRA_ARCHS_tune-cortexa7thf-neon-vfpv4 = "${PACKAGE_EXTRA_ARCHS_tune-armv7vethf-neon-vfpv4} cortexa7hf-vfp cortexa7hf-neon cortexa7hf-neon-vfpv4 cortexa7t2hf-vfp cortexa7t2hf-neon cortexa7t2hf-neon-vfpv4" diff --git a/poky/meta/conf/machine/include/tune-cortexa8.inc b/poky/meta/conf/machine/include/tune-cortexa8.inc new file mode 100644 index 0000000000..8ee8de97f1 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortexa8.inc @@ -0,0 +1,36 @@ +DEFAULTTUNE ?= "armv7athf-neon" + +require conf/machine/include/arm/arch-armv7a.inc + +TUNEVALID[cortexa8] = "Enable Cortex-A8 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa8', ' -mcpu=cortex-a8', '', d)}" + +# Little Endian base configs +AVAILTUNES += "cortexa8 cortexa8t cortexa8-neon cortexa8t-neon" +ARMPKGARCH_tune-cortexa8 = "cortexa8" +ARMPKGARCH_tune-cortexa8t = "cortexa8" +ARMPKGARCH_tune-cortexa8-neon = "cortexa8" +ARMPKGARCH_tune-cortexa8t-neon = "cortexa8" +TUNE_FEATURES_tune-cortexa8 = "${TUNE_FEATURES_tune-armv7a} cortexa8" +TUNE_FEATURES_tune-cortexa8t = "${TUNE_FEATURES_tune-armv7at} cortexa8" +TUNE_FEATURES_tune-cortexa8-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa8" +TUNE_FEATURES_tune-cortexa8t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa8" +PACKAGE_EXTRA_ARCHS_tune-cortexa8 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa8-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa8t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa8-vfp cortexa8t2-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa8-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa8-vfp cortexa8-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa8t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa8-vfp cortexa8-neon cortexa8t2-vfp cortexa8t2-neon" + +# HF Tunes +AVAILTUNES += "cortexa8hf cortexa8thf cortexa8hf-neon cortexa8thf-neon" +ARMPKGARCH_tune-cortexa8hf = "cortexa8" +ARMPKGARCH_tune-cortexa8thf = "cortexa8" +ARMPKGARCH_tune-cortexa8hf-neon = "cortexa8" +ARMPKGARCH_tune-cortexa8thf-neon = "cortexa8" +TUNE_FEATURES_tune-cortexa8hf = "${TUNE_FEATURES_tune-armv7ahf} cortexa8" +TUNE_FEATURES_tune-cortexa8thf = "${TUNE_FEATURES_tune-armv7athf} cortexa8" +TUNE_FEATURES_tune-cortexa8hf-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa8" +TUNE_FEATURES_tune-cortexa8thf-neon = "${TUNE_FEATURES_tune-armv7athf-neon} cortexa8" +PACKAGE_EXTRA_ARCHS_tune-cortexa8hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa8hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa8thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa8hf-vfp cortexa8t2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa8hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa8hf-vfp cortexa8hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa8thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa8hf-vfp cortexa8hf-neon cortexa8t2hf-vfp cortexa8t2hf-neon" diff --git a/poky/meta/conf/machine/include/tune-cortexa9.inc b/poky/meta/conf/machine/include/tune-cortexa9.inc new file mode 100644 index 0000000000..0cf323c960 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-cortexa9.inc @@ -0,0 +1,51 @@ +DEFAULTTUNE ?= "armv7athf-neon" + +require conf/machine/include/arm/arch-armv7a.inc + +TUNEVALID[cortexa9] = "Enable Cortex-A9 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexa9', ' -mcpu=cortex-a9', '', d)}" + +# Little Endian base configs +AVAILTUNES += "cortexa9 cortexa9t cortexa9-neon cortexa9t-neon" +ARMPKGARCH_tune-cortexa9 = "cortexa9" +ARMPKGARCH_tune-cortexa9t = "cortexa9" +ARMPKGARCH_tune-cortexa9-neon = "cortexa9" +ARMPKGARCH_tune-cortexa9t-neon = "cortexa9" +TUNE_FEATURES_tune-cortexa9 = "${TUNE_FEATURES_tune-armv7a} cortexa9" +TUNE_FEATURES_tune-cortexa9t = "${TUNE_FEATURES_tune-armv7at} cortexa9" +TUNE_FEATURES_tune-cortexa9-neon = "${TUNE_FEATURES_tune-armv7a-neon} cortexa9" +TUNE_FEATURES_tune-cortexa9t-neon = "${TUNE_FEATURES_tune-armv7at-neon} cortexa9" +PACKAGE_EXTRA_ARCHS_tune-cortexa9 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a} cortexa9-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa9t = "${PACKAGE_EXTRA_ARCHS_tune-armv7at} cortexa9-vfp cortexa9t2-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa9-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} cortexa9-vfp cortexa9-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa9t-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-neon} cortexa9-vfp cortexa9-neon cortexa9t2-vfp cortexa9t2-neon" + +# HF Tunes +AVAILTUNES += "cortexa9hf cortexa9thf cortexa9hf-neon cortexa9thf-neon" +ARMPKGARCH_tune-cortexa9hf = "cortexa9" +ARMPKGARCH_tune-cortexa9thf = "cortexa9" +ARMPKGARCH_tune-cortexa9hf-neon = "cortexa9" +ARMPKGARCH_tune-cortexa9thf-neon = "cortexa9" +TUNE_FEATURES_tune-cortexa9hf = "${TUNE_FEATURES_tune-armv7ahf} cortexa9" +TUNE_FEATURES_tune-cortexa9thf = "${TUNE_FEATURES_tune-armv7athf} cortexa9" +TUNE_FEATURES_tune-cortexa9hf-neon = "${TUNE_FEATURES_tune-armv7ahf-neon} cortexa9" +TUNE_FEATURES_tune-cortexa9thf-neon = "${TUNE_FEATURES_tune-armv7athf-neon} cortexa9" +PACKAGE_EXTRA_ARCHS_tune-cortexa9hf = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf} cortexa9hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa9thf = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf} cortexa9hf-vfp cortexa9t2hf-vfp" +PACKAGE_EXTRA_ARCHS_tune-cortexa9hf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-neon} cortexa9hf-vfp cortexa9hf-neon" +PACKAGE_EXTRA_ARCHS_tune-cortexa9thf-neon = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-neon} cortexa9hf-vfp cortexa9hf-neon cortexa9t2hf-vfp cortexa9t2hf-neon" + +# VFPv3 Tunes +AVAILTUNES += "cortexa9-vfpv3 cortexa9t-vfpv3 cortexa9hf-vfpv3 cortexa9thf-vfpv3" +ARMPKGARCH_tune-cortexa9-vfpv3 = "cortexa9" +ARMPKGARCH_tune-cortexa9t-vfpv3 = "cortexa9" +ARMPKGARCH_tune-cortexa9hf-vfpv3 = "cortexa9" +ARMPKGARCH_tune-cortexa9thf-vfpv3 = "cortexa9" +TUNE_FEATURES_tune-cortexa9-vfpv3 = "${TUNE_FEATURES_tune-armv7a-vfpv3} cortexa9" +TUNE_FEATURES_tune-cortexa9t-vfpv3 = "${TUNE_FEATURES_tune-armv7at-vfpv3} cortexa9" +TUNE_FEATURES_tune-cortexa9hf-vfpv3 = "${TUNE_FEATURES_tune-armv7ahf-vfpv3} cortexa9" +TUNE_FEATURES_tune-cortexa9thf-vfpv3 = "${TUNE_FEATURES_tune-armv7athf-vfpv3} cortexa9" +PACKAGE_EXTRA_ARCHS_tune-cortexa9-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-vfpv3} cortexa9-vfp cortexa9-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-cortexa9t-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7at-vfpv3} cortexa9-vfp cortexa9-vfpv3 cortexa9t2-vfp cortexa9t2-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-cortexa9hf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7ahf-vfpv3} cortexa9hf-vfp cortexa9hf-vfpv3" +PACKAGE_EXTRA_ARCHS_tune-cortexa9thf-vfpv3 = "${PACKAGE_EXTRA_ARCHS_tune-armv7athf-vfpv3} cortexa9hf-vfp cortexa9hf-vfpv3 cortexa9t2hf-vfp cortexa9t2hf-vfpv3" diff --git a/poky/meta/conf/machine/include/tune-ep9312.inc b/poky/meta/conf/machine/include/tune-ep9312.inc new file mode 100644 index 0000000000..84ca528d6d --- /dev/null +++ b/poky/meta/conf/machine/include/tune-ep9312.inc @@ -0,0 +1,12 @@ +DEFAULTTUNE ?= "ep9312" + +require conf/machine/include/arm/arch-armv4.inc + +TUNEVALID[ep9312] = "Enable Intel PXA27x specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'ep9312', ' -march=ep9312 -mcpu=ep9312', '', d)}" + +AVAILTUNES += "ep9312" +ARMPKGARCH_tune-ep9312 = "ep9312" +# this tune does not include TUNE_FEATURES_tune-armv4t, so there is no armv4 TUNE_FEATURES => no 't' in ARMPKGSFX_THUMB +TUNE_FEATURES_tune-ep9312 = "thumb ep9312" +PACKAGE_EXTRA_ARCHS_tune-ep9312 = "${PACKAGE_EXTRA_ARCHS_tune-armv4t} ep9312" diff --git a/poky/meta/conf/machine/include/tune-i586-nlp.inc b/poky/meta/conf/machine/include/tune-i586-nlp.inc new file mode 100644 index 0000000000..88e59038fa --- /dev/null +++ b/poky/meta/conf/machine/include/tune-i586-nlp.inc @@ -0,0 +1,19 @@ +# Settings for the GCC(1) cpu-type "quark": +# +# +# +DEFAULTTUNE ?= "i586-nlp-32" + +# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS +require conf/machine/include/x86/arch-x86.inc + +# x86 with no lock prefix +TUNEVALID[i586-nlp] = "IA32 with Lock Prefix omitted" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'i586-nlp', ' -march=i586 -Wa,-momit-lock-prefix=yes', '', d)}" + +# Quark tune feature +AVAILTUNES = "i586-nlp-32" +TUNE_FEATURES_tune-i586-nlp-32 = "${TUNE_FEATURES_tune-x86} i586-nlp" +BASE_LIB_tune-i586-nlp-32 = "lib" +TUNE_PKGARCH_tune-i586-nlp-32 = "i586-nlp-32" +PACKAGE_EXTRA_ARCHS_tune-i586-nlp-32 = "i586-nlp-32" diff --git a/poky/meta/conf/machine/include/tune-i586.inc b/poky/meta/conf/machine/include/tune-i586.inc new file mode 100644 index 0000000000..1ab17bd402 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-i586.inc @@ -0,0 +1,14 @@ +DEFAULTTUNE ?= "i586" + +require conf/machine/include/x86/arch-x86.inc + +# Extra tune features +TUNEVALID[i586] = "Enable i586 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'i586', ' -march=i586', '', d)}" + +# Extra tune selections +AVAILTUNES += "i586" +TUNE_FEATURES_tune-i586 = "${TUNE_FEATURES_tune-x86} i586" +BASE_LIB_tune-i586 = "lib" +TUNE_PKGARCH_tune-i586 = "i586" +PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i586" diff --git a/poky/meta/conf/machine/include/tune-i686.inc b/poky/meta/conf/machine/include/tune-i686.inc new file mode 100644 index 0000000000..bdb4799209 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-i686.inc @@ -0,0 +1,27 @@ +# +# The i686 CPU family was introduced with the Intel Pentium Pro in 1995. +# It has as required feature flags: fpu tsc cx8 cmov. +# +# It is the minimum CPU required by the Debian i386 port. +# https://lists.debian.org/debian-devel-announce/2016/05/msg00001.html +# +# + +DEFAULTTUNE ?= "i686" + +# Set x86 target arch to i686, so that glibc enables SSE optimised memcpy, etc. +X86ARCH32 ?= "i686" + +# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS +require conf/machine/include/tune-i586.inc + +# Extra tune features +TUNEVALID[i686] = "Enable i686 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'i686', ' -march=i686', '', d)}" + +# Extra tune selections +AVAILTUNES += "i686" +TUNE_FEATURES_tune-i686 = "${TUNE_FEATURES_tune-x86} i686" +BASE_LIB_tune-i686 = "lib" +TUNE_PKGARCH_tune-i686 = "i686" +PACKAGE_EXTRA_ARCHS_tune-i686 = "${PACKAGE_EXTRA_ARCHS_tune-i586} i686" diff --git a/poky/meta/conf/machine/include/tune-iwmmxt.inc b/poky/meta/conf/machine/include/tune-iwmmxt.inc new file mode 100644 index 0000000000..f27423cb2e --- /dev/null +++ b/poky/meta/conf/machine/include/tune-iwmmxt.inc @@ -0,0 +1,14 @@ +# Configurations for the Intel PXA27x Appications Processor Family. +# Please use tune-xscale for PXA255/PXA26x based processors. + +DEFAULTTUNE ?= "iwmmxt" + +require conf/machine/include/arm/arch-armv5-dsp.inc + +TUNEVALID[iwmmxt] = "Enable Intel PXA27x specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'iwmmxt', ' -march=iwmmxt -mcpu=iwmmxt', '', d)}" + +AVAILTUNES += "iwmmxt" +ARMPKGARCH_tune-iwmmxt = "iwmmxt" +TUNE_FEATURES_tune-iwmmxt = "thumb iwmmxt" +PACKAGE_EXTRA_ARCHS_tune-iwmmxt = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} iwmmxt iwmmxtt" diff --git a/poky/meta/conf/machine/include/tune-microblaze.inc b/poky/meta/conf/machine/include/tune-microblaze.inc new file mode 100644 index 0000000000..41f0afe668 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-microblaze.inc @@ -0,0 +1,8 @@ +DEFAULTTUNE ?= "microblaze" + +require conf/machine/include/microblaze/arch-microblaze.inc + +AVAILTUNES += "microblaze" +TUNE_FEATURES_tune-microblaze = "microblaze" +PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" + diff --git a/poky/meta/conf/machine/include/tune-mips32.inc b/poky/meta/conf/machine/include/tune-mips32.inc new file mode 100644 index 0000000000..a90c0f059d --- /dev/null +++ b/poky/meta/conf/machine/include/tune-mips32.inc @@ -0,0 +1,29 @@ +DEFAULTTUNE ?= "mips32" + +require conf/machine/include/mips/arch-mips.inc + +TUNEVALID[mips32] = "Enable mips32 specific processor optimizations" +TUNECONFLICTS[mips32] = "n64 n32" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32', ' -march=mips32', '', d)}" + +# Base Tunes (Hard Float) +AVAILTUNES += "mips32 mips32el" + +TUNE_FEATURES_tune-mips32 = "${TUNE_FEATURES_tune-mips} mips32" +MIPSPKGSFX_VARIANT_tune-mips32 = "mips32" +PACKAGE_EXTRA_ARCHS_tune-mips32 = "mips mips32" + +TUNE_FEATURES_tune-mips32el = "${TUNE_FEATURES_tune-mipsel} mips32" +MIPSPKGSFX_VARIANT_tune-mips32el = "mips32el" +PACKAGE_EXTRA_ARCHS_tune-mips32el = "mipsel mips32el" + +# Soft Float +AVAILTUNES += "mips32-nf mips32el-nf" + +TUNE_FEATURES_tune-mips32-nf = "${TUNE_FEATURES_tune-mips-nf} mips32" +MIPSPKGSFX_VARIANT_tune-mips32-nf = "mips32" +PACKAGE_EXTRA_ARCHS_tune-mips32-nf = "mips-nf mips32-nf" + +TUNE_FEATURES_tune-mips32el-nf = "${TUNE_FEATURES_tune-mipsel-nf} mips32" +MIPSPKGSFX_VARIANT_tune-mips32el-nf = "mips32el" +PACKAGE_EXTRA_ARCHS_tune-mips32el-nf = "mipsel-nf mips32el-nf" diff --git a/poky/meta/conf/machine/include/tune-mips32r2.inc b/poky/meta/conf/machine/include/tune-mips32r2.inc new file mode 100644 index 0000000000..14473ca831 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-mips32r2.inc @@ -0,0 +1,29 @@ +DEFAULTTUNE ?= "mips32r2" + +require conf/machine/include/tune-mips32.inc + +TUNEVALID[mips32r2] = "Enable mips32r2 specific processor optimizations" +TUNECONFLICTS[mips32r2] = "n64 n32" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips32r2', ' -march=mips32r2', '', d)}" + +# Base Tunes (Hard Float) +AVAILTUNES += "mips32r2 mips32r2el" + +TUNE_FEATURES_tune-mips32r2 = "${TUNE_FEATURES_tune-mips} mips32r2" +MIPSPKGSFX_VARIANT_tune-mips32r2 = "mips32r2" +PACKAGE_EXTRA_ARCHS_tune-mips32r2 = "mips mips32 mips32r2" + +TUNE_FEATURES_tune-mips32r2el = "${TUNE_FEATURES_tune-mipsel} mips32r2" +MIPSPKGSFX_VARIANT_tune-mips32r2el = "mips32r2el" +PACKAGE_EXTRA_ARCHS_tune-mips32r2el = "mipsel mips32el mips32r2el" + +# Soft Float +AVAILTUNES += "mips32r2-nf mips32r2el-nf" + +TUNE_FEATURES_tune-mips32r2-nf = "${TUNE_FEATURES_tune-mips-nf} mips32r2" +MIPSPKGSFX_VARIANT_tune-mips32r2-nf = "mips32r2" +PACKAGE_EXTRA_ARCHS_tune-mips32r2-nf = "mips-nf mips32-nf mips32r2-nf" + +TUNE_FEATURES_tune-mips32r2el-nf = "${TUNE_FEATURES_tune-mipsel-nf} mips32r2" +MIPSPKGSFX_VARIANT_tune-mips32r2el-nf = "mips32r2el" +PACKAGE_EXTRA_ARCHS_tune-mips32r2el-nf = "mipsel-nf mips32el-nf mips32r2el-nf" diff --git a/poky/meta/conf/machine/include/tune-mips32r6.inc b/poky/meta/conf/machine/include/tune-mips32r6.inc new file mode 100644 index 0000000000..44369cb59c --- /dev/null +++ b/poky/meta/conf/machine/include/tune-mips32r6.inc @@ -0,0 +1,29 @@ +DEFAULTTUNE ?= "mipsisa32r6el" + +require conf/machine/include/mips/arch-mips.inc + +TUNEVALID[mipsisa32r6] = "Enable mipsisa32r6 specific processor optimizations" +TUNECONFLICTS[mipsisa32r6] = "n64 n32" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa32r6', ' -march=mips32r6', '', d)}" + +# Base Tunes (Hard Float) +AVAILTUNES += "mipsisa32r6 mipsisa32r6el" + +TUNE_FEATURES_tune-mipsisa32r6 = "o32 bigendian mipsisa32r6 fpu-hard r6" +MIPSPKGSFX_VARIANT_tune-mipsisa32r6 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6 = "mipsisa32r6" + +TUNE_FEATURES_tune-mipsisa32r6el = "o32 fpu-hard mipsisa32r6 r6" +MIPSPKGSFX_VARIANT_tune-mipsisa32r6el = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6el = "mipsisa32r6el" + +# Soft Float +AVAILTUNES += "mipsisa32r6-nf mipsisa32r6el-nf" + +TUNE_FEATURES_tune-mipsisa32r6-nf = "o32 bigendian mipsisa32r6 r6" +MIPSPKGSFX_VARIANT_tune-mipsisa32r6-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6-nf = "mipsisa32r6-nf" + +TUNE_FEATURES_tune-mipsisa32r6el-nf = "o32 mipsisa32r6 r6" +MIPSPKGSFX_VARIANT_tune-mipsisa32r6el-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa32r6el-nf = "mipsisa32r6el-nf" diff --git a/poky/meta/conf/machine/include/tune-mips64.inc b/poky/meta/conf/machine/include/tune-mips64.inc new file mode 100644 index 0000000000..9be0e0f8d9 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-mips64.inc @@ -0,0 +1,3 @@ +DEFAULTTUNE ?= "mips64" + +require conf/machine/include/tune-mips32r2.inc diff --git a/poky/meta/conf/machine/include/tune-mips64r2.inc b/poky/meta/conf/machine/include/tune-mips64r2.inc new file mode 100644 index 0000000000..75d7535add --- /dev/null +++ b/poky/meta/conf/machine/include/tune-mips64r2.inc @@ -0,0 +1,84 @@ +DEFAULTTUNE ?= "mips64r2" + +require conf/machine/include/tune-mips64.inc + +TUNEVALID[mips64r2] = "Enable mips64r2 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips64r2', ' -march=mips64r2', '', d)}" + +# Base tunes +AVAILTUNES += "mips64r2 mips64r2el" + +TUNE_FEATURES_tune-mips64r2 = "${TUNE_FEATURES_tune-mips64} mips64r2" +BASE_LIB_tune-mips64r2 = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64r2 = "mips64r2" +PACKAGE_EXTRA_ARCHS_tune-mips64r2 = "mips64 mips64r2" + +TUNE_FEATURES_tune-mips64r2el = "${TUNE_FEATURES_tune-mips64el} mips64r2" +BASE_LIB_tune-mips64r2el = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64r2el = "mips64r2el" +PACKAGE_EXTRA_ARCHS_tune-mips64r2el = "mips64el mips64r2el" + +# MIPS 64r2 Soft Float +AVAILTUNES += "mips64r2-nf mips64r2el-nf" + +TUNE_FEATURES_tune-mips64r2-nf = "${TUNE_FEATURES_tune-mips64-nf} mips64r2" +BASE_LIB_tune-mips64r2-nf = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64r2-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf = "mips64-nf mips64r2-nf" + +TUNE_FEATURES_tune-mips64r2el-nf = "${TUNE_FEATURES_tune-mips64el-nf} mips64r2" +BASE_LIB_tune-mips64r2el-nf = "lib64" +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf = "mips64el-nf mips64r2el-nf" + +# MIPS 64r2 n32 +AVAILTUNES += "mips64r2-n32 mips64r2el-n32" + +TUNE_FEATURES_tune-mips64r2-n32 = "${TUNE_FEATURES_tune-mips64-n32} mips64r2" +BASE_LIB_tune-mips64r2-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64r2-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2-n32 = "mips64-n32 mips64r2-n32" + +TUNE_FEATURES_tune-mips64r2el-n32 = "${TUNE_FEATURES_tune-mips64el-n32} mips64r2" +BASE_LIB_tune-mips64r2el-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64r2el-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-n32 = "mips64el-n32 mips64r2el-n32" + +# MIPS 64r2 n32 and Soft Float +AVAILTUNES += "mips64r2-nf-n32 mips64r2el-nf-n32" + +TUNE_FEATURES_tune-mips64r2-nf-n32 = "${TUNE_FEATURES_tune-mips64-nf-n32} mips64r2" +BASE_LIB_tune-mips64r2-nf-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-n32 = "mips64-nf-n32 mips64r2-nf-n32" + +TUNE_FEATURES_tune-mips64r2el-nf-n32 = "${TUNE_FEATURES_tune-mips64el-nf-n32} mips64r2" +BASE_LIB_tune-mips64r2el-nf-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-n32 = "mips64el-nf-n32 mips64r2el-nf-n32" + +# MIPS 64r2 o32 +AVAILTUNES += "mips64r2-o32 mips64r2el-o32" + +TUNE_FEATURES_tune-mips64r2-o32 = "${TUNE_FEATURES_tune-mips64-o32} mips64r2" +BASE_LIB_tune-mips64r2-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64r2-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2-o32 = "mips mips64-o32 mips64r2-o32" + +TUNE_FEATURES_tune-mips64r2el-o32 = "${TUNE_FEATURES_tune-mips64el-o32} mips64r2" +BASE_LIB_tune-mips64r2el-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64r2el-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-o32 = "mipsel mips64el-o32 mips64r2el-o32" + +# MIPS 64r2 o32 and Soft Float +AVAILTUNES += "mips64r2-nf-o32 mips64r2el-nf-o32" + +TUNE_FEATURES_tune-mips64r2-nf-o32 = "${TUNE_FEATURES_tune-mips64-nf-o32} mips64r2" +BASE_LIB_tune-mips64r2-nf-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64r2-nf-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2-nf-o32 = "mips-nf mips64r2-nf-o32" + +TUNE_FEATURES_tune-mips64r2el-nf-o32 = "${TUNE_FEATURES_tune-mips64el-nf-o32} mips64r2" +BASE_LIB_tune-mips64r2el-nf-o32 = "lib" +MIPSPKGSFX_VARIANT_tune-mips64r2el-nf-o32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mips64r2el-nf-o32 = "mipsel-nf mips64r2el-nf-o32" diff --git a/poky/meta/conf/machine/include/tune-mips64r6.inc b/poky/meta/conf/machine/include/tune-mips64r6.inc new file mode 100644 index 0000000000..4fe3eedf1b --- /dev/null +++ b/poky/meta/conf/machine/include/tune-mips64r6.inc @@ -0,0 +1,58 @@ +DEFAULTTUNE ?= "mipsisa64r6el" + +require conf/machine/include/mips/arch-mips.inc + +TUNEVALID[mipsisa64r6] = "Enable mipsisa64r6 specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mipsisa64r6', ' -march=mips64r6', '', d)}" + +# Base Tunes +AVAILTUNES += "mipsisa64r6 mipsisa64r6el" + +TUNE_FEATURES_tune-mipsisa64r6 = "bigendian fpu-hard n64 mipsisa64r6 r6" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6 = "${TUNE_ARCH}" +BASE_LIB_tune-mipsisa64r6 = "lib64" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6 = "mipsisa64r6" + +TUNE_FEATURES_tune-mipsisa64r6el = "fpu-hard r6 n64 mipsisa64r6" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6el = "${TUNE_ARCH}" +BASE_LIB_tune-mipsisa64r6el = "lib64" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el = "mipsisa64r6el" + +# Soft Float +AVAILTUNES += "mipsisa64r6-nf mipsisa64r6el-nf" + +TUNE_FEATURES_tune-mipsisa64r6-nf = "bigendian r6 n64 mipsisa64r6" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6-nf = "${TUNE_ARCH}" +BASE_LIB_tune-mipsisa64r6-nf = "lib64" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-nf = "mipsisa64r6" + +TUNE_FEATURES_tune-mipsisa64r6el-nf = "r6 n64 mipsisa64r6" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6el-nf = "${TUNE_ARCH}" +BASE_LIB_tune-mipsisa64r6el-nf = "lib64" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el-nf = "mipsisa64r6el-nf" + +# MIPS 64r6 n32 +AVAILTUNES += "mipsisa64r6-n32 mipsisa64r6el-n32" + +TUNE_FEATURES_tune-mipsisa64r6-n32 = "bigendian fpu-hard r6 n32 mipsisa64r6" +BASE_LIB_tune-mipsisa64r6-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-n32 = "mipsisa64r6-n32" + +TUNE_FEATURES_tune-mipsisa64r6el-n32 = "fpu-hard r6 n32 mipsisa64r6" +BASE_LIB_tune-mipsisa64r6el-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6el-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el-n32 = "mipsisa64r6el-n32" + +# MIPS 64r6 n32 and Soft Float +AVAILTUNES += "mipsisa64r6-nf-n32 mipsisa64r6el-nf-n32" + +TUNE_FEATURES_tune-mipsisa64r6-nf-n32 = "bigendian r6 n32 mipsisa64r6" +BASE_LIB_tune-mipsisa64r6-nf-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6-nf-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6-nf-n32 = "mipsisa64r6-nf-n32" + +TUNE_FEATURES_tune-mipsisa64r6el-nf-n32 = "r6 n32 mipsisa64r6" +BASE_LIB_tune-mipsisa64r6el-nf-n32 = "lib32" +MIPSPKGSFX_VARIANT_tune-mipsisa64r6el-nf-n32 = "${TUNE_ARCH}" +PACKAGE_EXTRA_ARCHS_tune-mipsisa64r6el-nf-n32 = "mipsisa64r6el-nf-n32" diff --git a/poky/meta/conf/machine/include/tune-octeon.inc b/poky/meta/conf/machine/include/tune-octeon.inc new file mode 100644 index 0000000000..b5deb8fd88 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-octeon.inc @@ -0,0 +1,32 @@ +DEFAULTTUNE ?="octeon2" + +require conf/machine/include/tune-mips64.inc + +AVAILTUNES += "octeon2 octeon2_64 octeon3 octeon3_64" + +TUNEVALID[octeon2] = "Enable optimization related to octeon2 support" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'octeon2', ' -march=octeon2 ', '',d)}" + +TUNE_FEATURES_tune-octeon2 = "${TUNE_FEATURES_tune-mips64-n32} octeon2" +BASE_LIB_tune-octeon2 = "lib32" +MIPSPKGSFX_VARIANT_tune-octeon2 = "octeon2" +PACKAGE_EXTRA_ARCHS_tune-octeon2 = "mips64-n32 octeon2-n32" + +TUNE_FEATURES_tune-octeon2_64 = "${TUNE_FEATURES_tune-mips64} octeon2" +BASE_LIB_tune-octeon2_64 = "lib64" +MIPSPKGSFX_VARIANT_tune-octeon2_64 = "octeon2_64" +PACKAGE_EXTRA_ARCHS_tune-octeon2_64 = "mips64 octeon2_64" + + +TUNEVALID[octeon3] = "Enable optimization related to octeon3 support" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'octeon3', ' -march=octeon3 ', '',d)}" + +TUNE_FEATURES_tune-octeon3 = "${TUNE_FEATURES_tune-mips64-n32} octeon3" +BASE_LIB_tune-octeon3 = "lib32" +MIPSPKGSFX_VARIANT_tune-octeon3 = "octeon3" +PACKAGE_EXTRA_ARCHS_tune-octeon3 = "mips64-n32 octeon3-n32" + +TUNE_FEATURES_tune-octeon3_64 = "${TUNE_FEATURES_tune-mips64} octeon3" +BASE_LIB_tune-octeon3_64 = "lib64" +MIPSPKGSFX_VARIANT_tune-octeon3_64 = "octeon3_64" +PACKAGE_EXTRA_ARCHS_tune-octeon3_64 = "mips64 octeon3_64" diff --git a/poky/meta/conf/machine/include/tune-power5.inc b/poky/meta/conf/machine/include/tune-power5.inc new file mode 100644 index 0000000000..a346c309a6 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-power5.inc @@ -0,0 +1,21 @@ +DEFAULTTUNE ?= "ppc64p5" + +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" +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" +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)}" diff --git a/poky/meta/conf/machine/include/tune-power6.inc b/poky/meta/conf/machine/include/tune-power6.inc new file mode 100644 index 0000000000..ee200f97b9 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-power6.inc @@ -0,0 +1,21 @@ +DEFAULTTUNE ?= "ppcpr6" + +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" +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" +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)}" diff --git a/poky/meta/conf/machine/include/tune-power7.inc b/poky/meta/conf/machine/include/tune-power7.inc new file mode 100644 index 0000000000..3a27719be4 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-power7.inc @@ -0,0 +1,21 @@ +DEFAULTTUNE ?= "ppcpr7" + +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" +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" +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)}" diff --git a/poky/meta/conf/machine/include/tune-ppc476.inc b/poky/meta/conf/machine/include/tune-ppc476.inc new file mode 100644 index 0000000000..d0011ff213 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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/tune-ppc603e.inc b/poky/meta/conf/machine/include/tune-ppc603e.inc new file mode 100644 index 0000000000..13f60dd067 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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/tune-ppc7400.inc b/poky/meta/conf/machine/include/tune-ppc7400.inc new file mode 100644 index 0000000000..425e8bd215 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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/tune-ppce300c2.inc b/poky/meta/conf/machine/include/tune-ppce300c2.inc new file mode 100644 index 0000000000..af21f601a8 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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/tune-ppce300c3.inc b/poky/meta/conf/machine/include/tune-ppce300c3.inc new file mode 100644 index 0000000000..a3d836c50c --- /dev/null +++ b/poky/meta/conf/machine/include/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/tune-ppce500.inc b/poky/meta/conf/machine/include/tune-ppce500.inc new file mode 100644 index 0000000000..89ec3f38a7 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +TUNE_PKGARCH_tune-ppce500 = "ppce500" +PACKAGE_EXTRA_ARCHS_tune-ppce500 = "ppce500" diff --git a/poky/meta/conf/machine/include/tune-ppce500mc.inc b/poky/meta/conf/machine/include/tune-ppce500mc.inc new file mode 100644 index 0000000000..bc26a0f875 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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/tune-ppce500v2.inc b/poky/meta/conf/machine/include/tune-ppce500v2.inc new file mode 100644 index 0000000000..3a006e2cae --- /dev/null +++ b/poky/meta/conf/machine/include/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 spe ppce500v2" +TUNE_PKGARCH_tune-ppce500v2 = "ppce500v2" +PACKAGE_EXTRA_ARCHS_tune-ppce500v2 = "ppce500v2" diff --git a/poky/meta/conf/machine/include/tune-ppce5500.inc b/poky/meta/conf/machine/include/tune-ppce5500.inc new file mode 100644 index 0000000000..cebb244068 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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" +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/tune-ppce6500.inc b/poky/meta/conf/machine/include/tune-ppce6500.inc new file mode 100644 index 0000000000..5db7e760c3 --- /dev/null +++ b/poky/meta/conf/machine/include/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" +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" +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)}" diff --git a/poky/meta/conf/machine/include/tune-sh3.inc b/poky/meta/conf/machine/include/tune-sh3.inc new file mode 100644 index 0000000000..80df9a0b61 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-sh3.inc @@ -0,0 +1,17 @@ +DEFAULTTUNE ?= "sh3" + +require conf/machine/include/sh/arch-sh.inc + +TUNEVALID[sh3] = "Enable SH3 optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'sh3', ' -m3', '', d)}" + +AVAILTUNES += "sh3 sh3eb" +TUNE_FEATURES_tune-sh3 = "sh3" +TUNE_ARCH_tune-sh3 = "sh3" +TUNE_PKGARCH_tune-sh3 = "sh3" +PACKAGE_EXTRA_ARCHS_tune-sh3 = "sh sh3" + +TUNE_FEATURES_tune-sh3eb = "sh3 bigendian" +TUNE_ARCH_tune-sh3eb = "sh3eb" +TUNE_PKGARCH_tune-sh3eb = "sh3eb" +PACKAGE_EXTRA_ARCHS_tune-sh3eb = "sheb sh3eb" diff --git a/poky/meta/conf/machine/include/tune-sh4.inc b/poky/meta/conf/machine/include/tune-sh4.inc new file mode 100644 index 0000000000..4160c30e1a --- /dev/null +++ b/poky/meta/conf/machine/include/tune-sh4.inc @@ -0,0 +1,34 @@ +DEFAULTTUNE ?= "sh4" + +# Pull in sh4 for compatibility... +require conf/machine/include/sh/arch-sh.inc + +TUNEVALID[sh4] = "Enable SH4 optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'sh4', ' -m4', '', d)}" + +# NOTE: If you want to optimize to sh4a, conf/machine/include/tune-sh4a.inc. +# But it is not compatible for sh4. +# The binary optimized by m4a doesn't operate on sh4. It works on sh4a only. +TUNEVALID[sh4a] = "Enable SH4a optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'sh4a', ' -m4a', '', d)}" + +AVAILTUNES += "sh4 sh4eb sh4a sh4aeb" +TUNE_FEATURES_tune-sh4 = "sh4" +TUNE_ARCH_tune-sh4 = "sh4" +TUNE_PKGARCH_tune-sh4 = "sh4" +PACKAGE_EXTRA_ARCHS_tune-sh4 = "sh sh4" + +TUNE_FEATURES_tune-sh4eb = "sh4 bigendian" +TUNE_ARCH_tune-sh4eb = "sh4eb" +TUNE_PKGARCH_tune-sh4eb = "sh4eb" +PACKAGE_EXTRA_ARCHS_tune-sh4eb = "sheb sh4eb" + +TUNE_FEATURES_tune-sh4a = "sh4a" +TUNE_ARCH_tune-sh4a = "sh4" +TUNE_PKGARCH_tune-sh4a = "sh4a" +PACKAGE_EXTRA_ARCHS_tune-sh4a = "sh sh4 sh4a" + +TUNE_FEATURES_tune-sh4aeb = "sh4a bigendian" +TUNE_ARCH_tune-sh4aeb = "sh4eb" +TUNE_PKGARCH_tune-sh4aeb = "sh4aeb" +PACKAGE_EXTRA_ARCHS_tune-sh4aeb = "sheb sh4eb sh4aeb" diff --git a/poky/meta/conf/machine/include/tune-strongarm1100.inc b/poky/meta/conf/machine/include/tune-strongarm1100.inc new file mode 100644 index 0000000000..80cfb8ab8a --- /dev/null +++ b/poky/meta/conf/machine/include/tune-strongarm1100.inc @@ -0,0 +1,11 @@ +DEFAULTTUNE ?= "armv4" + +require conf/machine/include/arm/arch-armv4.inc + +TUNEVALID[strongarm] = "Enable Strongarm 1100 series processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'strongarm', ' -mcpu=strongarm1100', '', d)}" + +AVAILTUNES += "strongarm" +ARMPKGARCH_tune-strongarm = "strongarm" +TUNE_FEATURES_tune-strongarm = "${TUNE_FEATURES_tune-armv4} strongarm" +PACKAGE_EXTRA_ARCHS_tune-strongarm = "${PACKAGE_EXTRA_ARCHS_tune-armv4} strongarm" diff --git a/poky/meta/conf/machine/include/tune-supersparc.inc b/poky/meta/conf/machine/include/tune-supersparc.inc new file mode 100644 index 0000000000..0faa361f18 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-supersparc.inc @@ -0,0 +1,4 @@ +TUNE_ARCH = "sparc" + +TUNE_CCARGS = "-mcpu=supersparc" +TUNE_PKGARCH = "supersparc" diff --git a/poky/meta/conf/machine/include/tune-thunderx.inc b/poky/meta/conf/machine/include/tune-thunderx.inc new file mode 100644 index 0000000000..3d43b0f7e5 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-thunderx.inc @@ -0,0 +1,19 @@ +require conf/machine/include/arm/arch-armv8.inc + +DEFAULTTUNE ?= "thunderx" +AVAILTUNES += "thunderx thunderx_be" + +TUNEVALID[thunderx] = "Enable instructions for Cavium ThunderX" + +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thunderx', ' -mcpu=thunderx ', '',d)}" + +ARMPKGARCH_tune-thunderx ?= "thunderx" +ARMPKGARCH_tune-thunderx_be ?= "thunderx_be" + +TUNE_FEATURES_tune-thunderx = "${TUNE_FEATURES_tune-aarch64} thunderx" +TUNE_FEATURES_tune-thunderx_be = "${TUNE_FEATURES_tune-thunderx} bigendian" +BASE_LIB_tune-thunderx = "lib64" +BASE_LIB_tune-thunderx_be = "lib64" + +PACKAGE_EXTRA_ARCHS_tune-thunderx = "aarch64 thunderx" +PACKAGE_EXTRA_ARCHS_tune-thunderx_be = "aarch64_be thunderx_be" diff --git a/poky/meta/conf/machine/include/tune-xscale.inc b/poky/meta/conf/machine/include/tune-xscale.inc new file mode 100644 index 0000000000..0d07333955 --- /dev/null +++ b/poky/meta/conf/machine/include/tune-xscale.inc @@ -0,0 +1,16 @@ +DEFAULTTUNE ?= "armv5te" + +require conf/machine/include/arm/arch-armv5-dsp.inc + +TUNEVALID[xscale] = "Enable PXA255/PXA26x Xscale specific processor optimizations" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'xscale', ' -mcpu=xscale', '', d)}" + +AVAILTUNES += "xscale" +ARMPKGARCH_tune-xscale = "xscale" +TUNE_FEATURES_tune-xscale = "${TUNE_FEATURES_tune-armv5te} xscale" +PACKAGE_EXTRA_ARCHS_tune-xscale = "${PACKAGE_EXTRA_ARCHS_tune-armv5te} xscale xscalet xscalee xscalete" + +AVAILTUNES += "xscale-be" +ARMPKGARCH_tune-xscale-be = "xscale" +TUNE_FEATURES_tune-xscale-be = "${TUNE_FEATURES_tune-armv5teb} xscale bigendian" +PACKAGE_EXTRA_ARCHS_tune-xscale-be = "${PACKAGE_EXTRA_ARCHS_tune-armv5teb} xscaleb xscaletb xscaleeb xscaleteb" diff --git a/poky/meta/conf/machine/include/x86-base.inc b/poky/meta/conf/machine/include/x86-base.inc new file mode 100644 index 0000000000..f8aacea64c --- /dev/null +++ b/poky/meta/conf/machine/include/x86-base.inc @@ -0,0 +1,49 @@ +# +# Base machine settings for X86 architecture BSPs +# + +# +# common settings for X86 machines +# +MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \ + acpi serial usbgadget alsa" + +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules" + +IMAGE_FSTYPES ?= "live" +NOISO ?= "1" + +KERNEL_IMAGETYPE ?= "bzImage" + +SERIAL_CONSOLE ?= "115200 ttyS0" + +# +# kernel-related variables +# +PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto" +PREFERRED_VERSION_linux-yocto ??= "4.15%" + +# +# XSERVER subcomponents, used to build the XSERVER variable +# +XSERVER_X86_BASE = "xserver-xorg \ + " + +XSERVER_X86_EXT = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'xserver-xorg-extension-glx', '', d)} \ + xserver-xorg-module-libint10 \ + " + +XSERVER_X86_I915 = "xf86-video-intel \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i915', '', d)} \ + " + +XSERVER_X86_I965 = "xf86-video-intel \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \ + " + +XSERVER_X86_VESA = "xf86-video-vesa" + +XSERVER_X86_FBDEV = "xf86-video-fbdev" + +XSERVER_X86_MODESETTING = "xf86-video-modesetting" diff --git a/poky/meta/conf/machine/include/x86/README b/poky/meta/conf/machine/include/x86/README new file mode 100644 index 0000000000..2b6c46c7eb --- /dev/null +++ b/poky/meta/conf/machine/include/x86/README @@ -0,0 +1,24 @@ +2012/03/30 - Mark Hatle <mark.hatle@windriver.com> + - Initial version + +Most of the items for the X86 architectures are defined in the single +arch-x86 file. + +Three ABIs are define, m32, mx32 and m64. + +The following is the list of X86 specific variables: + +X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH. + +X86ARCH64 - This is the 64-bit architecture GNU canonical arch, TUNE_ARCH. + +The TUNE_PKGARCH is defined as follows: + +TUNE_PKGARCH = ${TUNE_PKGARCH_tune-${DEFAULTTUNE}} + +The package architecture for 32-bit targets is historical and generally +set to to match the core compatible processor type, i.e. i386. + +For 64-bit architectures, the architecture is expected to end in '_64'. + +If the x32 ABI is used, then the _64 is further extended with a '_x32'. diff --git a/poky/meta/conf/machine/include/x86/arch-x86.inc b/poky/meta/conf/machine/include/x86/arch-x86.inc new file mode 100644 index 0000000000..70814b8d4d --- /dev/null +++ b/poky/meta/conf/machine/include/x86/arch-x86.inc @@ -0,0 +1,54 @@ +# +# X86 Architecture definition (IA32, X86_64, and X32) +# + +DEFAULTTUNE ?= "x86" +TARGET_FPU ?= "" +X86ARCH32 ?= "i586" +X86ARCH64 ?= "x86_64" + +TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}" + +# ELF32 ABI +TUNEVALID[m32] = "IA32 ELF32 standard ABI" +TUNECONFLICTS[m32] = "m64 mx32" +TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', '${X86ARCH32}', '' ,d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm32', ' -m32', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'm32', 'x86:', '' ,d)}" + +# x32 ABI +TUNEVALID[mx32] = "IA32e (x86_64) ELF32 standard ABI" +TUNECONFLICTS[mx32] = "m64 m32" +TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '${X86ARCH64}', '' ,d)}" +ABIEXTENSION .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x32', '' ,d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mx32', ' -mx32', '', d)}" +TUNE_LDARGS += "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '-m elf32_x86_64', '', d)}" +TUNE_ASARGS += "${@bb.utils.contains('TUNE_FEATURES', 'mx32', '-x32', '', d)}" +# user mode qemu doesn't support x32 +MACHINE_FEATURES_BACKFILL_CONSIDERED_append = " ${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'qemu-usermode', '', d)}" +MACHINEOVERRIDES =. "${@bb.utils.contains('TUNE_FEATURES', 'mx32', 'x86-x32:', '' ,d)}" + +# ELF64 ABI +TUNEVALID[m64] = "IA32e (x86_64) ELF64 standard ABI" +TUNECONFLICTS[m64] = "m32 mx32" +TUNE_ARCH .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', '${X86ARCH64}', '' ,d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'm64', ' -m64', '', d)}" + +# Default Tune configurations +AVAILTUNES += "x86" +TUNE_FEATURES_tune-x86 = "m32" +BASE_LIB_tune-x86 = "lib" +TUNE_PKGARCH_tune-x86 = "x86" +PACKAGE_EXTRA_ARCHS_tune-x86 = "${TUNE_PKGARCH_tune-x86}" + +AVAILTUNES += "x86-64" +TUNE_FEATURES_tune-x86-64 = "m64" +BASE_LIB_tune-x86-64 = "lib64" +TUNE_PKGARCH_tune-x86-64 = "x86_64" +PACKAGE_EXTRA_ARCHS_tune-x86-64 = "${TUNE_PKGARCH_tune-x86-64}" + +AVAILTUNES += "x86-64-x32" +TUNE_FEATURES_tune-x86-64-x32 = "mx32" +BASE_LIB_tune-x86-64-x32 = "libx32" +TUNE_PKGARCH_tune-x86-64-x32 = "x86_64_x32" +PACKAGE_EXTRA_ARCHS_tune-x86-64-x32 = "${TUNE_PKGARCH_tune-x86-64-x32}" |