From a18947c20dba2c0c38db8bde1ad4684995df4bbd Mon Sep 17 00:00:00 2001 From: Manjukumar Matha Date: Wed, 6 Dec 2017 16:06:35 -0800 Subject: meta-xilinx: Restructuring meta-xilinx to support multiple layers As discussed previously on mailing list, we are proceeding with layer restructuring. For rocko release we will have the following layers meta-xilinx ->meta-xilinx-bsp (current meta-xilinx) ->meta-xilinx-contrib In the subsequent releases we will add other layers from Xilinx meta-xilinx ->meta-xilinx-bsp (current meta-xilinx) ->meta-petalinux ->meta-xilinx-tools ->meta-xilinx-contrib This will provide one clone to get all the required meta layers from Xilinx for a complete solution, and the users can blacklist any layer which they don't want to use using bblayer.conf. This will enables us to help our vendors/partners to add their reference designs, board definitions etc. Recipe changes : * Move reference design zybo-linux-bd.bb to meta-xilinx-contrib * Move kernel patches realted to zybo-linux-bd-zynq7 board to meta-xilinx-contrib * Update README Signed-off-by: Manjukumar Matha --- conf/machine/include/machine-xilinx-board.inc | 6 -- conf/machine/include/machine-xilinx-default.inc | 41 ------------- conf/machine/include/machine-xilinx-qemu.inc | 49 ---------------- .../machine/include/microblaze/arch-microblaze.inc | 53 ----------------- .../include/microblaze/feature-microblaze-math.inc | 33 ----------- .../microblaze/feature-microblaze-versions.inc | 67 ---------------------- conf/machine/include/tune-microblaze.inc | 19 ------ conf/machine/include/tune-zynq.inc | 12 ---- conf/machine/include/tune-zynqmp.inc | 11 ---- conf/machine/include/zynqmp-pmu-config.inc | 20 ------- 10 files changed, 311 deletions(-) delete mode 100644 conf/machine/include/machine-xilinx-board.inc delete mode 100644 conf/machine/include/machine-xilinx-default.inc delete mode 100644 conf/machine/include/machine-xilinx-qemu.inc delete mode 100644 conf/machine/include/microblaze/arch-microblaze.inc delete mode 100644 conf/machine/include/microblaze/feature-microblaze-math.inc delete mode 100644 conf/machine/include/microblaze/feature-microblaze-versions.inc delete mode 100644 conf/machine/include/tune-microblaze.inc delete mode 100644 conf/machine/include/tune-zynq.inc delete mode 100644 conf/machine/include/tune-zynqmp.inc delete mode 100644 conf/machine/include/zynqmp-pmu-config.inc (limited to 'conf/machine/include') diff --git a/conf/machine/include/machine-xilinx-board.inc b/conf/machine/include/machine-xilinx-board.inc deleted file mode 100644 index ba9a36be..00000000 --- a/conf/machine/include/machine-xilinx-board.inc +++ /dev/null @@ -1,6 +0,0 @@ -# Default Xilinx Board settings - -EXTRA_IMAGEDEPENDS += "virtual/bootloader" - -IMAGE_BOOT_FILES ?= "${KERNEL_IMAGETYPE} ${UBOOT_BINARY}" - diff --git a/conf/machine/include/machine-xilinx-default.inc b/conf/machine/include/machine-xilinx-default.inc deleted file mode 100644 index 522e0081..00000000 --- a/conf/machine/include/machine-xilinx-default.inc +++ /dev/null @@ -1,41 +0,0 @@ -# Default Xilinx BSP Machine settings - -MACHINE_FEATURES_BACKFILL_CONSIDERED += "rtc" - -# MicroBlaze cannot handle the execution of qemu-linux-user for gobject-introspection-data -MACHINE_FEATURES_BACKFILL_CONSIDERED_append_microblaze = " qemu-usermode" - -# File System Configuration -IMAGE_FSTYPES ?= "tar.gz cpio cpio.gz.u-boot" - -# Kernel Configuration -XILINX_DEFAULT_KERNEL := "linux-xlnx" -XILINX_DEFAULT_KERNEL_microblaze := "linux-yocto" -XILINX_DEFAULT_KERNEL_zynqmp := "linux-yocto" -PREFERRED_PROVIDER_virtual/kernel ??= "${XILINX_DEFAULT_KERNEL}" - -# U-Boot Configuration -XILINX_DEFAULT_UBOOT := "u-boot-xlnx" -XILINX_DEFAULT_UBOOT_zynqmp := "u-boot" -PREFERRED_PROVIDER_virtual/bootloader ??= "${XILINX_DEFAULT_UBOOT}" -PREFERRED_PROVIDER_virtual/boot-bin ??= "${PREFERRED_PROVIDER_virtual/bootloader}" - -UBOOT_SUFFIX ?= "img" -UBOOT_SUFFIX_zynqmp ?= "bin" -UBOOT_SUFFIX_microblaze ?= "bin" - -UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}" -UBOOT_ELF ?= "u-boot" -UBOOT_ELF_aarch64 ?= "u-boot.elf" - -XSERVER ?= " \ - xserver-xorg \ - xf86-input-evdev \ - xf86-input-mouse \ - xf86-input-keyboard \ - xf86-video-fbdev \ - ${XSERVER_EXT} \ - " - -XSERVER_EXT ?= "" -XSERVER_EXT_zynqmp ?= "xf86-video-armsoc" diff --git a/conf/machine/include/machine-xilinx-qemu.inc b/conf/machine/include/machine-xilinx-qemu.inc deleted file mode 100644 index dd275f3b..00000000 --- a/conf/machine/include/machine-xilinx-qemu.inc +++ /dev/null @@ -1,49 +0,0 @@ -# This include is used to setup default QEMU and qemuboot config for meta-xilinx -# machines. - -# depend on qemu-helper-native, which will depend on QEMU -EXTRA_IMAGEDEPENDS += "qemu-helper-native" - -def qemu_default_dtb(d): - if d.getVar("IMAGE_BOOT_FILES", True): - dtbs = d.getVar("IMAGE_BOOT_FILES", True).split(" ") - # IMAGE_BOOT_FILES has extra renaming info in the format ';' - dtbs = [f.split(";")[0] for f in dtbs] - dtbs = [f for f in dtbs if f.endswith(".dtb")] - if len(dtbs) != 0: - return dtbs[0] - if d.getVar("KERNEL_DEVICETREE", True): - dtbs = d.getVar("KERNEL_DEVICETREE", True).split(" ") - dtbs = [os.path.basename(d) for d in dtbs] - if len(dtbs) != 0: - return d.getVar("KERNEL_IMAGETYPE", True) + "-" + dtbs[0] - return "" - -def qemu_default_serial(d): - if d.getVar("SERIAL_CONSOLE", True): - speed, console = d.getVar("SERIAL_CONSOLE", True).split(" ", 1) - # zynqmp uses earlycon and stdout (in dtb) - if "zynqmp" in d.getVar("MACHINEOVERRIDES", True).split(":"): - return "" - return "console=%s,%s earlyprintk" % (console, speed) - return "" - -def qemu_target_binary(d): - ta = d.getVar("TARGET_ARCH", True) - if ta == "microblazeeb": - ta = "microblaze" - elif ta == "arm": - ta = "aarch64" - return "qemu-system-%s" % ta - -def qemu_zynqmp_unhalt(d, multiarch): - if multiarch: - return "-global xlnx,zynqmp-boot.cpu-num=0 -global xlnx,zynqmp-boot.use-pmufw=true" - return "-device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4 -device loader,addr=0xfd1a0104,data=0x8000000e,data-len=4" - -# For qemuboot, default setup across all machines in meta-xilinx -QB_SYSTEM_NAME ?= "${@qemu_target_binary(d)}" -QB_DEFAULT_FSTYPE ?= "cpio" -QB_DTB ?= "${@qemu_default_dtb(d)}" -QB_KERNEL_CMDLINE_APPEND ?= "${@qemu_default_serial(d)}" - diff --git a/conf/machine/include/microblaze/arch-microblaze.inc b/conf/machine/include/microblaze/arch-microblaze.inc deleted file mode 100644 index d79269cc..00000000 --- a/conf/machine/include/microblaze/arch-microblaze.inc +++ /dev/null @@ -1,53 +0,0 @@ -# MicroBlaze architecture tune feature configuration - -# Architecture feature and override -TUNEVALID[microblaze] = "MicroBlaze" -MACHINEOVERRIDES =. "${@bb.utils.contains("TUNE_FEATURES", "microblaze", "microblaze:", "" ,d)}" - -# Endian -TUNEVALID[bigendian] = "Use Microblaze Big Endian" -TUNECONFLICTS[bigendian] += "v10.0" - -MBPKGARCH_ENDIAN = "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el" ,d)}" - -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "bigendian", "-mbig-endian", "-mlittle-endian" ,d)}" - -# General features -TUNEVALID[barrel-shift] = "Enable Hardware Barrel Shifter" -TUNEVALID[pattern-compare] = "Enable Pattern Compare Instructions" -TUNEVALID[reorder] = "Enable Reorder Instructions" -TUNECONFLICTS[reorder] += "v8.00 v8.10 v8.20" - -# Core configuration tune optimizations -TUNEVALID[frequency-optimized] = "Enabling tuning for frequency optimized core (AREA_OPTIMIZED_2)" -TUNECONFLICTS[frequency-optimized] += "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6" - -# Feature compiler args -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-mxl-barrel-shift", "-mno-xl-barrel-shift" ,d)}" -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-mxl-pattern-compare", "-mno-xl-pattern-compare" ,d)}" -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-mxl-frequency", "", d)}" - -# Disable reorder for v8.30 if pattern-compare is not enabled -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "reorder", \ - bb.utils.contains("TUNE_FEATURES", "v8.30", \ - bb.utils.contains("TUNE_FEATURES", "pattern-compare", \ - "-mxl-reorder", "-mno-xl-reorder", d), \ - "-mxl-reorder", d), "-mno-xl-reorder", d)}" - -# Feature package architecture formatting -MBPKGARCH_TUNE = "" -MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "barrel-shift", "-bs", "" ,d)}" -MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "pattern-compare", "-cmp", "" ,d)}" -MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "reorder", "-re", "" ,d)}" -MBPKGARCH_TUNE .= "${@bb.utils.contains("TUNE_FEATURES", "frequency-optimized", "-fo", "" ,d)}" - -# Additional features -require conf/machine/include/microblaze/feature-microblaze-versions.inc -require conf/machine/include/microblaze/feature-microblaze-math.inc - -# Architecture name, either 'microblazeeb' or 'microblazeel' depending on endianess -TUNE_ARCH = "microblaze${@bb.utils.contains("TUNE_FEATURES", "bigendian", "eb", "el" ,d)}" - -# Package Architecture formatting -TUNE_PKGARCH = "microblaze${MBPKGARCH_ENDIAN}${MBPKGARCH_VERSION}${MBPKGARCH_TUNE}${MBPKGARCH_MATH}" - diff --git a/conf/machine/include/microblaze/feature-microblaze-math.inc b/conf/machine/include/microblaze/feature-microblaze-math.inc deleted file mode 100644 index b2c7f071..00000000 --- a/conf/machine/include/microblaze/feature-microblaze-math.inc +++ /dev/null @@ -1,33 +0,0 @@ -# This include describes the math features (integer and floating point) that -# are available for the MicroBlaze ISA - -TUNEVALID[multiply-low] = "Hardware multipler with 32 bit result" -TUNEVALID[multiply-high] = "Hardware multipler with 64 bit result" -TUNEVALID[divide-hard] = "Hardware divider" -TUNEVALID[fpu-soft] = "Software FPU" -TUNEVALID[fpu-hard] = "Hardware FPU in basic mode" -TUNEVALID[fpu-hard-extended] = "Hardware FPU in extended mode (conversion and square root instructions)" - -TUNECONFLICTS[fpu-soft] = "fpu-hard fpu-hard-extended" -TUNECONFLICTS[fpu-hard] = "fpu-soft" -TUNECONFLICTS[fpu-hard-extended] = "fpu-soft" - -# Compiler args -TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['multiply-low', 'multiply-high'], '-mno-xl-soft-mul', '-mxl-soft-mul', d)}" -TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mxl-multiply-high', '', d)}" - -TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-mno-xl-soft-div', '-mxl-soft-div' ,d)}" - -TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', '', '', d)}" -TUNE_CCARGS += "${@bb.utils.contains_any('TUNE_FEATURES', ['fpu-hard', 'fpu-hard-extended'], '-mhard-float', '', d)}" -TUNE_CCARGS += "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-mxl-float-convert -mxl-float-sqrt', '', d)}" - -# Set target fpu (bitbake known target) to soft or hard (basic or extended) -TARGET_FPU = "${@bb.utils.contains_any('TUNE_FEATURES', 'fpu-hard fpu-hard-extended', 'fpu-hard', 'fpu-soft', d)}" - -# Package Architecture formatting -MBPKGARCH_MATH = "" -MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'multiply-high', '-mh', bb.utils.contains('TUNE_FEATURES', 'multiply-low', '-ml', '', d), d)}" -MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'divide-hard', '-div', '' ,d)}" -MBPKGARCH_MATH .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-hard-extended', '-fe', bb.utils.contains('TUNE_FEATURES', 'fpu-hard', '-fb', '', d), d)}" - diff --git a/conf/machine/include/microblaze/feature-microblaze-versions.inc b/conf/machine/include/microblaze/feature-microblaze-versions.inc deleted file mode 100644 index 955674ff..00000000 --- a/conf/machine/include/microblaze/feature-microblaze-versions.inc +++ /dev/null @@ -1,67 +0,0 @@ -# MicroBlaze versions are defined as features, the features are setup to -# conflict with other versions as well as unavailable features for particular -# versions. -# -# Versions before v9.0 of MicroBlaze use a versioning scheme of "vX.YY.Z" -# (where Z = [abc]). For v8.* versions of MicroBlaze the revision (Z) changes -# did not affect ABI and are ignored by this tune configuration. Though this -# format is expected by GCC including the revision, but this is defaulted to -# ".a". -# -# Since v9.0 of MicroBlaze the revision (Z) part of versions was entirely -# dropped and the version scheme was changed to "vX.Y". - -def microblaze_current_version(d, gcc = False): - import re - # find the current version, and convert it to major/minor integers - version = None - for t in (d.getVar("TUNE_FEATURES") or "").split(): - m = re.search("^v(\d+)\.(\d+)", t) - if m: - version = int(m.group(1)), int(m.group(2)) - break - - # format the version string in generic or GCC specific formats - if version: - if version[0] <= 8: - return ("v%d.%02d" % version[0:2]) + (".a" if gcc else "") - else: - return "v%d.%d" % version[0:2] - return "" - -# MicroBlaze versions -TUNEVALID[v8.00] = "MicroBlaze version 8.00" -TUNEVALID[v8.10] = "MicroBlaze version 8.10" -TUNEVALID[v8.20] = "MicroBlaze version 8.20" -TUNEVALID[v8.30] = "MicroBlaze version 8.30" -TUNEVALID[v8.40] = "MicroBlaze version 8.40" -TUNEVALID[v8.50] = "MicroBlaze version 8.50" -TUNEVALID[v9.0] = "MicroBlaze version 9.0" -TUNEVALID[v9.1] = "MicroBlaze version 9.1" -TUNEVALID[v9.2] = "MicroBlaze version 9.2" -TUNEVALID[v9.3] = "MicroBlaze version 9.3" -TUNEVALID[v9.4] = "MicroBlaze version 9.4" -TUNEVALID[v9.5] = "MicroBlaze version 9.5" -TUNEVALID[v9.6] = "MicroBlaze version 9.6" -TUNEVALID[v10.0] = "MicroBlaze version 10.0" - -# Version conflict matrix -TUNECONFLICTS[v8.00] = "" -TUNECONFLICTS[v8.10] = "v8.00" -TUNECONFLICTS[v8.20] = "v8.00 v8.10" -TUNECONFLICTS[v8.30] = "v8.00 v8.10 v8.20" -TUNECONFLICTS[v8.40] = "v8.00 v8.10 v8.20 v8.30" -TUNECONFLICTS[v8.50] = "v8.00 v8.10 v8.20 v8.30 v8.40" -TUNECONFLICTS[v9.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50" -TUNECONFLICTS[v9.1] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0" -TUNECONFLICTS[v9.2] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1" -TUNECONFLICTS[v9.3] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2" -TUNECONFLICTS[v9.4] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3" -TUNECONFLICTS[v9.5] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4" -TUNECONFLICTS[v9.6] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5" -TUNECONFLICTS[v10.0] = "v8.00 v8.10 v8.20 v8.30 v8.40 v8.50 v9.0 v9.1 v9.2 v9.3 v9.4 v9.5 v9.6" - -# Version flags -TUNE_CCARGS += "-mcpu=${@microblaze_current_version(d, True)}" -MBPKGARCH_VERSION = "-${@microblaze_current_version(d)}" - diff --git a/conf/machine/include/tune-microblaze.inc b/conf/machine/include/tune-microblaze.inc deleted file mode 100644 index 835de41b..00000000 --- a/conf/machine/include/tune-microblaze.inc +++ /dev/null @@ -1,19 +0,0 @@ -DEFAULTTUNE ?= "microblaze" - -require conf/machine/include/microblaze/arch-microblaze.inc - -AVAILTUNES += "microblaze" -TUNE_FEATURES_tune-microblaze = "microblaze" -PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}" - -# Linux Configuration -KERNEL_IMAGETYPE ?= "linux.bin.ub" - -# U-Boot Configuration -UBOOT_MACHINE ?= "microblaze-generic_config" - -# default to use the gdb 7.7.1 -PREFERRED_VERSION_gdb ?= "7.7.1" -PREFERRED_VERSION_gdb-cross ?= "7.7.1" -PREFERRED_VERSION_gdb-cross-canadian ?= "7.7.1" - diff --git a/conf/machine/include/tune-zynq.inc b/conf/machine/include/tune-zynq.inc deleted file mode 100644 index 19e73412..00000000 --- a/conf/machine/include/tune-zynq.inc +++ /dev/null @@ -1,12 +0,0 @@ -DEFAULTTUNE ?= "cortexa9thf-neon" -SOC_FAMILY ?= "zynq" - -require conf/machine/include/tune-cortexa9.inc -require conf/machine/include/soc-family.inc - -# Linux Configuration -KERNEL_IMAGETYPE ?= "uImage" - -# Set default load address. -# Override with KERNEL_EXTRA_ARGS_ += "..." in machine file if required -KERNEL_EXTRA_ARGS_zynq += "UIMAGE_LOADADDR=0x8000" diff --git a/conf/machine/include/tune-zynqmp.inc b/conf/machine/include/tune-zynqmp.inc deleted file mode 100644 index 8d1f9537..00000000 --- a/conf/machine/include/tune-zynqmp.inc +++ /dev/null @@ -1,11 +0,0 @@ -DEFAULTTUNE ?= "aarch64" -SOC_FAMILY ?= "zynqmp" - -require conf/machine/include/arm/arch-armv8.inc -require conf/machine/include/soc-family.inc - -# Linux Configuration -KERNEL_IMAGETYPE ?= "Image" - -# Support multilib on zynqmp -DEFAULTTUNE_virtclass-multilib-lib32 ?= "armv7vethf-neon-vfpv4" diff --git a/conf/machine/include/zynqmp-pmu-config.inc b/conf/machine/include/zynqmp-pmu-config.inc deleted file mode 100644 index fd9e9809..00000000 --- a/conf/machine/include/zynqmp-pmu-config.inc +++ /dev/null @@ -1,20 +0,0 @@ - -# Enable the use of zynqmp-pmu for specific recipes only -def zynqmp_pmu_enable_for_bpns(d): - bpn = d.getVar("BPN") - crossbpns = ["binutils", "gcc"] - targetbpns = ["libgcc", "newlib", "libgloss"] - if bpn in targetbpns: - return True - if bpn in crossbpns and bb.data.inherits_class('cross', d): - return True - return False - -BBCLASSEXTEND_append = "${@' zynqmp-pmu' if zynqmp_pmu_enable_for_bpns(d) else ''}" - -# Add the pkgarch to the extra list, this is done to avoid warnings about -# missing manifests due to implicit dependency chains on populate_sysroot when -# a recipe/task depends on a IMAGE_EXTRADEPENDS/do_deploy task which is -# provided by a zynqmp-pmu-* target. -PACKAGE_EXTRA_ARCHS_append = " microblazeel-v9.2-bs-cmp" - -- cgit v1.2.3-54-g00ecf