From 6bf46065b8519fccfcf0a9885441573af9c213ce Mon Sep 17 00:00:00 2001 From: Ciju Rajan K Date: Mon, 28 Sep 2020 09:57:38 +0530 Subject: [PATCH] [Juniper] Updating platform documentation This patch set updates the documentation for QFX5200 & QFX5210 Juniper switching platforms. Signed-off-by: Ciju Rajan K --- .../sonic-platform-modules-juniper/README.md | 78 +++++++----- .../qfx5200/utils/README | 119 +++++++++++------- 2 files changed, 123 insertions(+), 74 deletions(-) diff --git a/platform/broadcom/sonic-platform-modules-juniper/README.md b/platform/broadcom/sonic-platform-modules-juniper/README.md index 2b43eee68271..3a661cef8eeb 100644 --- a/platform/broadcom/sonic-platform-modules-juniper/README.md +++ b/platform/broadcom/sonic-platform-modules-juniper/README.md @@ -1,30 +1,27 @@ -Juniper Networks Platform Support for SONiC Readme -================================================== +Juniper Networks Platform Support for SONiC +=========================================== -This readme provides information on how to install and upgrade ONIE and SONiC images on the Juniper Networks QFX5210-64C-S switch. +This readme provides information on how to install and upgrade ONIE and SONiC images on the Juniper Networks switches. -Note: The QFX5210-64C-S switch ships with ONIE and SONiC images preinstalled. - -## Purpose - -This package contains kernel drivers, a python library, and a python script to provide platform support for Juniper Networks QFX5210-64C-S switch. +Note: Switches ship with ONIE and SONiC images preinstalled. ## Supported platforms -The following Juniper Networks platform is supported for the SONiC operating system: +The following Juniper Networks platforms are supported for the SONiC operating system: - QFX5210-64C-S + - QFX5200-32C-S -## Installing ONIE on QFX5210-64C-S Switch - -The following information describes how to install ONIE on the Juniper Networks QFX5210-64C-S switch. +## Building and Installing ONIE -To install ONIE on Juniper Networks QFX5210-64C-S switch, you need to: +ONIE is the bootloader used and it's a prerequisite to install ONIE on the switches before installing SONiC. 1. Cross compile ONIE -To compile ONIE, you need to change the directories to "build-config" and then type "make MACHINEROOT=../machine/juniper MACHINE=juniper_qfx5210 all". +To compile ONIE, you need to change the directories to "build-config" and then based on the platform issue the following commands + +a) For QFX5210-64C-S platform, invoke "make MACHINEROOT=../machine/juniper MACHINE=juniper_qfx5210 all". For example: @@ -33,6 +30,8 @@ For example: $ make -j4 MACHINEROOT=../machine/juniper MACHINE=juniper_qfx5210 all ``` +b) For QFX5200-32C-S platform, invoke "make MACHINEROOT=../machine/juniper MACHINE=juniper_qfx5200 all". + ONIE binaries are located at the directory /build/images. The following command shows how to navigate the directory to view the ONIE binaries: ``` @@ -50,6 +49,8 @@ total 40740 Note: Use the following command to build a demo target: +For example: + ``` $ make -j4 MACHINEROOT=../machine/juniper MACHINE=juniper_qfx5210 all demo ``` @@ -65,20 +66,22 @@ You can install these binary files by using the 'onie-nos-install' command to te Use the following command for make clean: +For example: + ``` $ make machine-clean MACHINEROOT=../machine/juniper MACHINE=juniper_qfx5210 ``` -## Installing ONIE on a New QFX5210-64C-S Switch +## Installing ONIE -The following information describes on how to install ONIE on the Juniper Networks QFX5210-64C-S switch. You can do a fresh install of ONIE image on the QFX5210-64C-S switch, or recover an existing ONIE image from the QFX5210-64C-S switch that has been corrupted. - -To install ONIE on a new QFX5210-64C-S switch, you can use one of the following ONIE recovery images: +To install ONIE on a new switch, you can use one of the following ONIE recovery images: 1) ..iso -- Hybrid ISO image. 2) ..efi64.pxe -- PXE image for UEFI64 machines. +Note: Second method is not applicable for QFX5200-32C-S + ## Creating an ISO Recovery Image @@ -101,11 +104,11 @@ You can find the correct "/dev/sdX" by validating the "dmesg" output after inser 1) Booting from a USB Memory Device -To boot from an external USB memory device connected to the QFX5210-64C-S switch, you need to: +To boot from an external USB memory device connected to the switch, you need to: -a. Insert the USB memory device to the USB port of the QFX5210-64C-S switch. +a. Insert the USB memory device to the USB port of the switch. -b. Power on the QFX5210-64C-S switch and enter the BIOS configuration by pressing the Esc key, as displayed in the console screen. +b. Power on the switch and enter the BIOS configuration by pressing the Esc key, as displayed in the console screen. c. Set the hard drive boot order as follows: @@ -134,7 +137,7 @@ c. Set the hard drive boot order as follows: d. Go to "Save & Exit" in the BIOS screen and from the Boot Override option select the USB memory device (For example, JetFlashTranscend 8GB 8.07). -e. After a few seconds, the QFX5210-64C-S switch would restart and boot from the USB memory device and then you will see the following on the console screen: +e. After a few seconds, the switch would restart and boot from the USB memory device and then you will see the following on the console screen: ``` GNU GRUB version 2.02~beta2+e4a1fe391 @@ -168,6 +171,8 @@ g. Select "ONIE: Rescue" to enter the ONIE recovery command-line shell (Optional 2) Recovering ONIE using PXE-UEFI64 Recovery Image +Note: This section is only applicable for QFX5210-64C-S platform. + You can use the onie-recovery-x86_64-juniper_qfx5210-r0.efi64.pxe image to recover the ONIE image through UEFI PXE. The onie-recovery-x86_64-juniper_qfx5210-r0.efi64.pxe is made for the QFX5210-64C-S switch that has a PXE client which is based on UEFI64. @@ -192,12 +197,12 @@ The following links provide more information about ONIE: ## SONiC Build Process: -The instruction on how to build an ONIE compatible network operating system (NOS) installer image for Juniper Networks QFX5210-64C-S switch, and how to build docker images running inside the NOS is available at https://github.com/Azure/sonic-buildimage#usage. +The instruction on how to build an ONIE compatible network operating system (NOS) installer image for Juniper Networks switches, and how to build docker images running inside the NOS is available at https://github.com/Azure/sonic-buildimage#usage. -## Install SONiC on the Juniper Networks QFX5210-64C-S switch: +## Install SONiC on the Juniper Networks switch:es -You need to copy the SONiC image sonic-broadcom.bin to the Juniper Networks QFX5210-64C-S switch. You can copy the sonic-broadcom.bin to an USB memory device and insert it to the USB port of the QFX5210-64C-S switch. You can also use the 'scp' command to copy the sonic-broadcom.bin image to the QFX5210-64C-S switch over the network. +You need to copy the SONiC image 'sonic-broadcom.bin' to the switch. You can copy the sonic-broadcom.bin to an USB memory device and insert it to the USB port of the switch. You can also use the 'scp' command to copy the sonic-broadcom.bin image to the switch over the network. Note: Unmount the USB memory device after copying the sonic-broadcom.bin. For example, umount /dev/sdX, where X is the name of the drive of the USB memory device. @@ -210,7 +215,7 @@ ONIE:/var/tmp # onie-nos-install /var/tmp/sonic-broadcom.bin ## Booting SONiC -The QFX5210-64C-S switch restarts automatically after the SONiC image has been successfully installed. +The switch restarts automatically after the SONiC image has been successfully installed. 1) Select SONiC from the GRUB boot manager. @@ -239,35 +244,44 @@ The QFX5210-64C-S switch restarts automatically after the SONiC image has been s 2. At the SONiC login prompt, enter the username as admin and password as YourPaSsWoRd. -You can now start configuring the Juniper Networks QFX5210-64C-S switch running SONiC as its operating system. +You can now start configuring the Juniper Networks switch running SONiC as its operating system. ## Upgrading SONiC image To upgrade the SONiC operating system to a latest version, you need to: - 1. Copy the latest image of the SONiC image to the QFX5210-64C-S switch. + 1. Copy the latest image of the SONiC image to the switch. 2. Run the following command from the directory where the latest SONiC image has been copied. ``` $ sudo ./sonic-braodcom.bin ``` +or + +``` +$ sudo sonic-installer ./sonic-broadcom.bin -y +``` + ## Uninstalling SONiC image -To unintall SONiC operating system from QFX5210-64C-S switch, you need to: +To unintall SONiC operating system from the switch, you need to: - 1. Reboot the QFX5210-64C-S switch. + 1. Reboot the switch. 2. Go to the ONIE GRUB menu and then select ONIE: Uninstall OS option to uninstall SONiC. -For more details on drivers and platform scripts see https://github.com/Azure/sonic-buildimage/blob/master/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README +For more details on drivers and platform scripts see the following links: + +1) QFX5210-64C-S: https://github.com/Azure/sonic-buildimage/blob/master/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README + +2) QFX5200-32C-S: https://github.com/Azure/sonic-buildimage/blob/master/platform/broadcom/sonic-platform-modules-juniper/qfx5200/utils/README ## Related Documentation for SONiC: The following links provide more information about SONiC: 1. SONiC documentation: https://github.com/azure/sonic/wiki. - 2. Learn about QFX5210-64C-S SONiC platform: https://github.com/Azure/sonic-buildimage/blob/master/platform/broadcom/sonic-platform-modules-juniper/qfx5210/utils/README ## Viewing the Device Revision of the FRU Model from IDEEPROM diff --git a/platform/broadcom/sonic-platform-modules-juniper/qfx5200/utils/README b/platform/broadcom/sonic-platform-modules-juniper/qfx5200/utils/README index ec9ebe97f0ee..558410def831 100755 --- a/platform/broadcom/sonic-platform-modules-juniper/qfx5200/utils/README +++ b/platform/broadcom/sonic-platform-modules-juniper/qfx5200/utils/README @@ -1,5 +1,5 @@ -Copyright (c) 2019, Juniper Networks, Inc. +Copyright (c) 2020, Juniper Networks, Inc. All rights reserved. Front panel LEDs @@ -30,44 +30,93 @@ accepted. System FANs =========== -There are 4 fans and each of the fan has 2 fan modules. Overall there are -8 fans in the system. +There are 5 fans and each of the fan has 2 fan modules. Overall there are +10 fans in the system. These fans are controlled by ADT7470 driver. -Fan controls can be found in /sys/bus/i2c/devices/17-0068. All the fans -are controlled by one duty cycle value, ranges from 0 to 100 +Fan controls can be found in + /sys/bus/i2c/devices/7-002c + /sys/bus/i2c/devices/7-002e + /sys/bus/i2c/devices/7-002f -Fan duty cycle can be controlled through /sys/bus/i2c/devices/17-0068/pwm1 +For example, the complete path to driver control files will be + /sys/bus/i2c/devices/7-002c/hwmon/hwmon12 -Fan module presence is given by /sys/bus/i2c/devices/17-0068/fan[1-4]_present +Fan duty cycle can be controlled through 'pwm1', 'pwm2', 'pwm3', 'pwm4' sysfs files. + +For example, these are the absolute paths to the control files + + /sys/bus/i2c/devices/7-002c/hwmon/hwmon*/pwm1 7-002c controls 2 fan modules + /sys/bus/i2c/devices/7-002c/hwmon/hwmon*/pwm2 + /sys/bus/i2c/devices/7-002c/hwmon/hwmon*/pwm3 + /sys/bus/i2c/devices/7-002c/hwmon/hwmon*/pwm4 + + /sys/bus/i2c/devices/7-002e/hwmon/hwmon*/pwm1 7-002e controls 2 fan modules + /sys/bus/i2c/devices/7-002e/hwmon/hwmon*/pwm2 + /sys/bus/i2c/devices/7-002e/hwmon/hwmon*/pwm3 + /sys/bus/i2c/devices/7-002e/hwmon/hwmon*/pwm4 + + /sys/bus/i2c/devices/7-002f/hwmon/hwmon*/pwm1 7-002c controls only 1 fan module + /sys/bus/i2c/devices/7-002f/hwmon/hwmon*/pwm2 + +For convenience, it will be represented as +/sys/bus/i2c/devices/7-002[c/e/f]/hwmon/hwmon*/pwm[1-4] + +Fan speed is given by +/sys/bus/i2c/devices/7-002[c/e/f]/hwmon/hwmon*/fan[1-4]_input + +Fan module presence is given by +/sys/devices/pci0000:00/0000:00:1c.0/0000:0f:00.0/refpga-tmc.15/fan[0-4]_present file. A value of '1' indicate that fan is present & a value of '0' otherwise. -Fan rotation direction is given by /sys/bus/i2c/devices/17-0068/fan[1-4]_direction. -A value of '0' indicate the direction is AFO (Front to back airflow) or Airflow -out. A value of '1' indicate that direction is AFI (Back to front airflow) or +Fan rotation direction is given by +/sys/devices/pci0000:00/0000:00:1c.0/0000:0f:00.0/refpga-tmc.15/fan[0-4]_type +A value of '1' indicate the direction is AFO (Front to back airflow) or Airflow +out. A value of '0' indicate that direction is AFI (Back to front airflow) or Airflow in. -Fan speed is given by fan[1-4]_input Temperature sensors =================== -There are 6 temperature sensors. The readings are available in -/sys/bus/i2c/devices/{0}-00{1}/hwmon/hwmon*/temp1_input +There are 10 temperature sensors. Kernel driver tmp401 is used for +reading temeperature sensors. + +The readings are available in + +/sys/bus/i2c/devices/5-0048/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/5-0049/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/5-004a/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/5-004b/hwmon/hwmon*/temp1_input + +/sys/bus/i2c/devices/6-0048/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/6-0049/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/6-004a/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/6-004b/hwmon/hwmon*/temp1_input + +/sys/bus/i2c/devices/7-0048/hwmon/hwmon*/temp1_input +/sys/bus/i2c/devices/7-0049/hwmon/hwmon*/temp1_input System PSUs =========== -There are two independent PSUs. These are controlled by a dedicated CPLD. -The status registers are mapped under /sys/bus/i2c/devices/9-0050 and -/sys/bus/i2c/devices/10-0053. +There are two independent PSUs. These are controlled by TMC fpga. + +PSU presence is given by jnx-tmc-psu dirver and is available at +/sys/devices/pci0000:00/0000:00:1c.0/0000:0f:00.0/psu-tmc.15/psu*_present +A value of '1' indicate PSU is present and a value of '0' otherwise. + +PSU monitoring data is provided by jnx-psu-monitor driver and is available at +/sys/bus/i2c/devices/3-0058 +/sys/bus/i2c/devices/4-0058 SFPs ==== -There are 64 QSFP+ modules supported in qfx5210 platform. EEPORMs will be -mapped under /sys/bus/i2c/devices/[25-88]-0050/ sysfs directory. +There are 32 QSFP+ modules supported in qfx5200 platform. EEPORMs will be +mapped under /sys/bus/i2c/devices/[14-45]-0050/ sysfs directory. -FEC should be turned on for 100G SR optics and should be turned off for -100G LR optics. If the optic is changed, please update the entry and -reload the configuration. If the FEC mode is not set as per the optic -type the port may not link up or work properly. +FEC should be turned on for 100G SR4 & PSM4 optics and should +be turned off for 100G LR4 optics. If the FEC mode is not set +as per the optic type the port may not link up or work properly. +In some cases while interoperating between other NOSs & traffic +generators, FEC need to be enabled even for 100G DAC cables. As an example, see this configuration for FEC for 100G SR4 optics in /etc/sonic/config_db.json @@ -85,33 +134,19 @@ As an example, see this configuration for FEC for 100G SR4 optics in Sensor details ============== LM75 supported sensor modules will be available under 'sensors' command. -If you want to get all the sensor data including the SFPs & LEDs, you can -invoke 'sudo juniper_qfx5210_util.py show' -Platform poweroff +Platform reboot ================= -Linux poweroff commands such as 'poweroff', 'shutdown', 'halt', etc. will not -power off qfx5210 platform as there are custom CPLDs control the power off -sequences. So acpi poweroff hooks are added for powering off the qfx5210. The -following messages are displayed in the console towards end of poweroff -sequence: - - [ 52.500807] System halt/power_off - [ 52.866331] reboot: Power down - [ 52.903257] pm_power_off: qfx5210_cpld_power_off - -Once the above messages are seen, you can safely remove the power to the system. - -Similarly platform reboot sequences are in place for system reboot. The following +Platform reboot sequences are in place for system reboot. The following messages are displayed in the console when the system is rebooted: - [ 6053.163363] System restart: qfx5210_cpld_soft_reset + [ 6053.163363] System restart: qfx5200_cpu_reset Platform monitoring daemon ========================== -“juniper_qfx5210_monitor.py” is the platform monitoring script. -It implements the qfx5210 EM policy. This script will run as system service +“juniper_qfx5200_monitor.py” is the platform monitoring script. +It implements the qfx5200 EM policy. This script will run as system service and monitor the temperature sensors in every 20 seconds. Based on the EM policy thresholds, it controls the fan rpm, manage alarm leds, and -shutdown the box. +shutdown the box in case of any over heating.