93905d3d82
* Initial commit * Add Ingrasys S9180-32X platform dirver. Signed-off-by: Wade He <chihen.he@gmail.com> * Add bfn.service for init barefoot. Signed-off-by: Wade He <chihen.he@gmail.com> * [Barefoot Beta] Add some functions and fixed some bugs. 1. Update sensors.conf. 2. Fixed IO expander init. 3. Fixed PSU EEPROM. 4. Fixed MB EEPROM. 5. Add fancontrol and fan init. 6. Add SYS LED control (sys, fan, fan tray). 7. 2.5V compute and setup max and min. 8. Fixed typo MB eeprom delete address. 9. Remove coretemp to BMC. 10. Add active CPLD. 11. Modify SFP+ GPIO slave address. 12. Modify tmp75 Near Port 32 slave address. Signed-off-by: Wade He <chihen.he@gmail.com> * Add bfn script in /etc/init.d/ Signed-off-by: Wade He <chihen.he@gmail.com> * Add bfn service in debian Signed-off-by: Wade He <chihen.he@gmail.com> * Fixed CPLD switch LED behavior. Signed-off-by: Wade He <chihen.he@gmail.com> * [Barefoot Beta] Fixed sensors and hwmon order. 1. Fixed ignore sensors Vbat. 2. Reorg hwmon order. Signed-off-by: Wade He <chihen.he@gmail.com> * Fixed PSU1 and PSU2 EEPROM order. Signed-off-by: Wade He <chihen.he@gmail.com> * initial barefoot checkin october 2017 * update refpoint * update refpoints * update refpoints to bf-master * update refpoint * update refpoint to tested version * change to platform from asic * update refpoint for swss * revert core creation setting * update refpoints * add telnet for debug shell * update refpoints 11/17/17 * missed change in file on previous merge * [CPLD] Fixed blink LED issue. * Fixed blink LED mask set error. Signed-off-by: Wade He <chihen.he@gmail.com> * Update bf_kdrv.c for 6.0.2.39 * Update bf kernel driver * Add bf_fun kernel module. * Update bf_tun for fixed build error * merge with Azure master (12/12/17) * update swss refpoint * update refpoint of swss * library dependency for stack unroll * update refpoint to bf-master * [DHCP relay]: Fix circuit ID and remote ID bugs (#1248) * [DHCP relay]: Fix circuit ID and remote ID bugs * Set circuit_id_len after setting circuit_id_len to ip->name * [Platform] Add Psuutil and update sensors.conf for S9100-32X, S8810-32Q and S9200-64X (#1272) * Add I2C CPLD kernel module for psuutil. * Support psuutil script. * Add voltage min and max threshold. * Update sensors.conf for tmp75. Signed-off-by: Wade He <chihen.he@gmail.com> * Allow multi platform support - infra (more changes to follow) * update relative path to include platform for clarity * [Platform] Add Ingrasys S9130-32X and S9230-64X with Nephos Switch ASIC for "branch 201712" (#1274) - What I did Add switch ASIC vendor: Nephos Add Nephos platforms: Ingrasys S9130-32X, Ingrasys S9230-64X - How I did it Add platform/nephos files Add platform/nephos/sonic-platform-modules-ingrasys submodule Add device/ingrasys/x86_64-ingrasys_s9130_32x-r0 files Add device/ingrasys/x86_64-ingrasys_s9230_64x-r0 files Add SONiC to support Nephos platform Update Head of submodule src/sonic-sairedis to "3b817bb" - How to verify it To build SONiC installer image and docker images, run the following commands: make configure PLATFORM=nephos make target/sonic-nephos.bin Check system and network feature is worked as well - Description for the changelog Add switch ASIC vendor and platforms for Nephos - A picture of a cute animal (not mandatory but encouraged) Signed-off-by: Sam Yang <yang.kaiyu@gmail.com> * change source of files to github (from dropbox), update sairedis refpoint * update refpoint of sairedis * [centec] support CENTEC SAI 1.0 on 201712 branch and update e582-48x6q board (#1269) * [marvel]: Marvell's updates for SONiC.201712 & SAI v1.0 (#1287) * update sairedis (fast-boot refpoint) * fix syncd rpc make files * update refpoint to handle Makefile change (no functional change) * [Marvell]: Add support for SLM5401-54x device (#1307) * Marvell's updates for SONiC.201712 & SAI v1.0 * [Platform] Add Marvell's SLM5401-54x for branch 201712 * [Broadcom]: Update Boradcom SAI package to 3.0.3.3-3 (#1312) (#1321) - update Arista 7050-QX32S config.bcm file - update Accton th-as771*-32x100G.config.bcm files * update refpoint for Makefile chnage in sairedis * update refpoint - sairedis * update sairedis to older refpoint till we debug clean build * export asic platform for build * update refpoint for makefiles * [PLATFORM] Centec update E582 driver fan/epprom/sensor (#1332) * Upload wnc-osw1800 * Modify for Barefoot suggest * Revert bfn-platform.mk * Update bfn-platform-wnc.mk Update parameter name * Update parameter name * initial support for WNC platform * change switch name to "switch" * Delete bf modules for rel_7_0 * Add Ingrasys S9180 platform Signed-off-by: Wade He <chihen.he@gmail.com> * Modify bfnsdk for Ingrasys S9180 platform Signed-off-by: Wade He <chihen.he@gmail.com> * Resolved the conflict. * Resolved the conflict. * Update submodule path and url. * Delete unused file. * Update PSU GPIO and EEPROM for psuutil. * Add psuutil in S9180-32X Signed-off-by: Wade He <chihen.he@gmail.com> * update refpoint * update refpoint * change contact email, update refpoint * cleanup and update kernel modules * updates based on review * update refpoint * update refpoint * fix typo in config script to check for platforms * remove stale file * resolve conflicts * cleanup diffs with Azure repo and update SDK debs * update refpoints to Azure * address review comments * revert refpoint of swss-common * porting the build fix from master * porting build fix from master * Minor Fix * Minor fix * Temp to sde deb packages url * Update sonic - sairedis,swss & swss-common refpoints * Update git modules url path to bfn repo * updated paths for swss, swss-common & sairedis * Update refpoint for sonic-swss to local bfn repo * Update URL for downloading sde debian packages * porting fix links of debian git server from master * porting fix links of debian git server from master * [Ingrasys] Add platform support for S9280-64X with Barefoot ASIC * Update ref points for swss, swss-common and sairedis repos * Add sonic platform scripts for bfn montara/maverick * Call sh scripts instead of calling py scripts * Address upstream PR Comments (#10) * Update bf-master with azure/master * Undo changes to some files * Revert "Address upstream PR Comments (#10)" This reverts commit |
||
---|---|---|
.. | ||
modules | ||
service | ||
utils | ||
README.md |
Ingrasys S9180-32X Platform Driver for SONiC
Copyright (C) 2016 Ingrasys, Inc.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Licensing terms
The Licensing terms of the files within this project is split 2 parts. The Linux kernel is released under the GNU General Public License version 2. All other code is released under the GNU General Public License version 3. Please see the LICENSE file for copies of both licenses.
Contents of this package
- service/
Service config files for platform initialization and monitoring
- utils/
Scripts useful during platform bringup and sysfs function
- conf/
Platform configure files.
Kernel modules and drivers
The driver for interacting with Ingrasys S9180-32X is contained in the I2C kernel module and initialization script. The initialization script loads the modules in the correct order. It has been built and tested against the Linux 3.16 kernel.
The initialization script will modprobe the needed modules, navigate to the module's device directory in sysfs, and write configuration data to the kernel module.
IGB
This is OOB Ports on front panel for management plane.
The IGB module must be loaded first on Ingrasys S9180-32X platform.
I2C i801
The I2C i801 on Ingrasys S9180-32X can be found in
/sys/bus/i2c/devices/i2c-0/
This is I2C bus for Clock Gen, DIMM channel and digital potentiometers.
The i801 module must be loaded second on Ingrasys S9180-32X.
I2C iSMT
The I2C iSMT module on S9180-32X can be found in
/sys/bus/i2c/devices/i2c-1/
This is I2C bus for CPLD, HWM, power controller and I2C Switches.
The i801 module must be loaded third on Ingrasys S9180-32X.
I2C PCA9548
The PCA9548 module on S9180-32X can be found in
/sys/bus/i2c/devices/i2c-2/
, /sys/bus/i2c/devices/i2c-3/
,
/sys/bus/i2c/devices/i2c-4/
, /sys/bus/i2c/devices/i2c-5/
,
/sys/bus/i2c/devices/i2c-6/
, /sys/bus/i2c/devices/i2c-7/
,
/sys/bus/i2c/devices/i2c-8/
, /sys/bus/i2c/devices/i2c-9/
.
The pca9548 module for zQSFP module get/set functions, PSU information, fan status and EEPROM.
Hardware components
The hardware components are initialized in the init script on S9180-32X. The following describes manual initialization as well as interaction. The examples below are just for Ingrasys S9180-32X platform.
Hardware initialization
When the sonic-platform-ingrasys-s9180 package is installed on the S9180-32X, it is automatically initialized. If you want to manual initialization, the utility command usage as follows:
i2c_utils.sh i2c_init
EEPROM
The EEPROM is including the board SKU, model name, vendor name, serial number,
and other information can be accessed with the specific eeprom kernel module.
After using modprobe eeprom_mb
to detect the eeprom, it will show up in sysfs.
The hexdump utility can be used to decode the raw output of the EEPROM. For example,
bash# echo "mb_eeprom 0x54" > /sys/bus/i2c/devices/i2c-9/new_device
bash# cat /sys/bus/i2c/drivers/mb_eeprom/9-0054/eeprom | hexdump -C
Front panel LEDs
LEDs can be setup on/off by using i2c utility /usr/sbin/i2c_utils.sh
.
Utility function command usage as follows:
Status LED:
i2c_utils.sh i2c_sys_led green|amber on|off
Fan status LED:
i2c_utils.sh i2c_fan_led green|amber on|off
PSU1 status LED:
i2c_utils.sh i2c_psu1_led green|amber on|off
PSU2 status LED:
i2c_utils.sh i2c_psu2_led green|amber on|off
QSFP Module Port LEDs control by ASIC library.
Fan speed
Fan speed are controlled by the w83795 kernel module.
It can be found in /sys/class/hwmon/hwmon3/device/
.
If they were compiled as modules, you will need to modprobe w83795 for
their sysfs entries to show up. Each fan has an fan<N>_input
file
for reading the fan speed. And pwm1
setting fan1 to fan4,
pwm2
setting fan5 to fan8.
There is docker-platform-monitor container installed fancontrol package that can automatic control platform fan speed.
Temperature sensors
Temperature sensors are controlled by the w83795 kernel
module. It can be found in /sys/class/hwmon/hwmon3/device/
.
If they were compiled as modules, then you will need to modprobe w83795 for
their sysfs entries to show up.
temp1_input
is front MAC temperature sensor. temp2_input
is rear MAC
temperature sensor.
There is docker-platform-monitor container installed lm-sensors package that can
monitor platform temperature. And sensors
command can show each
temperature sensors status.
Power supplies
Power supplies status and its EEPROM info can be used i2c utility
/usr/sbin/i2c_utils.sh
to get.
The usage as follows:
PSU EEPROM:
i2c_utils.sh i2c_psu_eeprom_get
hexdump -C psu0.rom
hexdump -C psu1.rom
PSU Status:
i2c_utils.sh i2c_psu_status
QSFPs
QSFP modules are managed by the pca9548 kernel driver.
The i2c utility /usr/sbin/i2c_utils.sh
can be used to get status and
module EEPROM informations.
The usage as follows:
QSFP EEPROM:
i2c_utils.sh i2c_qsfp_eeprom_get [1-32]
QSFP Insert Event:
i2c_utils.sh i2c_qsfp_eeprom_get [1-32]
0 => not insert
1 => inserted