rockchip: add nvme SMP IRQ for nanopi-r5s

Signed-off-by: sbwml <admin@cooluc.com>
This commit is contained in:
sbwml 2024-04-15 07:25:40 +08:00
parent 86372ddaa1
commit 58a2564f33
2 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,42 @@
#!/bin/sh /etc/rc.common
START=00
STOP=90
get_device_irq() {
local device="$1"
local line
local seconds="0"
while [ "${seconds}" -le 10 ]; do
line=$(grep -m 1 "${device}\$" /proc/interrupts) && break
seconds="$(( seconds + 2 ))"
sleep 2
done
echo ${line} | sed 's/:.*//'
}
set_smp_affinity() {
local core_mask="$1"
local interface="$2"
[ -z "$interface" ] && return 0
local irq=$(get_device_irq "$interface")
echo "${core_mask}" > /proc/irq/${irq}/smp_affinity
}
boot() {
. /lib/functions/uci-defaults.sh
case "$(board_name)" in
friendlyarm,nanopi-r5s)
set_smp_affinity "1" "nvme0q0"
set_smp_affinity "2" "nvme0q1"
set_smp_affinity "1" "nvme0q2"
set_smp_affinity "1" "nvme0q3"
set_smp_affinity "2" "nvme0q4"
;;
esac
}

View File

@ -0,0 +1 @@
../init.d/nvme-smp-affinity