summaryrefslogtreecommitdiffstats
path: root/conf/machine/include
diff options
context:
space:
mode:
Diffstat (limited to 'conf/machine/include')
-rw-r--r--conf/machine/include/machine-xilinx-board.inc3
-rw-r--r--conf/machine/include/machine-xilinx-default.inc24
-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-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/microblaze/feature-microblaze-v7.inc7
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-v8.inc45
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-v9.inc4
-rw-r--r--conf/machine/include/microblaze/feature-microblaze-versions.inc19
-rw-r--r--conf/machine/include/tune-microblaze-features.inc19
-rw-r--r--conf/machine/include/tune-microblaze.inc20
-rw-r--r--conf/machine/include/tune-zynq.inc22
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
3EXTRA_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
4IMAGE_FSTYPES ?= "cpio tar.gz ext2 ext2.gz.u-boot"
5IMAGE_CLASSES += "image_types_uboot"
6
7# Kernel Configuration
8PREFERRED_PROVIDER_virtual/kernel ?= "linux-xlnx"
9PREFERRED_VERSION_linux-xlnx ?= "3.8%"
10PREFERRED_VERSION_linux-yocto ?= "3.10%"
11
12# U-Boot Configuration
13PREFERRED_PROVIDER_virtual/bootloader ?= "u-boot-xlnx"
14PREFERRED_PROVIDER_u-boot ?= "u-boot-xlnx"
15PREFERRED_VERSION_u-boot-xlnx ?= "v2013.01%"
16
17# Architecture specific kernel configuration parts, defconfigs for Xilinx architectures
18MACHINE_KCONFIG_prepend += "common/linux/${SOC_FAMILY}/defconfig_${@'.'.join(d.getVar('LINUX_VERSION', True).split('.')[0:2]).strip('+')}.cfg "
19
20# Common Device Tree Includes
21MACHINE_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 @@
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
new file mode 100644
index 00000000..5d010a4a
--- /dev/null
+++ b/conf/machine/include/microblaze/feature-microblaze-divide.inc
@@ -0,0 +1,3 @@
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
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
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", "eb" ,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
new file mode 100644
index 00000000..bf2fe38b
--- /dev/null
+++ b/conf/machine/include/microblaze/feature-microblaze-fpu.inc
@@ -0,0 +1,17 @@
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-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 @@
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
new file mode 100644
index 00000000..347fba79
--- /dev/null
+++ b/conf/machine/include/microblaze/feature-microblaze-pattern-compare.inc
@@ -0,0 +1,3 @@
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
new file mode 100644
index 00000000..0d809ad1
--- /dev/null
+++ b/conf/machine/include/microblaze/feature-microblaze-reorder.inc
@@ -0,0 +1,3 @@
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/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
2TUNEVALID[v7.30] = "Use Microblaze version 7.30"
3
4MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v7.30", "-mcpu=v7.30.a", "" ,d)}"
5MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v7.30", "-v7.30", "" ,d)}"
6
7TUNECONFLICTS[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
2TUNEVALID[v8.50] = "Use Microblaze version 8.50"
3MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.50", "-mcpu=v8.50.a", "" ,d)}"
4MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.50", "-v8.50", "" ,d)}"
5
6TUNEVALID[v8.40] = "Use Microblaze version 8.40"
7MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.40", "-mcpu=v8.40.a", "" ,d)}"
8MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.40", "-v8.40", "" ,d)}"
9
10TUNEVALID[v8.30] = "Use Microblaze version 8.30"
11MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.30", "-mcpu=v8.30.a", "" ,d)}"
12MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.30", "-v8.30", "" ,d)}"
13
14TUNEVALID[v8.20] = "Use Microblaze version 8.20"
15MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.20", "-mcpu=v8.20.a", "" ,d)}"
16MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.20", "-v8.20", "" ,d)}"
17
18TUNEVALID[v8.10] = "Use Microblaze version 8.10"
19MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.10", "-mcpu=v8.10.a", "" ,d)}"
20MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.10", "-v8.10", "" ,d)}"
21
22TUNEVALID[v8.00] = "Use Microblaze version 8.00"
23MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v8.00", "-mcpu=v8.00.a", "" ,d)}"
24MBPKGVERSION .= "${@bb.utils.contains("TUNE_FEATURES", "v8.00", "-v8.00", "" ,d)}"
25
26TUNECONFLICTS[v8.00] += "reorder"
27TUNECONFLICTS[v8.10] += "reorder"
28TUNECONFLICTS[v8.20] += "reorder"
29
30# Perform some additional sanity checking
31python __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
2TUNEVALID[v9.0] = "Use Microblaze version 9.0"
3MBCCARGSVERSION += "${@bb.utils.contains("TUNE_FEATURES", "v9.0", "-mcpu=v9.0", "" ,d)}"
4MBPKGVERSION .= "${@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
4MBCCARGSVERSION = ""
5MBPKGVERSION = ""
6require conf/machine/include/microblaze/feature-microblaze-v9.inc
7require conf/machine/include/microblaze/feature-microblaze-v8.inc
8require 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.
12TUNECONFLICTS[v9.0] += "v7.30 v8.00 v8.10 v8.20 v8.30 v8.40 v8.50"
13TUNECONFLICTS[v8.50] += "v7.30 v8.00 v8.10 v8.20 v8.30 v8.40 v9.0"
14TUNECONFLICTS[v8.40] += "v7.30 v8.00 v8.10 v8.20 v8.30 v8.50 v9.0"
15TUNECONFLICTS[v8.30] += "v7.30 v8.00 v8.10 v8.20 v8.40 v8.50 v9.0"
16TUNECONFLICTS[v8.20] += "v7.30 v8.00 v8.10 v8.30 v8.40 v8.50 v9.0"
17TUNECONFLICTS[v8.10] += "v7.30 v8.00 v8.20 v8.30 v8.40 v8.50 v9.0"
18TUNECONFLICTS[v8.00] += "v7.30 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0"
19TUNECONFLICTS[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
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", "" ,d)}"
13
14# Compiler args
15TUNE_CCARGS += "${MBCCARGSENDIAN} ${MBCCARGSVERSION} ${MBCCARGSBARRELSHIFT} ${MBCCARGSMUL} ${MBCCARGSDIV} ${MBCCARGSFPU} ${MBCCARGSPATTERNCOMPARE} ${MBCCARGSREORDER}"
16
17# Package Architecture formatting
18MBPKGMATH = "${MBPKGMUL}${MBPKGDIV}${MBPKGFPU}"
19TUNE_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 @@
1DEFAULTTUNE ?= "microblaze"
2SOC_FAMILY ?= "microblaze"
3
4require conf/machine/include/tune-microblaze-features.inc
5require conf/machine/include/soc-family.inc
6
7TUNEVALID[microblaze] = "Microblaze"
8AVAILTUNES += "microblaze"
9
10TUNE_FEATURES_tune-microblaze = "microblaze"
11PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}"
12
13# Linux Configuration
14KERNEL_IMAGETYPE ?= "linux.bin.ub"
15
16# U-Boot Configuration
17UBOOT_MACHINE ?= "microblaze-generic"
18
19# linux-yocto KMACHINE
20KMACHINE ?= "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 @@
1DEFAULTTUNE ?= "zynq"
2SOC_FAMILY ?= "zynq"
3
4require conf/machine/include/tune-cortexa9.inc
5require conf/machine/include/soc-family.inc
6
7TUNEVALID[zynq] = "Zynq"
8AVAILTUNES += "zynq"
9
10TUNE_FEATURES_tune-zynq += "${TUNE_FEATURES_tune-armv7a-neon} zynq"
11ARMPKGARCH = "${ARMPKGARCH_tune-armv7a-neon}"
12PACKAGE_EXTRA_ARCHS_tune-zynq = "${PACKAGE_EXTRA_ARCHS_tune-armv7a-neon} zynq"
13
14# Linux Configuration
15KERNEL_IMAGETYPE ?= "uImage"
16
17# Set default load address.
18# Override with KERNEL_EXTRA_ARGS_<board> += "..." in machine file if required
19KERNEL_EXTRA_ARGS_zynq += "UIMAGE_LOADADDR=0x8000"
20
21# linux-yocto KMACHINE
22KMACHINE ?= "zynq"