forked from facebook/fboss
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request facebook#60 from adamcalabrigo/meru800bia_udev_upd…
…ates Meru800bia: update udev rules and add platform_init.sh
- Loading branch information
Showing
4 changed files
with
86 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 28 additions & 26 deletions
54
arista/platform/meru800bia/config/udev/99-meru800bia.rules
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,33 @@ | ||
# Initial udev rules for MERU SCM board 7/28/2023. | ||
SUBSYSTEM=="pci", KERNEL=="0000:00:1a.3", ATTR{device}=="0x001a", ATTR{subsystem_vendor}=="0x8086", ATTR{subsystem_device}=="0x0000", RUN{builtin}+="kmod load scd", RUN+="/bin/sh -c 'echo \"8086 18d9\" > /sys/bus/pci/drivers/scd/new_id'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 0", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH0" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 1", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH1" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 2", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH2" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 3", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH3" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 4", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH4" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 5", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH5" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 6", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH6" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 7", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH7" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 0", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH0" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 1", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH1" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 2", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH2" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 3", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH3" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 4", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH4" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 5", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH5" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 6", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH6" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 1 bus 7", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH7" | ||
SUBSYSTEM=="pci", KERNEL=="0000:00:1a.3", ATTR{vendor}=="0x3475", RUN+="/bin/mkdir -p /run/devmap/fpgas", RUN+="/bin/ln -sf %S%p /run/devmap/fpgas/MERU_SCM_CPLD" | ||
SUBSYSTEM=="i2c", ATTRS{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 1", KERNEL=="*-0050", RUN+="/bin/mkdir -p /run/devmap/eeproms", RUN+="/bin/ln -sf %S%p/eeprom /run/devmap/eeproms/MERU_SCM_EEPROM" | ||
# Initial udev rules for MERU SCM board 8/15/2023. | ||
|
||
SUBSYSTEM=="pci", KERNEL=="0000:07:00.0", ATTR{device}=="0x0001", ATTR{subsystem_vendor}=="0x3475", ATTR{subsystem_device}=="0x0008", RUN{builtin}+="kmod load scd", RUN+="/bin/sh -c 'echo \"3475 0001\" > /sys/bus/pci/drivers/scd/new_id'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 0", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH0" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 1", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH1" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 2", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH2" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 3", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH3" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 4", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH4" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 5", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH5" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 6", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH6" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 7", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS0_CH7" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 0", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH0" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 1", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH1" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 2", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH2" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 3", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH3" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 4", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH4" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 5", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH5" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 6", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH6" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 1 bus 7", RUN+="/bin/mkdir -p /run/devmap/i2c-busses", RUN+="/bin/ln -sf /dev/i2c-%n /run/devmap/i2c-busses/CPU_CPLD_SMBUS1_CH7" | ||
SUBSYSTEM=="pci", KERNEL=="0000:07:00.0", ATTR{vendor}=="0x3475", RUN+="/bin/mkdir -p /run/devmap/fpgas", RUN+="/bin/ln -sf %S%p /run/devmap/fpgas/MERU_SCM_CPLD" | ||
SUBSYSTEM=="i2c", ATTRS{name}=="SCD 0000:07:00.0 SMBus master 0 bus 1", KERNEL=="*-0050", RUN+="/bin/mkdir -p /run/devmap/eeproms", RUN+="/bin/ln -sf %S%p/eeprom /run/devmap/eeproms/MERU_SCM_EEPROM" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="coretemp", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_CORE_TEMP" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="nvme", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_NVME_TEMP" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pmbus", DEVPATH=="*/0000:00:1a.3/scd-smbus.0/i2c-*/*-0040/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_MPS_PMBUS" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pxe1610", DEVPATH=="*/0000:00:1a.3/scd-smbus.0/i2c-*/*-003e/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_PXE1211" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pxm1310", DEVPATH=="*/0000:00:1a.3/scd-smbus.0/i2c-*/*-0040/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_PXM1310" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pmbus", DEVPATH=="*/0000:07:00.0/scd-smbus.0/i2c-*/*-0040/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_MPS_PMBUS" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pxm1310", DEVPATH=="*/0000:07:00.0/scd-smbus.0/i2c-*/*-0030/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_PXM1310_1" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pxe1610", DEVPATH=="*/0000:07:00.0/scd-smbus.0/i2c-*/*-003e/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_PXE1211" | ||
SUBSYSTEM=="hwmon", ATTR{name}=="pxm1310", DEVPATH=="*/0000:07:00.0/scd-smbus.0/i2c-*/*-0040/*", RUN+="/bin/mkdir -p /run/devmap/sensors", RUN+="/bin/ln -sf %S/class/hwmon/hwmon%n /run/devmap/sensors/CPU_PXM1310_2" | ||
SUBSYSTEM=="pci", ACTION=="remove", RUN+="/bin/sh -c 'find /run/devmap/fpgas/ -xtype l -delete'" | ||
SUBSYSTEM=="i2c", ACTION=="remove", RUN+="/bin/sh -c 'find /run/devmap/i2c-busses/ -xtype l -delete'", RUN+="/bin/sh -c 'find /run/devmap/eeproms/ -xtype l -delete'" | ||
SUBSYSTEM=="hwmon", ACTION=="remove", RUN+="/bin/sh -c 'find /run/devmap/sensors/ -xtype l -delete'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 0", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0040 || echo pmbus 0x40 > /sys/bus/i2c/devices/i2c-%n/new_device'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 1", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0050 || echo 24c512 0x50 > /sys/bus/i2c/devices/i2c-%n/new_device'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:00:1a.3 SMBus master 0 bus 2", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-003e || echo pxe1610 0x3e > /sys/bus/i2c/devices/i2c-%n/new_device'", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0040 || echo pxm1310 0x40 > /sys/bus/i2c/devices/i2c-%n/new_device'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 0", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0040 || echo pmbus 0x40 > /sys/bus/i2c/devices/i2c-%n/new_device'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 1", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0050 || echo 24c512 0x50 > /sys/bus/i2c/devices/i2c-%n/new_device'" | ||
SUBSYSTEM=="i2c", ATTR{name}=="SCD 0000:07:00.0 SMBus master 0 bus 2", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0030 || echo pxm1310 0x30 > /sys/bus/i2c/devices/i2c-%n/new_device'", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-003e || echo pxe1610 0x3e > /sys/bus/i2c/devices/i2c-%n/new_device'", RUN+="/bin/sh -c 'test -d /sys/bus/i2c/devices/i2c-%n/%n-0040 || echo pxm1310 0x40 > /sys/bus/i2c/devices/i2c-%n/new_device'" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#!/bin/bash | ||
|
||
# Platform init script for Meru800bia. | ||
|
||
set -e | ||
|
||
load_kernel_modules() { | ||
# Load required kernel modules. The udev rules depend on these. | ||
printf "\nLoading kernel modules\n" | ||
kernel="$(uname -r)" | ||
kernel_lib_dir="/lib/modules/${kernel}" | ||
declare -a kmodules=("kernel/drivers/mfd/mfd-core" | ||
"kernel/drivers/leds/led-class" | ||
"scd" | ||
"scd-leds" | ||
"scd-smbus" | ||
"scd-watchdog" | ||
"scd-xcvr" | ||
) | ||
|
||
for mod in "${kmodules[@]}" | ||
do | ||
if $(lsmod | grep "$(basename ${mod//-/_})" >& /dev/null); then | ||
echo "${mod} already installed" | ||
else | ||
echo "Installing ${mod}" | ||
insmod "${kernel_lib_dir}"/"${mod}".ko | ||
fi | ||
done | ||
} | ||
|
||
load_udev_rules() { | ||
printf "\nLoading udev rules\n" | ||
udevadm control -R | ||
udevadm trigger | ||
} | ||
|
||
# Meru800bia init. | ||
load_kernel_modules | ||
load_udev_rules | ||
|
||
# TODO FIXME: if running kernel 5.19, skip setup.py because the BCM kernel | ||
# modules will fail to load. | ||
kernel=$(uname -r) | ||
if [[ "${kernel}" == "5.19.0" ]]; then | ||
touch /tmp/.fboss_skip_setup | ||
depmod -A | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters