diff --git a/packages/bsp/common/usr/lib/armbian/armbian-hardware-optimization b/packages/bsp/common/usr/lib/armbian/armbian-hardware-optimization index a0de890abd0a..7a5cf6b41fdd 100755 --- a/packages/bsp/common/usr/lib/armbian/armbian-hardware-optimization +++ b/packages/bsp/common/usr/lib/armbian/armbian-hardware-optimization @@ -106,13 +106,17 @@ prepare_board() { done fi - # IRQ distribution based on $BOARDFAMILY and/or $BOARD_NAME - case ${BOARD} in - rockpro64 | renegade-elite | pinebook-pro | station-p1) - BOARDFAMILY=rk3399 - ;; - esac - case ${BOARDFAMILY} in + local hw_optimization_family + # IRQ distribution based on $BOARDFAMILY or $BOARD or $BOOT_SOC + if [[ "${BOARD}" == "rockpro64" || "${BOARD}" == "renegade-elite" || "${BOARD}" == "pinebook-pro" || "${BOARD}" == "station-p1" ]]; then + hw_optimization_family="rk3399" + elif [[ "${BOOT_SOC}" == "rk322x" ]]; then + hw_optimization_family="rk322x" + else + hw_optimization_family="${BOARDFAMILY}" + fi + + case ${hw_optimization_family} in cubox | udoo*) # i.MX6 boards: send Ethernet to cpu3, MMC to cpu1/cpu2 (when available) echo 2 > /proc/irq/$(awk -F":" "/mmc0/ {print \$1}" < /proc/interrupts | sed 's/\ //g' | head -1)/smp_affinity 2> /dev/null echo 4 > /proc/irq/$(awk -F":" "/mmc1/ {print \$1}" < /proc/interrupts | sed 's/\ //g' | head -1)/smp_affinity 2> /dev/null @@ -190,11 +194,6 @@ prepare_board() { echo 8 > /proc/irq/$(awk -F":" "/eth0/ {print \$1}" < /proc/interrupts | sed 's/\ //g' | head -n1)/smp_affinity echo 7 > /sys/class/net/eth0/queues/rx-0/rps_cpus - # Mali in 4.4 kernel - for i in $(awk -F':' '/Mali_/{print $1}' /proc/interrupts | sed 's/\ //g'); do - echo 8 > /proc/irq/$i/smp_affinity - done - # Lima in mainline kernel echo 8 > /proc/irq/$(awk -F':' '/gp$/{print $1}' /proc/interrupts | sed 's/\ //g')/smp_affinity echo 8 > /proc/irq/$(awk -F':' '/gpmmu/{print $1}' /proc/interrupts | sed 's/\ //g')/smp_affinity