diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc index 3612b2e5..57311421 100644 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc +++ b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc @@ -49,23 +49,16 @@ do_image_wic[depends] += "xen:do_deploy" IMAGE_EFI_BOOT_FILES += "xen-n1sdp.efi;xen.efi" IMAGE_EFI_BOOT_FILES += "${XEN_MOD_DEVICETREE_DTBS}" -# Use 5.4 kernel until later versions have been validated for autonomy-host -python() { - if d.getVar('PREFERRED_PROVIDER_virtual/kernel') == 'linux-yocto': - d.setVar('PREFERRED_PROVIDER_virtual/kernel', 'linux-linaro-arm') - d.setVar('PREFERRED_VERSION_linux-linaro-arm', '5.4%') -} - -# When alternate-kernel DISTRO_FEATURE is present we set the linux-linaro-arm-rt +# When alternate-kernel DISTRO_FEATURE is present we set the linux-yocto-rt # by default PREFERRED_PROVIDER_alternate/kernel ?= "\ ${@bb.utils.contains('DISTRO_FEATURES', 'alternate-kernel', \ -'linux-linaro-arm-rt', '', d)}" +'linux-yocto-rt', '', d)}" KERNEL_PACKAGE_NAME_alternate/kernel ?= "kernel-rt" # When alternate-kernel DISTRO_FEATURE is present we set the kernel-rt by # default -KERNEL_PACKAGE_NAME_pn-linux-linaro-arm-rt = "\ +KERNEL_PACKAGE_NAME_pn-linux-yocto-rt = "\ ${@ d.getVar('KERNEL_PACKAGE_NAME_alternate/kernel') \ if bb.utils.contains('DISTRO_FEATURES', 'alternate-kernel', True, False, d) \ else 'kernel' }" diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch deleted file mode 100644 index 372d0afb..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch +++ /dev/null @@ -1,52 +0,0 @@ -rom d078e29aa31ac3fa4c041bf89c46bc6372c1a02a Mon Sep 17 00:00:00 2001 -From: Bruce Ashfield -Date: Mon, 2 Jul 2018 23:10:28 -0400 -Subject: menuconfig,mconf-cfg: Allow specification of ncurses location - -In some cross build environments such as the Yocto Project build -environment it provides an ncurses library that is compiled -differently than the host's version. This causes display corruption -problems when the host's curses includes are used instead of the -includes from the provided compiler are overridden. There is a second -case where there is no curses libraries at all on the host system and -menuconfig will just fail entirely. - -The solution is simply to allow an override variable in -check-lxdialog.sh for environments such as the Yocto Project. Adding -a CROSS_CURSES_LIB and CROSS_CURSES_INC solves the issue and allowing -compiling and linking against the right headers and libraries. - -Signed-off-by: Jason Wessel -cc: Michal Marek -cc: linux-kbuild@vger.kernel.org -Signed-off-by: Bruce Ashfield ---- - scripts/kconfig/mconf-cfg.sh | 8 ++++++++ - 1 file changed, 8 insertions(+) - mode change 100755 => 100644 scripts/kconfig/mconf-cfg.sh - -(limited to 'scripts/kconfig/mconf-cfg.sh') - -diff --git a/scripts/kconfig/mconf-cfg.sh b/scripts/kconfig/mconf-cfg.sh -old mode 100755 -new mode 100644 -index c812872d7f9d..65a9b9e5b8a6 ---- a/scripts/kconfig/mconf-cfg.sh -+++ b/scripts/kconfig/mconf-cfg.sh -@@ -4,6 +4,14 @@ - PKG="ncursesw" - PKG2="ncurses" - -+if [ "$CROSS_CURSES_LIB" != "" ]; then -+ echo libs=\'$CROSS_CURSES_LIB\' -+ if [ x"$CROSS_CURSES_INC" != x ]; then -+ echo cflags=\'$CROSS_CURSES_INC\' -+ fi -+ exit 0 -+fi -+ - if [ -n "$(command -v pkg-config)" ]; then - if pkg-config --exists $PKG; then - echo cflags=\"$(pkg-config --cflags $PKG)\" --- -cgit v1.2.2-1-g5e49 diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/fix-bfd-link.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/fix-bfd-link.patch deleted file mode 100644 index 63d4fda4..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/fix-bfd-link.patch +++ /dev/null @@ -1,60 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton - -From 0ada120c883d4f1f6aafd01cf0fbb10d8bbba015 Mon Sep 17 00:00:00 2001 -From: Changbin Du -Date: Tue, 28 Jan 2020 23:29:38 +0800 -Subject: [PATCH] perf: Make perf able to build with latest libbfd - -libbfd has changed the bfd_section_* macros to inline functions -bfd_section_ since 2019-09-18. See below two commits: - o http://www.sourceware.org/ml/gdb-cvs/2019-09/msg00064.html - o https://www.sourceware.org/ml/gdb-cvs/2019-09/msg00072.html - -This fix make perf able to build with both old and new libbfd. - -Signed-off-by: Changbin Du -Acked-by: Jiri Olsa -Cc: Peter Zijlstra -Link: http://lore.kernel.org/lkml/20200128152938.31413-1-changbin.du@gmail.com -Signed-off-by: Arnaldo Carvalho de Melo ---- - tools/perf/util/srcline.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/tools/perf/util/srcline.c b/tools/perf/util/srcline.c -index 6ccf6f6d09df9..5b7d6c16d33fe 100644 ---- a/tools/perf/util/srcline.c -+++ b/tools/perf/util/srcline.c -@@ -193,16 +193,30 @@ static void find_address_in_section(bfd *abfd, asection *section, void *data) - bfd_vma pc, vma; - bfd_size_type size; - struct a2l_data *a2l = data; -+ flagword flags; - - if (a2l->found) - return; - -- if ((bfd_get_section_flags(abfd, section) & SEC_ALLOC) == 0) -+#ifdef bfd_get_section_flags -+ flags = bfd_get_section_flags(abfd, section); -+#else -+ flags = bfd_section_flags(section); -+#endif -+ if ((flags & SEC_ALLOC) == 0) - return; - - pc = a2l->addr; -+#ifdef bfd_get_section_vma - vma = bfd_get_section_vma(abfd, section); -+#else -+ vma = bfd_section_vma(section); -+#endif -+#ifdef bfd_get_section_size - size = bfd_get_section_size(section); -+#else -+ size = bfd_section_size(section); -+#endif - - if (pc < vma || pc >= vma + size) - return; diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0001-TMP-iommu-arm-smmu-v3-Ignore-IOPF-capabilities.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0001-TMP-iommu-arm-smmu-v3-Ignore-IOPF-capabilities.patch deleted file mode 100644 index e1ff4a55..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0001-TMP-iommu-arm-smmu-v3-Ignore-IOPF-capabilities.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 4ebcbe09471d6b6b18fce42993489bed3801f10c Mon Sep 17 00:00:00 2001 -From: Jean-Philippe Brucker -Date: Fri, 24 Jan 2020 10:17:14 +0100 -Subject: [PATCH 1/4] TMP: iommu/arm-smmu-v3: Ignore IOPF capabilities - -Don't mandate PRI or stall to enable SVA. Some devices have their own -method for managing I/O page faults when they notice a translation -request that fails. - -Signed-off-by: Jean-Philippe Brucker ---- - drivers/iommu/arm-smmu-v3.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/drivers/iommu/arm-smmu-v3.c b/drivers/iommu/arm-smmu-v3.c -index fed6a9d5867e..a8d7d6ccbb21 100644 ---- a/drivers/iommu/arm-smmu-v3.c -+++ b/drivers/iommu/arm-smmu-v3.c -@@ -3276,7 +3276,23 @@ static bool arm_smmu_ats_supported(struct arm_smmu_master *master) - - static bool arm_smmu_iopf_supported(struct arm_smmu_master *master) - { -- return master->stall_enabled || master->pri_supported; -+ /* return master->stall_enabled || master->pri_supported; */ -+ -+ /* -+ * FIXME: this temporary hack allows enabling SVA for any endpoint even -+ * when they don't have PRI/stall. -+ * -+ * To implement this more cleanly, we need a third method, complementing -+ * stall_enabled and pri_supported, to enable IOPF. A bit that says -+ * "this device's page faults are handled out of band", called for -+ * example master->oob_iopf. How to set it? It can easily be a firmware -+ * quirk, but that does not suffice in my opinion. We need to know that -+ * there is software ready to handle these page faults. The device -+ * driver owning this endpoint could for example call -+ * iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_OOB_IOPF), before -+ * enabling IOMMU_DEV_FEAT_SVA. -+ */ -+ return true; - } - - static void arm_smmu_enable_ats(struct arm_smmu_master *master) --- -2.25.0 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0002-pci_quirk-add-acs-override-for-PCI-devices.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0002-pci_quirk-add-acs-override-for-PCI-devices.patch deleted file mode 100644 index a66083a8..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0002-pci_quirk-add-acs-override-for-PCI-devices.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 224e4adc6bc6a23f5deb3e1ebea03a85e3cad606 Mon Sep 17 00:00:00 2001 -From: Manoj Kumar -Date: Mon, 3 Feb 2020 10:11:19 +0000 -Subject: [PATCH 2/4] pci_quirk: add acs override for PCI devices - -Patch taken from: -https://gitlab.com/Queuecumber/linux-acs-override/raw/master/workspaces/5.4/acso.patch - -Signed-off-by: Manoj Kumar ---- - .../admin-guide/kernel-parameters.txt | 9 ++ - drivers/pci/quirks.c | 101 ++++++++++++++++++ - 2 files changed, 110 insertions(+) - -diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 8d7932502edc..f2be8337e98c 100644 ---- a/Documentation/admin-guide/kernel-parameters.txt -+++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -3423,6 +3423,15 @@ - nomsi [MSI] If the PCI_MSI kernel config parameter is - enabled, this kernel boot option can be used to - disable the use of MSI interrupts system-wide. -+ pcie_acs_override = -+ [PCIE] Override missing PCIe ACS support for: -+ downstream -+ All downstream ports - full ACS capabilities -+ multfunction -+ All multifunction devices - multifunction ACS subset -+ id:nnnn:nnnn -+ Specfic device - full ACS capabilities -+ Specified as vid:did (vendor/device ID) in hex - noioapicquirk [APIC] Disable all boot interrupt quirks. - Safety option to keep boot IRQs enabled. This - should never be necessary. -diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index d134e12aab9d..9067bc7833be 100644 ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -3494,6 +3494,106 @@ static void quirk_no_bus_reset(struct pci_dev *dev) - dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET; - } - -+static bool acs_on_downstream; -+static bool acs_on_multifunction; -+ -+#define NUM_ACS_IDS 16 -+struct acs_on_id { -+ unsigned short vendor; -+ unsigned short device; -+}; -+static struct acs_on_id acs_on_ids[NUM_ACS_IDS]; -+static u8 max_acs_id; -+ -+static __init int pcie_acs_override_setup(char *p) -+{ -+ if (!p) -+ return -EINVAL; -+ -+ while (*p) { -+ if (!strncmp(p, "downstream", 10)) -+ acs_on_downstream = true; -+ if (!strncmp(p, "multifunction", 13)) -+ acs_on_multifunction = true; -+ if (!strncmp(p, "id:", 3)) { -+ char opt[5]; -+ int ret; -+ long val; -+ -+ if (max_acs_id >= NUM_ACS_IDS - 1) { -+ pr_warn("Out of PCIe ACS override slots (%d)\n", -+ NUM_ACS_IDS); -+ goto next; -+ } -+ -+ p += 3; -+ snprintf(opt, 5, "%s", p); -+ ret = kstrtol(opt, 16, &val); -+ if (ret) { -+ pr_warn("PCIe ACS ID parse error %d\n", ret); -+ goto next; -+ } -+ acs_on_ids[max_acs_id].vendor = val; -+ -+ p += strcspn(p, ":"); -+ if (*p != ':') { -+ pr_warn("PCIe ACS invalid ID\n"); -+ goto next; -+ } -+ -+ p++; -+ snprintf(opt, 5, "%s", p); -+ ret = kstrtol(opt, 16, &val); -+ if (ret) { -+ pr_warn("PCIe ACS ID parse error %d\n", ret); -+ goto next; -+ } -+ acs_on_ids[max_acs_id].device = val; -+ max_acs_id++; -+ } -+next: -+ p += strcspn(p, ","); -+ if (*p == ',') -+ p++; -+ } -+ -+ if (acs_on_downstream || acs_on_multifunction || max_acs_id) -+ pr_warn("Warning: PCIe ACS overrides enabled; This may allow non-IOMMU protected peer-to-peer DMA\n"); -+ -+ return 0; -+} -+early_param("pcie_acs_override", pcie_acs_override_setup); -+ -+static int pcie_acs_overrides(struct pci_dev *dev, u16 acs_flags) -+{ -+ int i; -+ -+ /* Never override ACS for legacy devices or devices with ACS caps */ -+ if (!pci_is_pcie(dev) || -+ pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ACS)) -+ return -ENOTTY; -+ -+ for (i = 0; i < max_acs_id; i++) -+ if (acs_on_ids[i].vendor == dev->vendor && -+ acs_on_ids[i].device == dev->device) -+ return 1; -+ -+ switch (pci_pcie_type(dev)) { -+ case PCI_EXP_TYPE_DOWNSTREAM: -+ case PCI_EXP_TYPE_ROOT_PORT: -+ if (acs_on_downstream) -+ return 1; -+ break; -+ case PCI_EXP_TYPE_ENDPOINT: -+ case PCI_EXP_TYPE_UPSTREAM: -+ case PCI_EXP_TYPE_LEG_END: -+ case PCI_EXP_TYPE_RC_END: -+ if (acs_on_multifunction && dev->multifunction) -+ return 1; -+ } -+ -+ return -ENOTTY; -+} - /* - * Some Atheros AR9xxx and QCA988x chips do not behave after a bus reset. - * The device will throw a Link Down error on AER-capable systems and -@@ -4674,6 +4774,7 @@ static const struct pci_dev_acs_enabled { - { PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs }, - /* Amazon Annapurna Labs */ - { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs }, -+ { PCI_ANY_ID, PCI_ANY_ID, pcie_acs_overrides }, - { 0 } - }; - --- -2.25.0 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch deleted file mode 100644 index d827e9d0..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch +++ /dev/null @@ -1,318 +0,0 @@ -From 813f6c6015c75caf25553cd2e36361bac9151145 Mon Sep 17 00:00:00 2001 -From: Deepak Pandey -Date: Mon, 9 Dec 2019 16:06:38 +0000 -Subject: [PATCH 3/4] pcie: Add quirk for the Arm Neoverse N1SDP platform - -The Arm N1SDP SoC suffers from some PCIe integration issues, most -prominently config space accesses to not existing BDFs being answered -with a bus abort, resulting in an SError. -To mitigate this, the firmware scans the bus before boot (catching the -SErrors) and creates a table with valid BDFs, which acts as a filter for -Linux' config space accesses. - -Add code consulting the table as an ACPI PCIe quirk, also register the -corresponding device tree based description of the host controller. -Also fix the other two minor issues on the way, namely not being fully -ECAM compliant and config space accesses being restricted to 32-bit -accesses only. - -This allows the Arm Neoverse N1SDP board to boot Linux without crashing -and to access *any* devices (there are no platform devices except UART). - -Signed-off-by: Deepak Pandey -[Sudipto: extend to cover the CCIX root port as well] -Signed-off-by: Sudipto Paul -[Andre: fix coding style issues, rewrite some parts, add DT support] -Signed-off-by: Andre Przywara ---- - arch/arm64/configs/defconfig | 1 + - drivers/acpi/pci_mcfg.c | 7 + - drivers/pci/controller/Kconfig | 11 ++ - drivers/pci/controller/Makefile | 1 + - drivers/pci/controller/pcie-n1sdp.c | 196 ++++++++++++++++++++++++++++ - include/linux/pci-ecam.h | 2 + - 6 files changed, 218 insertions(+) - create mode 100644 drivers/pci/controller/pcie-n1sdp.c - -diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig -index 619a892148fb..56f00e82a4c4 100644 ---- a/arch/arm64/configs/defconfig -+++ b/arch/arm64/configs/defconfig -@@ -177,6 +177,7 @@ CONFIG_NET_9P=y - CONFIG_NET_9P_VIRTIO=y - CONFIG_PCI=y - CONFIG_PCIEPORTBUS=y -+CONFIG_PCI_QUIRKS=y - CONFIG_PCI_IOV=y - CONFIG_HOTPLUG_PCI=y - CONFIG_HOTPLUG_PCI_ACPI=y -diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c -index 6b347d9920cc..7a2b41b9ab57 100644 ---- a/drivers/acpi/pci_mcfg.c -+++ b/drivers/acpi/pci_mcfg.c -@@ -142,6 +142,13 @@ static struct mcfg_fixup mcfg_quirks[] = { - XGENE_V2_ECAM_MCFG(4, 0), - XGENE_V2_ECAM_MCFG(4, 1), - XGENE_V2_ECAM_MCFG(4, 2), -+ -+#define N1SDP_ECAM_MCFG(rev, seg, ops) \ -+ {"ARMLTD", "ARMN1SDP", rev, seg, MCFG_BUS_ANY, ops } -+ -+ /* N1SDP SoC with v1 PCIe controller */ -+ N1SDP_ECAM_MCFG(0x20181101, 0, &pci_n1sdp_pcie_ecam_ops), -+ N1SDP_ECAM_MCFG(0x20181101, 1, &pci_n1sdp_ccix_ecam_ops), - }; - - static char mcfg_oem_id[ACPI_OEM_ID_SIZE]; -diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig -index 70e078238899..03860176e339 100644 ---- a/drivers/pci/controller/Kconfig -+++ b/drivers/pci/controller/Kconfig -@@ -65,6 +65,17 @@ config PCI_FTPCI100 - depends on OF - default ARCH_GEMINI - -+config PCIE_HOST_N1SDP_ECAM -+ bool "ARM N1SDP PCIe Controller" -+ depends on ARM64 -+ depends on OF || (ACPI && PCI_QUIRKS) -+ select PCI_HOST_COMMON -+ default y if ARCH_VEXPRESS -+ help -+ Say Y here if you want PCIe support for the Arm N1SDP platform. -+ The controller is ECAM compliant, but needs a quirk to workaround -+ an integration issue. -+ - config PCI_TEGRA - bool "NVIDIA Tegra PCIe controller" - depends on ARCH_TEGRA || COMPILE_TEST -diff --git a/drivers/pci/controller/Makefile b/drivers/pci/controller/Makefile -index a2a22c9d91af..7ea98c5a04ec 100644 ---- a/drivers/pci/controller/Makefile -+++ b/drivers/pci/controller/Makefile -@@ -30,6 +30,7 @@ obj-$(CONFIG_PCIE_MEDIATEK) += pcie-mediatek.o - obj-$(CONFIG_PCIE_MOBIVEIL) += pcie-mobiveil.o - obj-$(CONFIG_PCIE_TANGO_SMP8759) += pcie-tango.o - obj-$(CONFIG_VMD) += vmd.o -+obj-$(CONFIG_PCIE_HOST_N1SDP_ECAM) += pcie-n1sdp.o - # pcie-hisi.o quirks are needed even without CONFIG_PCIE_DW - obj-y += dwc/ - -diff --git a/drivers/pci/controller/pcie-n1sdp.c b/drivers/pci/controller/pcie-n1sdp.c -new file mode 100644 -index 000000000000..620ab221466c ---- /dev/null -+++ b/drivers/pci/controller/pcie-n1sdp.c -@@ -0,0 +1,196 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Copyright (C) 2018/2019 ARM Ltd. -+ * -+ * This quirk is to mask the following issues: -+ * - PCIE SLVERR: config space accesses to invalid PCIe BDFs cause a bus -+ * error (signalled as an asynchronous SError) -+ * - MCFG BDF mapping: the root complex is mapped separately from the device -+ * config space -+ * - Non 32-bit accesses to config space are not supported. -+ * -+ * At boot time the SCP board firmware creates a discovery table with -+ * the root complex' base address and the valid BDF values, discovered while -+ * scanning the config space and catching the SErrors. -+ * Linux responds only to the EPs listed in this table, returning NULL -+ * for the rest. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* Platform specific values as hardcoded in the firmware. */ -+#define AP_NS_SHARED_MEM_BASE 0x06000000 -+#define MAX_SEGMENTS 2 /* Two PCIe root complexes. */ -+#define BDF_TABLE_SIZE SZ_16K -+ -+/* -+ * Shared memory layout as written by the SCP upon boot time: -+ * ---- -+ * Discover data header --> RC base address -+ * \-> BDF Count -+ * Discover data --> BDF 0...n -+ * ---- -+ */ -+struct pcie_discovery_data { -+ u32 rc_base_addr; -+ u32 nr_bdfs; -+ u32 valid_bdfs[0]; -+} *pcie_discovery_data[MAX_SEGMENTS]; -+ -+void __iomem *rc_remapped_addr[MAX_SEGMENTS]; -+ -+/* -+ * map_bus() is called before we do a config space access for a certain -+ * device. We use this to check whether this device is valid, avoiding -+ * config space accesses which would result in an SError otherwise. -+ */ -+static void __iomem *pci_n1sdp_map_bus(struct pci_bus *bus, unsigned int devfn, -+ int where) -+{ -+ struct pci_config_window *cfg = bus->sysdata; -+ unsigned int devfn_shift = cfg->ops->bus_shift - 8; -+ unsigned int busn = bus->number; -+ unsigned int segment = bus->domain_nr; -+ unsigned int bdf_addr; -+ unsigned int table_count, i; -+ -+ if (segment >= MAX_SEGMENTS || -+ busn < cfg->busr.start || busn > cfg->busr.end) -+ return NULL; -+ -+ /* The PCIe root complex has a separate config space mapping. */ -+ if (busn == 0 && devfn == 0) -+ return rc_remapped_addr[segment] + where; -+ -+ busn -= cfg->busr.start; -+ bdf_addr = (busn << cfg->ops->bus_shift) + (devfn << devfn_shift); -+ table_count = pcie_discovery_data[segment]->nr_bdfs; -+ for (i = 0; i < table_count; i++) { -+ if (bdf_addr == pcie_discovery_data[segment]->valid_bdfs[i]) -+ return pci_ecam_map_bus(bus, devfn, where); -+ } -+ -+ return NULL; -+} -+ -+static int pci_n1sdp_init(struct pci_config_window *cfg, unsigned int segment) -+{ -+ phys_addr_t table_base; -+ struct device *dev = cfg->parent; -+ struct pcie_discovery_data *shared_data; -+ size_t bdfs_size; -+ -+ if (segment >= MAX_SEGMENTS) -+ return -ENODEV; -+ -+ table_base = AP_NS_SHARED_MEM_BASE + segment * BDF_TABLE_SIZE; -+ -+ if (!request_mem_region(table_base, BDF_TABLE_SIZE, -+ "PCIe valid BDFs")) { -+ dev_err(dev, "PCIe BDF shared region request failed\n"); -+ return -ENOMEM; -+ } -+ -+ shared_data = devm_ioremap(dev, -+ table_base, BDF_TABLE_SIZE); -+ if (!shared_data) -+ return -ENOMEM; -+ -+ /* Copy the valid BDFs structure to allocated normal memory. */ -+ bdfs_size = sizeof(struct pcie_discovery_data) + -+ sizeof(u32) * shared_data->nr_bdfs; -+ pcie_discovery_data[segment] = devm_kmalloc(dev, bdfs_size, GFP_KERNEL); -+ if (!pcie_discovery_data[segment]) -+ return -ENOMEM; -+ -+ memcpy_fromio(pcie_discovery_data[segment], shared_data, bdfs_size); -+ -+ rc_remapped_addr[segment] = devm_ioremap_nocache(dev, -+ shared_data->rc_base_addr, -+ PCI_CFG_SPACE_EXP_SIZE); -+ if (!rc_remapped_addr[segment]) { -+ dev_err(dev, "Cannot remap root port base\n"); -+ return -ENOMEM; -+ } -+ -+ devm_iounmap(dev, shared_data); -+ -+ return 0; -+} -+ -+static int pci_n1sdp_pcie_init(struct pci_config_window *cfg) -+{ -+ return pci_n1sdp_init(cfg, 0); -+} -+ -+static int pci_n1sdp_ccix_init(struct pci_config_window *cfg) -+{ -+ return pci_n1sdp_init(cfg, 1); -+} -+ -+struct pci_ecam_ops pci_n1sdp_pcie_ecam_ops = { -+ .bus_shift = 20, -+ .init = pci_n1sdp_pcie_init, -+ .pci_ops = { -+ .map_bus = pci_n1sdp_map_bus, -+ .read = pci_generic_config_read32, -+ .write = pci_generic_config_write32, -+ } -+}; -+ -+struct pci_ecam_ops pci_n1sdp_ccix_ecam_ops = { -+ .bus_shift = 20, -+ .init = pci_n1sdp_ccix_init, -+ .pci_ops = { -+ .map_bus = pci_n1sdp_map_bus, -+ .read = pci_generic_config_read32, -+ .write = pci_generic_config_write32, -+ } -+}; -+ -+static const struct of_device_id n1sdp_pcie_of_match[] = { -+ { .compatible = "arm,n1sdp-pcie" }, -+ { }, -+}; -+MODULE_DEVICE_TABLE(of, n1sdp_pcie_of_match); -+ -+static int n1sdp_pcie_probe(struct platform_device *pdev) -+{ -+ const struct device_node *of_node = pdev->dev.of_node; -+ u32 segment; -+ -+ if (of_property_read_u32(of_node, "linux,pci-domain", &segment)) { -+ dev_err(&pdev->dev, "N1SDP PCI controllers require linux,pci-domain property\n"); -+ return -EINVAL; -+ } -+ -+ switch (segment) { -+ case 0: -+ return pci_host_common_probe(pdev, &pci_n1sdp_pcie_ecam_ops); -+ case 1: -+ return pci_host_common_probe(pdev, &pci_n1sdp_ccix_ecam_ops); -+ } -+ -+ dev_err(&pdev->dev, "Invalid segment number, must be smaller than %d\n", -+ MAX_SEGMENTS); -+ -+ return -EINVAL; -+} -+ -+static struct platform_driver n1sdp_pcie_driver = { -+ .driver = { -+ .name = KBUILD_MODNAME, -+ .of_match_table = n1sdp_pcie_of_match, -+ .suppress_bind_attrs = true, -+ }, -+ .probe = n1sdp_pcie_probe, -+}; -+builtin_platform_driver(n1sdp_pcie_driver); -diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h -index a73164c85e78..03cdea69f4e8 100644 ---- a/include/linux/pci-ecam.h -+++ b/include/linux/pci-ecam.h -@@ -57,6 +57,8 @@ extern struct pci_ecam_ops pci_thunder_ecam_ops; /* Cavium ThunderX 1.x */ - extern struct pci_ecam_ops xgene_v1_pcie_ecam_ops; /* APM X-Gene PCIe v1 */ - extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */ - extern struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */ -+extern struct pci_ecam_ops pci_n1sdp_pcie_ecam_ops; /* Arm N1SDP PCIe */ -+extern struct pci_ecam_ops pci_n1sdp_ccix_ecam_ops; /* Arm N1SDP PCIe */ - #endif - - #ifdef CONFIG_PCI_HOST_COMMON --- -2.25.0 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0004-n1sdp-update-n1sdp-pci-quirk-for-SR-IOV-support.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0004-n1sdp-update-n1sdp-pci-quirk-for-SR-IOV-support.patch deleted file mode 100644 index 6fb2dacd..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0004-n1sdp-update-n1sdp-pci-quirk-for-SR-IOV-support.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 7bcc0412428050b0ab1fd70cbb4aaead5ac3c0e5 Mon Sep 17 00:00:00 2001 -From: Manoj Kumar -Date: Wed, 29 Jan 2020 17:21:39 +0000 -Subject: [PATCH 4/4] n1sdp: update n1sdp pci quirk for SR-IOV support - -VFs are not probing the vendor ID first, which is otherwise -the gate keeper for undiscovered devices. So any accesses using -a config space offset greater than 0 must be coming for an -already discovered device or from a VF that has just been created. - -Also if Linux already has a struct pci_dev* for a given BDF, -this device is safe to access. - -Skip the firmware table in these cases and allow accesses to -those devices. That enables SR-IOV support on the N1SDP board. - -Signed-off-by: Andre Przywara ---- - drivers/pci/controller/pcie-n1sdp.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/drivers/pci/controller/pcie-n1sdp.c b/drivers/pci/controller/pcie-n1sdp.c -index 620ab221466c..04c0de043817 100644 ---- a/drivers/pci/controller/pcie-n1sdp.c -+++ b/drivers/pci/controller/pcie-n1sdp.c -@@ -61,6 +61,7 @@ static void __iomem *pci_n1sdp_map_bus(struct pci_bus *bus, unsigned int devfn, - unsigned int segment = bus->domain_nr; - unsigned int bdf_addr; - unsigned int table_count, i; -+ struct pci_dev *dev; - - if (segment >= MAX_SEGMENTS || - busn < cfg->busr.start || busn > cfg->busr.end) -@@ -70,6 +71,14 @@ static void __iomem *pci_n1sdp_map_bus(struct pci_bus *bus, unsigned int devfn, - if (busn == 0 && devfn == 0) - return rc_remapped_addr[segment] + where; - -+ dev = pci_get_domain_bus_and_slot(segment, busn, devfn); -+ if (dev && dev->is_virtfn) -+ return pci_ecam_map_bus(bus, devfn, where); -+ -+ /* Accesses beyond the vendor ID always go to existing devices. */ -+ if (where > 0) -+ return pci_ecam_map_bus(bus, devfn, where); -+ - busn -= cfg->busr.start; - bdf_addr = (busn << cfg->ops->bus_shift) + (devfn << devfn_shift); - table_count = pcie_discovery_data[segment]->nr_bdfs; --- -2.25.0 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0005-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0005-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch deleted file mode 100644 index d3db77af..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/0005-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch +++ /dev/null @@ -1,134 +0,0 @@ -Upstream-Status: Inappropriate [will not be submitted as its an hack required to fix the hardware issue] - -This patch is picked from the git repository: -https://git.linaro.org/landing-teams/working/arm/n1sdp-pcie-quirk.git/patch/?id=04b7e76d0fe6481a803f58e54e008a1489d713a5 - -Signed-off-by: Khasim Syed Mohammed - -From 94892f681463908e4a879258dfd6053bbb025447 Mon Sep 17 00:00:00 2001 -From: Sayanta Pattanayak -Date: Fri, 31 Jul 2020 15:32:24 +0530 -Subject: [PATCH 5/5] n1sdp: pcie: add quirk support enabling remote chip PCIe - -Base address mapping for remote chip Root PCIe ECAM space. - -Remote Chip PCIe topology is enumerated in Firmware and current -change takes referecne of enumerated PCIe hierarchy of Remote chip into the -kernel and include in complete PCIe topology for kernel framework. - -Change-Id: I368e51c535ac66e48bd356bd33da6c49f1a0fb2a -Signed-off-by: Sayanta Pattanayak ---- - drivers/acpi/pci_mcfg.c | 1 + - drivers/pci/controller/pcie-n1sdp.c | 34 ++++++++++++++++++++++++++--- - include/linux/pci-ecam.h | 1 + - 3 files changed, 33 insertions(+), 3 deletions(-) - -diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c -index 7a2b41b9ab57..53d073ef941f 100644 ---- a/drivers/acpi/pci_mcfg.c -+++ b/drivers/acpi/pci_mcfg.c -@@ -149,6 +149,7 @@ static struct mcfg_fixup mcfg_quirks[] = { - /* N1SDP SoC with v1 PCIe controller */ - N1SDP_ECAM_MCFG(0x20181101, 0, &pci_n1sdp_pcie_ecam_ops), - N1SDP_ECAM_MCFG(0x20181101, 1, &pci_n1sdp_ccix_ecam_ops), -+ N1SDP_ECAM_MCFG(0x20181101, 2, &pci_n1sdp_remote_pcie_ecam_ops), - }; - - static char mcfg_oem_id[ACPI_OEM_ID_SIZE]; -diff --git a/drivers/pci/controller/pcie-n1sdp.c b/drivers/pci/controller/pcie-n1sdp.c -index 04c0de043817..19b573468ac5 100644 ---- a/drivers/pci/controller/pcie-n1sdp.c -+++ b/drivers/pci/controller/pcie-n1sdp.c -@@ -28,8 +28,10 @@ - - /* Platform specific values as hardcoded in the firmware. */ - #define AP_NS_SHARED_MEM_BASE 0x06000000 --#define MAX_SEGMENTS 2 /* Two PCIe root complexes. */ -+/* Two PCIe root complexes in One Chip + One PCIe RC in Remote Chip*/ -+#define MAX_SEGMENTS 3 - #define BDF_TABLE_SIZE SZ_16K -+#define REMOTE_CHIP_ADDR_OFFSET 0x40000000000 - - /* - * Shared memory layout as written by the SCP upon boot time: -@@ -100,7 +102,10 @@ static int pci_n1sdp_init(struct pci_config_window *cfg, unsigned int segment) - if (segment >= MAX_SEGMENTS) - return -ENODEV; - -- table_base = AP_NS_SHARED_MEM_BASE + segment * BDF_TABLE_SIZE; -+ if (segment > 1) -+ table_base = AP_NS_SHARED_MEM_BASE + REMOTE_CHIP_ADDR_OFFSET; -+ else -+ table_base = AP_NS_SHARED_MEM_BASE + segment * BDF_TABLE_SIZE; - - if (!request_mem_region(table_base, BDF_TABLE_SIZE, - "PCIe valid BDFs")) { -@@ -122,7 +127,13 @@ static int pci_n1sdp_init(struct pci_config_window *cfg, unsigned int segment) - - memcpy_fromio(pcie_discovery_data[segment], shared_data, bdfs_size); - -- rc_remapped_addr[segment] = devm_ioremap_nocache(dev, -+ -+ if (segment > 1) -+ rc_remapped_addr[segment] = devm_ioremap_nocache(dev, -+ shared_data->rc_base_addr + REMOTE_CHIP_ADDR_OFFSET, -+ PCI_CFG_SPACE_EXP_SIZE); -+ else -+ rc_remapped_addr[segment] = devm_ioremap_nocache(dev, - shared_data->rc_base_addr, - PCI_CFG_SPACE_EXP_SIZE); - if (!rc_remapped_addr[segment]) { -@@ -145,6 +156,11 @@ static int pci_n1sdp_ccix_init(struct pci_config_window *cfg) - return pci_n1sdp_init(cfg, 1); - } - -+static int pci_n1sdp_remote_pcie_init(struct pci_config_window *cfg) -+{ -+ return pci_n1sdp_init(cfg, 2); -+} -+ - struct pci_ecam_ops pci_n1sdp_pcie_ecam_ops = { - .bus_shift = 20, - .init = pci_n1sdp_pcie_init, -@@ -165,6 +181,16 @@ struct pci_ecam_ops pci_n1sdp_ccix_ecam_ops = { - } - }; - -+struct pci_ecam_ops pci_n1sdp_remote_pcie_ecam_ops = { -+ .bus_shift = 20, -+ .init = pci_n1sdp_remote_pcie_init, -+ .pci_ops = { -+ .map_bus = pci_n1sdp_map_bus, -+ .read = pci_generic_config_read32, -+ .write = pci_generic_config_write32, -+ } -+}; -+ - static const struct of_device_id n1sdp_pcie_of_match[] = { - { .compatible = "arm,n1sdp-pcie" }, - { }, -@@ -186,6 +212,8 @@ static int n1sdp_pcie_probe(struct platform_device *pdev) - return pci_host_common_probe(pdev, &pci_n1sdp_pcie_ecam_ops); - case 1: - return pci_host_common_probe(pdev, &pci_n1sdp_ccix_ecam_ops); -+ case 2: -+ return pci_host_common_probe(pdev, &pci_n1sdp_remote_pcie_ecam_ops); - } - - dev_err(&pdev->dev, "Invalid segment number, must be smaller than %d\n", -diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h -index 03cdea69f4e8..2270662428e1 100644 ---- a/include/linux/pci-ecam.h -+++ b/include/linux/pci-ecam.h -@@ -59,6 +59,7 @@ extern struct pci_ecam_ops xgene_v2_pcie_ecam_ops; /* APM X-Gene PCIe v2.x */ - extern struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */ - extern struct pci_ecam_ops pci_n1sdp_pcie_ecam_ops; /* Arm N1SDP PCIe */ - extern struct pci_ecam_ops pci_n1sdp_ccix_ecam_ops; /* Arm N1SDP PCIe */ -+extern struct pci_ecam_ops pci_n1sdp_remote_pcie_ecam_ops; /* Arm N1SDP PCIe */ - #endif - - #ifdef CONFIG_PCI_HOST_COMMON --- -2.25.0 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/enable-realtek-R8169.cfg b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/enable-realtek-R8169.cfg deleted file mode 100644 index 7a574740..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/enable-realtek-R8169.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Enable Realtek Gigabit Ethernet adapter -CONFIG_REALTEK_PHY=y -CONFIG_R8169=y diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/scripts-dtc-remove-redundant-YYLOC.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/scripts-dtc-remove-redundant-YYLOC.patch deleted file mode 100644 index f3ae5e5a..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/n1sdp/scripts-dtc-remove-redundant-YYLOC.patch +++ /dev/null @@ -1,59 +0,0 @@ -Upstream-Status: Backport https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/scripts/dtc/dtc-lexer.l?h=v5.8 -Signed-off-by: Khasim Syed Mohammed - -From 35b34d264cb347909ec89d9fa895900035d5438c Mon Sep 17 00:00:00 2001 -From: Dirk Mueller -Date: Tue, 14 Jan 2020 18:53:41 +0100 -Subject: scripts/dtc: Remove redundant YYLOC global declaration - -commit e33a814e772cdc36436c8c188d8c42d019fda639 upstream. - -gcc 10 will default to -fno-common, which causes this error at link -time: - - (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here - -This is because both dtc-lexer as well as dtc-parser define the same -global symbol yyloc. Before with -fcommon those were merged into one -defintion. The proper solution would be to to mark this as "extern", -however that leads to: - - dtc-lexer.l:26:16: error: redundant redeclaration of 'yylloc' [-Werror=redundant-decls] - 26 | extern YYLTYPE yylloc; - | ^~~~~~ -In file included from dtc-lexer.l:24: -dtc-parser.tab.h:127:16: note: previous declaration of 'yylloc' was here - 127 | extern YYLTYPE yylloc; - | ^~~~~~ -cc1: all warnings being treated as errors - -which means the declaration is completely redundant and can just be -dropped. - -Signed-off-by: Dirk Mueller -Signed-off-by: David Gibson -[robh: cherry-pick from upstream] -Cc: stable@vger.kernel.org -Signed-off-by: Rob Herring -Signed-off-by: Greg Kroah-Hartman ---- - scripts/dtc/dtc-lexer.l | 1 - - 1 file changed, 1 deletion(-) - -(limited to 'scripts/dtc/dtc-lexer.l') - -diff --git a/scripts/dtc/dtc-lexer.l b/scripts/dtc/dtc-lexer.l -index 5c6c3fd557d7..b3b7270300de 100644 ---- a/scripts/dtc/dtc-lexer.l -+++ b/scripts/dtc/dtc-lexer.l -@@ -23,7 +23,6 @@ LINECOMMENT "//".*\n - #include "srcpos.h" - #include "dtc-parser.tab.h" - --YYLTYPE yylloc; - extern bool treesource_error; - - /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ --- -cgit v1.2.2-1-g5e49 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-01.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-01.patch deleted file mode 100644 index efca58f6..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-01.patch +++ /dev/null @@ -1,76 +0,0 @@ -perf cs-etm: Move definition of 'traceid_list' global variable from header file -Upstream-Status: Backport https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/tools/perf/util?id=bc79abf4afea97d5ce682aa2bd1095fb74400916 -Signed-off-by: Khasim Syed Mohammed - -From bc79abf4afea97d5ce682aa2bd1095fb74400916 Mon Sep 17 00:00:00 2001 -From: Leo Yan -Date: Tue, 5 May 2020 21:36:42 +0800 -Subject: perf cs-etm: Move definition of 'traceid_list' global variable from - header file - -commit 168200b6d6ea0cb5765943ec5da5b8149701f36a upstream. - -The variable 'traceid_list' is defined in the header file cs-etm.h, -if multiple C files include cs-etm.h the compiler might complaint for -multiple definition of 'traceid_list'. - -To fix multiple definition error, move the definition of 'traceid_list' -into cs-etm.c. - -Fixes: cd8bfd8c973e ("perf tools: Add processing of coresight metadata") -Reported-by: Thomas Backlund -Signed-off-by: Leo Yan -Reviewed-by: Mathieu Poirier -Reviewed-by: Mike Leach -Tested-by: Mike Leach -Tested-by: Thomas Backlund -Cc: Alexander Shishkin -Cc: Jiri Olsa -Cc: Mark Rutland -Cc: Namhyung Kim -Cc: Peter Zijlstra -Cc: Suzuki Poulouse -Cc: Tor Jeremiassen -Cc: linux-arm-kernel@lists.infradead.org -Link: http://lore.kernel.org/lkml/20200505133642.4756-1-leo.yan@linaro.org -Signed-off-by: Arnaldo Carvalho de Melo -Cc: Paul Barker -Signed-off-by: Greg Kroah-Hartman ---- - tools/perf/util/cs-etm.c | 3 +++ - tools/perf/util/cs-etm.h | 3 --- - 2 files changed, 3 insertions(+), 3 deletions(-) - -(limited to 'tools/perf/util') - -diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c -index 451eee24165ee..f5a9cb4088080 100644 ---- a/tools/perf/util/cs-etm.c -+++ b/tools/perf/util/cs-etm.c -@@ -94,6 +94,9 @@ struct cs_etm_queue { - struct cs_etm_traceid_queue **traceid_queues; - }; - -+/* RB tree for quick conversion between traceID and metadata pointers */ -+static struct intlist *traceid_list; -+ - static int cs_etm__update_queues(struct cs_etm_auxtrace *etm); - static int cs_etm__process_queues(struct cs_etm_auxtrace *etm); - static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm, -diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h -index 650ecc2a63492..4ad925d6d7996 100644 ---- a/tools/perf/util/cs-etm.h -+++ b/tools/perf/util/cs-etm.h -@@ -114,9 +114,6 @@ enum cs_etm_isa { - CS_ETM_ISA_T32, - }; - --/* RB tree for quick conversion between traceID and metadata pointers */ --struct intlist *traceid_list; -- - struct cs_etm_queue; - - struct cs_etm_packet { --- -cgit 1.2.3-1.el7 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-02.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-02.patch deleted file mode 100644 index b512d3e1..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-02.patch +++ /dev/null @@ -1,50 +0,0 @@ -perf tests bp_account: Make global variable static -Upstream-Status: Backport https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/patch/tools/perf/tests/bp_account.c?id=73d2d6b421dfdc66b4615452a94efcece27a3c21 -Signed-off-by: Khasim Syed Mohammed - -From 73d2d6b421dfdc66b4615452a94efcece27a3c21 Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Mon, 2 Mar 2020 11:13:19 -0300 -Subject: perf tests bp_account: Make global variable static - -commit cff20b3151ccab690715cb6cf0f5da5cccb32adf upstream. - -To fix the build with newer gccs, that without this patch exit with: - - LD /tmp/build/perf/tests/perf-in.o - ld: /tmp/build/perf/tests/bp_account.o:/git/perf/tools/perf/tests/bp_account.c:22: multiple definition of `the_var'; /tmp/build/perf/tests/bp_signal.o:/git/perf/tools/perf/tests/bp_signal.c:38: first defined here - make[4]: *** [/git/perf/tools/build/Makefile.build:145: /tmp/build/perf/tests/perf-in.o] Error 1 - -First noticed in fedora:rawhide/32 with: - - [perfbuilder@a5ff49d6e6e4 ~]$ gcc --version - gcc (GCC) 10.0.1 20200216 (Red Hat 10.0.1-0.8) - -Reported-by: Jiri Olsa -Cc: Adrian Hunter -Cc: Namhyung Kim -Signed-off-by: Arnaldo Carvalho de Melo -Cc: Ben Hutchings -Signed-off-by: Greg Kroah-Hartman ---- - tools/perf/tests/bp_account.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -(limited to 'tools/perf/tests/bp_account.c') - -diff --git a/tools/perf/tests/bp_account.c b/tools/perf/tests/bp_account.c -index 016bba2c142db..55a9de311d7b0 100644 ---- a/tools/perf/tests/bp_account.c -+++ b/tools/perf/tests/bp_account.c -@@ -23,7 +23,7 @@ - #include "../perf-sys.h" - #include "cloexec.h" - --volatile long the_var; -+static volatile long the_var; - - static noinline int test_function(void) - { --- -cgit 1.2.3-1.el7 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-03.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-03.patch deleted file mode 100644 index 8b8a2996..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-03.patch +++ /dev/null @@ -1,246 +0,0 @@ -perf bench: Share some global variables to fix build with gcc 10 -Upstream-Status: Backport https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/tools/perf/bench?h=linux-5.4.y&id=df35e878d0a51755fb500e2e8e29c7ebb0239756 -Signed-off-by: Khasim Syed Mohammed - -From df35e878d0a51755fb500e2e8e29c7ebb0239756 Mon Sep 17 00:00:00 2001 -From: Arnaldo Carvalho de Melo -Date: Mon, 2 Mar 2020 12:09:38 -0300 -Subject: perf bench: Share some global variables to fix build with gcc 10 - -commit e4d9b04b973b2dbce7b42af95ea70d07da1c936d upstream. - -Noticed with gcc 10 (fedora rawhide) that those variables were not being -declared as static, so end up with: - - ld: /tmp/build/perf/bench/epoll-wait.o:/git/perf/tools/perf/bench/epoll-wait.c:93: multiple definition of `end'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here - ld: /tmp/build/perf/bench/epoll-wait.o:/git/perf/tools/perf/bench/epoll-wait.c:93: multiple definition of `start'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here - ld: /tmp/build/perf/bench/epoll-wait.o:/git/perf/tools/perf/bench/epoll-wait.c:93: multiple definition of `runtime'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here - ld: /tmp/build/perf/bench/epoll-ctl.o:/git/perf/tools/perf/bench/epoll-ctl.c:38: multiple definition of `end'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here - ld: /tmp/build/perf/bench/epoll-ctl.o:/git/perf/tools/perf/bench/epoll-ctl.c:38: multiple definition of `start'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here - ld: /tmp/build/perf/bench/epoll-ctl.o:/git/perf/tools/perf/bench/epoll-ctl.c:38: multiple definition of `runtime'; /tmp/build/perf/bench/futex-hash.o:/git/perf/tools/perf/bench/futex-hash.c:40: first defined here - make[4]: *** [/git/perf/tools/build/Makefile.build:145: /tmp/build/perf/bench/perf-in.o] Error 1 - -Prefix those with bench__ and add them to bench/bench.h, so that we can -share those on the tools needing to access those variables from signal -handlers. - -Acked-by: Thomas Gleixner -Cc: Adrian Hunter -Cc: Davidlohr Bueso -Cc: Jiri Olsa -Cc: Namhyung Kim -Link: http://lore.kernel.org/lkml/20200303155811.GD13702@kernel.org -Signed-off-by: Arnaldo Carvalho de Melo -Cc: Ben Hutchings -Signed-off-by: Greg Kroah-Hartman ---- - tools/perf/bench/bench.h | 4 ++++ - tools/perf/bench/epoll-ctl.c | 7 +++---- - tools/perf/bench/epoll-wait.c | 11 +++++------ - tools/perf/bench/futex-hash.c | 12 ++++++------ - tools/perf/bench/futex-lock-pi.c | 11 +++++------ - 5 files changed, 23 insertions(+), 22 deletions(-) - -(limited to 'tools/perf/bench') - -diff --git a/tools/perf/bench/bench.h b/tools/perf/bench/bench.h -index fddb3ced9db62..4aa6de1aa67dc 100644 ---- a/tools/perf/bench/bench.h -+++ b/tools/perf/bench/bench.h -@@ -2,6 +2,10 @@ - #ifndef BENCH_H - #define BENCH_H - -+#include -+ -+extern struct timeval bench__start, bench__end, bench__runtime; -+ - /* - * The madvise transparent hugepage constants were added in glibc - * 2.13. For compatibility with older versions of glibc, define these -diff --git a/tools/perf/bench/epoll-ctl.c b/tools/perf/bench/epoll-ctl.c -index bb617e5688412..a7526c05df382 100644 ---- a/tools/perf/bench/epoll-ctl.c -+++ b/tools/perf/bench/epoll-ctl.c -@@ -35,7 +35,6 @@ - - static unsigned int nthreads = 0; - static unsigned int nsecs = 8; --struct timeval start, end, runtime; - static bool done, __verbose, randomize; - - /* -@@ -94,8 +93,8 @@ static void toggle_done(int sig __maybe_unused, - { - /* inform all threads that we're done for the day */ - done = true; -- gettimeofday(&end, NULL); -- timersub(&end, &start, &runtime); -+ gettimeofday(&bench__end, NULL); -+ timersub(&bench__end, &bench__start, &bench__runtime); - } - - static void nest_epollfd(void) -@@ -361,7 +360,7 @@ int bench_epoll_ctl(int argc, const char **argv) - - threads_starting = nthreads; - -- gettimeofday(&start, NULL); -+ gettimeofday(&bench__start, NULL); - - do_threads(worker, cpu); - -diff --git a/tools/perf/bench/epoll-wait.c b/tools/perf/bench/epoll-wait.c -index 7af694437f4ea..d1c5cb526b9ff 100644 ---- a/tools/perf/bench/epoll-wait.c -+++ b/tools/perf/bench/epoll-wait.c -@@ -90,7 +90,6 @@ - - static unsigned int nthreads = 0; - static unsigned int nsecs = 8; --struct timeval start, end, runtime; - static bool wdone, done, __verbose, randomize, nonblocking; - - /* -@@ -276,8 +275,8 @@ static void toggle_done(int sig __maybe_unused, - { - /* inform all threads that we're done for the day */ - done = true; -- gettimeofday(&end, NULL); -- timersub(&end, &start, &runtime); -+ gettimeofday(&bench__end, NULL); -+ timersub(&bench__end, &bench__start, &bench__runtime); - } - - static void print_summary(void) -@@ -287,7 +286,7 @@ static void print_summary(void) - - printf("\nAveraged %ld operations/sec (+- %.2f%%), total secs = %d\n", - avg, rel_stddev_stats(stddev, avg), -- (int) runtime.tv_sec); -+ (int)bench__runtime.tv_sec); - } - - static int do_threads(struct worker *worker, struct perf_cpu_map *cpu) -@@ -479,7 +478,7 @@ int bench_epoll_wait(int argc, const char **argv) - - threads_starting = nthreads; - -- gettimeofday(&start, NULL); -+ gettimeofday(&bench__start, NULL); - - do_threads(worker, cpu); - -@@ -519,7 +518,7 @@ int bench_epoll_wait(int argc, const char **argv) - qsort(worker, nthreads, sizeof(struct worker), cmpworker); - - for (i = 0; i < nthreads; i++) { -- unsigned long t = worker[i].ops/runtime.tv_sec; -+ unsigned long t = worker[i].ops / bench__runtime.tv_sec; - - update_stats(&throughput_stats, t); - -diff --git a/tools/perf/bench/futex-hash.c b/tools/perf/bench/futex-hash.c -index 8ba0c3330a9a2..21776862e940f 100644 ---- a/tools/perf/bench/futex-hash.c -+++ b/tools/perf/bench/futex-hash.c -@@ -37,7 +37,7 @@ static unsigned int nfutexes = 1024; - static bool fshared = false, done = false, silent = false; - static int futex_flag = 0; - --struct timeval start, end, runtime; -+struct timeval bench__start, bench__end, bench__runtime; - static pthread_mutex_t thread_lock; - static unsigned int threads_starting; - static struct stats throughput_stats; -@@ -103,8 +103,8 @@ static void toggle_done(int sig __maybe_unused, - { - /* inform all threads that we're done for the day */ - done = true; -- gettimeofday(&end, NULL); -- timersub(&end, &start, &runtime); -+ gettimeofday(&bench__end, NULL); -+ timersub(&bench__end, &bench__start, &bench__runtime); - } - - static void print_summary(void) -@@ -114,7 +114,7 @@ static void print_summary(void) - - printf("%sAveraged %ld operations/sec (+- %.2f%%), total secs = %d\n", - !silent ? "\n" : "", avg, rel_stddev_stats(stddev, avg), -- (int) runtime.tv_sec); -+ (int)bench__runtime.tv_sec); - } - - int bench_futex_hash(int argc, const char **argv) -@@ -161,7 +161,7 @@ int bench_futex_hash(int argc, const char **argv) - - threads_starting = nthreads; - pthread_attr_init(&thread_attr); -- gettimeofday(&start, NULL); -+ gettimeofday(&bench__start, NULL); - for (i = 0; i < nthreads; i++) { - worker[i].tid = i; - worker[i].futex = calloc(nfutexes, sizeof(*worker[i].futex)); -@@ -204,7 +204,7 @@ int bench_futex_hash(int argc, const char **argv) - pthread_mutex_destroy(&thread_lock); - - for (i = 0; i < nthreads; i++) { -- unsigned long t = worker[i].ops/runtime.tv_sec; -+ unsigned long t = worker[i].ops / bench__runtime.tv_sec; - update_stats(&throughput_stats, t); - if (!silent) { - if (nfutexes == 1) -diff --git a/tools/perf/bench/futex-lock-pi.c b/tools/perf/bench/futex-lock-pi.c -index d0cae8125423f..30d97121dc4fb 100644 ---- a/tools/perf/bench/futex-lock-pi.c -+++ b/tools/perf/bench/futex-lock-pi.c -@@ -37,7 +37,6 @@ static bool silent = false, multi = false; - static bool done = false, fshared = false; - static unsigned int nthreads = 0; - static int futex_flag = 0; --struct timeval start, end, runtime; - static pthread_mutex_t thread_lock; - static unsigned int threads_starting; - static struct stats throughput_stats; -@@ -64,7 +63,7 @@ static void print_summary(void) - - printf("%sAveraged %ld operations/sec (+- %.2f%%), total secs = %d\n", - !silent ? "\n" : "", avg, rel_stddev_stats(stddev, avg), -- (int) runtime.tv_sec); -+ (int)bench__runtime.tv_sec); - } - - static void toggle_done(int sig __maybe_unused, -@@ -73,8 +72,8 @@ static void toggle_done(int sig __maybe_unused, - { - /* inform all threads that we're done for the day */ - done = true; -- gettimeofday(&end, NULL); -- timersub(&end, &start, &runtime); -+ gettimeofday(&bench__end, NULL); -+ timersub(&bench__end, &bench__start, &bench__runtime); - } - - static void *workerfn(void *arg) -@@ -185,7 +184,7 @@ int bench_futex_lock_pi(int argc, const char **argv) - - threads_starting = nthreads; - pthread_attr_init(&thread_attr); -- gettimeofday(&start, NULL); -+ gettimeofday(&bench__start, NULL); - - create_threads(worker, thread_attr, cpu); - pthread_attr_destroy(&thread_attr); -@@ -211,7 +210,7 @@ int bench_futex_lock_pi(int argc, const char **argv) - pthread_mutex_destroy(&thread_lock); - - for (i = 0; i < nthreads; i++) { -- unsigned long t = worker[i].ops/runtime.tv_sec; -+ unsigned long t = worker[i].ops / bench__runtime.tv_sec; - - update_stats(&throughput_stats, t); - if (!silent) --- -cgit 1.2.3-1.el7 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-04.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-04.patch deleted file mode 100644 index dae1222c..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-5.4/perf-fixup-gcc10-04.patch +++ /dev/null @@ -1,45 +0,0 @@ -libtraceevent: Fix build with binutils 2.35 -Upstream-Status: Backport https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/patch/tools/lib/traceevent/plugins/Makefile?id=c2fd34d4311033120fa502aa8bd4723cdeee0103 -Signed-off-by: Khasim Syed Mohammed - -From c2fd34d4311033120fa502aa8bd4723cdeee0103 Mon Sep 17 00:00:00 2001 -From: Ben Hutchings -Date: Sat, 25 Jul 2020 02:06:23 +0100 -Subject: libtraceevent: Fix build with binutils 2.35 - -commit 39efdd94e314336f4acbac4c07e0f37bdc3bef71 upstream. - -In binutils 2.35, 'nm -D' changed to show symbol versions along with -symbol names, with the usual @@ separator. When generating -libtraceevent-dynamic-list we need just the names, so strip off the -version suffix if present. - -Signed-off-by: Ben Hutchings -Tested-by: Salvatore Bonaccorso -Reviewed-by: Steven Rostedt -Cc: linux-trace-devel@vger.kernel.org -Cc: stable@vger.kernel.org -Signed-off-by: Arnaldo Carvalho de Melo -Signed-off-by: Greg Kroah-Hartman ---- - tools/lib/traceevent/plugins/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -(limited to 'tools/lib/traceevent/plugins/Makefile') - -diff --git a/tools/lib/traceevent/plugins/Makefile b/tools/lib/traceevent/plugins/Makefile -index f440989fa55e4..23c3535bcbd6b 100644 ---- a/tools/lib/traceevent/plugins/Makefile -+++ b/tools/lib/traceevent/plugins/Makefile -@@ -196,7 +196,7 @@ define do_generate_dynamic_list_file - xargs echo "U w W" | tr 'w ' 'W\n' | sort -u | xargs echo`;\ - if [ "$$symbol_type" = "U W" ];then \ - (echo '{'; \ -- $(NM) -u -D $1 | awk 'NF>1 {print "\t"$$2";"}' | sort -u;\ -+ $(NM) -u -D $1 | awk 'NF>1 {sub("@.*", "", $$2); print "\t"$$2";"}' | sort -u;\ - echo '};'; \ - ) > $2; \ - else \ --- -cgit 1.2.3-1.el7 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-n1sdp.inc b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-n1sdp.inc deleted file mode 100644 index 7a2d49bc..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-n1sdp.inc +++ /dev/null @@ -1,27 +0,0 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/linux-linaro-arm-5.4:" - -SRC_URI_append = " \ - file://0001-TMP-iommu-arm-smmu-v3-Ignore-IOPF-capabilities.patch \ - file://0002-pci_quirk-add-acs-override-for-PCI-devices.patch \ - file://0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch \ - file://0004-n1sdp-update-n1sdp-pci-quirk-for-SR-IOV-support.patch \ - file://0005-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch \ - file://enable-realtek-R8169.cfg \ - file://scripts-dtc-remove-redundant-YYLOC.patch \ - " - -# Referring to commit TAG N1SDP-2020.07.27 -SRCREV = "84baaae9e751c058717d9702438429257f077f03" - -# Use intree defconfig -KBUILD_DEFCONFIG = "defconfig" - -# Since the intree defconfig in n1sdp kernel repository is not setting all the configs, -# KCONFIG_MODE is set to "alldefconfig" to properly expand the defconfig. -KCONFIG_MODE = "--alldefconfig" - -COMPATIBLE_MACHINE = "n1sdp" - -# Since we use the intree defconfig and the preempt-rt turns off some configs -# do_kernel_configcheck will display warnings. So, lets disable it. -KCONF_AUDIT_LEVEL_pn-linux-linaro-arm-rt = "0" diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-rt-5.4/0001-xen-use-handle_fasteoi_irq-to-handle-xen-dynamic-eve.patch b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-rt-5.4/0001-xen-use-handle_fasteoi_irq-to-handle-xen-dynamic-eve.patch deleted file mode 100644 index 39c159fb..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-rt-5.4/0001-xen-use-handle_fasteoi_irq-to-handle-xen-dynamic-eve.patch +++ /dev/null @@ -1,80 +0,0 @@ -From c2971c8a3f076ea8a522ce4fbb367d112d86c13a Mon Sep 17 00:00:00 2001 -From: Stefano Stabellini -Date: Mon, 27 Apr 2020 16:15:26 -0700 -Subject: [PATCH] xen: use handle_fasteoi_irq to handle xen dynamic events - -When handling Xen events, we need to make sure the following sequence is -followed: - -- mask event -- handle event and clear event (the order does not matter) -- unmask event - -It is not possible to implement this flow with handle_edge_irq, so -switch back to handle_fasteoi_irq. Please note that Xen event irqs are -ONESHOT. Also note that handle_fasteoi_irq was in-use before the -following commit, that is partially reverted by this patch: - -7e186bdd0098 xen: do not clear and mask evtchns in __xen_evtchn_do_upcall - -PIRQ handling is left unchanged. - -This patch fixes a domU hang observed when using LinuxRT as dom0 kernel. - -Link: https://lkml.org/lkml/2020/4/27/1287 -Signed-off-by: Stefano Stabellini - -Upstream-Status: Inappropriate since the upstream solution diverges from this patch -Signed-off-by: Kamil Dziezyk ---- - drivers/xen/events/events_base.c | 13 +++---------- - 1 file changed, 3 insertions(+), 10 deletions(-) - -diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c -index 6c8843968a52..1873a19b8b24 100644 ---- a/drivers/xen/events/events_base.c -+++ b/drivers/xen/events/events_base.c -@@ -845,7 +845,7 @@ int bind_evtchn_to_irq(unsigned int evtchn) - goto out; - - irq_set_chip_and_handler_name(irq, &xen_dynamic_chip, -- handle_edge_irq, "event"); -+ handle_fasteoi_irq, "event"); - - ret = xen_irq_info_evtchn_setup(irq, evtchn); - if (ret < 0) { -@@ -978,7 +978,7 @@ int bind_virq_to_irq(unsigned int virq, unsigned int cpu, bool percpu) - handle_percpu_irq, "virq"); - else - irq_set_chip_and_handler_name(irq, &xen_dynamic_chip, -- handle_edge_irq, "virq"); -+ handle_fasteoi_irq, "virq"); - - bind_virq.virq = virq; - bind_virq.vcpu = xen_vcpu_nr(cpu); -@@ -1387,12 +1387,6 @@ static void ack_dynirq(struct irq_data *data) - clear_evtchn(evtchn); - } - --static void mask_ack_dynirq(struct irq_data *data) --{ -- disable_dynirq(data); -- ack_dynirq(data); --} -- - static int retrigger_dynirq(struct irq_data *data) - { - unsigned int evtchn = evtchn_from_irq(data->irq); -@@ -1595,8 +1589,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = { - .irq_mask = disable_dynirq, - .irq_unmask = enable_dynirq, - -- .irq_ack = ack_dynirq, -- .irq_mask_ack = mask_ack_dynirq, -+ .irq_eoi = ack_dynirq, - - .irq_set_affinity = set_affinity_irq, - .irq_retrigger = retrigger_dynirq, --- -2.17.1 - diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-rt_5.4.bb b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-rt_5.4.bb deleted file mode 100644 index fa3bb73b..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm-rt_5.4.bb +++ /dev/null @@ -1,19 +0,0 @@ -# This recipe provides the kernel with PREEMPT_RT patches and is based on -# linux-linaro-arm_5.4.bb. Set PREFERRED_PROVIDER_virtual/kernel to -# linux-linaro-arm-rt to enable it as the default kernel. -require linux-linaro-arm_5.4.bb - - -# -# Include preempt-rt patches -# -FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-5.4:" -SRC_URI_append = " \ - https://cdn.kernel.org/pub/linux/kernel/projects/rt/5.4/older/patch-5.4.3-rt1.patch.gz;name=rt-patch \ - file://0001-xen-use-handle_fasteoi_irq-to-handle-xen-dynamic-eve.patch \ - " -SRC_URI[rt-patch.sha256sum] = "6b92ba32c7ce30919c9b66e49e5f1dce58e1f8bd92fef91e548d6f2d434a2b39" - -LINUX_KERNEL_TYPE = "preempt-rt" - -KERNEL_FEATURES += "features/arm-autonomy/preempt-rt-extras.scc" diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm.inc b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm.inc deleted file mode 100644 index 4859a66a..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm.inc +++ /dev/null @@ -1,29 +0,0 @@ -# Recipe for building linaro kernel - -SUMMARY = "Linux Kernel Upstream, supported by Arm/Linaro" -SECTION = "kernel" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814" - -inherit kernel -inherit kernel-yocto - -# Require linux-yocto.inc in order to have separate build dirs when building -# LINUX_KERNEL_TYPE as 'standard' and 'preempt-rt' -require recipes-kernel/linux/linux-yocto.inc - -SRC_URI = "git://git.linaro.org/landing-teams/working/arm/kernel-release.git;branch=${KBRANCH} \ - git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=${KMETA_BRANCH};destsuffix=kernel-meta \ - file://0001-menuconfig-mconf-cfg-Allow-specification-of-ncurses-location.patch" - -DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}" -DEPENDS += "openssl-native util-linux-native" - -LINUX_VERSION ?= "${PV}" -S = "${WORKDIR}/git" - -# Add machine-specific settings -MACHINE_KERNEL_REQUIRE ?= "" -MACHINE_KERNEL_REQUIRE_n1sdp = "linux-linaro-arm-n1sdp.inc" - -require ${MACHINE_KERNEL_REQUIRE} diff --git a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm_5.4.bb b/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm_5.4.bb deleted file mode 100644 index 8e880ed7..00000000 --- a/meta-arm-autonomy/dynamic-layers/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm_5.4.bb +++ /dev/null @@ -1,17 +0,0 @@ -SRCREV ?= "84baaae9e751c058717d9702438429257f077f03" -SRCREV_meta ?= "e32057eca987b7abbe3eb47ba36f06af8711278a" - -# KBRANCH is set to n1sdp by default as there is no master or 5.4 branch on the repository -KBRANCH ?= "n1sdp" -KMETA_BRANCH ?= "yocto-5.4" - -# Apply following patches -SRC_URI_append = " \ - file://fix-bfd-link.patch \ - file://perf-fixup-gcc10-01.patch \ - file://perf-fixup-gcc10-02.patch \ - file://perf-fixup-gcc10-03.patch \ - file://perf-fixup-gcc10-04.patch \ - " - -require linux-linaro-arm.inc