diff options
Diffstat (limited to 'conf/machine/include')
16 files changed, 214 insertions, 0 deletions
diff --git a/conf/machine/include/machine-xilinx-board.inc b/conf/machine/include/machine-xilinx-board.inc new file mode 100644 index 00000000..dcd4b030 --- /dev/null +++ b/conf/machine/include/machine-xilinx-board.inc | |||
@@ -0,0 +1,3 @@ | |||
1 | # Default Xilinx Board settings | ||
2 | |||
3 | EXTRA_IMAGEDEPENDS += "virtual/bootloader" | ||
diff --git a/conf/machine/include/machine-xilinx-default.inc b/conf/machine/include/machine-xilinx-default.inc new file mode 100644 index 00000000..4d5d977d --- /dev/null +++ b/conf/machine/include/machine-xilinx-default.inc | |||
@@ -0,0 +1,24 @@ | |||
1 | # Default Xilinx BSP Machine settings | ||
2 | |||
3 | # File System Configuration | ||
4 | IMAGE_FSTYPES ?= "cpio tar.gz ext2 ext2.gz.u-boot" | ||
5 | IMAGE_CLASSES += "image_types_uboot" | ||
6 | |||
7 | # Kernel Configuration | ||
8 | PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx" | ||
9 | PREFERRED_VERSION_linux-xlnx ?= "3.8%" | ||
10 | PREFERRED_VERSION_linux-yocto ?= "3.10%" | ||
11 | |||
12 | # U-Boot Configuration | ||
13 | PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx" | ||
14 | PREFERRED_PROVIDER_u-boot ?= "u-boot-xlnx" | ||
15 | PREFERRED_VERSION_u-boot-xlnx ?= "v2013.01%" | ||
16 | |||
17 | # Architecture specific kernel configuration parts, defconfigs for Xilinx architectures | ||
18 | MACHINE_KCONFIG_prepend += "common/linux/${SOC_FAMILY}/defconfig_${@'.'.join(d.getVar('LINUX_VERSION', True).split('.')[0:2]).strip('+')}.cfg " | ||
19 | |||
20 | # Common Device Tree Includes | ||
21 | MACHINE_DEVICETREE_append_zynq += " \ | ||
22 | common/zynq7-base.dtsi \ | ||
23 | common/zynq7-mainline-gem.dtsi \ | ||
24 | " | ||
diff --git a/conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc b/conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc new file mode 100644 index 00000000..ca7e7e39 --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-barrel-shift.inc | |||
@@ -0,0 +1,3 @@ | |||
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 new file mode 100644 index 00000000..5d010a4a --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-divide.inc | |||
@@ -0,0 +1,3 @@ | |||
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 new file mode 100644 index 00000000..80567611 --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-endian.inc | |||
@@ -0,0 +1,13 @@ | |||
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", "eb" ,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 new file mode 100644 index 00000000..bf2fe38b --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-fpu.inc | |||
@@ -0,0 +1,17 @@ | |||
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-multiply.inc b/conf/machine/include/microblaze/feature-microblaze-multiply.inc new file mode 100644 index 00000000..e3f8ae5f --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-multiply.inc | |||
@@ -0,0 +1,9 @@ | |||
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 new file mode 100644 index 00000000..347fba79 --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc | |||
@@ -0,0 +1,3 @@ | |||
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 new file mode 100644 index 00000000..0d809ad1 --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-reorder.inc | |||
@@ -0,0 +1,3 @@ | |||
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/microblaze/feature-microblaze-v7.inc b/conf/machine/include/microblaze/feature-microblaze-v7.inc new file mode 100644 index 00000000..6022e473 --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-v7.inc | |||
@@ -0,0 +1,7 @@ | |||
1 | # Setup version 'feature set' for supported Microblaze version 7 versions | ||
2 | TUNEVALID[v7.30] = "Use Microblaze version 7.30" | ||
3 | |||
4 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v7.30", "-mcpu=v7.30.a", "" ,d)}" | ||
5 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v7.30", "-v7.30", "" ,d)}" | ||
6 | |||
7 | TUNECONFLICTS[v7.30] += "reorder little-endian" | ||
diff --git a/conf/machine/include/microblaze/feature-microblaze-v8.inc b/conf/machine/include/microblaze/feature-microblaze-v8.inc new file mode 100644 index 00000000..46a11cfd --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-v8.inc | |||
@@ -0,0 +1,45 @@ | |||
1 | # Setup version 'feature set' for supported Microblaze version 8 versions | ||
2 | TUNEVALID[v8.50] = "Use Microblaze version 8.50" | ||
3 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.50", "-mcpu=v8.50.a", "" ,d)}" | ||
4 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.50", "-v8.50", "" ,d)}" | ||
5 | |||
6 | TUNEVALID[v8.40] = "Use Microblaze version 8.40" | ||
7 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.40", "-mcpu=v8.40.a", "" ,d)}" | ||
8 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.40", "-v8.40", "" ,d)}" | ||
9 | |||
10 | TUNEVALID[v8.30] = "Use Microblaze version 8.30" | ||
11 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.30", "-mcpu=v8.30.a", "" ,d)}" | ||
12 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.30", "-v8.30", "" ,d)}" | ||
13 | |||
14 | TUNEVALID[v8.20] = "Use Microblaze version 8.20" | ||
15 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.20", "-mcpu=v8.20.a", "" ,d)}" | ||
16 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.20", "-v8.20", "" ,d)}" | ||
17 | |||
18 | TUNEVALID[v8.10] = "Use Microblaze version 8.10" | ||
19 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.10", "-mcpu=v8.10.a", "" ,d)}" | ||
20 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.10", "-v8.10", "" ,d)}" | ||
21 | |||
22 | TUNEVALID[v8.00] = "Use Microblaze version 8.00" | ||
23 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.00", "-mcpu=v8.00.a", "" ,d)}" | ||
24 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.00", "-v8.00", "" ,d)}" | ||
25 | |||
26 | TUNECONFLICTS[v8.00] += "reorder" | ||
27 | TUNECONFLICTS[v8.10] += "reorder" | ||
28 | TUNECONFLICTS[v8.20] += "reorder" | ||
29 | |||
30 | # Perform some additional sanity checking | ||
31 | python __anonymous () { | ||
32 | import bb | ||
33 | tune_features = bb.data.getVar('TUNE_FEATURES', d, 1) | ||
34 | tuneslist = tune_features.split() | ||
35 | |||
36 | # | ||
37 | # GCC will fail on v8.30 if reorder and pattern-compare are not | ||
38 | # both in ccflags | ||
39 | # -mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a | ||
40 | # Check if either one exists alone and if so, add the other | ||
41 | # | ||
42 | if 'v8.30' in tuneslist: | ||
43 | if 'reorder' in tuneslist and 'pattern-compare' not in tuneslist: | ||
44 | d.setVar("TUNE_FEATURES", "%s pattern-compare" % tune_features) | ||
45 | } | ||
diff --git a/conf/machine/include/microblaze/feature-microblaze-v9.inc b/conf/machine/include/microblaze/feature-microblaze-v9.inc new file mode 100644 index 00000000..cb934f6a --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-v9.inc | |||
@@ -0,0 +1,4 @@ | |||
1 | # Setup version 'feature set' for supported Microblaze version 9 versions | ||
2 | TUNEVALID[v9.0] = "Use Microblaze version 9.0" | ||
3 | MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v9.0", "-mcpu=v9.0", "" ,d)}" | ||
4 | MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v9.0", "-v9.0", "" ,d)}" | ||
diff --git a/conf/machine/include/microblaze/feature-microblaze-versions.inc b/conf/machine/include/microblaze/feature-microblaze-versions.inc new file mode 100644 index 00000000..24181cc9 --- /dev/null +++ b/conf/machine/include/microblaze/feature-microblaze-versions.inc | |||
@@ -0,0 +1,19 @@ | |||
1 | # Microblaze Versions are defined as features sets, each containing | ||
2 | # a set of hardware features. | ||
3 | |||
4 | MBCCARGSVERSION = "" | ||
5 | MBPKGVERSION = "" | ||
6 | require conf/machine/include/microblaze/feature-microblaze-v9.inc | ||
7 | require conf/machine/include/microblaze/feature-microblaze-v8.inc | ||
8 | require conf/machine/include/microblaze/feature-microblaze-v7.inc | ||
9 | |||
10 | # Setup a 'feature set' conflict list which ensures only one version is selected | ||
11 | # when defining the TUNE_FEATURES_tune-<> in local.conf file. | ||
12 | TUNECONFLICTS[v9.0] += "v7.30 v8.00 v8.10 v8.20 v8.30 v8.40 v8.50" | ||
13 | TUNECONFLICTS[v8.50] += "v7.30 v8.00 v8.10 v8.20 v8.30 v8.40 v9.0" | ||
14 | TUNECONFLICTS[v8.40] += "v7.30 v8.00 v8.10 v8.20 v8.30 v8.50 v9.0" | ||
15 | TUNECONFLICTS[v8.30] += "v7.30 v8.00 v8.10 v8.20 v8.40 v8.50 v9.0" | ||
16 | TUNECONFLICTS[v8.20] += "v7.30 v8.00 v8.10 v8.30 v8.40 v8.50 v9.0" | ||
17 | TUNECONFLICTS[v8.10] += "v7.30 v8.00 v8.20 v8.30 v8.40 v8.50 v9.0" | ||
18 | TUNECONFLICTS[v8.00] += "v7.30 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0" | ||
19 | TUNECONFLICTS[v7.30] += "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0" | ||
diff --git a/conf/machine/include/tune-microblaze-features.inc b/conf/machine/include/tune-microblaze-features.inc new file mode 100644 index 00000000..fd7e0c8f --- /dev/null +++ b/conf/machine/include/tune-microblaze-features.inc | |||
@@ -0,0 +1,19 @@ | |||
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", "" ,d)}" | ||
13 | |||
14 | # Compiler args | ||
15 | TUNE_CCARGS += "${MBCCARGSENDIAN} ${MBCCARGSVERSION} ${MBCCARGSBARRELSHIFT} ${MBCCARGSMUL} ${MBCCARGSDIV} ${MBCCARGSFPU} ${MBCCARGSPATTERNCOMPARE} ${MBCCARGSREORDER}" | ||
16 | |||
17 | # Package Architecture formatting | ||
18 | MBPKGMATH = "${MBPKGMUL}${MBPKGDIV}${MBPKGFPU}" | ||
19 | TUNE_PKGARCH = "microblaze${MBPKGENDIAN}${MBPKGVERSION}${MBPKGBARRELSHIFT}${MBPKGSPATTERNCOMPARE}${MBPKGREORDER}${MBPKGMATH}" | ||
diff --git a/conf/machine/include/tune-microblaze.inc b/conf/machine/include/tune-microblaze.inc new file mode 100644 index 00000000..851379b8 --- /dev/null +++ b/conf/machine/include/tune-microblaze.inc | |||
@@ -0,0 +1,20 @@ | |||
1 | DEFAULTTUNE ?= "microblaze" | ||
2 | SOC_FAMILY ?= "microblaze" | ||
3 | |||
4 | require conf/machine/include/tune-microblaze-features.inc | ||
5 | require conf/machine/include/soc-family.inc | ||
6 | |||
7 | TUNEVALID[microblaze] = "Microblaze" | ||
8 | AVAILTUNES += "microblaze" | ||
9 | |||
10 | TUNE_FEATURES_tune-microblaze = "microblaze" | ||
11 | PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" | ||
12 | |||
13 | # Linux Configuration | ||
14 | KERNEL_IMAGETYPE ?= "linux.bin.ub" | ||
15 | |||
16 | # U-Boot Configuration | ||
17 | UBOOT_MACHINE ?= "microblaze-generic" | ||
18 | |||
19 | # linux-yocto KMACHINE | ||
20 | KMACHINE ?= "microblaze" | ||
diff --git a/conf/machine/include/tune-zynq.inc b/conf/machine/include/tune-zynq.inc new file mode 100644 index 00000000..46334205 --- /dev/null +++ b/conf/machine/include/tune-zynq.inc | |||
@@ -0,0 +1,22 @@ | |||
1 | DEFAULTTUNE ?= "zynq" | ||
2 | SOC_FAMILY ?= "zynq" | ||
3 | |||
4 | require conf/machine/include/tune-cortexa9.inc | ||
5 | require conf/machine/include/soc-family.inc | ||
6 | |||
7 | TUNEVALID[zynq] = "Zynq" | ||
8 | AVAILTUNES += "zynq" | ||
9 | |||
10 | TUNE_FEATURES_tune-zynq += "${TUNE_FEATURES_tune-armv7a-neon} zynq" | ||
11 | ARMPKGARCH = "${ARMPKGARCH_tune-armv7a-neon}" | ||
12 | PACKAGE_EXTRA_ARCHS_tune-zynq = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} zynq" | ||
13 | |||
14 | # Linux Configuration | ||
15 | KERNEL_IMAGETYPE ?= "uImage" | ||
16 | |||
17 | # Set default load address. | ||
18 | # Override with KERNEL_EXTRA_ARGS_<board> += "..." in machine file if required | ||
19 | KERNEL_EXTRA_ARGS_zynq += "UIMAGE_LOADADDR=0x8000" | ||
20 | |||
21 | # linux-yocto KMACHINE | ||
22 | KMACHINE ?= "zynq" | ||