213 lines
4.9 KiB
Plaintext
213 lines
4.9 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
### BEGIN INIT INFO
|
||
|
# Provides: setup-board
|
||
|
# Required-Start:
|
||
|
# Required-Stop:
|
||
|
# Should-Start:
|
||
|
# Should-Stop:
|
||
|
# Default-Start: S
|
||
|
# Default-Stop: 0 6
|
||
|
# Short-Description: Setup Netberg Aurora 610 board.
|
||
|
### END INIT INFO
|
||
|
|
||
|
case "$1" in
|
||
|
start)
|
||
|
echo "Setting up board... " >> /dev/kmsg
|
||
|
INIT_ERROR="FALSE"
|
||
|
|
||
|
depmod -a
|
||
|
|
||
|
# Insert modules by order
|
||
|
rmmod lpc_ich
|
||
|
rmmod gpio_ich
|
||
|
|
||
|
modprobe gpio_ich gpiobase=0
|
||
|
modprobe lpc_ich
|
||
|
modprobe i2c-gpio
|
||
|
modprobe i2c-mux-pca954x
|
||
|
modprobe i2c-dev
|
||
|
modprobe net_platform
|
||
|
modprobe net_psoc
|
||
|
modprobe net_cpld
|
||
|
modprobe optoe
|
||
|
|
||
|
# wait net_platform init complete
|
||
|
# wait hwmon0 (coretemp) load complete to make sure psoc and cpld
|
||
|
PLATFORM_WAITING_COUNT=0
|
||
|
while [ $PLATFORM_WAITING_COUNT -le 10 ]
|
||
|
do
|
||
|
if [ -d /sys/bus/i2c/devices/i2c-0/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-2/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-3/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-4/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-5/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-6/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-7/ ] &&
|
||
|
[ -d /sys/bus/i2c/devices/i2c-8/ ] &&
|
||
|
[ -d /sys/class/hwmon/hwmon0/ ]
|
||
|
then
|
||
|
break
|
||
|
else
|
||
|
#200ms for each step
|
||
|
sleep 0.2
|
||
|
let "PLATFORM_WAITING_COUNT++"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-0/" ]
|
||
|
then
|
||
|
echo net_cpld 0x77 > /sys/bus/i2c/devices/i2c-0/new_device
|
||
|
else
|
||
|
echo "i2c-0 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
# IPMI support
|
||
|
modprobe ipmi_devintf
|
||
|
|
||
|
# Attach 48 instances of EEPROM driver SFP ports on IO module
|
||
|
#eeprom can dump data using below command
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-2/" ]
|
||
|
then
|
||
|
for ((i=10;i<=17;i++));
|
||
|
do
|
||
|
echo optoe2 0x50 > /sys/bus/i2c/devices/i2c-2/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-2 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-3/" ]
|
||
|
then
|
||
|
for ((i=18;i<=25;i++));
|
||
|
do
|
||
|
echo optoe2 0x50 > /sys/bus/i2c/devices/i2c-3/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-3 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-4/" ]
|
||
|
then
|
||
|
for ((i=26;i<=33;i++));
|
||
|
do
|
||
|
echo optoe2 0x50 > /sys/bus/i2c/devices/i2c-4/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-4 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-5/" ]
|
||
|
then
|
||
|
for ((i=34;i<=41;i++));
|
||
|
do
|
||
|
echo optoe2 0x50 > /sys/bus/i2c/devices/i2c-5/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-5 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-6/" ]
|
||
|
then
|
||
|
for ((i=42;i<=49;i++));
|
||
|
do
|
||
|
echo optoe2 0x50 > /sys/bus/i2c/devices/i2c-6/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-6 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-7/" ]
|
||
|
then
|
||
|
for ((i=50;i<=57;i++));
|
||
|
do
|
||
|
echo optoe2 0x50 > /sys/bus/i2c/devices/i2c-7/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-7 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
|
||
|
# Attach 6 instances of EEPROM driver QSFP ports on IO module
|
||
|
#eeprom can dump data using below command
|
||
|
if [ -d "/sys/bus/i2c/devices/i2c-8/" ]
|
||
|
then
|
||
|
for ((i=58;i<=65;i++));
|
||
|
do
|
||
|
echo optoe1 0x50 > /sys/bus/i2c/devices/i2c-8/i2c-$i/new_device
|
||
|
done
|
||
|
else
|
||
|
echo "i2c-8 error" >> /dev/kmsg
|
||
|
INIT_ERROR="TRUE"
|
||
|
fi
|
||
|
|
||
|
if [ $INIT_ERROR != "TRUE" ]
|
||
|
then
|
||
|
case "$(cat /proc/cmdline)" in
|
||
|
*fast-reboot*)
|
||
|
modprobe swps io_no_init=1
|
||
|
;;
|
||
|
# warm-reboot will be set to fastfast in barefoot
|
||
|
*fastfast*)
|
||
|
modprobe swps io_no_init=1
|
||
|
;;
|
||
|
*)
|
||
|
modprobe swps
|
||
|
;;
|
||
|
esac
|
||
|
modprobe at24
|
||
|
echo 24c64 0x53 > /sys/bus/i2c/devices/i2c-0/new_device
|
||
|
else
|
||
|
echo " AS: nba610 init fail" >> /dev/kmsg
|
||
|
fi
|
||
|
|
||
|
# Setting ARP garbage collection threshold values
|
||
|
echo "Setting IPv4 Neighbor GC threshold values."
|
||
|
sysctl -w net.ipv4.neigh.default.gc_thresh1=16384
|
||
|
sysctl -w net.ipv4.neigh.default.gc_thresh2=32768
|
||
|
sysctl -w net.ipv4.neigh.default.gc_thresh3=32768
|
||
|
|
||
|
echo "done."
|
||
|
;;
|
||
|
|
||
|
stop)
|
||
|
exit 0
|
||
|
# remove modules by order
|
||
|
rmmod at24
|
||
|
rmmod swps
|
||
|
# rmmod optoe
|
||
|
rmmod net_cpld
|
||
|
rmmod net_psoc
|
||
|
rmmod net_platform
|
||
|
rmmod i2c-dev
|
||
|
rmmod i2c-mux-pca954x
|
||
|
rmmod i2c-gpio
|
||
|
rmmod lpc_ich
|
||
|
rmmod gpio_ich
|
||
|
|
||
|
echo "done."
|
||
|
;;
|
||
|
|
||
|
|
||
|
force-reload|restart)
|
||
|
echo "Not supported"
|
||
|
;;
|
||
|
|
||
|
*)
|
||
|
echo "Usage: /etc/init.d/sonic-platform-netberg-aurora-610.init {start|stop}"
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
exit 0
|
||
|
|