summaryrefslogtreecommitdiffstats
path: root/conf/machine
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2010-07-19 22:03:57 -0700
committerKhem Raj <raj.khem@gmail.com>2010-07-19 22:05:10 -0700
commit4cd34e570e497828e4e3e4c0e91cd71d7079ffd5 (patch)
tree6bb0cf6e6dc4cfbdca7f5d10a62dfacdbafc3d7e /conf/machine
parented482f39825375f631182622c75e18949002b488 (diff)
downloadopenembedded-4cd34e570e497828e4e3e4c0e91cd71d7079ffd5.tar.gz
Revert "distro: Move thumb into distro features"
This reverts commit e9fe87a13cf4e0453ff601c422ecbe6a98bc8f76. Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'conf/machine')
-rw-r--r--conf/machine/include/ixp4xx.inc1
-rw-r--r--conf/machine/include/tune-arm1136-novfp.inc3
-rw-r--r--conf/machine/include/tune-arm1136jf-s.inc3
-rw-r--r--conf/machine/include/tune-arm1176jzf-s.inc3
-rw-r--r--conf/machine/include/tune-arm920t.inc4
-rw-r--r--conf/machine/include/tune-arm926ejs.inc3
-rw-r--r--conf/machine/include/tune-arm9tdmi.inc4
-rw-r--r--conf/machine/include/tune-armv7.inc4
-rw-r--r--conf/machine/include/tune-ep9312.inc3
-rw-r--r--conf/machine/include/tune-thumb.inc32
-rw-r--r--conf/machine/include/tune-xscale.inc4
-rw-r--r--conf/machine/palmz31.conf3
-rw-r--r--conf/machine/palmz72.conf3
13 files changed, 70 insertions, 0 deletions
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 \