target/rockchip: rk33xx move net-smp-affinity to board/init.sh
This commit is contained in:
parent
3adec8bfd1
commit
6a16ed4465
@ -1,39 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
[ "$ACTION" = add ] || exit
|
||||
|
||||
get_device_irq() {
|
||||
local device="$1"
|
||||
local line
|
||||
local seconds
|
||||
|
||||
for seconds in $(seq 0 9); do
|
||||
line=$(grep -m 1 "${device}\$" /proc/interrupts) && break
|
||||
sleep 1
|
||||
done
|
||||
echo ${line} | sed 's/:.*//'
|
||||
}
|
||||
|
||||
set_interface_core() {
|
||||
local core_mask="$1"
|
||||
local interface="$2"
|
||||
local device="$3"
|
||||
|
||||
[ -z "${device}" ] && device="$interface"
|
||||
|
||||
local irq=$(get_device_irq "$device")
|
||||
|
||||
echo "${core_mask}" > /proc/irq/${irq}/smp_affinity
|
||||
}
|
||||
|
||||
case "$(board_name)" in
|
||||
friendlyarm,nanopi-r2s)
|
||||
set_interface_core 2 "eth0"
|
||||
set_interface_core 4 "eth1" "xhci-hcd:usb3"
|
||||
;;
|
||||
friendlyarm,nanopi-r4se|\
|
||||
friendlyarm,nanopi-r4s)
|
||||
set_interface_core 10 "eth0"
|
||||
set_interface_core 20 "eth1"
|
||||
;;
|
||||
esac
|
||||
52
target/linux/rockchip/armv8/base-files/lib/board/init.sh
Executable file
52
target/linux/rockchip/armv8/base-files/lib/board/init.sh
Executable file
@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
. /lib/functions.sh
|
||||
|
||||
set_iface_cpumask() {
|
||||
local core_mask="$1"
|
||||
local interface="$2"
|
||||
local device="$3"
|
||||
local irq
|
||||
local seconds
|
||||
|
||||
[ -z "${device}" ] && device="$interface"
|
||||
|
||||
ip link set dev "$interface" up
|
||||
|
||||
for seconds in $(seq 0 2); do
|
||||
irq=$(grep -m1 " ${device}\$" /proc/interrupts | sed -n -e 's/^ *\([^ :]\+\):.*$/\1/p')
|
||||
if [ -n "${irq}" ]; then
|
||||
echo "${core_mask}" > /proc/irq/${irq}/smp_affinity
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
wait_for_iface() {
|
||||
local interface="$1"
|
||||
local seconds
|
||||
for seconds in $(seq 0 2); do
|
||||
[ -e "/sys/class/net/$interface" ] && return 0
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
board_set_iface_smp_affinity() {
|
||||
case $(board_name) in
|
||||
friendlyarm,nanopi-r2s)
|
||||
set_iface_cpumask 2 "eth0"
|
||||
set_iface_cpumask 4 "eth1" "xhci-hcd:usb3"
|
||||
;;
|
||||
friendlyarm,nanopi-r4se|\
|
||||
friendlyarm,nanopi-r4s)
|
||||
set_iface_cpumask 10 "eth0"
|
||||
set_iface_cpumask 20 "eth1"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
board_name | grep -qF 'friendlyarm,nanopi-r' || exit 0
|
||||
|
||||
wait_for_iface eth1
|
||||
|
||||
board_set_iface_smp_affinity
|
||||
@ -2,7 +2,7 @@
|
||||
type 'board_name' >/dev/null 2>/dev/null || . /lib/functions.sh
|
||||
|
||||
export_ota_url() {
|
||||
local board="$(board_name)"
|
||||
local board="$(board_name)"
|
||||
case "$board" in
|
||||
friendlyarm,nanopi-r2s|\
|
||||
friendlyarm,nanopi-r4s|\
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
type 'board_name' >/dev/null 2>/dev/null || . /lib/functions.sh
|
||||
|
||||
export_ota_url() {
|
||||
local board="$(board_name)"
|
||||
local board="$(board_name)"
|
||||
case "$board" in
|
||||
fastrhino,r66s|\
|
||||
fastrhino,r68s)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user