diff --git a/scripts/armhwinfo b/scripts/armhwinfo index 6070b459c7..a3bb46b99a 100644 --- a/scripts/armhwinfo +++ b/scripts/armhwinfo @@ -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/irq/$(awk -F":" "/ethernet/ {print \$1}" /dev/null + echo 4 >/proc/irq/$(awk -F":" "/mmc1/ {print \$1}" /dev/null + echo 8 >/proc/irq/$(awk -F":" "/mmc0/ {print \$1}" /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/irq/$(awk -F":" "/usb2/ {print \$1}" /dev/null echo 4 >/proc/irq/$(awk -F":" "/usb3/ {print \$1}" /dev/null @@ -206,8 +204,7 @@ prepare_board() { echo 8 >/proc/irq/$(awk -F":" "/ethernet_mac/ {print \$1}" /proc/irq/$(awk -F":" "/sdcard/ {print \$1}" /proc/irq/$i/smp_affinity done @@ -220,8 +217,7 @@ prepare_board() { done echo 3 >/proc/irq/$(awk -F":" "/usb1/ {print \$1}" /proc/irq/$(awk -F":" "/usb2/ {print \$1}" /proc/irq/$(awk -F":" "/usb3/ {print \$1}" /proc/irq/$(awk -F":" "/usb5/ {print \$1}" /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/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}' /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