diff options
| author | Mark Hatle <mark.hatle@xilinx.com> | 2021-12-15 13:52:16 -0800 |
|---|---|---|
| committer | Mark Hatle <mark.hatle@xilinx.com> | 2022-01-14 15:37:02 -0800 |
| commit | f900c6a0c8908e370689235230094308ec419cf9 (patch) | |
| tree | bd9ca83e452c263c7a421b826086048cf8130f34 /meta-xilinx-bsp/recipes-kernel | |
| parent | aaddcc3f785404da04af9ea3d005f2f520b4ec9e (diff) | |
| download | meta-xilinx-f900c6a0c8908e370689235230094308ec419cf9.tar.gz | |
Initial restructure/split of meta-xilinx-bsp
Create a new meta-xilinx-core, move core functionality to the core, keeping
board specific files in the bsp layer.
zynqmp-generic changed from require <board> to include, so if meta-xilinx-bsp
is not available it will not fail.
Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
Diffstat (limited to 'meta-xilinx-bsp/recipes-kernel')
18 files changed, 0 insertions, 815 deletions
diff --git a/meta-xilinx-bsp/recipes-kernel/dp/kernel-module-dp_git.bb b/meta-xilinx-bsp/recipes-kernel/dp/kernel-module-dp_git.bb deleted file mode 100755 index 4d8bd265..00000000 --- a/meta-xilinx-bsp/recipes-kernel/dp/kernel-module-dp_git.bb +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | SUMMARY = "Xilinx DisplayPort Linux Kernel module" | ||
| 2 | DESCRIPTION = "Out-of-tree DisplayPort(DP) kernel modules provider for aarch64 devices" | ||
| 3 | SECTION = "kernel/modules" | ||
| 4 | LICENSE = "GPLv2" | ||
| 5 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a" | ||
| 6 | |||
| 7 | XLNX_DP_VERSION = "5.10.0" | ||
| 8 | PV = "${XLNX_DP_VERSION}" | ||
| 9 | |||
| 10 | S = "${WORKDIR}/git" | ||
| 11 | |||
| 12 | BRANCH ?= "xlnx_rel_v2021.2" | ||
| 13 | REPO ?= "git://github.com/xilinx/dp-modules.git;protocol=https" | ||
| 14 | SRCREV ?= "46d4790c3d37ad4b878c5a1704df26edb56314f5" | ||
| 15 | |||
| 16 | BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" | ||
| 17 | SRC_URI = "${REPO};${BRANCHARG}" | ||
| 18 | |||
| 19 | inherit module | ||
| 20 | |||
| 21 | EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" | ||
| 22 | COMPATIBLE_MACHINE = "^$" | ||
| 23 | COMPATIBLE_MACHINE:zynqmp = "zynqmp" | ||
| 24 | COMPATIBLE_MACHINE:versal = "versal" | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/dtc/python3-dtc_1.6.0.bb b/meta-xilinx-bsp/recipes-kernel/dtc/python3-dtc_1.6.0.bb deleted file mode 100644 index f57b2b19..00000000 --- a/meta-xilinx-bsp/recipes-kernel/dtc/python3-dtc_1.6.0.bb +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | SUMMARY = "Device Tree Compiler" | ||
| 2 | HOMEPAGE = "https://devicetree.org/" | ||
| 3 | DESCRIPTION = "The Device Tree Compiler is a tool used to manipulate the Open-Firmware-like device tree used by PowerPC kernels." | ||
| 4 | SECTION = "bootloader" | ||
| 5 | LICENSE = "GPLv2 | BSD" | ||
| 6 | DEPENDS = "flex-native bison-native swig-native" | ||
| 7 | |||
| 8 | SRC_URI = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git" | ||
| 9 | |||
| 10 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | ||
| 11 | |||
| 12 | LIC_FILES_CHKSUM = "file://libfdt.i;beginline=1;endline=6;md5=afda088c974174a29108c8d80b5dce90" | ||
| 13 | |||
| 14 | SRCREV = "2525da3dba9beceb96651dc2986581871dbeca30" | ||
| 15 | |||
| 16 | S = "${WORKDIR}/git/pylibfdt" | ||
| 17 | |||
| 18 | DEPENDS += "libyaml dtc" | ||
| 19 | |||
| 20 | inherit distutils3 | ||
| 21 | |||
| 22 | do_configure:prepend() { | ||
| 23 | (cd ${S}/../ ; make version_gen.h ) | ||
| 24 | } | ||
| 25 | |||
| 26 | BBCLASSEXTEND = "native nativesdk" | ||
| 27 | |||
diff --git a/meta-xilinx-bsp/recipes-kernel/hdmi/kernel-module-hdmi_git.bb b/meta-xilinx-bsp/recipes-kernel/hdmi/kernel-module-hdmi_git.bb deleted file mode 100644 index 65484fca..00000000 --- a/meta-xilinx-bsp/recipes-kernel/hdmi/kernel-module-hdmi_git.bb +++ /dev/null | |||
| @@ -1,24 +0,0 @@ | |||
| 1 | SUMMARY = "Xilinx HDMI Linux Kernel module" | ||
| 2 | DESCRIPTION = "Out-of-tree HDMI kernel modules provider for MPSoC EG/EV devices" | ||
| 3 | SECTION = "kernel/modules" | ||
| 4 | LICENSE = "GPLv2" | ||
| 5 | LIC_FILES_CHKSUM = "file://LICENSE.md;md5=b34277fe156508fd5a650609dc36d1fe" | ||
| 6 | |||
| 7 | XLNX_HDMI_VERSION = "5.10.0" | ||
| 8 | PV = "${XLNX_HDMI_VERSION}" | ||
| 9 | |||
| 10 | S = "${WORKDIR}/git" | ||
| 11 | |||
| 12 | BRANCH ?= "xlnx_rel_v2021.2" | ||
| 13 | REPO ?= "git://github.com/Xilinx/hdmi-modules.git;protocol=https" | ||
| 14 | SRCREV = "aeb9f2c9a50c5e8dd4245454116c47f841f78825" | ||
| 15 | |||
| 16 | BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" | ||
| 17 | SRC_URI = "${REPO};${BRANCHARG}" | ||
| 18 | |||
| 19 | inherit module | ||
| 20 | |||
| 21 | EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" | ||
| 22 | COMPATIBLE_MACHINE = "^$" | ||
| 23 | COMPATIBLE_MACHINE:zynqmp = "zynqmp" | ||
| 24 | COMPATIBLE_MACHINE:versal = "versal" | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux-firmware/linux-firmware-ti-bt.bb b/meta-xilinx-bsp/recipes-kernel/linux-firmware/linux-firmware-ti-bt.bb deleted file mode 100644 index 1ad8ae2e..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux-firmware/linux-firmware-ti-bt.bb +++ /dev/null | |||
| @@ -1,65 +0,0 @@ | |||
| 1 | # TIInit_11.8.32.bts is required for bluetooth support but this particular | ||
| 2 | # version is not available in the linux-firmware repository. | ||
| 3 | # | ||
| 4 | SUMMARY = "TI Bluetooth firmware files for use with Linux kernel" | ||
| 5 | SECTION = "kernel" | ||
| 6 | |||
| 7 | LICENSE = "Firmware-ti-bt" | ||
| 8 | |||
| 9 | LIC_FILES_CHKSUM = "file://LICENSE.ti-bt;md5=f39eac9f4573be5b012e8313831e72a9" | ||
| 10 | |||
| 11 | # No common license for this, so be sure to include it | ||
| 12 | NO_GENERIC_LICENSE[Firmware-ti-bt] = "LICENSE.ti-bt" | ||
| 13 | |||
| 14 | SRC_URI = "git://git.ti.com/ti-bt/service-packs.git;protocol=https" | ||
| 15 | SRCREV = "c290f8af9e388f37e509ecb111a1b64572b7c225" | ||
| 16 | |||
| 17 | S = "${WORKDIR}/git" | ||
| 18 | |||
| 19 | inherit allarch | ||
| 20 | |||
| 21 | CLEANBROKEN = "1" | ||
| 22 | |||
| 23 | do_unpack[postfuncs] += "rename_license" | ||
| 24 | |||
| 25 | rename_license() { | ||
| 26 | mv ${S}/LICENSE ${S}/LICENSE.ti-bt | ||
| 27 | } | ||
| 28 | |||
| 29 | do_compile() { | ||
| 30 | : | ||
| 31 | } | ||
| 32 | |||
| 33 | do_install() { | ||
| 34 | oe_runmake 'DEST_DIR=${D}' 'BASE_LIB_DIR=${nonarch_base_libdir}' | ||
| 35 | |||
| 36 | # Remove files we're not packaging... | ||
| 37 | rm -f ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_7.6.15.bts \ | ||
| 38 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_10.6.15.bts \ | ||
| 39 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_6.7.16_bt_spec_4.1.bts \ | ||
| 40 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_12.8.32.bts \ | ||
| 41 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_12.10.28.bts \ | ||
| 42 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_6.7.16_avpr_add-on.bts \ | ||
| 43 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_6.7.16_bt_spec_4.0.bts \ | ||
| 44 | ${D}${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_6.7.16_ble_add-on.bts | ||
| 45 | |||
| 46 | for each in ${D}${nonarch_base_libdir}/firmware/ti-connectivity/* ; do | ||
| 47 | ln -s ti-connectivity/`basename $each` ${D}${nonarch_base_libdir}/firmware/`basename $each` | ||
| 48 | done | ||
| 49 | |||
| 50 | cp LICENSE.ti-bt ${D}${nonarch_base_libdir}/firmware/License.ti-bt | ||
| 51 | } | ||
| 52 | |||
| 53 | # 11.8.32 = WL180x, WL183x, WL185x PG2.1 or PG2.2, 8.32 ROM Version | ||
| 54 | PACKAGES =+ "${PN}-wl180x ${PN}-license" | ||
| 55 | |||
| 56 | FILES:${PN}-license = "${nonarch_base_libdir}/firmware/License.ti-bt" | ||
| 57 | |||
| 58 | FILES:${PN}-wl180x = "${nonarch_base_libdir}/firmware/TIInit_11.8.32.bts \ | ||
| 59 | ${nonarch_base_libdir}/firmware/ti-connectivity/TIInit_11.8.32.bts" | ||
| 60 | |||
| 61 | RDEPENDS:${PN}-wl180x = "${PN}-license linux-firmware-wl18xx" | ||
| 62 | |||
| 63 | LICENSE:${PN}-wl180x = "Firmware-ti-bt" | ||
| 64 | |||
| 65 | INSANE_SKIP = "arch" | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-microblaze.inc b/meta-xilinx-bsp/recipes-kernel/linux/linux-microblaze.inc deleted file mode 100644 index 4555bc28..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-microblaze.inc +++ /dev/null | |||
| @@ -1,7 +0,0 @@ | |||
| 1 | SRC_URI += "file://mb-no-tree-loop-distribute-patterns.patch" | ||
| 2 | |||
| 3 | # MicroBlaze is a uImage target, but its not called 'uImage' instead it is called 'linux.bin.ub' | ||
| 4 | python () { | ||
| 5 | if d.getVar('KERNEL_IMAGETYPE', True).endswith('.ub'): | ||
| 6 | d.setVar('DEPENDS', "%s u-boot-mkimage-native" % d.getVar('DEPENDS', True)) | ||
| 7 | } | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx-dev.bb b/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx-dev.bb deleted file mode 100644 index acb9938f..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx-dev.bb +++ /dev/null | |||
| @@ -1,18 +0,0 @@ | |||
| 1 | # This recipe tracks the 'bleeding edge' linux-xlnx repository. | ||
| 2 | # Since this tree is frequently updated, AUTOREV is used to track its contents. | ||
| 3 | # | ||
| 4 | # To enable this recipe, set PREFERRED_PROVIDER_virtual/kernel = "linux-xlnx-dev" | ||
| 5 | |||
| 6 | KBRANCH ?= "master" | ||
| 7 | |||
| 8 | # Use the SRCREV for the last tagged revision of linux-xlnx. | ||
| 9 | SRCREV ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-xlnx-dev", "${AUTOREV}", "84fb0cc65aae5970471cbc54b0c89009b9b904af", d)}' | ||
| 10 | |||
| 11 | # skip version sanity, because the version moves with AUTOREV | ||
| 12 | KERNEL_VERSION_SANITY_SKIP = "1" | ||
| 13 | |||
| 14 | LINUX_VERSION ?= "4.9+" | ||
| 15 | LINUX_VERSION_EXTENSION ?= "-xilinx-dev" | ||
| 16 | |||
| 17 | include linux-xlnx.inc | ||
| 18 | |||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc b/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc deleted file mode 100644 index 53fe83b0..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx.inc +++ /dev/null | |||
| @@ -1,65 +0,0 @@ | |||
| 1 | # This version extension should match CONFIG_LOCALVERSION in defconfig | ||
| 2 | XILINX_RELEASE_VERSION ?= "" | ||
| 3 | LINUX_VERSION_EXTENSION ?= "-xilinx-${XILINX_RELEASE_VERSION}" | ||
| 4 | PV = "${LINUX_VERSION}+git${SRCPV}" | ||
| 5 | |||
| 6 | # Sources, by default allow for the use of SRCREV pointing to orphaned tags/commits | ||
| 7 | KBRANCH ?= "xlnx_rebase_v5.10" | ||
| 8 | SRCBRANCHARG = "${@['nobranch=1', 'branch=${KBRANCH}'][d.getVar('KBRANCH', True) != '']}" | ||
| 9 | |||
| 10 | FILESOVERRIDES:append = ":${XILINX_RELEASE_VERSION}" | ||
| 11 | KERNELURI ?= "git://github.com/Xilinx/linux-xlnx.git;protocol=https;name=machine" | ||
| 12 | YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.10;destsuffix=yocto-kmeta" | ||
| 13 | SRC_URI = "${KERNELURI};${SRCBRANCHARG} ${YOCTO_META}" | ||
| 14 | |||
| 15 | SRCREV_machine ?= "${SRCREV}" | ||
| 16 | SRCREV_meta ?= "20b185f6b5afbad309747a7901786e0231dc8195" | ||
| 17 | SRCREV_FORMAT = "machine" | ||
| 18 | |||
| 19 | require recipes-kernel/linux/linux-yocto.inc | ||
| 20 | require linux-microblaze.inc | ||
| 21 | |||
| 22 | DESCRIPTION = "Xilinx Kernel" | ||
| 23 | LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" | ||
| 24 | |||
| 25 | EXTKERNELSRC = "${@'1' if d.getVar('EXTERNALSRC') else ''}" | ||
| 26 | |||
| 27 | # Force the use of the KBUILD_DEFCONFIG even if some other defconfig was generated in the ${WORKDIR} | ||
| 28 | do_kernel_metadata:prepend () { | ||
| 29 | [ -n "${KBUILD_DEFCONFIG}" ] && [ -e ${WORKDIR}/defconfig ] && rm ${WORKDIR}/defconfig | ||
| 30 | } | ||
| 31 | |||
| 32 | do_configure:prepend () { | ||
| 33 | if [ -n "${KBUILD_DEFCONFIG}" ] && [ -n "${EXTKERNELSRC}" ]; then | ||
| 34 | cp ${S}/arch/${ARCH}/configs/${KBUILD_DEFCONFIG} ${WORKDIR}/defconfig | ||
| 35 | fi | ||
| 36 | } | ||
| 37 | |||
| 38 | inherit kernel-simpleimage | ||
| 39 | |||
| 40 | # Default to be only compatible with specific machines or soc families | ||
| 41 | COMPATIBLE_MACHINE ?= "^$" | ||
| 42 | COMPATIBLE_MACHINE:zynq = ".*" | ||
| 43 | COMPATIBLE_MACHINE:zynqmp = ".*" | ||
| 44 | COMPATIBLE_MACHINE:microblaze = ".*" | ||
| 45 | COMPATIBLE_MACHINE:versal = ".*" | ||
| 46 | |||
| 47 | # Use DEFCONFIGs for configuring linux-xlnx kernels | ||
| 48 | KCONFIG_MODE ?= "alldefconfig" | ||
| 49 | KBUILD_DEFCONFIG:zynqmp ?= "xilinx_defconfig" | ||
| 50 | KBUILD_DEFCONFIG:zynq ?= "xilinx_zynq_defconfig" | ||
| 51 | KBUILD_DEFCONFIG:microblaze ?= "mmu_defconfig" | ||
| 52 | KBUILD_DEFCONFIG:versal ?= "xilinx_defconfig" | ||
| 53 | |||
| 54 | KERNEL_MODULE_AUTOLOAD:k26 += "usb5744" | ||
| 55 | |||
| 56 | # MicroBlaze BSP fragments | ||
| 57 | KERNEL_FEATURES:append_kc705-microblazeel = " bsp/xilinx/kc705-microblazeel-features/kc705-microblazeel-features.scc" | ||
| 58 | |||
| 59 | KERNEL_FEATURES:append:zynqmp = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)}" | ||
| 60 | |||
| 61 | KERNEL_FEATURES:append:zynqmp = "${@' features/xilinx/overlay_of/overlay_of.scc' if d.getVar('FPGA_MNGR_RECONFIG_ENABLE') == '1' else ''}" | ||
| 62 | |||
| 63 | KERNEL_FEATURES:append:versal = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ' features/xen/xen.scc', '', d)} features/xilinx/hdmi-module/hdmi-module.scc" | ||
| 64 | |||
| 65 | KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'virtualization', ' features/ocicontainer/ocicontainer.scc', '', d)}" | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch b/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch deleted file mode 100644 index d5b96c2d..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx/0001-scripts-dtc-Remove-redundant-YYLOC-global-declaratio.patch +++ /dev/null | |||
| @@ -1,51 +0,0 @@ | |||
| 1 | From e33a814e772cdc36436c8c188d8c42d019fda639 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dirk Mueller <dmueller@suse.com> | ||
| 3 | Date: Tue, 14 Jan 2020 18:53:41 +0100 | ||
| 4 | Subject: [PATCH] scripts/dtc: Remove redundant YYLOC global declaration | ||
| 5 | |||
| 6 | gcc 10 will default to -fno-common, which causes this error at link | ||
| 7 | time: | ||
| 8 | |||
| 9 | (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here | ||
| 10 | |||
| 11 | This is because both dtc-lexer as well as dtc-parser define the same | ||
| 12 | global symbol yyloc. Before with -fcommon those were merged into one | ||
| 13 | defintion. The proper solution would be to to mark this as "extern", | ||
| 14 | however that leads to: | ||
| 15 | |||
| 16 | dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls] | ||
| 17 | 26 | extern YYLTYPE yylloc; | ||
| 18 | | ^~~~~~ | ||
| 19 | In file included from dtc-lexer.l:24: | ||
| 20 | dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here | ||
| 21 | 127 | extern YYLTYPE yylloc; | ||
| 22 | | ^~~~~~ | ||
| 23 | cc1: all warnings being treated as errors | ||
| 24 | |||
| 25 | which means the declaration is completely redundant and can just be | ||
| 26 | dropped. | ||
| 27 | |||
| 28 | Signed-off-by: Dirk Mueller <dmueller@suse.com> | ||
| 29 | Signed-off-by: David Gibson <david@gibson.dropbear.id.au> | ||
| 30 | [robh: cherry-pick from upstream] | ||
| 31 | Cc: stable@vger.kernel.org | ||
| 32 | Signed-off-by: Rob Herring <robh@kernel.org> | ||
| 33 | --- | ||
| 34 | scripts/dtc/dtc-lexer.l | 1 - | ||
| 35 | 1 file changed, 1 deletion(-) | ||
| 36 | |||
| 37 | diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l | ||
| 38 | index 5c6c3fd557d7..b3b7270300de 100644 | ||
| 39 | --- a/scripts/dtc/dtc-lexer.l | ||
| 40 | +++ b/scripts/dtc/dtc-lexer.l | ||
| 41 | @@ -23,7 +23,6 @@ LINECOMMENT "//".*\n | ||
| 42 | #include "srcpos.h" | ||
| 43 | #include "dtc-parser.tab.h" | ||
| 44 | |||
| 45 | -YYLTYPE yylloc; | ||
| 46 | extern bool treesource_error; | ||
| 47 | |||
| 48 | /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ | ||
| 49 | -- | ||
| 50 | 2.29.2 | ||
| 51 | |||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch b/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch deleted file mode 100644 index 5a4d203d..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx/mb-no-tree-loop-distribute-patterns.patch +++ /dev/null | |||
| @@ -1,47 +0,0 @@ | |||
| 1 | Disable tree-loop-distribute-patterns CFLAG | ||
| 2 | |||
| 3 | Issue: CR-1086247 | ||
| 4 | |||
| 5 | GCC 10.2.0 added -ftree-loop-distribute-patterns by default with -O2. This | ||
| 6 | is causing a condition where the kernel will no longer boot. | ||
| 7 | |||
| 8 | This is a temporary workaround until we can identify the true cause of | ||
| 9 | the boot failure. | ||
| 10 | |||
| 11 | Symtoms: | ||
| 12 | |||
| 13 | earlycon: uartlite_a0 at MMIO 0x40600000 (options '115200n8') | ||
| 14 | printk: bootconsole [uartlite_a0] enabled | ||
| 15 | cma: Reserved 16 MiB at 0xaec00000 | ||
| 16 | Linux version 5.10.0-xilinx-v2020.2 (oe-user@oe-host) (microblazeel-xilinx-linux-gcc (GCC) 10.2.0, GNU ld (GNU Binutils) 2.35.0.20200730) #1 Mon Mar 1 12:58:36 UTC 2021 | ||
| 17 | setup_memory: max_mapnr: 0x40000 | ||
| 18 | setup_memory: min_low_pfn: 0x80000 | ||
| 19 | setup_memory: max_low_pfn: 0xb0000 | ||
| 20 | setup_memory: max_pfn: 0xc0000 | ||
| 21 | Zone ranges: | ||
| 22 | DMA [mem 0x0000000080000000-0x00000000afffffff] | ||
| 23 | Normal empty | ||
| 24 | HighMem [mem 0x00000000b0000000-0x00000000bfffffff] | ||
| 25 | Movable zone start for each node | ||
| 26 | Early memory node ranges | ||
| 27 | node 0: [mem 0x0000000080000000-0x00000000bfffffff] | ||
| 28 | Initmem setup node 0 [mem 0x0000000080000000-0x00000000bfffffff] | ||
| 29 | <hang> | ||
| 30 | |||
| 31 | Signed-off-by: Mark Hatle <mark.hatle@xilinx.com> | ||
| 32 | |||
| 33 | diff --git a/arch/microblaze/Makefile b/arch/microblaze/Makefile | ||
| 34 | index bb980891816d..e368c35ad21c 100644 | ||
| 35 | --- a/arch/microblaze/Makefile | ||
| 36 | +++ b/arch/microblaze/Makefile | ||
| 37 | @@ -48,6 +48,10 @@ CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER)) | ||
| 38 | # r31 holds current when in kernel mode | ||
| 39 | KBUILD_CFLAGS += -ffixed-r31 $(CPUFLAGS-y) $(CPUFLAGS-1) $(CPUFLAGS-2) | ||
| 40 | |||
| 41 | +# GCC 10.x now has -ftree-loop-distribute-patterns by default in -O2 | ||
| 42 | +# This causes a boot failure, so disable it | ||
| 43 | +KBUILD_CFLAGS += -fno-tree-loop-distribute-patterns | ||
| 44 | + | ||
| 45 | head-y := arch/microblaze/kernel/head.o | ||
| 46 | libs-y += arch/microblaze/lib/ | ||
| 47 | core-y += arch/microblaze/kernel/ | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2021.2.bb b/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2021.2.bb deleted file mode 100644 index 660f6037..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-xlnx_2021.2.bb +++ /dev/null | |||
| @@ -1,9 +0,0 @@ | |||
| 1 | LINUX_VERSION = "5.10" | ||
| 2 | KBRANCH="xlnx_rebase_v5.10" | ||
| 3 | SRCREV = "568989d44176ae0a38ea78c16d0590c726d3b60a" | ||
| 4 | |||
| 5 | KCONF_AUDIT_LEVEL="0" | ||
| 6 | |||
| 7 | include linux-xlnx.inc | ||
| 8 | |||
| 9 | FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-dev.bbappend b/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-dev.bbappend deleted file mode 100644 index 05c39951..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-dev.bbappend +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | require linux-yocto-xilinx.inc | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-tiny_%.bbappend b/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-tiny_%.bbappend deleted file mode 100644 index 05c39951..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-tiny_%.bbappend +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | require linux-yocto-xilinx.inc | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-xilinx.inc b/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-xilinx.inc deleted file mode 100644 index 51eab948..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto-xilinx.inc +++ /dev/null | |||
| @@ -1,23 +0,0 @@ | |||
| 1 | FILESEXTRAPATHS:prepend := "${THISDIR}/linux-xlnx:" | ||
| 2 | |||
| 3 | require linux-microblaze.inc | ||
| 4 | |||
| 5 | # Zynq default generic KMACHINE | ||
| 6 | COMPATIBLE_MACHINE:zynq = "zynq" | ||
| 7 | KMACHINE:zynq = "zynq" | ||
| 8 | |||
| 9 | # ZynqMP default generic KMACHINE | ||
| 10 | COMPATIBLE_MACHINE:zynqmp = "zynqmp" | ||
| 11 | KMACHINE:zynqmp = "zynqmp" | ||
| 12 | |||
| 13 | # MicroBlaze KMACHINEs | ||
| 14 | KMACHINE_ml605-qemu-microblazeel = "qemumicroblazeel" | ||
| 15 | KMACHINE_s3adsp1800-qemu-microblazeeb = "qemumicroblazeeb" | ||
| 16 | |||
| 17 | # MicroBlaze default generic KMACHINE | ||
| 18 | KMACHINE:microblaze = "microblaze" | ||
| 19 | COMPATIBLE_MACHINE:microblaze = "microblaze" | ||
| 20 | |||
| 21 | # Default kernel config fragements for specific machines | ||
| 22 | KERNEL_FEATURES:append_kc705-microblazeel = " bsp/xilinx/kc705-microblazeel-features/kc705-microblazeel-features.scc" | ||
| 23 | |||
diff --git a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto_%.bbappend b/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto_%.bbappend deleted file mode 100644 index 05c39951..00000000 --- a/meta-xilinx-bsp/recipes-kernel/linux/linux-yocto_%.bbappend +++ /dev/null | |||
| @@ -1 +0,0 @@ | |||
| 1 | require linux-yocto-xilinx.inc | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/lopper/lopper.bbappend b/meta-xilinx-bsp/recipes-kernel/lopper/lopper.bbappend deleted file mode 100644 index aa552fe5..00000000 --- a/meta-xilinx-bsp/recipes-kernel/lopper/lopper.bbappend +++ /dev/null | |||
| @@ -1,54 +0,0 @@ | |||
| 1 | DEPENDS = " \ | ||
| 2 | dtc \ | ||
| 3 | python3-dtc \ | ||
| 4 | python3-flask \ | ||
| 5 | python3-flask-restful \ | ||
| 6 | python3-six \ | ||
| 7 | python3-pandas \ | ||
| 8 | python3-ruamel-yaml \ | ||
| 9 | python3-anytree \ | ||
| 10 | python3-pyyaml \ | ||
| 11 | python3-humanfriendly \ | ||
| 12 | " | ||
| 13 | |||
| 14 | RDEPENDS:${PN} += " \ | ||
| 15 | python3-flask \ | ||
| 16 | python3-flask-restful \ | ||
| 17 | python3-six \ | ||
| 18 | python3-pandas \ | ||
| 19 | python3-ruamel-yaml \ | ||
| 20 | python3-anytree \ | ||
| 21 | python3-pyyaml \ | ||
| 22 | " | ||
| 23 | |||
| 24 | SRC_URI = "git://github.com/devicetree-org/lopper.git;branch=master" | ||
| 25 | SRCREV = "4fc085c4be031996e7f48dcaf03d0782989c8d58" | ||
| 26 | |||
| 27 | do_install() { | ||
| 28 | install -d "${D}/${bindir}" | ||
| 29 | install -d "${D}/${datadir}/${BPN}" | ||
| 30 | |||
| 31 | install -m 0644 "${S}/README" "${D}/${datadir}/${BPN}" | ||
| 32 | install -m 0644 "${S}/README-architecture.txt" "${D}/${datadir}/${BPN}" | ||
| 33 | install -m 0644 "${S}/README.pydoc" "${D}/${datadir}/${BPN}" | ||
| 34 | install -m 0644 "${S}/LICENSE.md" "${D}/${datadir}/${BPN}" | ||
| 35 | |||
| 36 | install -d "${D}/${datadir}/${BPN}/assists" | ||
| 37 | #install -m 0644 "${S}/assists/"* "${D}/${datadir}/${BPN}/assists/" | ||
| 38 | cp -r "${S}/assists/"* "${D}/${datadir}/${BPN}/assists/" | ||
| 39 | |||
| 40 | install -d "${D}/${datadir}/${BPN}/lops" | ||
| 41 | install -m 0644 "${S}/lops/"* "${D}/${datadir}/${BPN}/lops/" | ||
| 42 | |||
| 43 | install -d "${D}/${datadir}/${BPN}/device-trees" | ||
| 44 | install -m 0644 "${S}/device-trees/"* "${D}/${datadir}/${BPN}/device-trees/" | ||
| 45 | |||
| 46 | install -m 0644 "${S}/"lopper.ini "${D}/${datadir}/${BPN}/" | ||
| 47 | |||
| 48 | install -m 0755 "${S}/"lopper*.py "${D}/${datadir}/${BPN}/" | ||
| 49 | sed -i 's,#!/usr/bin/python3,#!/usr/bin/env python3,' ${D}/${datadir}/${BPN}/lopper.py | ||
| 50 | sed -i 's,#!/usr/bin/python3,#!/usr/bin/env python3,' ${D}/${datadir}/${BPN}/lopper_sanity.py | ||
| 51 | |||
| 52 | datadir_relpath=${@os.path.relpath(d.getVar('datadir'), d.getVar('bindir'))} | ||
| 53 | ln -s "${datadir_relpath}/${BPN}/lopper.py" "${D}/${bindir}/" | ||
| 54 | } | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops.bb b/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops.bb deleted file mode 100644 index 77456376..00000000 --- a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops.bb +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | SUMMARY = "Device tree lopper - lops" | ||
| 2 | DESCRIPTION = "Xilinx specific lop files" | ||
| 3 | SECTION = "bootloader" | ||
| 4 | LICENSE = "BSD-3-Clause" | ||
| 5 | |||
| 6 | RDEPENDS:${PN} += "lopper" | ||
| 7 | |||
| 8 | SRC_URI = " \ | ||
| 9 | file://lop-microblaze-yocto.dts \ | ||
| 10 | file://lop-xilinx-id-cpus.dts \ | ||
| 11 | " | ||
| 12 | |||
| 13 | LIC_FILES_CHKSUM = "file://lop-microblaze-yocto.dts;endline=8;md5=a0e89d39fa397ec5d5320409ff701280" | ||
| 14 | |||
| 15 | S = "${WORKDIR}" | ||
| 16 | |||
| 17 | do_configure[noexec] = '1' | ||
| 18 | do_compile[noexec] = '1' | ||
| 19 | |||
| 20 | do_install() { | ||
| 21 | mkdir -p ${D}/${datadir}/lopper/lops | ||
| 22 | cp ${S}/lop-microblaze-yocto.dts ${D}/${datadir}/lopper/lops/. | ||
| 23 | cp ${S}/lop-xilinx-id-cpus.dts ${D}/${datadir}/lopper/lops/. | ||
| 24 | } | ||
| 25 | |||
| 26 | FILES:${PN} += "${datadir}/lopper/lops" | ||
| 27 | BBCLASSEXTEND = "native nativesdk" | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts b/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts deleted file mode 100644 index 72eb4665..00000000 --- a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts +++ /dev/null | |||
| @@ -1,244 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2020 Xilinx Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * Author: | ||
| 5 | * Bruce Ashfield <bruce.ashfield@xilinx.com> | ||
| 6 | * | ||
| 7 | * SPDX-License-Identifier: BSD-3-Clause | ||
| 8 | */ | ||
| 9 | |||
| 10 | /dts-v1/; | ||
| 11 | |||
| 12 | / { | ||
| 13 | compatible = "system-device-tree-v1,lop"; | ||
| 14 | lops { | ||
| 15 | compatible = "system-device-tree-v1,lop"; | ||
| 16 | track_feature: track_feature { | ||
| 17 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 18 | noexec; | ||
| 19 | code = " | ||
| 20 | # print( 'track: lopper library routine: %s' % node ) | ||
| 21 | try: | ||
| 22 | node.tunes[prop] = prop | ||
| 23 | except: | ||
| 24 | pass | ||
| 25 | "; | ||
| 26 | }; | ||
| 27 | lop_0_1 { | ||
| 28 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 29 | select_1; | ||
| 30 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 31 | lop_0_2 { | ||
| 32 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 33 | inherit = "subsystem"; | ||
| 34 | code = " | ||
| 35 | for n in tree.__selected__: | ||
| 36 | val = n['compatible'].value[0] | ||
| 37 | if val == 'pmu-microblaze': | ||
| 38 | n.tunes = OrderedDict() | ||
| 39 | n.tunes['microblaze'] = 'microblaze' | ||
| 40 | n.tunes['version'] = 'v9.2' | ||
| 41 | |||
| 42 | if val == 'pmc-microblaze' or val == 'psm-microblaze': | ||
| 43 | n.tunes = OrderedDict() | ||
| 44 | n.tunes['microblaze'] = 'microblaze' | ||
| 45 | n.tunes['version'] = 'v10.0' | ||
| 46 | |||
| 47 | n.tune_type = val | ||
| 48 | "; | ||
| 49 | }; | ||
| 50 | }; | ||
| 51 | lop_1_1 { | ||
| 52 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 53 | select_1; | ||
| 54 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 55 | select_3 = ":xlnx,use-barrel:1"; | ||
| 56 | lop_1_1_1 { | ||
| 57 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 58 | code = " | ||
| 59 | if __selected__: | ||
| 60 | for n in __selected__: | ||
| 61 | n.tunes['barrel-shift'] = 'barrel-shift' | ||
| 62 | "; | ||
| 63 | }; | ||
| 64 | }; | ||
| 65 | lop_2_1 { | ||
| 66 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 67 | select_1; | ||
| 68 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 69 | select_3 = ":xlnx,endianness:!1"; | ||
| 70 | lop_2_1_1 { | ||
| 71 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 72 | code = " | ||
| 73 | if __selected__: | ||
| 74 | for n in __selected__: | ||
| 75 | n.tunes['bigendian'] = 'bigendian' | ||
| 76 | "; | ||
| 77 | }; | ||
| 78 | }; | ||
| 79 | lop_3_1 { | ||
| 80 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 81 | select_1; | ||
| 82 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 83 | select_3 = ":xlnx,data-size:0x40"; | ||
| 84 | lop_3_1_1 { | ||
| 85 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 86 | code = " | ||
| 87 | if __selected__: | ||
| 88 | for n in __selected__: | ||
| 89 | n.tunes['64-bit'] = '64-bit' | ||
| 90 | "; | ||
| 91 | }; | ||
| 92 | }; | ||
| 93 | lop_4_1 { | ||
| 94 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 95 | select_1; | ||
| 96 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 97 | select_3 = ":xlnx,use-pcmp-instr:1"; | ||
| 98 | lop_4_1_1 { | ||
| 99 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 100 | code = " | ||
| 101 | if __selected__: | ||
| 102 | for n in __selected__: | ||
| 103 | n.tunes['pattern-compare'] = 'pattern-compare' | ||
| 104 | "; | ||
| 105 | }; | ||
| 106 | }; | ||
| 107 | lop_5_1 { | ||
| 108 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 109 | select_1; | ||
| 110 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 111 | select_3 = ":xlnx,use-reorder-instr:!0"; | ||
| 112 | lop_5_1_1 { | ||
| 113 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 114 | code = " | ||
| 115 | if __selected__: | ||
| 116 | for n in __selected__: | ||
| 117 | n.tunes['reorder'] = 'reorder' | ||
| 118 | "; | ||
| 119 | }; | ||
| 120 | }; | ||
| 121 | lop_6_1 { | ||
| 122 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 123 | select_1; | ||
| 124 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 125 | select_3 = ":xlnx,area-optimized:2"; | ||
| 126 | lop_6_1_1 { | ||
| 127 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 128 | code = " | ||
| 129 | if __selected__: | ||
| 130 | for n in __selected__: | ||
| 131 | n.tunes['frequency-optimized'] = 'frequency-optimized' | ||
| 132 | "; | ||
| 133 | }; | ||
| 134 | }; | ||
| 135 | lop_7_1 { | ||
| 136 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 137 | select_1; | ||
| 138 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 139 | select_3 = ":xlnx,use-hw-mul:1"; | ||
| 140 | lop_7_1_1 { | ||
| 141 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 142 | code = " | ||
| 143 | if __selected__: | ||
| 144 | for n in __selected__: | ||
| 145 | n.tunes['multiply-low'] = 'multiply-low' | ||
| 146 | "; | ||
| 147 | }; | ||
| 148 | }; | ||
| 149 | lop_8_1 { | ||
| 150 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 151 | select_1; | ||
| 152 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 153 | select_3 = ":xlnx,use-hw-mul:2"; | ||
| 154 | lop_8_1_1 { | ||
| 155 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 156 | code = " | ||
| 157 | if __selected__: | ||
| 158 | for n in __selected__: | ||
| 159 | n.tunes['multiply-high'] = 'multiply-high' | ||
| 160 | "; | ||
| 161 | }; | ||
| 162 | }; | ||
| 163 | lop_9_1 { | ||
| 164 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 165 | select_1; | ||
| 166 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 167 | select_3 = ":xlnx,use-div:1"; | ||
| 168 | lop_9_1_1 { | ||
| 169 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 170 | code = " | ||
| 171 | if __selected__: | ||
| 172 | for n in __selected__: | ||
| 173 | n.tunes['divide-hard'] = 'divide-hard' | ||
| 174 | "; | ||
| 175 | }; | ||
| 176 | }; | ||
| 177 | lop_10_1 { | ||
| 178 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 179 | select_1; | ||
| 180 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 181 | select_3 = ":xlnx,use-fpu:!1"; | ||
| 182 | select_4 = ":xlnx,use-fpu:!2"; | ||
| 183 | lop_10_1_1 { | ||
| 184 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 185 | code = " | ||
| 186 | if __selected__: | ||
| 187 | for n in __selected__: | ||
| 188 | n.tunes['fpu-soft'] = 'fpu-soft' | ||
| 189 | "; | ||
| 190 | }; | ||
| 191 | }; | ||
| 192 | lop_11_1 { | ||
| 193 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 194 | select_1; | ||
| 195 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 196 | select_3 = ":xlnx,use-fpu:1"; | ||
| 197 | lop_11_1_1 { | ||
| 198 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 199 | code = " | ||
| 200 | if __selected__: | ||
| 201 | for n in __selected__: | ||
| 202 | n.tunes['fpu-hard'] = 'fpu-hard' | ||
| 203 | "; | ||
| 204 | }; | ||
| 205 | }; | ||
| 206 | lop_12_1 { | ||
| 207 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 208 | select_1; | ||
| 209 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 210 | select_3 = ":xlnx,use-fpu:2"; | ||
| 211 | lop_12_1_1 { | ||
| 212 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 213 | code = " | ||
| 214 | if __selected__: | ||
| 215 | for n in __selected__: | ||
| 216 | n.tunes['fpu-hard-extended'] = 'fpu-hard-extended' | ||
| 217 | "; | ||
| 218 | }; | ||
| 219 | }; | ||
| 220 | lop_output_tunes { | ||
| 221 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 222 | select_1; | ||
| 223 | select_2 = "/cpus_microblaze.*/cpu*.*:compatible:.*microblaze"; | ||
| 224 | lop_output_code { | ||
| 225 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 226 | code = " | ||
| 227 | cpu_addr = 0 | ||
| 228 | for n in __selected__: | ||
| 229 | tname = re.split('@', n.name) | ||
| 230 | tname = tname[0]+str(cpu_addr) | ||
| 231 | cpu_addr += 1 | ||
| 232 | print( 'AVAILTUNES += \"microblaze-%s\"' % tname ) | ||
| 233 | print( 'TUNE_FEATURES:tune-microblaze-%s = \"' % tname, end='' ) | ||
| 234 | for t in n.tunes.values(): | ||
| 235 | print( ' %s' % t, end='' ) | ||
| 236 | print( '\"' ) | ||
| 237 | print( 'PACKAGE_EXTRA_ARCHS:tune-microblaze-%s = \"${TUNE_PKGARCH}\"' % tname ) | ||
| 238 | print( 'TUNE_FEATURES:tune-%s = \"${TUNE_FEATURES:tune-microblaze-%s}\"\\n' % (n.tune_type,tname) ) | ||
| 239 | |||
| 240 | "; | ||
| 241 | }; | ||
| 242 | }; | ||
| 243 | }; | ||
| 244 | }; | ||
diff --git a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts b/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts deleted file mode 100644 index 67d68bba..00000000 --- a/meta-xilinx-bsp/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts +++ /dev/null | |||
| @@ -1,127 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (c) 2019,2020 Xilinx Inc. All rights reserved. | ||
| 3 | * | ||
| 4 | * Author: | ||
| 5 | * Bruce Ashfield <bruce.ashfield@xilinx.com> | ||
| 6 | * | ||
| 7 | * SPDX-License-Identifier: BSD-3-Clause | ||
| 8 | */ | ||
| 9 | |||
| 10 | /dts-v1/; | ||
| 11 | |||
| 12 | / { | ||
| 13 | compatible = "system-device-tree-v1,lop"; | ||
| 14 | lops { | ||
| 15 | compatible = "system-device-tree-v1,lop"; | ||
| 16 | lop_0_1 { | ||
| 17 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 18 | select_1; | ||
| 19 | select_2 = "/.*:os,type:.*"; | ||
| 20 | lop_0_2 { | ||
| 21 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 22 | inherit = "lopper_lib"; | ||
| 23 | code = " | ||
| 24 | for s in __selected__: | ||
| 25 | os_type = s['os,type'].value[0] | ||
| 26 | try: | ||
| 27 | domain_name = s.label | ||
| 28 | except: | ||
| 29 | domain_name = s.name | ||
| 30 | if not domain_name: | ||
| 31 | domain_name = s.name | ||
| 32 | try: | ||
| 33 | cpu = s['cpus'] | ||
| 34 | except: | ||
| 35 | print( '[ERROR]: os,type node, has no cpu reference' ) | ||
| 36 | try: | ||
| 37 | cpu_node = tree.pnode( cpu.value[0] ) | ||
| 38 | cpu_mask = cpu[1] | ||
| 39 | except: | ||
| 40 | print( '[ERROR]: os,type node, has invalid cpu reference' ) | ||
| 41 | |||
| 42 | cpu_output = {} | ||
| 43 | cpus_refd, cpus_unrefd = lopper_lib.cpu_refs( tree, cpu ) | ||
| 44 | for c in cpus_refd: | ||
| 45 | cpu_type = c['compatible'].value[0] | ||
| 46 | cpu_output[cpu_type] = '{} {} {}'.format(cpu_type,domain_name,os_type) | ||
| 47 | |||
| 48 | # print the summary lines | ||
| 49 | for o in cpu_output.values(): | ||
| 50 | print( '%s' % o ) | ||
| 51 | "; | ||
| 52 | }; | ||
| 53 | }; | ||
| 54 | lop_0_3 { | ||
| 55 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 56 | select_1; | ||
| 57 | select_2 = "/.*:compatible:openamp,domain-v1"; | ||
| 58 | select_3 = ":!os,type:"; | ||
| 59 | select_4 = ":compatible:!xilinx,subsystem-v1"; | ||
| 60 | lop_0_3_1 { | ||
| 61 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 62 | inherit = "lopper_lib"; | ||
| 63 | code = " | ||
| 64 | if __selected__: | ||
| 65 | print( '# global \\'all\\' domains' ) | ||
| 66 | # __selected__ are domains with no os,type specificiation | ||
| 67 | # we'll dump them to a global 'all' domain | ||
| 68 | for s in __selected__: | ||
| 69 | os_type = 'linux' | ||
| 70 | try: | ||
| 71 | domain_name = s.label | ||
| 72 | except: | ||
| 73 | domain_name = s.name | ||
| 74 | if not domain_name: | ||
| 75 | domain_name = s.name | ||
| 76 | try: | ||
| 77 | cpu = s['cpus'] | ||
| 78 | except: | ||
| 79 | print( '[ERROR]: os,type node, has no cpu reference' ) | ||
| 80 | try: | ||
| 81 | cpu_node = tree.pnode( cpu.value[0] ) | ||
| 82 | cpu_mask = cpu[1] | ||
| 83 | except: | ||
| 84 | print( '[ERROR]: os,type node, has invalid cpu reference' ) | ||
| 85 | |||
| 86 | cpu_output = {} | ||
| 87 | cpus_refd, cpus_unrefd = lopper_lib.cpu_refs( tree, cpu ) | ||
| 88 | for c in cpus_refd: | ||
| 89 | cpu_type = c['compatible'].value[0] | ||
| 90 | cpu_output[cpu_type] = '{} {} {}'.format(cpu_type,domain_name,os_type) | ||
| 91 | |||
| 92 | # print the summary lines | ||
| 93 | for o in cpu_output.values(): | ||
| 94 | print( '%s' % o ) | ||
| 95 | "; | ||
| 96 | }; | ||
| 97 | }; | ||
| 98 | lop_0_4 { | ||
| 99 | compatible = "system-device-tree-v1,lop,select-v1"; | ||
| 100 | select_1; | ||
| 101 | select_2 = "/.*:compatible:cpus,cluster"; | ||
| 102 | lop_0_3_1 { | ||
| 103 | compatible = "system-device-tree-v1,lop,code-v1"; | ||
| 104 | inherit = "lopper_lib"; | ||
| 105 | code = " | ||
| 106 | cpu_output = {} | ||
| 107 | for c in __selected__: | ||
| 108 | for c_node in c.subnodes( children_only = True ): | ||
| 109 | try: | ||
| 110 | cpu_node = c_node['device_type'].value[0] | ||
| 111 | except: | ||
| 112 | cpu_node = None | ||
| 113 | if cpu_node: | ||
| 114 | if c_node.ref == 0: | ||
| 115 | cpu_type = c_node['compatible'].value[0] | ||
| 116 | cpu_output[cpu_type] = '{} {} {}'.format(cpu_type,'None','None') | ||
| 117 | |||
| 118 | if cpu_output: | ||
| 119 | print( '# global no-domain cpus' ) | ||
| 120 | |||
| 121 | for o in cpu_output.values(): | ||
| 122 | print( '%s' % o ) | ||
| 123 | "; | ||
| 124 | }; | ||
| 125 | }; | ||
| 126 | }; | ||
| 127 | }; | ||
