diff --git a/files/image_config/platform/rc.local b/files/image_config/platform/rc.local index 4d0e072a8a..fbbe04ca47 100755 --- a/files/image_config/platform/rc.local +++ b/files/image_config/platform/rc.local @@ -232,10 +232,9 @@ if [ ! -e /host/machine.conf ]; then fi umount /mnt/onie-boot + migrate_nos_configuration fi -migrate_nos_configuration - . /host/machine.conf program_console_speed diff --git a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install index fd891f0f6e..512e052945 100644 --- a/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install +++ b/platform/broadcom/sonic-platform-modules-dell/debian/platform-modules-s6100.install @@ -1,6 +1,6 @@ s6100/scripts/iom_power_*.sh usr/local/bin s6100/scripts/s6100_platform.sh usr/local/bin -s6100/scripts/s6100_i2c_enumeration.sh usr/local/bin +s6100/scripts/s6100_platform_startup.sh usr/local/bin s6100/scripts/s6100_bitbang_reset.sh usr/local/bin s6100/scripts/pcisysfs.py usr/bin common/dell_i2c_utils.sh usr/local/bin @@ -31,7 +31,7 @@ s6100/systemd/s6100-ssd-monitor.service etc/systemd/system s6100/systemd/s6100-ssd-monitor.timer etc/systemd/system s6100/systemd/s6100-ssd-upgrade-status.service etc/systemd/system s6100/systemd/s6100-reboot-cause.service etc/systemd/system -s6100/systemd/s6100-i2c-enumerate.service etc/systemd/system +s6100/systemd/s6100-platform-startup.service etc/systemd/system tools/flashrom/flashrom usr/local/bin/ common/fw-updater usr/local/bin common/onie_mode_set usr/local/bin diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin index e32747c7fe..d8e839e5be 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/fast-reboot_plugin @@ -4,4 +4,4 @@ if [[ -d /sys/devices/platform/SMF.512/hwmon/ ]]; then cd /sys/devices/platform/SMF.512/hwmon/* echo 0xcc > mb_poweron_reason fi -/usr/local/bin/s6100_i2c_enumeration.sh deinit & > /dev/null +/usr/local/bin/s6100_platform_startup.sh deinit & > /dev/null diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh index 39c9074d5f..b5413c10aa 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform.sh @@ -2,27 +2,6 @@ #platform init script for Dell S6100 -install_python_api_package() { - device="/usr/share/sonic/device" - platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) - - rv=$(pip install $device/$platform/sonic_platform-1.0-py2-none-any.whl) - rv=$(pip3 install $device/$platform/sonic_platform-1.0-py3-none-any.whl) -} - -remove_python_api_package() { - rv=$(pip show sonic-platform > /dev/null 2>/dev/null) - if [ $? -eq 0 ]; then - rv=$(pip uninstall -y sonic-platform > /dev/null 2>/dev/null) - fi - - rv=$(pip3 show sonic-platform > /dev/null 2>/dev/null) - if [ $? -eq 0 ]; then - rv=$(pip3 uninstall -y sonic-platform > /dev/null 2>/dev/null) - fi -} - - if [[ "$1" == "init" ]]; then pericom="/sys/bus/pci/devices/0000:08:00.0" @@ -45,19 +24,32 @@ if [[ "$1" == "init" ]]; then systemctl start --no-block s6100-ssd-upgrade-status.service - is_fast_warm=$(cat /proc/cmdline | grep SONIC_BOOT_TYPE | wc -l) + case "$(cat /proc/cmdline)" in + *SONIC_BOOT_TYPE=warm*) + TYPE='warm' + ;; + *SONIC_BOOT_TYPE=fastfast*) + TYPE='fastfast' + ;; + *SONIC_BOOT_TYPE=fast*|*fast-reboot*) + TYPE='fast' + ;; + *SONIC_BOOT_TYPE=soft*) + TYPE='soft' + ;; + *) + TYPE='cold' + esac - if [[ "$is_fast_warm" == "1" ]]; then - systemctl start --no-block s6100-i2c-enumerate.service + if [[ "$TYPE" == "cold" ]]; then + systemctl start s6100-platform-startup.service else - systemctl start s6100-i2c-enumerate.service + systemctl start --no-block s6100-platform-startup.service fi - install_python_api_package - monit reload elif [[ "$1" == "deinit" ]]; then - /usr/local/bin/s6100_i2c_enumeration.sh deinit + /usr/local/bin/s6100_platform_startup.sh deinit modprobe -r dell_s6100_lpc modprobe -r dell_s6100_iom_cpld @@ -65,7 +57,6 @@ elif [[ "$1" == "deinit" ]]; then modprobe -r i2c-dev modprobe -r dell_ich modprobe -r nvram - remove_python_api_package else echo "s6100_platform : Invalid option !" fi diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_i2c_enumeration.sh b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform_startup.sh similarity index 94% rename from platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_i2c_enumeration.sh rename to platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform_startup.sh index d00fec233e..a95771bf82 100755 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_i2c_enumeration.sh +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/scripts/s6100_platform_startup.sh @@ -1,9 +1,24 @@ #!/bin/bash -### DellEMC S6100 I2C MUX Enumeration script +### DellEMC S6100 Platform Startup script source dell_i2c_utils.sh +install_python_api_package() { + device="/usr/share/sonic/device" + platform=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform) + + rv=$(pip3 install $device/$platform/sonic_platform-1.0-py3-none-any.whl) +} + +remove_python_api_package() { + + rv=$(pip3 show sonic-platform > /dev/null 2>/dev/null) + if [ $? -eq 0 ]; then + rv=$(pip3 uninstall -y sonic-platform > /dev/null 2>/dev/null) + fi +} + init_devnum() { found=0 for devnum in 0 1; do @@ -292,6 +307,9 @@ if [[ "$1" == "init" ]]; then switch_board_qsfp_lpmode "disable" /usr/local/bin/s6100_bitbang_reset.sh xcvr_presence_interrupts "enable" + + install_python_api_package + monit reload elif [[ "$1" == "deinit" ]]; then xcvr_presence_interrupts "disable" switch_board_sfp "delete_device" @@ -302,4 +320,6 @@ elif [[ "$1" == "deinit" ]]; then switch_board_qsfp "delete_device" switch_board_qsfp_mux "delete_device" cpu_board_mux "delete_device" + + remove_python_api_package fi diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/systemd/s6100-i2c-enumerate.service b/platform/broadcom/sonic-platform-modules-dell/s6100/systemd/s6100-i2c-enumerate.service deleted file mode 100644 index c634828319..0000000000 --- a/platform/broadcom/sonic-platform-modules-dell/s6100/systemd/s6100-i2c-enumerate.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Dell S6100 I2C MUX Enumeration -Before=pmon.service -DefaultDependencies=no - -[Service] -Type=oneshot -ExecStart=/usr/local/bin/s6100_i2c_enumeration.sh init -RemainAfterExit=no - -[Install] -WantedBy=multi-user.target diff --git a/platform/broadcom/sonic-platform-modules-dell/s6100/systemd/s6100-platform-startup.service b/platform/broadcom/sonic-platform-modules-dell/s6100/systemd/s6100-platform-startup.service new file mode 100644 index 0000000000..d7a40f4303 --- /dev/null +++ b/platform/broadcom/sonic-platform-modules-dell/s6100/systemd/s6100-platform-startup.service @@ -0,0 +1,12 @@ +[Unit] +Description=Dell S6100 Platform Startup Service +Before=pmon.service determine-reboot-cause.service +DefaultDependencies=no + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/s6100_platform_startup.sh init +RemainAfterExit=no + +[Install] +WantedBy=multi-user.target