summaryrefslogtreecommitdiffstats
path: root/conf
diff options
context:
space:
mode:
authorNathan Rossi <nathan@nathanrossi.com>2017-01-14 20:54:42 +1000
committerNathan Rossi <nathan@nathanrossi.com>2017-03-31 22:31:49 +1000
commite3d355481abf8aa6537d7351c6b485fe8a036257 (patch)
tree050b529bd998a512b1713420b67fa93954d66b09 /conf
parentdf22c892c6d1254709ea5dbd89674877f23193fd (diff)
downloadmeta-xilinx-e3d355481abf8aa6537d7351c6b485fe8a036257.tar.gz
arch-microblaze.inc: Consolidate MicroBlaze tune features
This change adds the 'arch-microblaze.inc' architecture tune features include which provides all the relevant tune features for MicroBlaze. This include replaces the 'tune-microblaze-features.inc' include, which is not actually a valid TUNE. This change results in the MicroBlaze tune and tune feature include tree matching the layout of meta/. This change additionally consolidates all the smaller includes (feature-microblaze-*.inc) into larger sets or into the arch-microblaze.inc. This makes the package arch string ordering much clearer as well as removing the large number of variables uses to set the TUNE_CCARGS. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
Diffstat (limited to 'conf')
-rw-r--r--conf/machine/include/microblaze/arch-microblaze.inc43
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc3
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-divide.inc3
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-endian.inc13
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-fpu.inc17
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-math.inc33
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-multiply.inc9
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc3
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-reorder.inc3
-rw-r--r--conf/machine/include/tune-microblaze-features.inc20
-rw-r--r--conf/machine/include/tune-microblaze.inc7
11 files changed, 77 insertions, 77 deletions
diff --git a/conf/machine/include/microblaze/arch-microblaze.inc b/conf/machine/include/microblaze/arch-microblaze.inc
new file mode 100644
index 00000000..9a5e685f
--- /dev/null
+++ b/conf/machine/include/microblaze/arch-microblaze.inc
@@ -0,0 +1,43 @@
1# MicroBlaze architecture tune feature configuration
2
3# Architecture feature and override
4TUNEVALID[microblaze] = "MicroBlaze"
5MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "" ,d)}"
6
7# Endian
8TUNEVALID[big-endian] = "Use Microblaze Big Endian."
9TUNECONFLICTS[big-endian] = "little-endian"
10TUNEVALID[little-endian] = "Use Microblaze Little Endian."
11TUNECONFLICTS[little-endian] = "big-endian"
12
13MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "eb" ,d)}"
14
15TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "big-endian", "-mbig-endian", "" ,d)}"
16TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "-mlittle-endian", "" ,d)}"
17
18# General features
19TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter"
20TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions"
21TUNEVALID[reorder] = "Enable Reorder Instructions"
22
23# General feature compiler args
24TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift" ,d)}"
25TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare" ,d)}"
26TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-mxl-reorder", "-mno-xl-reorder" ,d)}"
27
28# General feature package architecture formatting
29MBPKGARCH_TUNE = ""
30MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "" ,d)}"
31MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "" ,d)}"
32MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "" ,d)}"
33
34# Additional features
35require conf/machine/include/microblaze/feature-microblaze-versions.inc
36require conf/machine/include/microblaze/feature-microblaze-math.inc
37
38# Architecture name, either 'microblazeeb' or 'microblazeel' depending on endianess
39TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "eb" ,d)}"
40
41# Package Architecture formatting
42TUNE_PKGARCH = "microblaze${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}"
43
diff --git a/conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc b/conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc
deleted file mode 100644
index ca7e7e39..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc
+++ /dev/null
@@ -1,3 +0,0 @@
1TUNEVALID[barrel-shift] = "Enable Microblaze Hardware Barrel Shift."
2MBCCARGSBARRELSHIFT += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift" ,d)}"
3MBPKGBARRELSHIFT .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "" ,d)}"
diff --git a/conf/machine/include/microblaze/feature-microblaze-divide.inc b/conf/machine/include/microblaze/feature-microblaze-divide.inc
deleted file mode 100644
index 5d010a4a..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-divide.inc
+++ /dev/null
@@ -1,3 +0,0 @@
1TUNEVALID[divide-hard] = "Enable Microblaze hardware divider."
2MBCCARGSDIV += "${@bb.utils.contains("TUNE_FEATURES", "divide-hard", "-mno-xl-soft-div", "-mxl-soft-div" ,d)}"
3MBPKGDIV .= "${@bb.utils.contains("TUNE_FEATURES", "divide-hard", "-div", "" ,d)}"
diff --git a/conf/machine/include/microblaze/feature-microblaze-endian.inc b/conf/machine/include/microblaze/feature-microblaze-endian.inc
deleted file mode 100644
index 4c8aa6d6..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-endian.inc
+++ /dev/null
@@ -1,13 +0,0 @@
1# This feature file must be included/required FIRST as it defines the start of the PKGARCH bitbake variable
2MBCCARGSENDIAN = ""
3MBPKGENDIAN = ""
4
5TUNEVALID[little-endian] = "Use Microblaze Little Endian."
6MBCCARGSENDIAN += "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "-mlittle-endian", "" ,d)}"
7MBPKGENDIAN .= "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "" ,d)}"
8
9TUNEVALID[big-endian] = "Use Microblaze Big Endian."
10MBCCARGSENDIAN += "${@bb.utils.contains("TUNE_FEATURES", "big-endian", "-mbig-endian", "" ,d)}"
11MBPKGENDIAN .= "${@bb.utils.contains("TUNE_FEATURES", "big-endian", "eb", "" ,d)}"
12
13TUNECONFLICTS[little-endian] = "big-endian"
diff --git a/conf/machine/include/microblaze/feature-microblaze-fpu.inc b/conf/machine/include/microblaze/feature-microblaze-fpu.inc
deleted file mode 100644
index bf2fe38b..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-fpu.inc
+++ /dev/null
@@ -1,17 +0,0 @@
1TUNEVALID[fpu-soft] = "Use Microblaze software FPU"
2TUNEVALID[fpu-hard] = "Enable Microblaze hardware FPU in basic mode."
3TUNEVALID[fpu-hard-extended] = "Enable Microblaze hardware FPU in extended mode - conversion and square root instructions."
4
5# Establish which fpu is configured in TUNE_FEATURES. Soft is the default for gcc.
6MBCCARGSFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "-mhard-float", "", d)}"
7MBCCARGSFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard-extended", "-mhard-float -mxl-float-convert -mxl-float-sqrt", "${MBCCARGSFPU_BASIC}" ,d)}"
8
9MBPKGFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "-fb", "", d)}"
10MBPKGFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard-extended", "-fe", "${MBPKGFPU_BASIC}", d)}"
11
12# Set target fpu (bitbake known target) to soft or hard (basic or extended in microblaze language)
13TARGETFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "fpu-hard", "fpu-soft", d)}"
14TARGET_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard-extended", "fpu-hard", "${TARGETFPU_BASIC}", d)}"
15
16TUNECONFLICTS[fpu-hard] = "fpu-soft"
17TUNECONFLICTS[fpu-hard-extended] = "fpu-soft"
diff --git a/conf/machine/include/microblaze/feature-microblaze-math.inc b/conf/machine/include/microblaze/feature-microblaze-math.inc
new file mode 100644
index 00000000..b2c7f071
--- /dev/null
+++ b/conf/machine/include/microblaze/feature-microblaze-math.inc
@@ -0,0 +1,33 @@
1# This include describes the math features (integer and floating point) that
2# are available for the MicroBlaze ISA
3
4TUNEVALID[multiply-low] = "Hardware multipler with 32 bit result"
5TUNEVALID[multiply-high] = "Hardware multipler with 64 bit result"
6TUNEVALID[divide-hard] = "Hardware divider"
7TUNEVALID[fpu-soft] = "Software FPU"
8TUNEVALID[fpu-hard] = "Hardware FPU in basic mode"
9TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)"
10
11TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended"
12TUNECONFLICTS[fpu-hard] = "fpu-soft"
13TUNECONFLICTS[fpu-hard-extended] = "fpu-soft"
14
15# Compiler args
16TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], '-mno-xl-soft-mul', '-mxl-soft-mul', d)}"
17TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mxl-multiply-high', '', d)}"
18
19TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-mno-xl-soft-div', '-mxl-soft-div' ,d)}"
20
21TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}"
22TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], '-mhard-float', '', d)}"
23TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-mxl-float-convert -mxl-float-sqrt', '', d)}"
24
25# Set target fpu (bitbake known target) to soft or hard (basic or extended)
26TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}"
27
28# Package Architecture formatting
29MBPKGARCH_MATH = ""
30MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}"
31MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '' ,d)}"
32MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-fe', bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '-fb', '', d), d)}"
33
diff --git a/conf/machine/include/microblaze/feature-microblaze-multiply.inc b/conf/machine/include/microblaze/feature-microblaze-multiply.inc
deleted file mode 100644
index e3f8ae5f..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-multiply.inc
+++ /dev/null
@@ -1,9 +0,0 @@
1TUNEVALID[multiply-low] = "Enable Microblaze Hardware Multiply with low (32 bit) result."
2TUNEVALID[multiply-high] = "Enable Microblaze Hardware Multiply with high (64 bit) result."
3
4# Establish which Multiply output result size to use
5MBCCARGSMUL_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "multiply-low", "-mno-xl-soft-mul", "-mxl-soft-mul" ,d)}"
6MBCCARGSMUL = "${@bb.utils.contains("TUNE_FEATURES", "multiply-high", "-mno-xl-soft-mul -mxl-multiply-high", "${MBCCARGSMUL_BASIC}" ,d)}"
7
8MBPKGMUL_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "multiply-low", "-ml", "" ,d)}"
9MBPKGMUL = "${@bb.utils.contains("TUNE_FEATURES", "multiply-high", "-mh", "${MBPKGMUL_BASIC}" ,d)}"
diff --git a/conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc b/conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc
deleted file mode 100644
index 347fba79..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc
+++ /dev/null
@@ -1,3 +0,0 @@
1TUNEVALID[pattern-compare] = "Enable Microblaze Pattern Compare Instructions."
2MBCCARGSPATTERNCOMPARE = "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare" ,d)}"
3MBPKGSPATTERNCOMPARE = "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "" ,d)}"
diff --git a/conf/machine/include/microblaze/feature-microblaze-reorder.inc b/conf/machine/include/microblaze/feature-microblaze-reorder.inc
deleted file mode 100644
index 0d809ad1..00000000
--- a/conf/machine/include/microblaze/feature-microblaze-reorder.inc
+++ /dev/null
@@ -1,3 +0,0 @@
1TUNEVALID[reorder] = "Enable Microblaze Reorder Instructions."
2MBCCARGSREORDER = "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-mxl-reorder", "-mno-xl-reorder" ,d)}"
3MBPKGREORDER = "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "" ,d)}"
diff --git a/conf/machine/include/tune-microblaze-features.inc b/conf/machine/include/tune-microblaze-features.inc
deleted file mode 100644
index 29463d2b..00000000
--- a/conf/machine/include/tune-microblaze-features.inc
+++ /dev/null
@@ -1,20 +0,0 @@
1# The order of these files defines the order of sections in the PKGARCH variable
2require conf/machine/include/microblaze/feature-microblaze-endian.inc
3require conf/machine/include/microblaze/feature-microblaze-versions.inc
4require conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc
5require conf/machine/include/microblaze/feature-microblaze-multiply.inc
6require conf/machine/include/microblaze/feature-microblaze-divide.inc
7require conf/machine/include/microblaze/feature-microblaze-fpu.inc
8require conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc
9require conf/machine/include/microblaze/feature-microblaze-reorder.inc
10
11# Architecture name, either 'microblaze' or 'microblazeel' depending on endianess
12TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "eb" ,d)}"
13
14# Compiler args
15TUNE_CCARGS += "${MBCCARGSENDIAN} ${MBCCARGSBARRELSHIFT} ${MBCCARGSMUL} ${MBCCARGSDIV} ${MBCCARGSFPU} ${MBCCARGSPATTERNCOMPARE} ${MBCCARGSREORDER}"
16
17# Package Architecture formatting
18MBPKGMATH = "${MBPKGMUL}${MBPKGDIV}${MBPKGFPU}"
19TUNE_PKGARCH = "microblaze${MBPKGENDIAN}${MBPKGARCH_VERSION}${MBPKGBARRELSHIFT}${MBPKGSPATTERNCOMPARE}${MBPKGREORDER}${MBPKGMATH}"
20
diff --git a/conf/machine/include/tune-microblaze.inc b/conf/machine/include/tune-microblaze.inc
index a5b6109e..382d885e 100644
--- a/conf/machine/include/tune-microblaze.inc
+++ b/conf/machine/include/tune-microblaze.inc
@@ -1,16 +1,11 @@
1DEFAULTTUNE ?= "microblaze" 1DEFAULTTUNE ?= "microblaze"
2 2
3require conf/machine/include/tune-microblaze-features.inc 3require conf/machine/include/microblaze/arch-microblaze.inc
4 4
5TUNEVALID[microblaze] = "Microblaze"
6AVAILTUNES += "microblaze" 5AVAILTUNES += "microblaze"
7
8TUNE_FEATURES_tune-microblaze = "microblaze" 6TUNE_FEATURES_tune-microblaze = "microblaze"
9PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" 7PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}"
10 8
11# override for architecture
12MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "" ,d)}"
13
14# Linux Configuration 9# Linux Configuration
15KERNEL_IMAGETYPE ?= "linux.bin.ub" 10KERNEL_IMAGETYPE ?= "linux.bin.ub"
16 11