summaryrefslogtreecommitdiff
path: root/meta-arm/meta-arm-bsp/recipes-kernel
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2022-10-04 15:57:18 +0300
committerPatrick Williams <patrick@stwcx.xyz>2022-10-04 23:48:44 +0300
commit8dd68484e26c2924fcc0eeda4d024b0116115009 (patch)
treefcd73baeab39ac71831143bb00cebb716c25a181 /meta-arm/meta-arm-bsp/recipes-kernel
parente71c689b0034a68d173d308dc66c31b6325ae2aa (diff)
downloadopenbmc-8dd68484e26c2924fcc0eeda4d024b0116115009.tar.xz
subtree updates
meta-openembedded: 0782ea454a..ce0b93fc12: Alex Kiernan (5): faad2: Upgrade 2.8.8 -> 2.10.0 onig: Upgrade 6.9.4 -> 6.9.8 jansson: Honour multilib paths jansson: Backport linker flag fixes jansson: Default to shared builds Beniamin Sandu (1): libnet: update to v1.2 release Daniel Gomez (4): gst-instruments: Update 0.2.3 -> 0.3.1+cb8977a libftdi: Add ftdi-eeprom support xf86-video-ati: Update 19.1.0 -> 19.1.0+7a6a34af v4l-utils: Update 1.22.1 -> 1.23.0+fd544473 Gianluigi Spagnuolo (1): bpftool: add aarch64 to COMPATIBLE_HOST Hitomi Hasegawa (1): libsdl: add CVE-2019-14906 to allowlist Khem Raj (2): python3-gevent: Avoid building internal version of libev xterm: Add _GNU_SOURCE via CFLAGS Lukas Rusak (2): libwebsockets: add optional support for sd-event loop libwebsockets: add error check if PACKAGECONFIG contains systemd but DISTRO_FEATURES doesn't Ming Liu (1): plymouth: uprev to 22.02.122 William A. Kennington III (2): gerbera: upgrade 1.9.2 -> 1.11.0 fmt: upgrade 8.1.1 -> 9.1.0 Yi Zhao (4): freeradius: fix daemon startup warnings frr: upgrade 8.2.2 -> 8.3.1 libnftnl: upgrade 1.2.2 -> 1.2.3 nftables: upgrade 1.0.4 -> 1.0.5 onkelpit (1): tio: added tio version 2.0 and 1.47 wangmy (1): xterm: upgrade 372 -> 373 meta-arm: 52f07a4b0b..0164b4ca7a: Abdellatif El Khlifi (12): arm-bsp/u-boot: corstone1000: update initramfs bundle size arm-bsp/u-boot: corstone1000: upgrade FF-A support arm-bsp/optee-os: corstone1000: upgrade to v3.18 arm-bsp/optee-spdevkit: corstone1000: drop the support arm-bsp/corstone1000-initramfs-image: remove obsolete packages arm-bsp/trusted-services: corstone1000: add secure partitions support arm-bsp/machine: corstone1000: disable pulling the kernel into the initramfs arm-bsp/trusted-services: corstone1000: add MHU-driver arm-bsp/corstone1000-initramfs-image: add TS PSA API tests packages arm-bsp/linux: corstone1000: use arm-ffa machine feature arm/secure-partitions: drop use of the recipe arm/ffa-debugfs: drop use of the kernel module Adam Johnston (3): arm-bsp/edk2-firmware: Update edk2/edk2-platforms versions for N1SDP arm-bsp/edk2-firmware: Add edk2-platforms patches for N1SDP arm-bsp/trusted-firmware-a: Update TF-A version for N1SDP Andrei Gherzan (1): edk2-firmware: Fix configure sed typo Anton Antonov (1): Temporary use qemu 7.0.0 for TS CI pipelines Davidson K (6): arm-bsp/tc: upgrade version of trusted-firmware-a arm-bsp/tc: upgrade version of hafnium arm-bsp/tc: upgrade version of optee arm-bsp/u-boot: add gnutls-native as dependency arm-bsp/trusted-firmware-a: add firmware update support for TC arm-bsp/hafnium: enable Virtual Host Extension for TC Denys Dmytriyenko (1): arm-toolchain/gcc,external-arm-toolchain: resolve conflict with gcc headers Emekcan (8): arm-bsp/u-boot: Add external system driver to u-boot device tree arm-bsp/kernel: Add external device driver arm-bsp/u-boot: Add external system MHUs to u-boot device tree arm-bsp/kernel: Add rpmsg_arm_mailbox to corstone1000 arm-bsp/test: Adding a test app for external system arm-bsp/images: Adding external system test to initramfs image arm-bsp/test: Changing the test app repository arm-bsp/external-system: Changing the RTX repo Jiacheng Tang (1): arm/fvp-base-r-aem: upgrade to version 11.19.14 Joe Slater (1): arm/packagegroup-ts-tests: fix parse error Jon Mason (17): arm-bsp/optee-os: add 3.10 recipe for corstone1000 arm-bsp/optee: rename corstone1000 files arm/optee-spdevkit: add version to file name arm/optee-os: add ARMv7 changes to clang patch and update patches arm/qemuarm-secureboot: remove optee-os version pin arm/optee: remove old versions arm/optee-client: move the 3.14 recipe to meta-arm-bsp arm/hafnium: update to 2.7 arm-bsp/n1sdp: update linux-yocto patches arm/edk2-firmware: Work around clang issue arm-bsp/tc: remove hafnium clang patch layers: convert to langdale compatibility CI: Remove uniquely zephyr machines arm-bsp/fvp: move the fvp include file to the include directory ci: move features only needed by testimage from base CI: apply a patch so that meta-zephyr is compatible with langdale Revert "CI: apply a patch so that meta-zephyr is compatible with langdale" Khem Raj (6): optee-os: Extend clang pragma fixes to core_mmu_v7.c for 3.18 trusted-services: Pin to use gcc ffa-debugfs-mod: Exclude from world builds linux-yocto: Add bbappend for 5.19 hafnium: Add a fix for clang-15 errors hafnium: Exclude from world builds Mohamed Omar Asaker (1): arm-bsp/n1sdp-board-firmware: upgrade to N1SDP-2022.06.22 Peter Hoyes (4): arm/lib: Specify the FVP environment variables explicitly arm-bsp/trusted-firmware-m: Make branch names configurable arm/classes: Migrate TF-M image signing to bbclass arm-bsp/corstone1000: Refactor image signing to use new bbclass Ross Burton (3): gem5/linux-yocto: upgrade to 5.4.205 and fix buildpaths in binaries Revert "Temporary use qemu 7.0.0 for TS CI pipelines" runfvp: pass-through environment variables need for GUI applications Rui Miguel Silva (1): arm-bsp: trusted-services: fix openamp build Vishnu Banavath (2): arm-bsp/ffa-debugfs: update git SHA for v2.1.0 arm-bsp/external-system:corstone1000: build and install external-system Xueliang Zhong (1): arm-bsp/n1sdp: upgrade scp-firmware version Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I7a07eab9e4aa0bdbdb50602050c3c4caf062acbf
Diffstat (limited to 'meta-arm/meta-arm-bsp/recipes-kernel')
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch223
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpsmg-driver-for-corstone1000.patch222
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/defconfig7
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc3
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch18
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch23
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch33
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch31
-rw-r--r--meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch17
9 files changed, 507 insertions, 70 deletions
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch
new file mode 100644
index 0000000000..ae69090a36
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0002-Add-external-system-driver.patch
@@ -0,0 +1,223 @@
+Upstream-Status: Pending[Not submitted to upstream yet]
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+
+From 97509e82b51c57935fc8e918b33c09c4f6648ed7 Mon Sep 17 00:00:00 2001
+From: Emekcan <emekcan.aras@arm.com>
+Date: Fri, 19 Aug 2022 14:51:08 +0100
+Subject: [PATCH] Add external system driver
+
+Adds external system driver to control it
+from user-space. It provides run and reset
+functionality at the moment.
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+---
+ drivers/misc/Kconfig | 2 +
+ drivers/misc/Makefile | 1 +
+ drivers/misc/arm/Kconfig | 5 ++
+ drivers/misc/arm/Makefile | 1 +
+ drivers/misc/arm/extsys_ctrl.c | 151 +++++++++++++++++++++++++++++++++
+ 5 files changed, 160 insertions(+)
+ create mode 100644 drivers/misc/arm/Kconfig
+ create mode 100644 drivers/misc/arm/Makefile
+ create mode 100644 drivers/misc/arm/extsys_ctrl.c
+
+diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
+index 0f5a49fc7c9e..5ca195110b3f 100644
+--- a/drivers/misc/Kconfig
++++ b/drivers/misc/Kconfig
+@@ -487,4 +487,6 @@ source "drivers/misc/cardreader/Kconfig"
+ source "drivers/misc/habanalabs/Kconfig"
+ source "drivers/misc/uacce/Kconfig"
+ source "drivers/misc/pvpanic/Kconfig"
++source "drivers/misc/arm/Kconfig"
++
+ endmenu
+diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
+index a086197af544..f5c1bd5747f7 100644
+--- a/drivers/misc/Makefile
++++ b/drivers/misc/Makefile
+@@ -59,3 +59,4 @@ obj-$(CONFIG_UACCE) += uacce/
+ obj-$(CONFIG_XILINX_SDFEC) += xilinx_sdfec.o
+ obj-$(CONFIG_HISI_HIKEY_USB) += hisi_hikey_usb.o
+ obj-$(CONFIG_HI6421V600_IRQ) += hi6421v600-irq.o
++obj-y += arm/
+diff --git a/drivers/misc/arm/Kconfig b/drivers/misc/arm/Kconfig
+new file mode 100644
+index 000000000000..3c4b3f08e6b4
+--- /dev/null
++++ b/drivers/misc/arm/Kconfig
+@@ -0,0 +1,5 @@
++config EXTSYS_CTRL
++ tristate "Arm External System control driver"
++ help
++ Say y here to enable support for external system control
++ driver for the Arm Corstone-700 and Corstone1000 platform
+\ No newline at end of file
+diff --git a/drivers/misc/arm/Makefile b/drivers/misc/arm/Makefile
+new file mode 100644
+index 000000000000..1ca3084cf8a0
+--- /dev/null
++++ b/drivers/misc/arm/Makefile
+@@ -0,0 +1 @@
++obj-$(CONFIG_EXTSYS_CTRL) += extsys_ctrl.o
+diff --git a/drivers/misc/arm/extsys_ctrl.c b/drivers/misc/arm/extsys_ctrl.c
+new file mode 100644
+index 000000000000..1c6ef14a32ae
+--- /dev/null
++++ b/drivers/misc/arm/extsys_ctrl.c
+@@ -0,0 +1,151 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * Arm Corstone700 and Corstone1000 external system reset control driver
++ *
++ * Copyright (C) 2019 Arm Ltd.
++ *
++ */
++
++#include <linux/fs.h>
++#include <linux/clk.h>
++#include <linux/err.h>
++#include <linux/interrupt.h>
++#include <linux/io.h>
++#include <linux/kernel.h>
++#include <linux/mod_devicetable.h>
++#include <linux/module.h>
++#include <linux/platform_device.h>
++#include <linux/miscdevice.h>
++#include <linux/init.h>
++
++#define EXTSYS_DRV_NAME "extsys_ctrl"
++#define EXTSYS_MAX_DEVS 4
++
++#define EXTSYS_RST_SIZE U(0x8)
++#define EXTSYS_RST_CTRL_OFF U(0x0)
++#define EXTSYS_RST_ST_OFF U(0x4)
++
++/* External system reset control indexes */
++#define EXTSYS_CPU_WAIT (0x0)
++#define EXTSYS_RST_REQ (0x1)
++
++/* External system reset status masks */
++#define EXTSYS_RST_ST_ACK_OFF U(0x1)
++
++/* No Reset Requested */
++#define EXTSYS_RST_ST_ACK_NRR (0x0 << EXTSYS_RST_ST_ACK_OFF)
++
++/* Reset Request Complete */
++#define EXTSYS_RST_ST_ACK_RRC (0x2 << EXTSYS_RST_ST_ACK_OFF)
++
++/* Reset Request Unable to Complete */
++#define EXTSYS_RST_ST_ACK_RRUC (0x3 << EXTSYS_RST_ST_ACK_OFF)
++
++/* IOCTL commands */
++#define EXTSYS_CPU_WAIT_DISABLE 0x0
++#define EXTSYS_RESET_REQ_ENABLE 0x1
++
++struct extsys_ctrl {
++ struct miscdevice miscdev;
++ void __iomem *reset_reg;
++ void __iomem *set_reg;
++};
++
++#define CLEAR_BIT(addr, index) writel(readl(addr) & ~(1UL << index), addr)
++#define SET_BIT(addr, index) writel(readl(addr) | (1UL << index), addr)
++
++static long extsys_ctrl_ioctl(struct file *f, unsigned int cmd,
++ unsigned long arg)
++{
++ struct extsys_ctrl *extsys;
++
++ extsys = container_of(f->private_data, struct extsys_ctrl, miscdev);
++
++ switch (cmd) {
++ case EXTSYS_CPU_WAIT_DISABLE:
++ CLEAR_BIT(extsys->reset_reg, EXTSYS_CPU_WAIT);
++ break;
++ case EXTSYS_RESET_REQ_ENABLE:
++ SET_BIT(extsys->reset_reg, EXTSYS_RST_REQ);
++ break;
++ default:
++ break;
++ }
++
++ return 0;
++}
++
++static const struct file_operations extsys_ctrl_fops = {
++ .owner = THIS_MODULE,
++ .unlocked_ioctl = extsys_ctrl_ioctl,
++};
++
++static int extsys_ctrl_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ struct extsys_ctrl *extsys;
++ struct resource *res;
++ void __iomem *reset_reg;
++ void __iomem *set_reg;
++ int ret;
++
++ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rstreg");
++ reset_reg = devm_ioremap_resource(dev, res);
++ if (IS_ERR(reset_reg))
++ return PTR_ERR(reset_reg);
++
++ res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "streg");
++ set_reg = devm_ioremap_resource(dev, res);
++ if (IS_ERR(set_reg))
++ return PTR_ERR(set_reg);
++
++ extsys = devm_kzalloc(dev, sizeof(*extsys), GFP_KERNEL);
++ if (!extsys)
++ return -ENOMEM;
++
++ extsys->reset_reg = reset_reg;
++ extsys->set_reg = set_reg;
++
++ extsys->miscdev.minor = MISC_DYNAMIC_MINOR;
++ extsys->miscdev.name = EXTSYS_DRV_NAME;
++ extsys->miscdev.fops = &extsys_ctrl_fops;
++ extsys->miscdev.parent = dev;
++
++ ret = misc_register(&extsys->miscdev);
++ if (ret)
++ return ret;
++
++ dev_info(dev, "external system controller ready\n");
++
++ return 0;
++}
++
++static int extsys_ctrl_remove(struct platform_device *pdev)
++{
++ struct extsys_ctrl *extsys = dev_get_drvdata(&pdev->dev);
++
++ misc_deregister(&extsys->miscdev);
++
++ return 0;
++}
++
++static const struct of_device_id extsys_ctrl_match[] = {
++ { .compatible = "arm,extsys_ctrl" },
++ { },
++};
++MODULE_DEVICE_TABLE(of, extsys_ctrl_match);
++
++static struct platform_driver extsys_ctrl_driver = {
++ .driver = {
++ .name = EXTSYS_DRV_NAME,
++ .of_match_table = extsys_ctrl_match,
++ },
++ .probe = extsys_ctrl_probe,
++ .remove = extsys_ctrl_remove,
++};
++module_platform_driver(extsys_ctrl_driver);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("Arm External System Control Driver");
++MODULE_AUTHOR("Morten Borup Petersen");
++MODULE_AUTHOR("Rui Miguel Silva <rui.silva@arm.com>");
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpsmg-driver-for-corstone1000.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpsmg-driver-for-corstone1000.patch
new file mode 100644
index 0000000000..d88acfc0f6
--- /dev/null
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/0003-Add-rpsmg-driver-for-corstone1000.patch
@@ -0,0 +1,222 @@
+Upstream-Status: Pending [Not submitted to upstream yet]
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+
+From e683c37ee51717e625c8a598056cf4bb1bdadcbc Mon Sep 17 00:00:00 2001
+From: Emekcan <emekcan.aras@arm.com>
+Date: Wed, 17 Aug 2022 14:21:42 +0100
+Subject: [PATCH] Add rpsmg driver for corstone1000
+
+Adds rpsmg driver to communicate with external
+system in corstone1000 platform.
+
+Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
+---
+ drivers/rpmsg/Kconfig | 10 ++
+ drivers/rpmsg/Makefile | 1 +
+ drivers/rpmsg/rpmsg_arm_mailbox.c | 164 ++++++++++++++++++++++
+ 3 files changed, 175 insertions(+)
+ create mode 100644 drivers/rpmsg/rpmsg_arm_mailbox.c
+
+diff --git a/drivers/rpmsg/Kconfig b/drivers/rpmsg/Kconfig
+index 0b4407abdf13..c276bd17bffe 100644
+--- a/drivers/rpmsg/Kconfig
++++ b/drivers/rpmsg/Kconfig
+@@ -73,4 +73,14 @@ config RPMSG_VIRTIO
+ select RPMSG_NS
+ select VIRTIO
+
++config RPMSG_ARM
++ tristate "ARM RPMSG driver"
++ select RPMSG
++ depends on HAS_IOMEM
++ depends on MAILBOX
++ help
++ Say y here to enable support for rpmsg lient driver which is built
++ around mailbox client using Arm MHUv2.1 as physical medium.This
++ driver enables communication which remote processor using MHU.
++
+ endmenu
+diff --git a/drivers/rpmsg/Makefile b/drivers/rpmsg/Makefile
+index 8d452656f0ee..34e9c146cd64 100644
+--- a/drivers/rpmsg/Makefile
++++ b/drivers/rpmsg/Makefile
+@@ -1,5 +1,6 @@
+ # SPDX-License-Identifier: GPL-2.0
+ obj-$(CONFIG_RPMSG) += rpmsg_core.o
++obj-$(CONFIG_RPMSG_ARM) += rpmsg_arm_mailbox.o
+ obj-$(CONFIG_RPMSG_CHAR) += rpmsg_char.o
+ obj-$(CONFIG_RPMSG_NS) += rpmsg_ns.o
+ obj-$(CONFIG_RPMSG_MTK_SCP) += mtk_rpmsg.o
+diff --git a/drivers/rpmsg/rpmsg_arm_mailbox.c b/drivers/rpmsg/rpmsg_arm_mailbox.c
+new file mode 100644
+index 000000000000..4a80102669f6
+--- /dev/null
++++ b/drivers/rpmsg/rpmsg_arm_mailbox.c
+@@ -0,0 +1,164 @@
++// SPDX-License-Identifier: GPL-2.0
++/*
++ * rpmsg client driver using mailbox client interface
++ *
++ * Copyright (C) 2019 ARM Ltd.
++ *
++ */
++
++#include <linux/bitmap.h>
++#include <linux/export.h>
++#include <linux/io.h>
++#include <linux/kernel.h>
++#include <linux/ktime.h>
++#include <linux/mailbox_client.h>
++#include <linux/module.h>
++#include <linux/of_address.h>
++#include <linux/of_device.h>
++#include <linux/processor.h>
++#include <linux/semaphore.h>
++#include <linux/slab.h>
++#include <linux/rpmsg.h>
++#include "rpmsg_internal.h"
++#include <linux/mailbox/arm_mhuv2_message.h>
++
++#define RPMSG_NAME "arm_rpmsg"
++#define RPMSG_ADDR_ANY 0xFFFFFFFF
++
++struct arm_channel {
++ struct rpmsg_endpoint ept;
++ struct mbox_client cl;
++ struct mbox_chan *mbox;
++};
++
++#define arm_channel_from_rpmsg(_ept) container_of(_ept, struct arm_channel, ept)
++#define arm_channel_from_mbox(_ept) container_of(_ept, struct arm_channel, cl)
++
++
++static void arm_msg_rx_handler(struct mbox_client *cl, void *mssg)
++{
++ struct arm_mhuv2_mbox_msg *msg = mssg;
++ struct arm_channel* channel = arm_channel_from_mbox(cl);
++ int err = channel->ept.cb(channel->ept.rpdev, msg->data, 4, channel->ept.priv, RPMSG_ADDR_ANY);
++ if(err) {
++ printk("ARM Mailbox: Endpoint callback failed with error: %d", err);
++ }
++}
++
++
++static void arm_destroy_ept(struct rpmsg_endpoint *ept)
++{
++ struct arm_channel *channel = arm_channel_from_rpmsg(ept);
++ mbox_free_channel(channel->mbox);
++ kfree(channel);
++}
++
++static int arm_send(struct rpmsg_endpoint *ept, void *data, int len)
++{
++ struct arm_channel *channel = arm_channel_from_rpmsg(ept);
++
++ mbox_send_message(channel->mbox, data);
++ return 0;
++}
++
++static int arm_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dest)
++{
++ struct arm_mhuv2_mbox_msg msg;
++ struct arm_channel *channel = arm_channel_from_rpmsg(ept);
++ msg.data = data;
++ msg.len = len;
++ mbox_send_message(channel->mbox, &msg);
++ return 0;
++}
++
++
++static const struct rpmsg_endpoint_ops arm_endpoint_ops = {
++ .destroy_ept = arm_destroy_ept,
++ .send = arm_send,
++ .sendto = arm_sendto,
++};
++
++
++static struct rpmsg_endpoint *arm_create_ept(struct rpmsg_device *rpdev,
++ rpmsg_rx_cb_t cb, void *priv, struct rpmsg_channel_info chinfo)
++{
++ struct arm_channel *channel;
++
++ channel = kzalloc(sizeof(*channel), GFP_KERNEL);
++
++ // Initialize rpmsg endpoint
++ kref_init(&channel->ept.refcount);
++ channel->ept.rpdev = rpdev;
++ channel->ept.cb = cb;
++ channel->ept.priv = priv;
++ channel->ept.ops = &arm_endpoint_ops;
++
++ // Initialize mailbox client
++ channel->cl.dev = rpdev->dev.parent;
++ channel->cl.rx_callback = arm_msg_rx_handler;
++ channel->cl.tx_done = NULL; /* operate in blocking mode */
++ channel->cl.tx_block = true;
++ channel->cl.tx_tout = 500; /* by half a second */
++ channel->cl.knows_txdone = false; /* depending upon protocol */
++
++ channel->mbox = mbox_request_channel_byname(&channel->cl, chinfo.name);
++ if (IS_ERR_OR_NULL(channel->mbox)) {
++ printk("RPMsg ARM: Cannot get channel by name: '%s'\n", chinfo.name);
++ return -1;
++ }
++
++ return &channel->ept;
++}
++
++static const struct rpmsg_device_ops arm_device_ops = {
++ .create_ept = arm_create_ept,
++};
++
++
++static void arm_release_device(struct device *dev)
++{
++ struct rpmsg_device *rpdev = to_rpmsg_device(dev);
++
++ kfree(rpdev);
++}
++
++
++static int client_probe(struct platform_device *pdev)
++{
++ struct device *dev = &pdev->dev;
++ struct rpmsg_device *rpdev;
++
++ rpdev = kzalloc(sizeof(*rpdev), GFP_KERNEL);
++ if (!rpdev)
++ return -ENOMEM;
++
++ /* Assign callbacks for rpmsg_device */
++ rpdev->ops = &arm_device_ops;
++
++ /* Assign public information to the rpmsg_device */
++ memcpy(rpdev->id.name, RPMSG_NAME, strlen(RPMSG_NAME));
++
++ rpdev->dev.parent = dev;
++ rpdev->dev.release = arm_release_device;
++
++ return rpmsg_chrdev_register_device(rpdev);
++}
++
++static const struct of_device_id client_of_match[] = {
++ { .compatible = "arm,client", .data = NULL },
++ { /* Sentinel */ },
++};
++
++static struct platform_driver client_driver = {
++ .driver = {
++ .name = "arm-mhu-client",
++ .of_match_table = client_of_match,
++ },
++ .probe = client_probe,
++};
++
++module_platform_driver(client_driver);
++
++MODULE_LICENSE("GPL v2");
++MODULE_DESCRIPTION("ARM RPMSG Driver");
++MODULE_AUTHOR("Tushar Khandelwal <tushar.khandelwal@arm.com>");
+--
+2.17.1
+
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/defconfig b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/defconfig
index 5f0a7e9198..3fe7a03877 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/defconfig
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/files/corstone1000/defconfig
@@ -10,7 +10,6 @@ CONFIG_ARCH_VEXPRESS=y
CONFIG_CMDLINE="console=ttyAMA0 loglevel=9"
CONFIG_EFI=y
# CONFIG_SUSPEND is not set
-CONFIG_ARM_FFA_TRANSPORT=y
CONFIG_EFI_BOOTLOADER_CONTROL=y
CONFIG_EFI_CAPSULE_LOADER=y
CONFIG_EFI_TEST=y
@@ -92,3 +91,9 @@ CONFIG_LIBCRC32C=y
CONFIG_DEBUG_FS=y
CONFIG_PANIC_TIMEOUT=5
CONFIG_STACKTRACE=y
+CONFIG_EXTSYS_CTRL=y
+CONFIG_MAILBOX=y
+CONFIG_ARM_MHU_V2=y
+CONFIG_RPMSG=y
+CONFIG_RPMSG_CHAR=y
+CONFIG_RPMSG_ARM=y
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
index 7bb4a92556..0d1017ac2d 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-arm-platforms.inc
@@ -32,6 +32,7 @@ KCONFIG_MODE:corstone500 = "--alldefconfig"
# Corstone1000 KMACHINE
#
FILESEXTRAPATHS:prepend:corstone1000 := "${ARMBSPFILESPATHS}"
+FILESEXTRAPATHS:prepend:corstone1000 := "${ARMFILESPATHS}"
COMPATIBLE_MACHINE:corstone1000 = "${MACHINE}"
KCONFIG_MODE:corstone1000 = "--alldefconfig"
KMACHINE:corstone1000 = "corstone1000"
@@ -41,6 +42,8 @@ KERNEL_EXTRA_ARGS:corstone1000 += "CONFIG_INITRAMFS_COMPRESSION_NONE=y"
SRC_URI:append:corstone1000 = " \
file://defconfig \
file://0001-UPSTREAM-firmware-arm_ffa-Handle-compatibility-with-.patch \
+ file://0002-Add-external-system-driver.patch \
+ file://0003-Add-rpsmg-driver-for-corstone1000.patch \
"
SRC_URI:append:corstone1000 = " ${@bb.utils.contains('MACHINE_FEATURES', \
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch
index a75ca247dc..e1cbb80919 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0001-iommu-arm-smmu-v3-workaround-for-ATC_INV_SIZE_ALL-in.patch
@@ -1,11 +1,7 @@
-Upstream-Status: Inappropriate [Workaround]
-Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
-
-From 949ba3f12ec1f3177a82a9228dc402ab5d8c9d60 Mon Sep 17 00:00:00 2001
+From f88153a427046f92d52694708adc5ee0eefa8d55 Mon Sep 17 00:00:00 2001
From: Manoj Kumar <manoj.kumar3@arm.com>
Date: Mon, 1 Feb 2021 21:36:43 +0530
-Subject: [PATCH 1/5] iommu/arm-smmu-v3: workaround for ATC_INV_SIZE_ALL in
- N1SDP
+Subject: [PATCH] iommu/arm-smmu-v3: workaround for ATC_INV_SIZE_ALL in N1SDP
ATC_INV_SIZE_ALL request should automatically translate to ATS
address which is not happening in SMMUv3 version gone into
@@ -15,16 +11,19 @@ field to proper value for ATC_INV_SIZE_ALL command.
Change-Id: If89465be94720a62be85e1e6612f17e93fa9b8a5
Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
+
+Upstream-Status: Inappropriate [Workaround]
+Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
---
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 1 +
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
-index a388e318f86e..ceca576b0bf6 100644
+index 79edfdca6607..ded17e199ee4 100644
--- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
+++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
-@@ -1724,6 +1724,7 @@ arm_smmu_atc_inv_to_cmd(int ssid, unsigned long iova, size_t size,
+@@ -1725,6 +1725,7 @@ arm_smmu_atc_inv_to_cmd(int ssid, unsigned long iova, size_t size,
};
if (!size) {
@@ -44,6 +43,3 @@ index 4cb136f07914..5615ffd24e46 100644
struct {
u32 sid;
u32 ssid;
---
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch
index a6284098b1..b4e2a8c50c 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0002-n1sdp-pci_quirk-add-acs-override-for-PCI-devices.patch
@@ -1,26 +1,26 @@
-Upstream-Status: Inappropriate [will not be submitted as its a workaround to address hardware issue]
-Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
-
-From e47ab593ee36b2480f8c2196722cded42749629a Mon Sep 17 00:00:00 2001
+From 478d96ce8a4d30ef80975271a2ad89a77012c1b8 Mon Sep 17 00:00:00 2001
From: Manoj Kumar <manoj.kumar3@arm.com>
Date: Tue, 31 Aug 2021 16:15:38 +0000
-Subject: [PATCH 2/5] n1sdp: pci_quirk: add acs override for PCI devices
+Subject: [PATCH] n1sdp: 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
Change-Id: Ib926bf50524ce9990fbaa2f2f8670fe84bd571f9
Signed-off-by: Manoj Kumar <manoj.kumar3@arm.com>
+
+Upstream-Status: Inappropriate [will not be submitted as its a workaround to address hardware issue]
+Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
---
.../admin-guide/kernel-parameters.txt | 8 ++
drivers/pci/quirks.c | 102 ++++++++++++++++++
2 files changed, 110 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 43dc35fe5bc0..a60e454854d7 100644
+index 4445baac48c1..ee90aeeb1dbb 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
-@@ -3892,6 +3892,14 @@
+@@ -3935,6 +3935,14 @@
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.
@@ -36,10 +36,10 @@ index 43dc35fe5bc0..a60e454854d7 100644
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 4537d1ea14fd..984f30d25a6d 100644
+index a531064233f9..ebe192134a97 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
-@@ -3588,6 +3588,107 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
+@@ -3600,6 +3600,107 @@ static void quirk_no_bus_reset(struct pci_dev *dev)
dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET;
}
@@ -147,7 +147,7 @@ index 4537d1ea14fd..984f30d25a6d 100644
/*
* Some NVIDIA GPU devices do not work with bus reset, SBR needs to be
* prevented for those affected devices.
-@@ -4949,6 +5050,7 @@ static const struct pci_dev_acs_enabled {
+@@ -4968,6 +5069,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_NXP, 0x8d9b, pci_quirk_nxp_rp_acs },
/* Zhaoxin Root/Downstream Ports */
{ PCI_VENDOR_ID_ZHAOXIN, PCI_ANY_ID, pci_quirk_zhaoxin_pcie_ports_acs },
@@ -155,6 +155,3 @@ index 4537d1ea14fd..984f30d25a6d 100644
{ 0 }
};
---
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch
index f0184a0b15..4ffe347a17 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0003-pcie-Add-quirk-for-the-Arm-Neoverse-N1SDP-platform.patch
@@ -1,10 +1,7 @@
-Upstream-Status: Inappropriate [will not be submitted as its a workaround to address hardware issue]
-Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
-
-From 63ee3a71eeb778a632f5683f3b9e404a70760e75 Mon Sep 17 00:00:00 2001
+From 4877796976647a24a3a9102facd0577586f5ac9a Mon Sep 17 00:00:00 2001
From: Deepak Pandey <Deepak.Pandey@arm.com>
Date: Fri, 31 May 2019 16:42:43 +0100
-Subject: [PATCH 3/5] pcie: Add quirk for the Arm Neoverse N1SDP platform
+Subject: [PATCH] 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
@@ -27,6 +24,9 @@ Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
Signed-off-by: Sudipto Paul <sudipto.paul@arm.com>
[Andre: fix coding style issues, rewrite some parts, add DT support]
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
+
+Upstream-Status: Inappropriate [will not be submitted as its a workaround to address hardware issue]
+Signed-off-by: Deepak Pandey <Deepak.Pandey@arm.com>
---
arch/arm64/configs/defconfig | 1 +
drivers/acpi/pci_mcfg.c | 7 +
@@ -38,10 +38,10 @@ Signed-off-by: Andre Przywara <andre.przywara@arm.com>
create mode 100644 drivers/pci/controller/pcie-n1sdp.c
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
-index 545197bc0501..57ae850ccdf0 100644
+index c27d0fed2ce2..70ed38cecee9 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
-@@ -212,6 +212,7 @@ CONFIG_NFC_NCI=m
+@@ -209,6 +209,7 @@ CONFIG_NFC_NCI=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
@@ -50,23 +50,23 @@ index 545197bc0501..57ae850ccdf0 100644
CONFIG_PCI_PASID=y
CONFIG_HOTPLUG_PCI=y
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
-index 53cab975f612..f31727da21ac 100644
+index 63b98eae5e75..67c34e6c24a7 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
-@@ -169,6 +169,13 @@ static struct mcfg_fixup mcfg_quirks[] = {
- ALTRA_ECAM_QUIRK(1, 13),
- ALTRA_ECAM_QUIRK(1, 14),
- ALTRA_ECAM_QUIRK(1, 15),
-+
+@@ -152,6 +152,13 @@ static struct mcfg_fixup mcfg_quirks[] = {
+ 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),
- };
++
+ #define ALTRA_ECAM_QUIRK(rev, seg) \
+ { "Ampere", "Altra ", rev, seg, MCFG_BUS_ANY, &pci_32b_read_ops }
- static char mcfg_oem_id[ACPI_OEM_ID_SIZE];
diff --git a/drivers/pci/controller/Kconfig b/drivers/pci/controller/Kconfig
index 326f7d13024f..f9700d037c46 100644
--- a/drivers/pci/controller/Kconfig
@@ -318,6 +318,3 @@ index adea5a4771cf..e6bbc037cef8 100644
#endif
#if IS_ENABLED(CONFIG_PCI_HOST_COMMON)
---
-2.17.1
-
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch
index c15b464c73..bd88fa4995 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0004-n1sdp-pcie-add-quirk-support-enabling-remote-chip-PC.patch
@@ -1,10 +1,7 @@
-Upstream-Status: Inappropriate [will not be submitted as its an hack required to fix the hardware issue]
-Signed-off-by: Sayanta Pattanayak <sayanta.pattanayak@arm.com>
-
-From 4d69e38213bf52a48f2f0239da8c7b76501428b2 Mon Sep 17 00:00:00 2001
+From 7a5147f51f2eb80ecb6f62a28b8bd86aa5ceebf7 Mon Sep 17 00:00:00 2001
From: Sayanta Pattanayak <sayanta.pattanayak@arm.com>
Date: Wed, 9 Feb 2022 20:37:43 +0530
-Subject: [PATCH 4/5] n1sdp: pcie: add quirk support enabling remote chip PCIe
+Subject: [PATCH] n1sdp: pcie: add quirk support enabling remote chip PCIe
Base address mapping for remote chip Root PCIe ECAM space.
@@ -19,6 +16,9 @@ Signed-off-by: Sayanta Pattanayak <sayanta.pattanayak@arm.com>
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: sahil <sahil@arm.com>
+
+Upstream-Status: Inappropriate [will not be submitted as its an hack required to fix the hardware issue]
+Signed-off-by: Sayanta Pattanayak <sayanta.pattanayak@arm.com>
---
drivers/acpi/pci_mcfg.c | 1 +
drivers/pci/controller/pcie-n1sdp.c | 32 +++++++++++++++++++++++++----
@@ -26,17 +26,17 @@ Signed-off-by: sahil <sahil@arm.com>
3 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
-index f31727da21ac..58f59b5fffa2 100644
+index 67c34e6c24a7..4584a5a2ca20 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
-@@ -176,6 +176,7 @@ static struct mcfg_fixup mcfg_quirks[] = {
+@@ -158,6 +158,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];
+ #define ALTRA_ECAM_QUIRK(rev, seg) \
+ { "Ampere", "Altra ", rev, seg, MCFG_BUS_ANY, &pci_32b_read_ops }
diff --git a/drivers/pci/controller/pcie-n1sdp.c b/drivers/pci/controller/pcie-n1sdp.c
index 408699b9dcb1..a03665dd056a 100644
--- a/drivers/pci/controller/pcie-n1sdp.c
@@ -121,17 +121,14 @@ index 408699b9dcb1..a03665dd056a 100644
{ .compatible = "arm,n1sdp-pcie", .data = &pci_n1sdp_pcie_ecam_ops },
{ },
diff --git a/include/linux/pci-ecam.h b/include/linux/pci-ecam.h
-index e6bbc037cef8..7bd8c1d702ee 100644
+index e6bbc037cef8..d936d3f14bce 100644
--- a/include/linux/pci-ecam.h
+++ b/include/linux/pci-ecam.h
-@@ -89,6 +89,7 @@ extern const struct pci_ecam_ops al_pcie_ops; /* Amazon Annapurna Labs PCIe */
- extern const struct pci_ecam_ops tegra194_pcie_ops; /* Tegra194 PCIe */
- extern const struct pci_ecam_ops pci_n1sdp_pcie_ecam_ops; /* Arm N1SDP PCIe */
+@@ -91,6 +91,7 @@ extern const struct pci_ecam_ops pci_n1sdp_pcie_ecam_ops; /* Arm N1SDP PCIe */
extern const struct pci_ecam_ops pci_n1sdp_ccix_ecam_ops; /* Arm N1SDP PCIe */
-+extern const struct pci_ecam_ops pci_n1sdp_remote_pcie_ecam_ops; /* Arm N1SDP PCIe */
#endif
++extern const struct pci_ecam_ops pci_n1sdp_remote_pcie_ecam_ops; /* Arm N1SDP PCIe */
#if IS_ENABLED(CONFIG_PCI_HOST_COMMON)
---
-2.17.1
-
+ /* for DT-based PCI controllers that support ECAM */
+ int pci_host_common_probe(struct platform_device *pdev);
diff --git a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch
index 040408615a..b89c59878a 100644
--- a/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch
+++ b/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-yocto-5.15/n1sdp/0005-arm64-kpti-Whitelist-early-Arm-Neoverse-N1-revisions.patch
@@ -1,10 +1,7 @@
-Upstream-Status: Inappropriate
-Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-
-From d20f5afffadcdbaca7032f547cce80720d8a414a Mon Sep 17 00:00:00 2001
+From 85581abbfc7e3df12091c5004788b0729cfd99f1 Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@arm.com>
Date: Fri, 17 May 2019 17:39:27 +0100
-Subject: [PATCH 5/5] arm64: kpti: Whitelist early Arm Neoverse N1 revisions
+Subject: [PATCH] arm64: kpti: Whitelist early Arm Neoverse N1 revisions
Early revisions (r1p0) of the Neoverse N1 core did not feature the
CSV3 field in ID_AA64PFR0_EL1 to advertise they are not affected by
@@ -13,15 +10,18 @@ the Spectre variant 3 (aka Meltdown) vulnerability.
Add this particular revision to the whitelist to avoid enabling KPTI.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
+
+Upstream-Status: Inappropriate
+Signed-off-by: Andre Przywara <andre.przywara@arm.com>
---
arch/arm64/kernel/cpufeature.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
-index 6ec7036ef7e1..ceba98773608 100644
+index 3e52a9e8b50b..2e64bc4689a0 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
-@@ -1509,6 +1509,7 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
+@@ -1530,6 +1530,7 @@ static bool unmap_kernel_at_el0(const struct arm64_cpu_capabilities *entry,
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_2XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_3XX_SILVER),
MIDR_ALL_VERSIONS(MIDR_QCOM_KRYO_4XX_SILVER),
@@ -29,6 +29,3 @@ index 6ec7036ef7e1..ceba98773608 100644
{ /* sentinel */ }
};
char const *str = "kpti command line option";
---
-2.17.1
-