Backport 2 riscv64 specific patches from upstream

1. Add riscv_hwprobe to allow list.
2. DTB install.

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2023-09-14 10:09:46 +03:00
parent f3f03b5e3c
commit 8c37d676c7
Signed by: davidlt
GPG Key ID: 8B7F1DA0E2C9FDBB
3 changed files with 99 additions and 0 deletions

View File

@ -0,0 +1,73 @@
From 2bca841137833edeaf3779542d6475f0dc3aa5a7 Mon Sep 17 00:00:00 2001
From: Emil Renner Berthing <systemd@esmil.dk>
Date: Sat, 29 Jul 2023 22:26:54 +0200
Subject: [PATCH] 90-loaderentry: support installing device trees
Like the cmdline file we look for a devicetree file in
$KERNEL_INSTALL_CONF_ROOT, /etc/kernel and /usr/lib/kernel. If it is
present we look for the specified device tree that comes with the kernel
we're adding and install it into $ENTRY_DIR_ABS and add a devicetree
stanza to the loader entry.
Unfortunately it seems there is no common consensus on where to install
device tree blobs, so we have to look in a few different places for it.
---
src/kernel-install/90-loaderentry.install.in | 38 ++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/src/kernel-install/90-loaderentry.install.in b/src/kernel-install/90-loaderentry.install.in
index bc4cad9e6f61f..dc7c371e5a195 100755
--- a/src/kernel-install/90-loaderentry.install.in
+++ b/src/kernel-install/90-loaderentry.install.in
@@ -115,6 +115,43 @@ install -m 0644 "$KERNEL_IMAGE" "$KERNEL_DEST" || {
}
chown root:root "$KERNEL_DEST" || :
+if [ -n "$KERNEL_INSTALL_CONF_ROOT" ]; then
+ if [ -f "$KERNEL_INSTALL_CONF_ROOT/devicetree" ]; then
+ read -r DEVICETREE <"$KERNEL_INSTALL_CONF_ROOT/devicetree"
+ fi
+elif [ -f /etc/kernel/devicetree ]; then
+ read -r DEVICETREE </etc/kernel/devicetree
+elif [ -f /usr/lib/kernel/devicetree ]; then
+ read -r DEVICETREE </usr/lib/kernel/devicetree
+fi
+if [ -n "$DEVICETREE" ]; then
+ for prefix in \
+ "/boot/dtb-$KERNEL_VERSION" \
+ "/boot/dtbs/$KERNEL_VERSION" \
+ "/lib/firmware/$KERNEL_VERSION/device-tree" \
+ "/lib/linux-image-$KERNEL_VERSION" \
+ "/lib/modules/$KERNEL_VERSION/dtb"
+ do
+ [ -f "$prefix/$DEVICETREE" ] || continue
+ DEVICETREE_SRC="$prefix/$DEVICETREE"
+ break
+ done
+
+ [ -n "$DEVICETREE_SRC" ] || {
+ echo "Error: could not find device tree blob '$DEVICETREE'." >&2
+ exit 1
+ }
+
+ DEVICETREE_DEST="$ENTRY_DIR_ABS/${DEVICETREE##*/}"
+ DEVICETREE_ENTRY="$ENTRY_DIR/${DEVICETREE##*/}"
+
+ install -m 0644 "$DEVICETREE_SRC" "$DEVICETREE_DEST" || {
+ echo "Error: could not copy '$DEVICETREE_SRC' to '$DEVICETREE_DEST'." >&2
+ exit 1
+ }
+ chown root:root "$DEVICETREE_DEST" || :
+fi
+
shift "$INITRD_OPTIONS_SHIFT"
# All files listed as arguments, and staged files starting with "initrd" are installed as initrds.
for initrd in "${KERNEL_INSTALL_STAGING_AREA}"/microcode* "${@}" "${KERNEL_INSTALL_STAGING_AREA}"/initrd*; do
@@ -154,6 +191,7 @@ mkdir -p "${LOADER_ENTRY%/*}" || {
[ -n "$SORT_KEY" ] && echo "sort-key $SORT_KEY"
echo "options $BOOT_OPTIONS"
echo "linux $KERNEL_ENTRY"
+ [ -n "$DEVICETREE_ENTRY" ] && echo "devicetree $DEVICETREE_ENTRY"
have_initrd=
for initrd in "${KERNEL_INSTALL_STAGING_AREA}"/microcode* "${@}" "${KERNEL_INSTALL_STAGING_AREA}"/initrd*; do

View File

@ -0,0 +1,23 @@
From ca15fc4820ad1ef2d54c695699de949974dc5bbc Mon Sep 17 00:00:00 2001
From: Xeonacid <h.dwwwwww@gmail.com>
Date: Sat, 8 Jul 2023 20:56:47 +0800
Subject: [PATCH] seccomp: add riscv_hwprobe to @default
This syscall is for probing hardware capabilities from userspace and should do no harm.
Added in https://github.com/torvalds/linux/commit/ea3de9ce8aa280c5175c835bd3e94a3a9b814b74
---
src/shared/seccomp-util.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/shared/seccomp-util.c b/src/shared/seccomp-util.c
index 4eae96e69a644..ed3119d14e697 100644
--- a/src/shared/seccomp-util.c
+++ b/src/shared/seccomp-util.c
@@ -358,6 +358,7 @@ const SyscallFilterSet syscall_filter_sets[_SYSCALL_FILTER_SET_MAX] = {
"prlimit64\0"
"restart_syscall\0"
"riscv_flush_icache\0"
+ "riscv_hwprobe\0"
"rseq\0"
"rt_sigreturn\0"
"sched_getaffinity\0"

View File

@ -103,6 +103,9 @@ GIT_DIR=../../src/systemd/.git git diffab -M v233..master@{2017-06-15} -- hwdb/[
Patch0001: https://github.com/systemd/systemd/pull/26494.patch
Patch0010: https://github.com/systemd/systemd/commit/2bca841137833edeaf3779542d6475f0dc3aa5a7.patch
Patch0011: https://github.com/systemd/systemd/commit/ca15fc4820ad1ef2d54c695699de949974dc5bbc.patch
# Those are downstream-only patches, but we don't want them in packit builds:
# https://bugzilla.redhat.com/show_bug.cgi?id=1738828
Patch0490: use-bfq-scheduler.patch