140576ddbb
Why I did it To monitor the SSD health condition in DellEMC S6100 platform post upgrade. A daemon is introduced to monitor the SSD every one hour. To check for SSD status at boot time and at the time of cold-reboot. All these changes are supported only for newer SSD firmware. Added a platform_reboot_pre_check script to prevent cold-reboot based on SSD status. Depends on Azure/sonic-utilities#1472 DO NOT MERGE UNTIL ABOVE PR IS MERGED |
||
---|---|---|
.. | ||
fast-reboot_plugin | ||
iom_power_off.sh | ||
iom_power_on.sh | ||
iSMART_64 | ||
override.conf | ||
pcisysfs.py | ||
platform_reboot_override | ||
platform_reboot_pre_check | ||
platform_sensors.py | ||
platform_watchdog_disable.sh | ||
platform_watchdog_enable.sh | ||
README | ||
s6100_bitbang_reset.sh | ||
s6100_i2c_enumeration.sh | ||
s6100_platform.sh | ||
s6100_ssd_mon.sh | ||
s6100_ssd_upgrade_status.sh | ||
sensors | ||
track_reboot_reason.sh | ||
warm-reboot_plugin |
Dell S6100 64x40G support ------------------------ summary:- S6100 has 64 x 40G port capacity S6100 supports 4 IO Modules which are pluggable. Below section covers how to power on IO modules and initialize the device drivers and configure necessary mux to send traffic. Necessary drivers and scripts to package 1) Users are expected to build necessary drivers for kernel and package to acess it on the target a) Mgmt phy driver This supports BCM 54616 phy driver ( enable CONFIG_IGB in kernel config) b) driver-support-sff-8436-eeprom.patch c) driver-support-sff-8436-eeprom-update.patch This driver supports QSFP EEPROM d) dell_s6100_iom_cpld.ko This driver provides support for cpld on 4 x 40Gig-IOM modules e) i2c_mux_pca954x.ko This driver provides support for i2c mux/switch (pca954x) f) dell_s6100_lpc.ko This driver porivide support for reading all the platform info from SMF. 2) Users are also expected to package below scripts for platform initialization and i2c tree creation a) iom_power.sh This script is used to power on IO modules on S6100 b) io_rd_wr.py This script is generic LPC/io read/write utility (can also access system cpld) steps to platform initialization (Tested with 3.16) 1) After power up of S6100 a) power up the io modules by executing (./iom_power.sh) b) insert i2c_mux_pca954x.ko,dell_s6100_iom_cpld.ko,dell_s6100_lpc.ko Above 2 steps can be called by including them in below 2 step 2) Build i2c device tree/device initialization by calling below script ./s6100_platform_init.sh 3) IOM cpld devices are created under "/sys/bus/i2c/drivers/dell_s6100_iom_cpld/" QSFP handles via sysfs i2c bus #( 15,16,17,18-003e) iom_cpld_vers -- Displays CPLD version(RO) qsfp_lpmode -- lpmode settings(RW) qsfp_modprs -- modules presence (RO) qsfp_reset -- reset settings (RW) ls /sys/bus/i2c/drivers/dell_s6100_iom_cpld/15-003e/ driver/ iom_cpld_vers modalias name power/ qsfp_lpmode qsfp_modprs qsfp_reset subsystem/ uevent 4) step 2 script also builds/attach sfp device tress in sysfs Example for reading EEPROM data cat /sys/bus/i2c/devices/19-0050/eeprom | hexdump -C 00000000 0d 00 00 0f 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 18 1b 00 00 82 20 00 00 00 00 |........... ....| 00000020 00 00 00 00 00 00 00 00 00 00 16 4d 16 4d 16 4d |...........M.M.M| 00000030 16 4d 34 bf 44 bf 54 bf 64 bf 00 00 00 00 00 00 |.M4.D.T.d.......| 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000070 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 |................| 00000080 0d 00 0c 04 00 00 00 40 40 02 d5 05 69 00 00 32 |.......@@...i..2| 00000090 00 00 00 00 46 49 4e 49 53 41 52 20 43 4f 52 50 |....FINISAR CORP| 000000a0 20 20 20 20 07 00 90 65 46 54 4c 34 31 30 51 45 | ...eFTL410QE| 000000b0 31 43 20 20 20 20 20 20 41 33 42 68 07 d0 46 70 |1C A3Bh..Fp| 000000c0 00 01 04 d0 4d 4c 54 30 30 51 33 20 20 20 20 20 |....MLT00Q3 | 000000d0 20 20 20 20 31 32 30 31 31 35 20 20 08 00 00 38 | 120115 ...8| 000000e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000000f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000200 4b 00 fb 00 46 00 00 00 00 00 00 00 00 00 00 00 |K...F...........| 00000210 94 70 6e f0 86 c4 7b 0c 00 00 00 00 00 00 00 00 |.pn...{.........| 00000220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000260 00 00 11 11 00 00 00 00 00 00 00 00 00 00 22 22 |..............""| 00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000280 5)SMF driver details/Readme are as below S6100 SMF --------- S6100 has one SMF soc on CPU board. This is via LPC interface, provide access to all the below functionality a) Read sensors details on the system b) Read PSU details on the system c) Read fans/Fan tray details on the system d) Read/Write to system led dell_s6100_lpc create entry for all the above necessary platform components as attributes in below path. /sys/devices/platform/dell_s6100_lpc/ LED:- ---- Get /set operations on sys_led Get operation cat /sys/devices/platform/dell_s6100_lpc/sys_led 0x80 Set operation echo 83 > sys/devices/platform/dell_s6100_lpc/sys_led Sensors:- -------- Max no of sensors on the system ( 11 sensors are available on fully loaded system) cat /sys/devices/platform/dell_s6100_lpc/max_num_temp_sensors b cat /sys/devices/platform/dell_s6100_lpc/temp_sensor_1 ( temp_sensor_1 <85>.temp_sensor_11) Fan tray speed:- -------------- /sys/devices/platform/dell_s6100_lpc/fan_tray_1_speed (fan_tray_1_speed - fan_tray_4_speed) 13700 cat /sys/devices/platform/dell_s6100_lpc/psu1_max_pwr 110 cat /sys/devices/platform/dell_s6100_lpc/psu2_max_pwr 110 cat /sys/devices/platform/dell_s6100_lpc/psu_total_pwr 232