From 2b4505d6dd020225915103ea0e57289bd4c43c84 Mon Sep 17 00:00:00 2001 From: helmut <helmut.stult@schinfo.de> Date: Mon, 10 Feb 2020 11:26:38 +0100 Subject: [PATCH] [pkg-upd] 5.6rc1.d0209.gbb6d3fb-1 --- 0001-nonupstream-navi10-vfio-reset.patch | 128 +++++++++++++++++++++++ PKGBUILD | 63 +++++++++-- config.x86_64 | 4 + 3 files changed, 188 insertions(+), 7 deletions(-) create mode 100644 0001-nonupstream-navi10-vfio-reset.patch diff --git a/0001-nonupstream-navi10-vfio-reset.patch b/0001-nonupstream-navi10-vfio-reset.patch new file mode 100644 index 0000000..3fd63b7 --- /dev/null +++ b/0001-nonupstream-navi10-vfio-reset.patch @@ -0,0 +1,128 @@ +From 69ea42207b544b6e3fa9755022bff09d2ce953d9 Mon Sep 17 00:00:00 2001 +From: Geoffrey McRae <geoff@hostfission.com> +Date: Thu, 12 Sep 2019 03:19:28 +1000 +Subject: [PATCH] pci quirk: AMD Navi 10 series vendor specific reset + +Signed-off-by: Geoffrey McRae <geoff@hostfission.com> +--- + drivers/pci/quirks.c | 98 ++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 98 insertions(+) + +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index 44c4ae1abd00..d94ddb1c6832 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -3825,6 +3825,97 @@ static int delay_250ms_after_flr(struct pci_dev *dev, int probe) + return 0; + } + ++/* ++ * AMD Navi 10 series GPUs require a vendor specific reset procedure. ++ * According to AMD a PSP mode 2 reset should be enough however at this ++ * time the details of how to perform this are not available to us. ++ * Instead we can signal the SMU to enter and exit BACO which has the same ++ * desired effect. ++ */ ++static int reset_amd_navi10(struct pci_dev *dev, int probe) ++{ ++ const int mmMP0_SMN_C2PMSG_81 = 0x16091; ++ const int mmMP1_SMN_C2PMSG_66 = 0x16282; ++ const int mmMP1_SMN_C2PMSG_82 = 0x16292; ++ const int mmMP1_SMN_C2PMSG_90 = 0x1629a; ++ ++ u16 cfg; ++ resource_size_t mmio_base, mmio_size; ++ uint32_t __iomem * mmio; ++ unsigned int sol; ++ unsigned int timeout; ++ ++ /* bus resets still cause navi to flake out */ ++ dev->dev_flags |= PCI_DEV_FLAGS_NO_BUS_RESET; ++ ++ if (probe) ++ return 0; ++ ++ /* save the PCI state and enable memory access */ ++ pci_save_state(dev); ++ pci_read_config_word(dev, PCI_COMMAND, &cfg); ++ pci_write_config_word(dev, PCI_COMMAND, cfg | PCI_COMMAND_MEMORY); ++ ++ /* map BAR5 */ ++ mmio_base = pci_resource_start(dev, 5); ++ mmio_size = pci_resource_len(dev, 5); ++ mmio = ioremap_nocache(mmio_base, mmio_size); ++ if (mmio == NULL) { ++ pci_disable_device(dev); ++ pci_err(dev, "Navi10: cannot iomap device\n"); ++ return 0; ++ } ++ ++ /* check the sign of life indicator */ ++ sol = readl(mmio + mmMP0_SMN_C2PMSG_81); ++ pci_info(dev, "Navi10: SOL 0x%x\n", sol); ++ if (sol == 0 || sol == 0xffffffff) { ++ pci_info(dev, "Navi10: device doesn't need to be reset\n"); ++ goto out; ++ } ++ ++ pci_info(dev, "Navi10: performing BACO reset\n"); ++ ++ /* the SMU might be busy already, wait for it */ ++ for(timeout = 200; timeout && readl(mmio + mmMP1_SMN_C2PMSG_90) != 0; --timeout) ++ msleep(1); ++ readl(mmio + mmMP1_SMN_C2PMSG_90); ++ ++ /* send PPSMC_MSG_ArmD3 */ ++ writel(0x00, mmio + mmMP1_SMN_C2PMSG_90); ++ writel(0x46, mmio + mmMP1_SMN_C2PMSG_66); ++ for(timeout = 200; timeout && readl(mmio + mmMP1_SMN_C2PMSG_90) != 0; --timeout) ++ msleep(1); ++ ++ /* send PPSMC_MSG_EnterBaco with param */ ++ writel(0x00, mmio + mmMP1_SMN_C2PMSG_90); ++ writel(0x00, mmio + mmMP1_SMN_C2PMSG_82); ++ writel(0x18, mmio + mmMP1_SMN_C2PMSG_66); ++ for(timeout = 200; timeout && readl(mmio + mmMP1_SMN_C2PMSG_90) != 0; --timeout) ++ msleep(1); ++ ++ /* wait for the regulators to shutdown */ ++ msleep(400); ++ ++ /* send PPSMC_MSG_ExitBaco */ ++ writel(0x00, mmio + mmMP1_SMN_C2PMSG_90); ++ writel(0x19, mmio + mmMP1_SMN_C2PMSG_66); ++ for(timeout = 200; timeout && readl(mmio + mmMP1_SMN_C2PMSG_90) != 0; --timeout) ++ msleep(1); ++ ++ /* wait for regulators to startup again */ ++ msleep(400); ++ ++out: ++ /* unmap BAR5 */ ++ iounmap(mmio); ++ ++ /* restore the PCI state and command register */ ++ pci_restore_state(dev); ++ pci_write_config_word(dev, PCI_COMMAND, cfg); ++ return 0; ++} ++ + static const struct pci_dev_reset_methods pci_dev_reset_methods[] = { + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82599_SFP_VF, + reset_intel_82599_sfp_virtfn }, +@@ -3836,6 +3927,13 @@ static const struct pci_dev_reset_methods pci_dev_reset_methods[] = { + { PCI_VENDOR_ID_INTEL, 0x0953, delay_250ms_after_flr }, + { PCI_VENDOR_ID_CHELSIO, PCI_ANY_ID, + reset_chelsio_generic_dev }, ++ { PCI_VENDOR_ID_ATI, 0x7310, reset_amd_navi10 }, ++ { PCI_VENDOR_ID_ATI, 0x7312, reset_amd_navi10 }, ++ { PCI_VENDOR_ID_ATI, 0x7318, reset_amd_navi10 }, ++ { PCI_VENDOR_ID_ATI, 0x7319, reset_amd_navi10 }, ++ { PCI_VENDOR_ID_ATI, 0x731a, reset_amd_navi10 }, ++ { PCI_VENDOR_ID_ATI, 0x731b, reset_amd_navi10 }, ++ { PCI_VENDOR_ID_ATI, 0x731f, reset_amd_navi10 }, + { 0 } + }; + +-- +2.20.1 diff --git a/PKGBUILD b/PKGBUILD index db358fc..ec6b0d9 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -13,9 +13,9 @@ _basekernel=5.6 _basever=56 _aufs=20200127 _sub=0 -_rc=rc0 -_commit=f757165705e92db62f85a1ad287e9251d1f2cd82 -_shortcommit=${_rc}.d0208.g${_commit:0:7} +_rc=rc1 +_commit=bb6d3fb354c5ee8d6bde2d576eb7220ea09862b9 +_shortcommit=${_rc}.d0209.g${_commit:0:7} pkgver=${_basekernel}${_shortcommit} #pkgver=${_basekernel}.${_sub} pkgrel=1 @@ -63,7 +63,7 @@ source=(#"https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar. '0011-bootsplash.patch' '0012-bootsplash.patch' '0013-bootsplash.patch') -sha256sums=('02e26b13b0ca9a1764898c888ee0d34135df0552997829d3a4f6956ac60fd607' +sha256sums=('9c871af6e1ad5c1ad861702119917f753d76a2163c5df979d9c07d9a3ecdf103' '81ae5d45904e302b3dfd73a8832368408c4a80fb27753ed224a26bcff24b35e5' 'bfe52746bfc04114627b6f1e0dd94bc05dd94abe8f6dbee770f78d6116e315e8' 'b44d81446d8b53d5637287c30ae3eb64cae0078c3fbc45fcf1081dd6699818b5' @@ -109,42 +109,91 @@ prepare() { #patch -Np1 -i "${srcdir}/prepatch-${_basekernel}.patch" # disable USER_NS for non-root users by default + echo "PATCH: 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER" patch -Np1 -i ../0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch - + echo "-------------------------------------------------------------------------------------------------------" # other fixes by Arch - # add patches for snapd # https://gitlab.com/apparmor/apparmor-kernel/tree/5.2-outoftree + echo "PATCH: 0001-apparmor-patch-to-provide-compatibility-with-v2-net-rules" patch -Np1 -i "${srcdir}/0001-apparmor-patch-to-provide-compatibility-with-v2-net-rules.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0002-apparmor-af_unix-mediation" patch -Np1 -i "${srcdir}/0002-apparmor-af_unix-mediation.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0003-apparmor-fix-use-after-free-in-sk_peer_label" patch -Np1 -i "${srcdir}/0003-apparmor-fix-use-after-free-in-sk_peer_label.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0004-apparmor-fix-apparmor-mediating-locking-non-fs-unix-sockets" patch -Np1 -i "${srcdir}/0004-apparmor-fix-apparmor-mediating-locking-non-fs-unix-sockets.patch" # Add bootsplash - http://lkml.iu.edu/hypermail/linux/kernel/1710.3/01542.html + echo "PATCH: 0001-bootsplash" patch -Np1 -i "${srcdir}/0001-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0002-bootsplash" patch -Np1 -i "${srcdir}/0002-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0003-bootsplash" patch -Np1 -i "${srcdir}/0003-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0004-bootsplash" patch -Np1 -i "${srcdir}/0004-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0005-bootsplash" patch -Np1 -i "${srcdir}/0005-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0006-bootsplash" patch -Np1 -i "${srcdir}/0006-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0007-bootsplash" patch -Np1 -i "${srcdir}/0007-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0008-bootsplash" patch -Np1 -i "${srcdir}/0008-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0009-bootsplash" patch -Np1 -i "${srcdir}/0009-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0010-bootsplash" patch -Np1 -i "${srcdir}/0010-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0011-bootsplash" patch -Np1 -i "${srcdir}/0011-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: 0012-bootsplash" patch -Np1 -i "${srcdir}/0012-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" # use git-apply to add binary files + echo "PATCH: 0013-bootsplash" git apply -p1 < "${srcdir}/0013-bootsplash.patch" + echo "-------------------------------------------------------------------------------------------------------" # add aufs5 support + echo "PATCH: aufs5.x-rcN-$" patch -Np1 -i "${srcdir}/aufs5.x-rcN-${_aufs}.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: aufs5-base" patch -Np1 -i "${srcdir}/aufs5-base.patch" - patch -Np1 -i "${srcdir}/aufs5-kbuild.patch" + echo "-------------------------------------------------------------------------------------------------------" +# echo "PATCH: aufs5-kbuild" +# patch -Np1 -i "${srcdir}/aufs5-kbuild.patch" +# echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: aufs5-loopback" patch -Np1 -i "${srcdir}/aufs5-loopback.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: aufs5.x-rcN-$" patch -Np1 -i "${srcdir}/aufs5-mmap.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: aufs5-standalone" patch -Np1 -i "${srcdir}/aufs5-standalone.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: tmpfs-idr" patch -Np1 -i "${srcdir}/tmpfs-idr.patch" + echo "-------------------------------------------------------------------------------------------------------" + echo "PATCH: vfs-ino" patch -Np1 -i "${srcdir}/vfs-ino.patch" + echo "-------------------------------------------------------------------------------------------------------" if [ "${CARCH}" = "x86_64" ]; then cat "${srcdir}/config.x86_64" > ./.config diff --git a/config.x86_64 b/config.x86_64 index 82f62d4..f6c75e3 100644 --- a/config.x86_64 +++ b/config.x86_64 @@ -9404,6 +9404,8 @@ CONFIG_IPACK_BUS=m CONFIG_BOARD_TPCI200=m CONFIG_SERIAL_IPOCTAL=m CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_BRCMSTB_RESCAL is not set +# CONFIG_RESET_INTEL_GW is not set CONFIG_RESET_TI_SYSCON=m # @@ -9606,6 +9608,7 @@ CONFIG_F2FS_CHECK_FS=y # CONFIG_F2FS_IO_TRACE is not set # CONFIG_F2FS_FAULT_INJECTION is not set # CONFIG_F2FS_FS_COMPRESSION is not set +# CONFIG_ZONEFS_FS is not set CONFIG_FS_DAX=y CONFIG_FS_DAX_PMD=y CONFIG_FS_POSIX_ACL=y @@ -9795,6 +9798,7 @@ CONFIG_EROFS_FS_POSIX_ACL=y CONFIG_EROFS_FS_SECURITY=y CONFIG_EROFS_FS_ZIP=y CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=2 +# CONFIG_VBOXSF_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V2=m -- GitLab