mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Added IRQ redistribution for BPi M2 / sun6i
Changed i.MX6 settings to not rely on any variables, slightly improving IRQ distribution on multi core CPUs and to fail silently if board has less CPU cores.
This commit is contained in:
@@ -191,14 +191,12 @@ prepare_board() {
|
||||
|
||||
# IRQ distribution based on $HARDWARE and/or $ID, probably some sort of user feedback (leds)
|
||||
case ${HARDWARE} in
|
||||
Freescale)
|
||||
# i.MX6 boards
|
||||
if [ $CORES -gt 1 ]; then
|
||||
echo 2 >/proc/irq/$(awk -F":" "/ethernet/ {print \$1}" </proc/interrupts | sed 's/\ //g' | head -1)/smp_affinity
|
||||
fi
|
||||
Freescale) # i.MX6 boards, send Ethernet to cpu1, MMC to cpu2/cpu3 (when available)
|
||||
echo 2 >/proc/irq/$(awk -F":" "/ethernet/ {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
|
||||
echo 8 >/proc/irq/$(awk -F":" "/mmc0/ {print \$1}" </proc/interrupts | sed 's/\ //g' | head -1)/smp_affinity 2>/dev/null
|
||||
;;
|
||||
gs705a)
|
||||
# Roseapple Pi/LeMaker Guitar: send USB IRQs to cpu1/cpu2, DMA0 to cpu2 and Ethernet + SD card to cpu3
|
||||
gs705a) # Roseapple Pi/LeMaker Guitar: send USB IRQs to cpu1/cpu2, DMA0 to cpu2 and Ethernet + SD card to cpu3
|
||||
echo 2 >/proc/irq/$(awk -F":" "/usb1/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
echo 4 >/proc/irq/$(awk -F":" "/usb2/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity 2>/dev/null
|
||||
echo 4 >/proc/irq/$(awk -F":" "/usb3/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity 2>/dev/null
|
||||
@@ -206,8 +204,7 @@ prepare_board() {
|
||||
echo 8 >/proc/irq/$(awk -F":" "/ethernet_mac/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
echo 8 >/proc/irq/$(awk -F":" "/sdcard/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
;;
|
||||
Marvell)
|
||||
# Clearfog: Send network IRQs to cpu1 on both kernels
|
||||
Marvell) # Clearfog: Send network IRQs to cpu1 on both kernels
|
||||
for i in $(awk -F':' '/mwlwifi|mvneta|eth0/{print $1}' /proc/interrupts); do
|
||||
echo 2 >/proc/irq/$i/smp_affinity
|
||||
done
|
||||
@@ -220,8 +217,7 @@ prepare_board() {
|
||||
done
|
||||
echo 3 >/proc/irq/$(awk -F":" "/usb1/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity_list
|
||||
;;
|
||||
ODROID-XU3)
|
||||
# ODROID XU4
|
||||
ODROID-XU3) # ODROID XU4
|
||||
echo 2 >/proc/irq/$(awk -F":" "/usb2/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
echo 4 >/proc/irq/$(awk -F":" "/usb3/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
echo 8 >/proc/irq/$(awk -F":" "/usb5/ {print \$1}" </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
@@ -231,19 +227,22 @@ prepare_board() {
|
||||
echo 64 >/proc/irq/$i/smp_affinity
|
||||
done
|
||||
;;
|
||||
sun4i|sun5i)
|
||||
# only one core, nothing to do
|
||||
sun4i|sun5i) # only one core, nothing to improve
|
||||
:
|
||||
;;
|
||||
sun6i)
|
||||
# A31/A31s boards (Banana Pi M2)
|
||||
:
|
||||
sun6i) # Banana Pi M2: process eth0 on cpu1, SDIO on cpu2, USB on cpu3
|
||||
echo 2 >/proc/irq/$(awk -F":" '/eth0/ {print $1}' </proc/interrupts | sed 's/\ //g')/smp_affinity
|
||||
for i in $(awk -F':' '/sunxi-mmc/{print $1}' /proc/interrupts); do
|
||||
echo 4 >/proc/irq/$i/smp_affinity
|
||||
done
|
||||
for i in $(awk -F':' '/hcd:usb/{print $1}' /proc/interrupts); do
|
||||
echo 8 >/proc/irq/$i/smp_affinity
|
||||
done
|
||||
;;
|
||||
sun7i)
|
||||
# try to redistribute eth0 irq to dedicated core
|
||||
sun7i) # try to redistribute eth0 irq to dedicated core
|
||||
echo 2 >/proc/irq/$(awk -F":" '/eth0/ {print $1}' </proc/interrupts | sed 's/\ //g')/smp_affinity 2>/dev/null
|
||||
;;
|
||||
sun8i)
|
||||
sun8i) # H3 boards, try to do the best based on specific board since interfaces vary a lot
|
||||
# 10 or 120 sec user feedback that the board is ready after 1st login with 3.4 kernel
|
||||
SwapState="$(grep swap /etc/fstab)"
|
||||
if [ "X${SwapState}" != "X" ]; then
|
||||
|
||||
Reference in New Issue
Block a user