diff options
author | Nathan Rossi <nathan@nathanrossi.com> | 2017-01-14 20:54:42 +1000 |
---|---|---|
committer | Nathan Rossi <nathan@nathanrossi.com> | 2017-03-31 22:31:49 +1000 |
commit | e3d355481abf8aa6537d7351c6b485fe8a036257 (patch) | |
tree | 050b529bd998a512b1713420b67fa93954d66b09 /conf | |
parent | df22c892c6d1254709ea5dbd89674877f23193fd (diff) | |
download | meta-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')
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 | ||
4 | TUNEVALID[microblaze] = "MicroBlaze" | ||
5 | MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "" ,d)}" | ||
6 | |||
7 | # Endian | ||
8 | TUNEVALID[big-endian] = "Use Microblaze Big Endian." | ||
9 | TUNECONFLICTS[big-endian] = "little-endian" | ||
10 | TUNEVALID[little-endian] = "Use Microblaze Little Endian." | ||
11 | TUNECONFLICTS[little-endian] = "big-endian" | ||
12 | |||
13 | MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "eb" ,d)}" | ||
14 | |||
15 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "big-endian", "-mbig-endian", "" ,d)}" | ||
16 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "-mlittle-endian", "" ,d)}" | ||
17 | |||
18 | # General features | ||
19 | TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter" | ||
20 | TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions" | ||
21 | TUNEVALID[reorder] = "Enable Reorder Instructions" | ||
22 | |||
23 | # General feature compiler args | ||
24 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift" ,d)}" | ||
25 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare" ,d)}" | ||
26 | TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-mxl-reorder", "-mno-xl-reorder" ,d)}" | ||
27 | |||
28 | # General feature package architecture formatting | ||
29 | MBPKGARCH_TUNE = "" | ||
30 | MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "" ,d)}" | ||
31 | MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "" ,d)}" | ||
32 | MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "" ,d)}" | ||
33 | |||
34 | # Additional features | ||
35 | require conf/machine/include/microblaze/feature-microblaze-versions.inc | ||
36 | require conf/machine/include/microblaze/feature-microblaze-math.inc | ||
37 | |||
38 | # Architecture name, either 'microblazeeb' or 'microblazeel' depending on endianess | ||
39 | TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "eb" ,d)}" | ||
40 | |||
41 | # Package Architecture formatting | ||
42 | TUNE_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 @@ | |||
1 | TUNEVALID[barrel-shift] = "Enable Microblaze Hardware Barrel Shift." | ||
2 | MBCCARGSBARRELSHIFT += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift" ,d)}" | ||
3 | MBPKGBARRELSHIFT .= "${@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 @@ | |||
1 | TUNEVALID[divide-hard] = "Enable Microblaze hardware divider." | ||
2 | MBCCARGSDIV += "${@bb.utils.contains("TUNE_FEATURES", "divide-hard", "-mno-xl-soft-div", "-mxl-soft-div" ,d)}" | ||
3 | MBPKGDIV .= "${@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 | ||
2 | MBCCARGSENDIAN = "" | ||
3 | MBPKGENDIAN = "" | ||
4 | |||
5 | TUNEVALID[little-endian] = "Use Microblaze Little Endian." | ||
6 | MBCCARGSENDIAN += "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "-mlittle-endian", "" ,d)}" | ||
7 | MBPKGENDIAN .= "${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "" ,d)}" | ||
8 | |||
9 | TUNEVALID[big-endian] = "Use Microblaze Big Endian." | ||
10 | MBCCARGSENDIAN += "${@bb.utils.contains("TUNE_FEATURES", "big-endian", "-mbig-endian", "" ,d)}" | ||
11 | MBPKGENDIAN .= "${@bb.utils.contains("TUNE_FEATURES", "big-endian", "eb", "" ,d)}" | ||
12 | |||
13 | TUNECONFLICTS[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 @@ | |||
1 | TUNEVALID[fpu-soft] = "Use Microblaze software FPU" | ||
2 | TUNEVALID[fpu-hard] = "Enable Microblaze hardware FPU in basic mode." | ||
3 | TUNEVALID[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. | ||
6 | MBCCARGSFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "-mhard-float", "", d)}" | ||
7 | MBCCARGSFPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard-extended", "-mhard-float -mxl-float-convert -mxl-float-sqrt", "${MBCCARGSFPU_BASIC}" ,d)}" | ||
8 | |||
9 | MBPKGFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "-fb", "", d)}" | ||
10 | MBPKGFPU = "${@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) | ||
13 | TARGETFPU_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard", "fpu-hard", "fpu-soft", d)}" | ||
14 | TARGET_FPU = "${@bb.utils.contains("TUNE_FEATURES", "fpu-hard-extended", "fpu-hard", "${TARGETFPU_BASIC}", d)}" | ||
15 | |||
16 | TUNECONFLICTS[fpu-hard] = "fpu-soft" | ||
17 | TUNECONFLICTS[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 | |||
4 | TUNEVALID[multiply-low] = "Hardware multipler with 32 bit result" | ||
5 | TUNEVALID[multiply-high] = "Hardware multipler with 64 bit result" | ||
6 | TUNEVALID[divide-hard] = "Hardware divider" | ||
7 | TUNEVALID[fpu-soft] = "Software FPU" | ||
8 | TUNEVALID[fpu-hard] = "Hardware FPU in basic mode" | ||
9 | TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)" | ||
10 | |||
11 | TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended" | ||
12 | TUNECONFLICTS[fpu-hard] = "fpu-soft" | ||
13 | TUNECONFLICTS[fpu-hard-extended] = "fpu-soft" | ||
14 | |||
15 | # Compiler args | ||
16 | TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], '-mno-xl-soft-mul', '-mxl-soft-mul', d)}" | ||
17 | TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mxl-multiply-high', '', d)}" | ||
18 | |||
19 | TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-mno-xl-soft-div', '-mxl-soft-div' ,d)}" | ||
20 | |||
21 | TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}" | ||
22 | TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], '-mhard-float', '', d)}" | ||
23 | TUNE_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) | ||
26 | TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}" | ||
27 | |||
28 | # Package Architecture formatting | ||
29 | MBPKGARCH_MATH = "" | ||
30 | MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}" | ||
31 | MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '' ,d)}" | ||
32 | MBPKGARCH_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 @@ | |||
1 | TUNEVALID[multiply-low] = "Enable Microblaze Hardware Multiply with low (32 bit) result." | ||
2 | TUNEVALID[multiply-high] = "Enable Microblaze Hardware Multiply with high (64 bit) result." | ||
3 | |||
4 | # Establish which Multiply output result size to use | ||
5 | MBCCARGSMUL_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "multiply-low", "-mno-xl-soft-mul", "-mxl-soft-mul" ,d)}" | ||
6 | MBCCARGSMUL = "${@bb.utils.contains("TUNE_FEATURES", "multiply-high", "-mno-xl-soft-mul -mxl-multiply-high", "${MBCCARGSMUL_BASIC}" ,d)}" | ||
7 | |||
8 | MBPKGMUL_BASIC = "${@bb.utils.contains("TUNE_FEATURES", "multiply-low", "-ml", "" ,d)}" | ||
9 | MBPKGMUL = "${@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 @@ | |||
1 | TUNEVALID[pattern-compare] = "Enable Microblaze Pattern Compare Instructions." | ||
2 | MBCCARGSPATTERNCOMPARE = "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare" ,d)}" | ||
3 | MBPKGSPATTERNCOMPARE = "${@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 @@ | |||
1 | TUNEVALID[reorder] = "Enable Microblaze Reorder Instructions." | ||
2 | MBCCARGSREORDER = "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-mxl-reorder", "-mno-xl-reorder" ,d)}" | ||
3 | MBPKGREORDER = "${@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 | ||
2 | require conf/machine/include/microblaze/feature-microblaze-endian.inc | ||
3 | require conf/machine/include/microblaze/feature-microblaze-versions.inc | ||
4 | require conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc | ||
5 | require conf/machine/include/microblaze/feature-microblaze-multiply.inc | ||
6 | require conf/machine/include/microblaze/feature-microblaze-divide.inc | ||
7 | require conf/machine/include/microblaze/feature-microblaze-fpu.inc | ||
8 | require conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc | ||
9 | require conf/machine/include/microblaze/feature-microblaze-reorder.inc | ||
10 | |||
11 | # Architecture name, either 'microblaze' or 'microblazeel' depending on endianess | ||
12 | TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "little-endian", "el", "eb" ,d)}" | ||
13 | |||
14 | # Compiler args | ||
15 | TUNE_CCARGS += "${MBCCARGSENDIAN} ${MBCCARGSBARRELSHIFT} ${MBCCARGSMUL} ${MBCCARGSDIV} ${MBCCARGSFPU} ${MBCCARGSPATTERNCOMPARE} ${MBCCARGSREORDER}" | ||
16 | |||
17 | # Package Architecture formatting | ||
18 | MBPKGMATH = "${MBPKGMUL}${MBPKGDIV}${MBPKGFPU}" | ||
19 | TUNE_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 @@ | |||
1 | DEFAULTTUNE ?= "microblaze" | 1 | DEFAULTTUNE ?= "microblaze" |
2 | 2 | ||
3 | require conf/machine/include/tune-microblaze-features.inc | 3 | require conf/machine/include/microblaze/arch-microblaze.inc |
4 | 4 | ||
5 | TUNEVALID[microblaze] = "Microblaze" | ||
6 | AVAILTUNES += "microblaze" | 5 | AVAILTUNES += "microblaze" |
7 | |||
8 | TUNE_FEATURES_tune-microblaze = "microblaze" | 6 | TUNE_FEATURES_tune-microblaze = "microblaze" |
9 | PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" | 7 | PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" |
10 | 8 | ||
11 | # override for architecture | ||
12 | MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "" ,d)}" | ||
13 | |||
14 | # Linux Configuration | 9 | # Linux Configuration |
15 | KERNEL_IMAGETYPE ?= "linux.bin.ub" | 10 | KERNEL_IMAGETYPE ?= "linux.bin.ub" |
16 | 11 | ||