From 4cd34e570e497828e4e3e4c0e91cd71d7079ffd5 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Mon, 19 Jul 2010 22:03:57 -0700 Subject: Revert "distro: Move thumb into distro features" This reverts commit e9fe87a13cf4e0453ff601c422ecbe6a98bc8f76. Signed-off-by: Khem Raj --- conf/machine/include/ixp4xx.inc | 1 + conf/machine/include/tune-arm1136-novfp.inc | 3 +++ conf/machine/include/tune-arm1136jf-s.inc | 3 +++ conf/machine/include/tune-arm1176jzf-s.inc | 3 +++ conf/machine/include/tune-arm920t.inc | 4 ++++ conf/machine/include/tune-arm926ejs.inc | 3 +++ conf/machine/include/tune-arm9tdmi.inc | 4 ++++ conf/machine/include/tune-armv7.inc | 4 ++++ conf/machine/include/tune-ep9312.inc | 3 +++ conf/machine/include/tune-thumb.inc | 32 +++++++++++++++++++++++++++++ conf/machine/include/tune-xscale.inc | 4 ++++ conf/machine/palmz31.conf | 3 +++ conf/machine/palmz72.conf | 3 +++ 13 files changed, 70 insertions(+) create mode 100644 conf/machine/include/tune-thumb.inc (limited to 'conf/machine') diff --git a/conf/machine/include/ixp4xx.inc b/conf/machine/include/ixp4xx.inc index cf7f0dd603..192cbb121b 100644 --- a/conf/machine/include/ixp4xx.inc +++ b/conf/machine/include/ixp4xx.inc @@ -22,6 +22,7 @@ IMAGE_FSTYPES ?= "jffs2 tar.gz" EXTRA_IMAGECMD_jffs2 = "--pad --eraseblock=0x20000 -n" require conf/machine/include/tune-xscale.inc +require conf/machine/include/tune-thumb.inc #------------------------------------------------------------------------------- # Board defaults diff --git a/conf/machine/include/tune-arm1136-novfp.inc b/conf/machine/include/tune-arm1136-novfp.inc index 58134b7d40..e1f7945a0f 100644 --- a/conf/machine/include/tune-arm1136-novfp.inc +++ b/conf/machine/include/tune-arm1136-novfp.inc @@ -5,3 +5,6 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s" FEED_ARCH = "armv6-novfp" BASE_PACKAGE_ARCH = "armv6-novfp" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6-novfp" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc diff --git a/conf/machine/include/tune-arm1136jf-s.inc b/conf/machine/include/tune-arm1136jf-s.inc index 2944cc7166..c532b9c816 100644 --- a/conf/machine/include/tune-arm1136jf-s.inc +++ b/conf/machine/include/tune-arm1136jf-s.inc @@ -2,3 +2,6 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1136jf-s -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv6" BASE_PACKAGE_ARCH = "armv6" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc diff --git a/conf/machine/include/tune-arm1176jzf-s.inc b/conf/machine/include/tune-arm1176jzf-s.inc index ee2884b0a9..b7c5291731 100644 --- a/conf/machine/include/tune-arm1176jzf-s.inc +++ b/conf/machine/include/tune-arm1176jzf-s.inc @@ -2,3 +2,6 @@ TARGET_CC_ARCH = "-march=armv6j -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=softfp FEED_ARCH = "armv6" BASE_PACKAGE_ARCH = "armv6" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc diff --git a/conf/machine/include/tune-arm920t.inc b/conf/machine/include/tune-arm920t.inc index fee5c586c9..5a373e9d80 100644 --- a/conf/machine/include/tune-arm920t.inc +++ b/conf/machine/include/tune-arm920t.inc @@ -2,3 +2,7 @@ FEED_ARCH = "armv4t" BASE_PACKAGE_ARCH = "armv4t" TARGET_CC_ARCH = "-march=armv4t -mtune=arm920t" PACKAGE_EXTRA_ARCHS += "armv4 armv4t" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc + diff --git a/conf/machine/include/tune-arm926ejs.inc b/conf/machine/include/tune-arm926ejs.inc index f41e460999..f6f5064548 100644 --- a/conf/machine/include/tune-arm926ejs.inc +++ b/conf/machine/include/tune-arm926ejs.inc @@ -5,3 +5,6 @@ PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te" # For gcc 4.x you need: TARGET_CC_ARCH = "-march=armv5te -mtune=arm926ej-s" BASE_PACKAGE_ARCH = "armv5te" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc diff --git a/conf/machine/include/tune-arm9tdmi.inc b/conf/machine/include/tune-arm9tdmi.inc index d788b5304f..a11ee381d5 100644 --- a/conf/machine/include/tune-arm9tdmi.inc +++ b/conf/machine/include/tune-arm9tdmi.inc @@ -2,3 +2,7 @@ FEED_ARCH = "armv4t" BASE_PACKAGE_ARCH = "armv4t" PACKAGE_EXTRA_ARCHS += "armv4 armv4t" TARGET_CC_ARCH = "-mcpu=arm9tdmi -mtune=arm9tdmi" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc + diff --git a/conf/machine/include/tune-armv7.inc b/conf/machine/include/tune-armv7.inc index 379a3eb011..05ec3da1ac 100644 --- a/conf/machine/include/tune-armv7.inc +++ b/conf/machine/include/tune-armv7.inc @@ -5,3 +5,7 @@ TARGET_CC_ARCH = "-march=armv7 -mfpu=vfp -mfloat-abi=softfp" FEED_ARCH = "armv7" PACKAGE_EXTRA_ARCHS += "armv4 armv4t armv5te armv6 armv7" BASE_PACKAGE_ARCH = "armv7" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc + diff --git a/conf/machine/include/tune-ep9312.inc b/conf/machine/include/tune-ep9312.inc index 7458281172..c8770e0783 100644 --- a/conf/machine/include/tune-ep9312.inc +++ b/conf/machine/include/tune-ep9312.inc @@ -5,6 +5,9 @@ PACKAGE_EXTRA_ARCHS += "armv4t ep9312" BASE_PACKAGE_ARCH = "ep9312" FEED_ARCH = "ep9312" +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc + FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O -fno-signed-zeros" DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer -g" SELECTED_OPTIMIZATION = "${@bb.data.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][bb.data.getVar('DEBUG_BUILD', d, 1) == '1'], d, 1)}" diff --git a/conf/machine/include/tune-thumb.inc b/conf/machine/include/tune-thumb.inc new file mode 100644 index 0000000000..cd88bb4786 --- /dev/null +++ b/conf/machine/include/tune-thumb.inc @@ -0,0 +1,32 @@ +#tune file for thumb instructions + +ARM_INSTRUCTION_SET ?= "arm" +# "arm" "thumb" +# The instruction set the compiler should use when generating application +# code. The kernel is always compiled with arm code at present. arm code +# is the original 32 bit ARM instruction set, thumb code is the 16 bit +# encoded RISC sub-set. Thumb code is smaller (maybe 70% of the ARM size) +# but requires more instructions (140% for 70% smaller code) so may be +# slower. + +THUMB_INTERWORK ?= "no" +# "yes" "no" +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows thumb code to be executed on a primarily +# arm system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. + +OVERRIDE_THUMB = "${@['', ':thumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}" +OVERRIDE_INTERWORK = "${@['', ':thumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}" +OVERRIDES .= "${OVERRIDE_THUMB}${OVERRIDE_INTERWORK}" + +# Compiler and linker options for application code and kernel code. These +# options ensure that the compiler has the correct settings for the selected +# instruction set and interworking. +ARM_INTERWORK_M_OPT = "${@['-mno-thumb-interwork', '-mthumb-interwork'][bb.data.getVar('THUMB_INTERWORK', d, 1) == 'yes']}" +ARM_THUMB_M_OPT = "${@['-mno-thumb', '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}" + +# +TARGET_CC_ARCH += "${ARM_INTERWORK_M_OPT} ${ARM_THUMB_M_OPT}" +TARGET_CC_KERNEL_ARCH += "-mno-thumb-interwork -mno-thumb" + diff --git a/conf/machine/include/tune-xscale.inc b/conf/machine/include/tune-xscale.inc index f0f58bc30d..3a6bd0e659 100644 --- a/conf/machine/include/tune-xscale.inc +++ b/conf/machine/include/tune-xscale.inc @@ -7,3 +7,7 @@ TARGET_CC_ARCH = "-march=armv5te -mtune=xscale" TARGET_CC_KERNEL_ARCH = "-march=armv5te -mtune=xscale" PACKAGE_EXTRA_ARCHS += "${@['armv4b armv4tb armv5teb', 'armv4 armv4t armv5te'][ bb.data.getVar('TARGET_ARCH', d, 1) == 'arm']}" BASE_PACKAGE_ARCH = "${@['armv5teb', 'armv5te'][bb.data.getVar('TARGET_ARCH', d, 1) == 'arm']}" + +# Include tune file for thumb support, it defaults to off so DISTROs can turn it on if they wish +require conf/machine/include/tune-thumb.inc + diff --git a/conf/machine/palmz31.conf b/conf/machine/palmz31.conf index 9fb5f7ead9..0332952edc 100644 --- a/conf/machine/palmz31.conf +++ b/conf/machine/palmz31.conf @@ -11,6 +11,9 @@ MACHINE_DISPLAY_HEIGHT_PIXELS = "160" SERIAL_CONSOLE = "115200 ttyS0" +# Use tune-xscale per default. Machine independent feeds should be built with tune-strongarm. +require conf/machine/include/tune-thumb.inc + MACHINE_EXTRA_RRECOMMENDS += "kernel-module-i2c-pxa \ kernel-module-i2c-algo-pxa \ kernel-module-i2c-dev \ diff --git a/conf/machine/palmz72.conf b/conf/machine/palmz72.conf index 9766434690..502c11a284 100644 --- a/conf/machine/palmz72.conf +++ b/conf/machine/palmz72.conf @@ -11,6 +11,9 @@ MACHINE_DISPLAY_HEIGHT_PIXELS = "320" SERIAL_CONSOLE = "115200 ttyS0" +# Use tune-xscale per default. Machine independent feeds should be built with tune-strongarm. +require conf/machine/include/tune-thumb.inc + MACHINE_EXTRA_RRECOMMENDS += "kernel-module-i2c-pxa \ kernel-module-i2c-algo-pxa \ kernel-module-i2c-dev \ -- cgit 1.2.3-korg