diff options
author | Mark Hatle <mark.hatle@xilinx.com> | 2021-12-18 14:41:27 -0800 |
---|---|---|
committer | Mark Hatle <mark.hatle@xilinx.com> | 2022-01-14 11:23:13 -0800 |
commit | ae3497cd03cdd096730b7e797cadf3b7bcfbdb90 (patch) | |
tree | 2294d7ca832dafc2c882166eb27848a9326ed6af | |
parent | dd1af54374ae9e96cebef306730c1f26d89d9e30 (diff) | |
download | meta-xilinx-ae3497cd03cdd096730b7e797cadf3b7bcfbdb90.tar.gz |
Microblaze: Make microblaze-generic arch dynamic to configuration
Adjust configurations, and users of the generic configuration. The TUNE must
be set BEFOER the inclusion, otherwise there is no way to dynamicly generate
the correct MACHINE_ARCH.
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
8 files changed, 35 insertions, 19 deletions
diff --git a/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc b/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc index 810ad9e9..539879d4 100644 --- a/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc +++ b/meta-xilinx-bsp/conf/machine/include/soc-tune-include.inc | |||
@@ -1,13 +1,16 @@ | |||
1 | DEFAULTTUNE ??= "armv8a" | ||
2 | |||
1 | # Unfortunately various tunefiles don't include each other, so create | 3 | # Unfortunately various tunefiles don't include each other, so create |
2 | # a list of things to require based on the DEFAULTTUNE setting. | 4 | # a list of things to require based on the DEFAULTTUNE setting. |
3 | TUNEFILE[cortexr5] = "conf/machine/include/arm/armv7r/tune-cortexr5.inc" | 5 | TUNEFILE[cortexr5] = "conf/machine/include/arm/armv7r/tune-cortexr5.inc" |
4 | TUNEFILE[cortexa9thf-neon] = "conf/machine/include/arm/armv7a/tune-cortexa9.inc" | 6 | TUNEFILE[cortexa9thf-neon] = "conf/machine/include/arm/armv7a/tune-cortexa9.inc" |
7 | TUNEFILE[armv8a] = "conf/machine/include/arm/arch-armv8a.inc" | ||
5 | TUNEFILE[cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa53.inc" | 8 | TUNEFILE[cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa53.inc" |
6 | TUNEFILE[cortexa72] = "conf/machine/include/arm/armv8a/tune-cortexa72.inc" | 9 | TUNEFILE[cortexa72] = "conf/machine/include/arm/armv8a/tune-cortexa72.inc" |
7 | TUNEFILE[cortexa72-cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc" | 10 | TUNEFILE[cortexa72-cortexa53] = "conf/machine/include/arm/armv8a/tune-cortexa72-cortexa53.inc" |
8 | TUNEFILE[microblaze] = "conf/machine/include/microblaze/tune-microblaze.inc" | 11 | TUNEFILE[microblaze] = "conf/machine/include/xilinx-microblaze.inc" |
9 | 12 | ||
10 | # Default to arch-armv8a.inc | 13 | # Default to arch-armv8a.inc |
11 | TUNEFILE = "${@ d.getVarFlag('TUNEFILE', d.getVar('DEFAULTTUNE')) if d.getVarFlag('TUNEFILE', d.getVar('DEFAULTTUNE')) else 'conf/machine/include/arm/arch-armv8a.inc'}" | 14 | TUNEFILE = "${@ d.getVarFlag('TUNEFILE', d.getVar('DEFAULTTUNE')) or 'conf/machine/include/arm/arch-armv8a.inc'}" |
12 | 15 | ||
13 | require ${TUNEFILE} | 16 | require ${TUNEFILE} |
diff --git a/meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc b/meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc new file mode 100644 index 00000000..d0252e79 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/include/xilinx-microblaze.inc | |||
@@ -0,0 +1,7 @@ | |||
1 | # To avoid the require overriding previous defaults we use the override to make this the default | ||
2 | TUNE_FEATURES_save := "${TUNE_FEATURES:tune-microblaze}" | ||
3 | |||
4 | require conf/machine/include/microblaze/tune-microblaze.inc | ||
5 | |||
6 | # Reset the default value back to what it was previously set to... | ||
7 | TUNE_FEATURES:tune-microblaze := "${TUNE_FEATURES_save}" | ||
diff --git a/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf b/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf index 097ca084..36cdc1e5 100644 --- a/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf +++ b/meta-xilinx-bsp/conf/machine/kc705-microblazeel.conf | |||
@@ -3,10 +3,9 @@ | |||
3 | #@DESCRIPTION: Machine support for Xilinx KC705 Embedded Kit. | 3 | #@DESCRIPTION: Machine support for Xilinx KC705 Embedded Kit. |
4 | # | 4 | # |
5 | 5 | ||
6 | require conf/machine/include/microblaze/tune-microblaze.inc | 6 | TUNE_FEATURES:tune-microblaze ?= "microblaze v11.0 barrel-shift reorder pattern-compare multiply-high divide-hard" |
7 | require conf/machine/include/machine-xilinx-default.inc | ||
8 | 7 | ||
9 | TUNE_FEATURES:tune-microblaze += "v11.0 barrel-shift reorder pattern-compare multiply-high divide-hard" | 8 | require conf/machine/microblaze-generic.conf |
10 | 9 | ||
11 | MACHINE_FEATURES = "" | 10 | MACHINE_FEATURES = "" |
12 | 11 | ||
diff --git a/meta-xilinx-bsp/conf/machine/microblaze-generic.conf b/meta-xilinx-bsp/conf/machine/microblaze-generic.conf index af119f5f..6dfa9997 100644 --- a/meta-xilinx-bsp/conf/machine/microblaze-generic.conf +++ b/meta-xilinx-bsp/conf/machine/microblaze-generic.conf | |||
@@ -2,11 +2,22 @@ | |||
2 | #@NAME: microblaze-generic | 2 | #@NAME: microblaze-generic |
3 | #@DESCRIPTION: Generic microblaze defaults to little-endian v11.0 barrel-shift pattern-compare reorder divide-hard multiple-high support | 3 | #@DESCRIPTION: Generic microblaze defaults to little-endian v11.0 barrel-shift pattern-compare reorder divide-hard multiple-high support |
4 | 4 | ||
5 | require conf/machine/include/microblaze/tune-microblaze.inc | 5 | # Set the default for a modern full feature microblaze... |
6 | TUNE_FEATURES:tune-microblaze ?= "microblaze v11.0 barrel-shift pattern-compare reorder divide-hard multiply-high" | ||
7 | DEFAULTTUNE ?= "microblaze" | ||
8 | |||
9 | require conf/machine/include/soc-tune-include.inc | ||
6 | require conf/machine/include/machine-xilinx-default.inc | 10 | require conf/machine/include/machine-xilinx-default.inc |
11 | require conf/machine/include/machine-xilinx-qemu.inc | ||
7 | require conf/machine/include/xilinx-board.inc | 12 | require conf/machine/include/xilinx-board.inc |
8 | 13 | ||
9 | TUNE_FEATURES:tune-microblaze = "microblaze v11.0 barrel-shift pattern-compare reorder divide-hard multiply-high" | 14 | # The default MACHINE_ARCH is dynmic for microblaze, since the architecture is not fixed |
15 | # Based on core bitbake.conf | ||
16 | DEF_MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}" | ||
17 | # Enable a dynamic machine_arch | ||
18 | MB_MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('TUNE_PKGARCH') + '-generic'][bool(d.getVar('MACHINE'))].replace('-', '_')}" | ||
19 | |||
20 | MACHINE_ARCH = "${@['${MB_MACHINE_ARCH}', '${DEF_MACHINE_ARCH}']['microblaze-generic' != "${MACHINE}"]}" | ||
10 | 21 | ||
11 | MACHINE_FEATURES = "" | 22 | MACHINE_FEATURES = "" |
12 | 23 | ||
diff --git a/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf b/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf index 415a61c2..96b4e6d1 100644 --- a/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf +++ b/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-mh-div-generic.conf | |||
@@ -2,6 +2,6 @@ | |||
2 | #@NAME: microblazeel-v11.0-bs-cmp-mh-div-generic | 2 | #@NAME: microblazeel-v11.0-bs-cmp-mh-div-generic |
3 | #@DESCRIPTION: microblazeel-v11.0-bs-cmp-mh-div | 3 | #@DESCRIPTION: microblazeel-v11.0-bs-cmp-mh-div |
4 | 4 | ||
5 | require conf/machine/include/microblaze-generic.conf | 5 | TUNE_FEATURES:tune-microblaze ?= "microblaze v11.0 barrel-shift pattern-compare reorder divide-hard multiply-high" |
6 | 6 | ||
7 | TUNE_FEATURES:tune-microblaze = "microblaze v11.0 barrel-shift pattern-compare reorder divide-hard multiply-high" | 7 | require conf/machine/microblaze-generic.conf |
diff --git a/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf b/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf index 5d6ea8ab..cf83acf8 100644 --- a/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf +++ b/meta-xilinx-bsp/conf/machine/microblazeel-v11.0-bs-cmp-ml-generic.conf | |||
@@ -2,6 +2,6 @@ | |||
2 | #@NAME: microblazeel-v11.0-bs-cmp-ml-generic | 2 | #@NAME: microblazeel-v11.0-bs-cmp-ml-generic |
3 | #@DESCRIPTION: microblazeel-v11.0-bs-cmp-ml | 3 | #@DESCRIPTION: microblazeel-v11.0-bs-cmp-ml |
4 | 4 | ||
5 | require conf/machine/include/microblaze-generic.conf | 5 | TUNE_FEATURES:tune-microblaze ?= "microblaze v11.0 barrel-shift reorder pattern-compare multiply-low" |
6 | 6 | ||
7 | TUNE_FEATURES:tune-microblaze = "microblaze v11.0 barrel-shift reorder pattern-compare multiply-low" | 7 | require conf/machine/microblaze-generic.conf |
diff --git a/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf b/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf index 49c007a2..a16c707b 100644 --- a/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf +++ b/meta-xilinx-bsp/conf/machine/ml605-qemu-microblazeel.conf | |||
@@ -2,11 +2,9 @@ | |||
2 | #@NAME: ml605-qemu-microblazeel | 2 | #@NAME: ml605-qemu-microblazeel |
3 | #@DESCRIPTION: MicroBlaze QEMU machine support ('petalogix-ml605' model) | 3 | #@DESCRIPTION: MicroBlaze QEMU machine support ('petalogix-ml605' model) |
4 | 4 | ||
5 | require conf/machine/include/microblaze/tune-microblaze.inc | 5 | TUNE_FEATURES:tune-microblaze ?= "microblaze v8.50 barrel-shift reorder pattern-compare divide-hard multiply-high fpu-hard" |
6 | require conf/machine/include/machine-xilinx-default.inc | ||
7 | require conf/machine/include/machine-xilinx-qemu.inc | ||
8 | 6 | ||
9 | TUNE_FEATURES:tune-microblaze += "v8.50 barrel-shift reorder pattern-compare divide-hard multiply-high fpu-hard" | 7 | require conf/machine/microblaze-generic.conf |
10 | 8 | ||
11 | MACHINE_FEATURES = "" | 9 | MACHINE_FEATURES = "" |
12 | 10 | ||
diff --git a/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf b/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf index c68d6ab5..12621357 100644 --- a/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf +++ b/meta-xilinx-bsp/conf/machine/s3adsp1800-qemu-microblazeeb.conf | |||
@@ -2,11 +2,9 @@ | |||
2 | #@NAME: s3adsp1800-qemu-microblazeeb | 2 | #@NAME: s3adsp1800-qemu-microblazeeb |
3 | #@DESCRIPTION: MicroBlaze QEMU machine support ('petalogix-s3adsp1800' model) | 3 | #@DESCRIPTION: MicroBlaze QEMU machine support ('petalogix-s3adsp1800' model) |
4 | 4 | ||
5 | require conf/machine/include/microblaze/tune-microblaze.inc | 5 | TUNE_FEATURES:tune-microblaze ?= "microblaze v8.00 bigendian barrel-shift pattern-compare multiply-low" |
6 | require conf/machine/include/machine-xilinx-default.inc | ||
7 | require conf/machine/include/machine-xilinx-qemu.inc | ||
8 | 6 | ||
9 | TUNE_FEATURES:tune-microblaze += "v8.00 bigendian barrel-shift pattern-compare multiply-low" | 7 | require conf/machine/microblaze-generic.conf |
10 | 8 | ||
11 | MACHINE_FEATURES = "" | 9 | MACHINE_FEATURES = "" |
12 | 10 | ||