target_linux_rockchip-6.x/armv8/base-files/etc/init.d/nvme-smp-affinity
sbwml 58a2564f33 rockchip: add nvme SMP IRQ for nanopi-r5s
Signed-off-by: sbwml <admin@cooluc.com>
2024-04-15 10:09:46 +08:00

43 lines
766 B
Bash
Executable File

#!/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
}