Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Renuka Manavalan 2019-04-01 20:34:26 +00:00
commit e73f86dbd6
234 changed files with 10566 additions and 835 deletions

31
.gitignore vendored
View File

@ -11,12 +11,31 @@ target/
*.buildinfo
# Subdirectories in src
src/bash/*
!src/bash/Makefile
src/ixgbe/*
!src/ixgbe/Makefile
src/isc-dhcp/*
!src/isc-dhcp/Makefile
!src/isc-dhcp/patch
src/socat/*
!src/socat/Makefile
!src/socat/*.patch
src/tacacs/*
src/tacacs/nsm/*
src/tacacs/pam/*
!src/tacacs/nsm/Makefile
!src/tacacs/nsm/*.patch
!src/tacacs/pam/Makefile
!src/tacacs/pam/*.patch
src/hiredis/*
!src/hiredis/Makefile
src/igb/*
!src/igb/Makefile
src/initramfs-tools/*
!src/initramfs-tools/Makefile
src/iproute2/*
!src/iproute2/Makefile
src/isc-dhcp/*
!src/isc-dhcp/Makefile
!src/isc-dhcp/patch/
@ -27,6 +46,8 @@ src/libteam/*
src/lldpd/*
!src/lldpd/Makefile
!src/lldpd/patch/
src/lm-sensors/*
!src/lm-sensors/Makefile
src/mpdecimal/*
!src/mpdecimal/Makefile
src/python-click/*
@ -42,7 +63,14 @@ src/sonic-device-data/src/debian/
src/supervisor/*
!src/supervisor/Makefile
!src/supervisor/patch/
src/telemetry/debian/*
!src/telemetry/debian/changelog
!src/telemetry/debian/compat
!src/telemetry/debian/control
!src/telemetry/debian/rules
!src/telemetry/debian/telemetry.init.d
src/thrift/*
!src/thrift/patch/
!src/thrift/Makefile
# Autogenerated Dockerfiles
@ -75,3 +103,6 @@ installer/x86_64/platforms/
src/sonic-config-engine/**/*.pyc
src/sonic-config-engine/build
src/sonic-config-engine/sonic_config_engine.egg-info
src/sonic-daemon-base/**/*.pyc
src/sonic-daemon-base/build
src/sonic-daemon-base/sonic_daemon_base.egg-info

3
.gitmodules vendored
View File

@ -62,3 +62,6 @@
[submodule "src/redis-dump-load"]
path = src/redis-dump-load
url = https://github.com/p/redis-dump-load.git
[submodule "platform/mellanox/mlnx-sai/SAI-Implementation"]
path = platform/mellanox/mlnx-sai/SAI-Implementation
url = https://github.com/Mellanox/SAI-Implementation

View File

@ -27,6 +27,9 @@
# * make NOSTRETCH=1 KEEP_SLAVE_ON=yes <any jessie target>
# * SOURCE_FOLDER: host path to be mount as /var/$(USER)/src, only effective when KEEP_SLAVE_ON=yes
# * SONIC_BUILD_JOBS: Specifying number of concurrent build job(s) to run
# * VS_PREPARE_MEM: Prepare memory in VS build (drop cache and compact).
# * Default: yes
# * Values: yes, no
# * KERNEL_PROCURE_METHOD: Specifying method of obtaining kernel Debian package: download or build
#
###############################################################################
@ -115,10 +118,12 @@ SONIC_BUILD_INSTRUCTION := make \
PASSWORD=$(PASSWORD) \
USERNAME=$(USERNAME) \
SONIC_BUILD_JOBS=$(SONIC_BUILD_JOBS) \
VS_PREPARE_MEM=$(VS_PREPARE_MEM) \
KERNEL_PROCURE_METHOD=$(KERNEL_PROCURE_METHOD) \
HTTP_PROXY=$(http_proxy) \
HTTPS_PROXY=$(https_proxy) \
SONIC_ENABLE_SYSTEM_TELEMETRY=$(ENABLE_SYSTEM_TELEMETRY)
SONIC_ENABLE_SYSTEM_TELEMETRY=$(ENABLE_SYSTEM_TELEMETRY) \
$(SONIC_OVERRIDE_BUILD_VARS)
.PHONY: sonic-slave-build sonic-slave-bash init reset

View File

@ -29,7 +29,7 @@
set -x -e
## docker engine version (with platform)
DOCKER_VERSION=5:18.09.0~3-0~debian-stretch
DOCKER_VERSION=5:18.09.2~3-0~debian-stretch
LINUX_KERNEL_VERSION=4.9.0-8-2
## Working directory to prepare the file system
@ -130,6 +130,8 @@ cat files/initramfs-tools/modules | sudo tee -a $FILESYSTEM_ROOT/etc/initramfs-t
sudo mkdir -p $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/
sudo cp files/initramfs-tools/arista-convertfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-convertfs
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-convertfs
sudo cp files/initramfs-tools/arista-hook $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-hook
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-hook
sudo cp files/initramfs-tools/mke2fs $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/mke2fs
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/mke2fs
sudo cp files/initramfs-tools/setfacl $FILESYSTEM_ROOT/etc/initramfs-tools/hooks/setfacl
@ -266,6 +268,10 @@ sudo mv $FILESYSTEM_ROOT/grub-pc-bin*.deb $FILESYSTEM_ROOT/$PLATFORM_DIR/x86_64-
## Disable kexec supported reboot which was installed by default
sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/kexec
## Modifty ntp default configuration: disable initial jump (add -x), and disable
## jump when time difference is greater than 1000 seconds (remove -g).
sudo sed -i "s/NTPD_OPTS='-g'/NTPD_OPTS='-x'/" $FILESYSTEM_ROOT/etc/default/ntp
## Fix ping tools permission so non root user can directly use them
## Note: this is a workaround since aufs doesn't support extended attributes
## Ref: https://github.com/moby/moby/issues/5650#issuecomment-303499489

View File

@ -1,4 +1,4 @@
#!/bin/sh -ex
#!/bin/bash -ex
# Copyright (C) 2014 Curt Brune <curt@cumulusnetworks.com>
#
@ -47,6 +47,15 @@ prepare_installer_disk()
create_disk
prepare_installer_disk
echo "Prepare memory for KVM build: $vs_build_prepare_mem"
free -m
if [[ "$vs_build_prepare_mem" == "yes" ]]; then
# Force o.s. to drop cache and compact memory so that KVM can get 2G memory
sudo bash -c 'echo 1 > /proc/sys/vm/drop_caches'
sudo bash -c 'echo 1 > /proc/sys/vm/compact_memory'
free -m
fi
/usr/bin/kvm -m $MEM \
-name "onie" \
-boot "order=cd,once=d" -cdrom "$ONIE_RECOVERY_ISO" \

View File

@ -1,55 +1,57 @@
# name lanes alias index
Ethernet0 41 twentyfiveGigE1 0
Ethernet1 42 twentyfiveGigE2 1
Ethernet2 43 twentyfiveGigE3 2
Ethernet3 44 twentyfiveGigE4 3
Ethernet4 49 twentyfiveGigE5 4
Ethernet5 50 twentyfiveGigE6 5
Ethernet6 51 twentyfiveGigE7 6
Ethernet7 52 twentyfiveGigE8 7
Ethernet8 53 twentyfiveGigE9 8
Ethernet9 54 twentyfiveGigE10 9
Ethernet10 55 twentyfiveGigE11 10
Ethernet11 56 twentyfiveGigE12 11
Ethernet12 65 twentyfiveGigE13 12
Ethernet13 66 twentyfiveGigE14 13
Ethernet14 67 twentyfiveGigE15 14
Ethernet15 68 twentyfiveGigE16 15
Ethernet16 33 twentyfiveGigE17 16
Ethernet17 34 twentyfiveGigE18 17
Ethernet18 35 twentyfiveGigE19 18
Ethernet0 3 twentyfiveGigE1 0
Ethernet1 2 twentyfiveGigE2 1
Ethernet2 4 twentyfiveGigE3 2
Ethernet3 8 twentyfiveGigE4 3
Ethernet4 7 twentyfiveGigE5 4
Ethernet5 1 twentyfiveGigE6 5
Ethernet6 5 twentyfiveGigE7 6
Ethernet7 16 twentyfiveGigE8 7
Ethernet8 6 twentyfiveGigE9 8
Ethernet9 14 twentyfiveGigE10 9
Ethernet10 13 twentyfiveGigE11 10
Ethernet11 15 twentyfiveGigE12 11
Ethernet12 23 twentyfiveGigE13 12
Ethernet13 22 twentyfiveGigE14 13
Ethernet14 24 twentyfiveGigE15 14
Ethernet15 32 twentyfiveGigE16 15
Ethernet16 31 twentyfiveGigE17 16
Ethernet17 21 twentyfiveGigE18 17
Ethernet18 29 twentyfiveGigE19 18
Ethernet19 36 twentyfiveGigE20 19
Ethernet20 37 twentyfiveGigE21 20
Ethernet21 38 twentyfiveGigE22 21
Ethernet22 39 twentyfiveGigE23 22
Ethernet23 40 twentyfiveGigE24 23
Ethernet24 69 twentyfiveGigE25 24
Ethernet25 70 twentyfiveGigE26 25
Ethernet26 71 twentyfiveGigE27 26
Ethernet27 72 twentyfiveGigE28 27
Ethernet28 81 twentyfiveGigE29 28
Ethernet29 82 twentyfiveGigE30 29
Ethernet30 83 twentyfiveGigE31 30
Ethernet31 84 twentyfiveGigE32 31
Ethernet32 85 twentyfiveGigE33 32
Ethernet33 86 twentyfiveGigE34 33
Ethernet34 87 twentyfiveGigE35 34
Ethernet35 88 twentyfiveGigE36 35
Ethernet36 97 twentyfiveGigE37 36
Ethernet37 98 twentyfiveGigE38 37
Ethernet38 99 twentyfiveGigE39 38
Ethernet39 100 twentyfiveGigE40 39
Ethernet40 101 twentyfiveGigE41 40
Ethernet41 102 twentyfiveGigE42 41
Ethernet42 103 twentyfiveGigE43 42
Ethernet43 104 twentyfiveGigE44 43
Ethernet44 105 twentyfiveGigE45 44
Ethernet45 106 twentyfiveGigE46 45
Ethernet46 107 twentyfiveGigE47 46
Ethernet47 108 twentyfiveGigE48 47
Ethernet48 5,6,7,8 hundredGigE49 48
Ethernet52 1,2,3,4 hundredGigE50 52
Ethernet56 109,110,111,112 hundredGigE51 56
Ethernet60 21,22,23,24 hundredGigE52 60
Ethernet64 9,10,11,12 hundredGigE53 64
Ethernet68 117,118,119,120 hundredGigE54 68
Ethernet20 30 twentyfiveGigE21 20
Ethernet21 34 twentyfiveGigE22 21
Ethernet22 33 twentyfiveGigE23 22
Ethernet23 35 twentyfiveGigE24 23
Ethernet24 43 twentyfiveGigE25 24
Ethernet25 42 twentyfiveGigE26 25
Ethernet26 44 twentyfiveGigE27 26
Ethernet27 52 twentyfiveGigE28 27
Ethernet28 51 twentyfiveGigE29 28
Ethernet29 41 twentyfiveGigE30 29
Ethernet30 49 twentyfiveGigE31 30
Ethernet31 60 twentyfiveGigE32 31
Ethernet32 50 twentyfiveGigE33 32
Ethernet33 58 twentyfiveGigE34 33
Ethernet34 57 twentyfiveGigE35 34
Ethernet35 59 twentyfiveGigE36 35
Ethernet36 62 twentyfiveGigE37 36
Ethernet37 63 twentyfiveGigE38 37
Ethernet38 64 twentyfiveGigE39 38
Ethernet39 65 twentyfiveGigE40 39
Ethernet40 66 twentyfiveGigE41 40
Ethernet41 61 twentyfiveGigE42 41
Ethernet42 68 twentyfiveGigE43 42
Ethernet43 69 twentyfiveGigE44 43
Ethernet44 67 twentyfiveGigE45 44
Ethernet45 71 twentyfiveGigE46 45
Ethernet46 72 twentyfiveGigE47 46
Ethernet47 70 twentyfiveGigE48 47
Ethernet48 77,78,79,80 hundredGigE49 48
Ethernet52 85,86,87,88 hundredGigE50 52
Ethernet56 93,94,95,96 hundredGigE51 56
Ethernet60 97,98,99,100 hundredGigE52 60
Ethernet64 105,106,107,108 hundredGigE53 64
Ethernet68 113,114,115,116 hundredGigE54 68
Ethernet72 121,122,123,124 hundredGigE55 72
Ethernet76 125,126,127,128 hundredGigE56 76

View File

@ -0,0 +1,440 @@
#polarity/lanemap is using TH2 style.
core_clock_frequency=1525
dpp_clock_ratio=2:3
oversubscribe_mode=1
pbmp_xport_xe=0x7F878787F878787FDFE1E1E1FE1E1E1FE
parity_enable=0
mem_cache_enable=0
l2_mem_entries=32768
l3_mem_entries=16384
fpem_mem_entries=16384
l2xmsg_mode=1
# Platform specfic
bcm_num_cos=8
bcm_stat_interval=2000000
cdma_timeout_usec=3000000
ipv6_lpm_128b_enable=0x1
l3_max_ecmp_mode=1
l3_alpm_enable=2
lpm_scaling_enable=0
max_vp_lags=0
miim_intr_enable=0
module_64ports=1
schan_intr_enable=0
stable_size=0x5500000
tdma_timeout_usec=3000000
skip_L2_USER_ENTRY=0
bcm_tunnel_term_compatible_mode=1
dport_map_port_1=6
dport_map_port_2=2
dport_map_port_3=1
dport_map_port_4=3
portmap_1=1:25
portmap_2=2:25
portmap_3=3:25
portmap_4=4:25
phy_chain_rx_lane_map_physical{1.0}=0x1230
phy_chain_rx_lane_map_physical{2.0}=0x1230
phy_chain_rx_lane_map_physical{3.0}=0x1230
phy_chain_rx_lane_map_physical{4.0}=0x1230
phy_chain_tx_lane_map_physical{1.0}=0x3210
phy_chain_tx_lane_map_physical{2.0}=0x3210
phy_chain_tx_lane_map_physical{3.0}=0x3210
phy_chain_tx_lane_map_physical{4.0}=0x3210
phy_chain_rx_polarity_flip_physical{1.0}=0x0
phy_chain_rx_polarity_flip_physical{2.0}=0x0
phy_chain_rx_polarity_flip_physical{3.0}=0x0
phy_chain_rx_polarity_flip_physical{4.0}=0x0
phy_chain_tx_polarity_flip_physical{1.0}=0x1
phy_chain_tx_polarity_flip_physical{2.0}=0x0
phy_chain_tx_polarity_flip_physical{3.0}=0x0
phy_chain_tx_polarity_flip_physical{4.0}=0x0
dport_map_port_5=7
dport_map_port_6=9
dport_map_port_7=5
dport_map_port_8=4
portmap_5=5:25
portmap_6=6:25
portmap_7=7:25
portmap_8=8:25
phy_chain_rx_lane_map_physical{5.0}=0x3210
phy_chain_rx_lane_map_physical{6.0}=0x3210
phy_chain_rx_lane_map_physical{7.0}=0x3210
phy_chain_rx_lane_map_physical{8.0}=0x3210
phy_chain_tx_lane_map_physical{5.0}=0x3210
phy_chain_tx_lane_map_physical{6.0}=0x3210
phy_chain_tx_lane_map_physical{7.0}=0x3210
phy_chain_tx_lane_map_physical{8.0}=0x3210
phy_chain_rx_polarity_flip_physical{5.0}=0x0
phy_chain_rx_polarity_flip_physical{6.0}=0x0
phy_chain_rx_polarity_flip_physical{7.0}=0x1
phy_chain_rx_polarity_flip_physical{8.0}=0x0
phy_chain_tx_polarity_flip_physical{5.0}=0x1
phy_chain_tx_polarity_flip_physical{6.0}=0x0
phy_chain_tx_polarity_flip_physical{7.0}=0x1
phy_chain_tx_polarity_flip_physical{8.0}=0x1
dport_map_port_13=11
dport_map_port_14=10
dport_map_port_15=12
dport_map_port_16=8
portmap_13=13:25
portmap_14=14:25
portmap_15=15:25
portmap_16=16:25
phy_chain_rx_lane_map_physical{13.0}=0x3012
phy_chain_rx_lane_map_physical{14.0}=0x3012
phy_chain_rx_lane_map_physical{15.0}=0x3012
phy_chain_rx_lane_map_physical{16.0}=0x3012
phy_chain_tx_lane_map_physical{13.0}=0x3210
phy_chain_tx_lane_map_physical{14.0}=0x3210
phy_chain_tx_lane_map_physical{15.0}=0x3210
phy_chain_tx_lane_map_physical{16.0}=0x3210
phy_chain_rx_polarity_flip_physical{13.0}=0x1
phy_chain_rx_polarity_flip_physical{14.0}=0x1
phy_chain_rx_polarity_flip_physical{15.0}=0x1
phy_chain_rx_polarity_flip_physical{16.0}=0x1
phy_chain_tx_polarity_flip_physical{13.0}=0x0
phy_chain_tx_polarity_flip_physical{14.0}=0x0
phy_chain_tx_polarity_flip_physical{15.0}=0x0
phy_chain_tx_polarity_flip_physical{16.0}=0x1
dport_map_port_21=18
dport_map_port_22=14
dport_map_port_23=13
dport_map_port_24=15
portmap_21=21:25
portmap_22=22:25
portmap_23=23:25
portmap_24=24:25
phy_chain_rx_lane_map_physical{21.0}=0x1230
phy_chain_rx_lane_map_physical{22.0}=0x1230
phy_chain_rx_lane_map_physical{23.0}=0x1230
phy_chain_rx_lane_map_physical{24.0}=0x1230
phy_chain_tx_lane_map_physical{21.0}=0x3210
phy_chain_tx_lane_map_physical{22.0}=0x3210
phy_chain_tx_lane_map_physical{23.0}=0x3210
phy_chain_tx_lane_map_physical{24.0}=0x3210
phy_chain_rx_polarity_flip_physical{21.0}=0x0
phy_chain_rx_polarity_flip_physical{22.0}=0x0
phy_chain_rx_polarity_flip_physical{23.0}=0x0
phy_chain_rx_polarity_flip_physical{24.0}=0x0
phy_chain_tx_polarity_flip_physical{21.0}=0x0
phy_chain_tx_polarity_flip_physical{22.0}=0x1
phy_chain_tx_polarity_flip_physical{23.0}=0x1
phy_chain_tx_polarity_flip_physical{24.0}=0x1
dport_map_port_29=19
dport_map_port_30=21
dport_map_port_31=17
dport_map_port_32=16
portmap_29=29:25
portmap_30=30:25
portmap_31=31:25
portmap_32=32:25
phy_chain_rx_lane_map_physical{29.0}=0x3210
phy_chain_rx_lane_map_physical{30.0}=0x3210
phy_chain_rx_lane_map_physical{31.0}=0x3210
phy_chain_rx_lane_map_physical{32.0}=0x3210
phy_chain_tx_lane_map_physical{29.0}=0x3210
phy_chain_tx_lane_map_physical{30.0}=0x3210
phy_chain_tx_lane_map_physical{31.0}=0x3210
phy_chain_tx_lane_map_physical{32.0}=0x3210
phy_chain_rx_polarity_flip_physical{29.0}=0x1
phy_chain_rx_polarity_flip_physical{30.0}=0x0
phy_chain_rx_polarity_flip_physical{31.0}=0x1
phy_chain_rx_polarity_flip_physical{32.0}=0x0
phy_chain_tx_polarity_flip_physical{29.0}=0x1
phy_chain_tx_polarity_flip_physical{30.0}=0x1
phy_chain_tx_polarity_flip_physical{31.0}=0x0
phy_chain_tx_polarity_flip_physical{32.0}=0x0
dport_map_port_33=23
dport_map_port_34=22
dport_map_port_35=24
dport_map_port_36=20
portmap_33=33:25
portmap_34=34:25
portmap_35=35:25
portmap_36=36:25
phy_chain_rx_lane_map_physical{33.0}=0x3012
phy_chain_rx_lane_map_physical{34.0}=0x3012
phy_chain_rx_lane_map_physical{35.0}=0x3012
phy_chain_rx_lane_map_physical{36.0}=0x3012
phy_chain_tx_lane_map_physical{33.0}=0x3210
phy_chain_tx_lane_map_physical{34.0}=0x3210
phy_chain_tx_lane_map_physical{35.0}=0x3210
phy_chain_tx_lane_map_physical{36.0}=0x3210
phy_chain_rx_polarity_flip_physical{33.0}=0x1
phy_chain_rx_polarity_flip_physical{34.0}=0x1
phy_chain_rx_polarity_flip_physical{35.0}=0x1
phy_chain_rx_polarity_flip_physical{36.0}=0x1
phy_chain_tx_polarity_flip_physical{33.0}=0x0
phy_chain_tx_polarity_flip_physical{34.0}=0x0
phy_chain_tx_polarity_flip_physical{35.0}=0x0
phy_chain_tx_polarity_flip_physical{36.0}=0x1
dport_map_port_41=30
dport_map_port_42=26
dport_map_port_43=25
dport_map_port_44=27
portmap_41=41:25
portmap_42=42:25
portmap_43=43:25
portmap_44=44:25
phy_chain_rx_lane_map_physical{41.0}=0x1230
phy_chain_rx_lane_map_physical{42.0}=0x1230
phy_chain_rx_lane_map_physical{43.0}=0x1230
phy_chain_rx_lane_map_physical{44.0}=0x1230
phy_chain_tx_lane_map_physical{41.0}=0x3210
phy_chain_tx_lane_map_physical{42.0}=0x3210
phy_chain_tx_lane_map_physical{43.0}=0x3210
phy_chain_tx_lane_map_physical{44.0}=0x3210
phy_chain_rx_polarity_flip_physical{41.0}=0x1
phy_chain_rx_polarity_flip_physical{42.0}=0x0
phy_chain_rx_polarity_flip_physical{43.0}=0x0
phy_chain_rx_polarity_flip_physical{44.0}=0x0
phy_chain_tx_polarity_flip_physical{41.0}=0x0
phy_chain_tx_polarity_flip_physical{42.0}=0x1
phy_chain_tx_polarity_flip_physical{43.0}=0x1
phy_chain_tx_polarity_flip_physical{44.0}=0x1
dport_map_port_49=31
dport_map_port_50=33
dport_map_port_51=29
dport_map_port_52=28
portmap_49=49:25
portmap_50=50:25
portmap_51=51:25
portmap_52=52:25
phy_chain_rx_lane_map_physical{49.0}=0x3210
phy_chain_rx_lane_map_physical{50.0}=0x3210
phy_chain_rx_lane_map_physical{51.0}=0x3210
phy_chain_rx_lane_map_physical{52.0}=0x3210
phy_chain_tx_lane_map_physical{49.0}=0x3210
phy_chain_tx_lane_map_physical{50.0}=0x3210
phy_chain_tx_lane_map_physical{51.0}=0x3210
phy_chain_tx_lane_map_physical{52.0}=0x3210
phy_chain_rx_polarity_flip_physical{49.0}=0x0
phy_chain_rx_polarity_flip_physical{50.0}=0x0
phy_chain_rx_polarity_flip_physical{51.0}=0x1
phy_chain_rx_polarity_flip_physical{52.0}=0x1
phy_chain_tx_polarity_flip_physical{49.0}=0x1
phy_chain_tx_polarity_flip_physical{50.0}=0x1
phy_chain_tx_polarity_flip_physical{51.0}=0x0
phy_chain_tx_polarity_flip_physical{52.0}=0x0
dport_map_port_57=35
dport_map_port_58=34
dport_map_port_59=36
dport_map_port_60=32
portmap_57=57:25
portmap_58=58:25
portmap_59=59:25
portmap_60=60:25
phy_chain_rx_lane_map_physical{57.0}=0x3012
phy_chain_rx_lane_map_physical{58.0}=0x3012
phy_chain_rx_lane_map_physical{59.0}=0x3012
phy_chain_rx_lane_map_physical{60.0}=0x3012
phy_chain_tx_lane_map_physical{57.0}=0x3210
phy_chain_tx_lane_map_physical{58.0}=0x3210
phy_chain_tx_lane_map_physical{59.0}=0x3210
phy_chain_tx_lane_map_physical{60.0}=0x3210
phy_chain_rx_polarity_flip_physical{57.0}=0x1
phy_chain_rx_polarity_flip_physical{58.0}=0x1
phy_chain_rx_polarity_flip_physical{59.0}=0x1
phy_chain_rx_polarity_flip_physical{60.0}=0x0
phy_chain_tx_polarity_flip_physical{57.0}=0x0
phy_chain_tx_polarity_flip_physical{58.0}=0x0
phy_chain_tx_polarity_flip_physical{59.0}=0x0
phy_chain_tx_polarity_flip_physical{60.0}=0x1
dport_map_port_61=42
dport_map_port_62=37
dport_map_port_63=38
dport_map_port_64=39
portmap_61=61:25
portmap_62=62:25
portmap_63=63:25
portmap_64=64:25
phy_chain_rx_lane_map_physical{61.0}=0x2310
phy_chain_rx_lane_map_physical{62.0}=0x2310
phy_chain_rx_lane_map_physical{63.0}=0x2310
phy_chain_rx_lane_map_physical{64.0}=0x2310
phy_chain_tx_lane_map_physical{61.0}=0x3210
phy_chain_tx_lane_map_physical{62.0}=0x3210
phy_chain_tx_lane_map_physical{63.0}=0x3210
phy_chain_tx_lane_map_physical{64.0}=0x3210
phy_chain_rx_polarity_flip_physical{61.0}=0x0
phy_chain_rx_polarity_flip_physical{62.0}=0x0
phy_chain_rx_polarity_flip_physical{63.0}=0x1
phy_chain_rx_polarity_flip_physical{64.0}=0x0
phy_chain_tx_polarity_flip_physical{61.0}=0x0
phy_chain_tx_polarity_flip_physical{62.0}=0x0
phy_chain_tx_polarity_flip_physical{63.0}=0x0
phy_chain_tx_polarity_flip_physical{64.0}=0x1
dport_map_port_67=40
dport_map_port_68=41
dport_map_port_69=45
dport_map_port_70=43
portmap_67=65:25
portmap_68=66:25
portmap_69=67:25
portmap_70=68:25
phy_chain_rx_lane_map_physical{65.0}=0x3210
phy_chain_rx_lane_map_physical{66.0}=0x3210
phy_chain_rx_lane_map_physical{67.0}=0x3210
phy_chain_rx_lane_map_physical{68.0}=0x3210
phy_chain_tx_lane_map_physical{65.0}=0x3210
phy_chain_tx_lane_map_physical{66.0}=0x3210
phy_chain_tx_lane_map_physical{67.0}=0x3210
phy_chain_tx_lane_map_physical{68.0}=0x3210
phy_chain_rx_polarity_flip_physical{65.0}=0x0
phy_chain_rx_polarity_flip_physical{66.0}=0x0
phy_chain_rx_polarity_flip_physical{67.0}=0x0
phy_chain_rx_polarity_flip_physical{68.0}=0x1
phy_chain_tx_polarity_flip_physical{65.0}=0x0
phy_chain_tx_polarity_flip_physical{66.0}=0x0
phy_chain_tx_polarity_flip_physical{67.0}=0x1
phy_chain_tx_polarity_flip_physical{68.0}=0x1
dport_map_port_71=44
dport_map_port_72=48
dport_map_port_73=46
dport_map_port_74=47
portmap_71=69:25
portmap_72=70:25
portmap_73=71:25
portmap_74=72:25
phy_chain_rx_lane_map_physical{69.0}=0x1230
phy_chain_rx_lane_map_physical{70.0}=0x1230
phy_chain_rx_lane_map_physical{71.0}=0x1230
phy_chain_rx_lane_map_physical{72.0}=0x1230
phy_chain_tx_lane_map_physical{69.0}=0x3210
phy_chain_tx_lane_map_physical{70.0}=0x3210
phy_chain_tx_lane_map_physical{71.0}=0x3210
phy_chain_tx_lane_map_physical{72.0}=0x3210
phy_chain_rx_polarity_flip_physical{69.0}=0x1
phy_chain_rx_polarity_flip_physical{70.0}=0x1
phy_chain_rx_polarity_flip_physical{71.0}=0x1
phy_chain_rx_polarity_flip_physical{72.0}=0x1
phy_chain_tx_polarity_flip_physical{69.0}=0x1
phy_chain_tx_polarity_flip_physical{70.0}=0x0
phy_chain_tx_polarity_flip_physical{71.0}=0x0
phy_chain_tx_polarity_flip_physical{72.0}=0x0
dport_map_port_79=49
portmap_79=77:100
phy_chain_rx_lane_map_physical{77.0}=0x2130
phy_chain_tx_lane_map_physical{77.0}=0x3120
phy_chain_rx_polarity_flip_physical{77.0}=0x0
phy_chain_rx_polarity_flip_physical{78.0}=0x0
phy_chain_rx_polarity_flip_physical{79.0}=0x1
phy_chain_rx_polarity_flip_physical{80.0}=0x1
phy_chain_tx_polarity_flip_physical{77.0}=0x0
phy_chain_tx_polarity_flip_physical{78.0}=0x1
phy_chain_tx_polarity_flip_physical{79.0}=0x1
phy_chain_tx_polarity_flip_physical{80.0}=0x1
dport_map_port_87=53
portmap_87=85:100
phy_chain_rx_lane_map_physical{85.0}=0x1203
phy_chain_tx_lane_map_physical{85.0}=0x2031
phy_chain_rx_polarity_flip_physical{85.0}=0x0
phy_chain_rx_polarity_flip_physical{86.0}=0x0
phy_chain_rx_polarity_flip_physical{87.0}=0x1
phy_chain_rx_polarity_flip_physical{88.0}=0x1
phy_chain_tx_polarity_flip_physical{85.0}=0x0
phy_chain_tx_polarity_flip_physical{86.0}=0x0
phy_chain_tx_polarity_flip_physical{87.0}=0x1
phy_chain_tx_polarity_flip_physical{88.0}=0x1
dport_map_port_95=57
portmap_95=93:100
phy_chain_rx_lane_map_physical{93.0}=0x2130
phy_chain_tx_lane_map_physical{93.0}=0x3210
phy_chain_rx_polarity_flip_physical{93.0}=0x0
phy_chain_rx_polarity_flip_physical{94.0}=0x0
phy_chain_rx_polarity_flip_physical{95.0}=0x1
phy_chain_rx_polarity_flip_physical{96.0}=0x1
phy_chain_tx_polarity_flip_physical{93.0}=0x1
phy_chain_tx_polarity_flip_physical{94.0}=0x0
phy_chain_tx_polarity_flip_physical{95.0}=0x0
phy_chain_tx_polarity_flip_physical{96.0}=0x1
dport_map_port_99=61
portmap_99=97:100
phy_chain_rx_lane_map_physical{97.0}=0x1203
phy_chain_tx_lane_map_physical{97.0}=0x2031
phy_chain_rx_polarity_flip_physical{97.0}=0x1
phy_chain_rx_polarity_flip_physical{98.0}=0x1
phy_chain_rx_polarity_flip_physical{99.0}=0x0
phy_chain_rx_polarity_flip_physical{100.0}=0x0
phy_chain_tx_polarity_flip_physical{97.0}=0x0
phy_chain_tx_polarity_flip_physical{98.0}=0x0
phy_chain_tx_polarity_flip_physical{99.0}=0x1
phy_chain_tx_polarity_flip_physical{100.0}=0x1
dport_map_port_107=65
portmap_107=105:100
phy_chain_rx_lane_map_physical{105.0}=0x2130
phy_chain_tx_lane_map_physical{105.0}=0x3120
phy_chain_rx_polarity_flip_physical{105.0}=0x0
phy_chain_rx_polarity_flip_physical{106.0}=0x0
phy_chain_rx_polarity_flip_physical{107.0}=0x1
phy_chain_rx_polarity_flip_physical{108.0}=0x1
phy_chain_tx_polarity_flip_physical{105.0}=0x0
phy_chain_tx_polarity_flip_physical{106.0}=0x1
phy_chain_tx_polarity_flip_physical{107.0}=0x1
phy_chain_tx_polarity_flip_physical{108.0}=0x1
dport_map_port_115=69
portmap_115=113:100
phy_chain_rx_lane_map_physical{113.0}=0x1203
phy_chain_tx_lane_map_physical{113.0}=0x2031
phy_chain_rx_polarity_flip_physical{113.0}=0x0
phy_chain_rx_polarity_flip_physical{114.0}=0x0
phy_chain_rx_polarity_flip_physical{115.0}=0x1
phy_chain_rx_polarity_flip_physical{116.0}=0x1
phy_chain_tx_polarity_flip_physical{113.0}=0x0
phy_chain_tx_polarity_flip_physical{114.0}=0x0
phy_chain_tx_polarity_flip_physical{115.0}=0x1
phy_chain_tx_polarity_flip_physical{116.0}=0x1
dport_map_port_123=73
portmap_123=121:100
phy_chain_rx_lane_map_physical{121.0}=0x2130
phy_chain_tx_lane_map_physical{121.0}=0x3210
phy_chain_rx_polarity_flip_physical{121.0}=0x0
phy_chain_rx_polarity_flip_physical{122.0}=0x1
phy_chain_rx_polarity_flip_physical{123.0}=0x0
phy_chain_rx_polarity_flip_physical{124.0}=0x0
phy_chain_tx_polarity_flip_physical{121.0}=0x1
phy_chain_tx_polarity_flip_physical{122.0}=0x1
phy_chain_tx_polarity_flip_physical{123.0}=0x1
phy_chain_tx_polarity_flip_physical{124.0}=0x0
dport_map_port_127=77
portmap_127=125:100
phy_chain_rx_lane_map_physical{125.0}=0x1203
phy_chain_tx_lane_map_physical{125.0}=0x2031
phy_chain_rx_polarity_flip_physical{125.0}=0x0
phy_chain_rx_polarity_flip_physical{126.0}=0x0
phy_chain_rx_polarity_flip_physical{127.0}=0x1
phy_chain_rx_polarity_flip_physical{128.0}=0x1
phy_chain_tx_polarity_flip_physical{125.0}=0x1
phy_chain_tx_polarity_flip_physical{126.0}=0x1
phy_chain_tx_polarity_flip_physical{127.0}=0x0
phy_chain_tx_polarity_flip_physical{128.0}=0x0
#dport_map_port_130=82
#dport_map_port_66=81
#portmap_130=128:10:m
#portmap_66=129:10:m

View File

@ -1,2 +1,2 @@
CONSOLE_SPEED=115200
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="tg3.short_preamble=1 tg3.bcm5718s_reset=1"
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pcie_aspm=off tg3.short_preamble=1 tg3.bcm5718s_reset=1"

View File

@ -1,79 +0,0 @@
# accton_as7326_56x 48x25G+8x100G SDK port LED macro init SOC
s CMIC_LEDUP0_DATA_RAM 0
s CMIC_LEDUP1_DATA_RAM 0
m CMIC_LEDUP0_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=63 REMAP_PORT_1=63 REMAP_PORT_2=63 REMAP_PORT_3=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=63 REMAP_PORT_5=63 REMAP_PORT_6=63 REMAP_PORT_7=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=27 REMAP_PORT_9=26 REMAP_PORT_10=25 REMAP_PORT_11=24
m CMIC_LEDUP0_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=63 REMAP_PORT_13=63 REMAP_PORT_14=63 REMAP_PORT_15=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=63 REMAP_PORT_17=63 REMAP_PORT_18=63 REMAP_PORT_19=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=31 REMAP_PORT_21=30 REMAP_PORT_22=29 REMAP_PORT_23=28
m CMIC_LEDUP0_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=15 REMAP_PORT_25=14 REMAP_PORT_26=13 REMAP_PORT_27=12
m CMIC_LEDUP0_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=19 REMAP_PORT_29=18 REMAP_PORT_30=17 REMAP_PORT_31=16
m CMIC_LEDUP0_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=63 REMAP_PORT_33=63 REMAP_PORT_34=63 REMAP_PORT_35=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=63 REMAP_PORT_37=63 REMAP_PORT_38=63 REMAP_PORT_39=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=35 REMAP_PORT_41=34 REMAP_PORT_42=33 REMAP_PORT_43=32
m CMIC_LEDUP0_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=63 REMAP_PORT_45=63 REMAP_PORT_46=63 REMAP_PORT_47=63
m CMIC_LEDUP0_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=23 REMAP_PORT_49=22 REMAP_PORT_50=21 REMAP_PORT_51=20
m CMIC_LEDUP0_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=11 REMAP_PORT_53=10 REMAP_PORT_54=9 REMAP_PORT_55=8
m CMIC_LEDUP0_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=7 REMAP_PORT_57=6 REMAP_PORT_58=5 REMAP_PORT_59=4
m CMIC_LEDUP0_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=3 REMAP_PORT_61=2 REMAP_PORT_62=1 REMAP_PORT_63=0
m CMIC_LEDUP1_PORT_ORDER_REMAP_0_3 REMAP_PORT_0=19 REMAP_PORT_1=18 REMAP_PORT_2=17 REMAP_PORT_3=16
m CMIC_LEDUP1_PORT_ORDER_REMAP_4_7 REMAP_PORT_4=23 REMAP_PORT_5=22 REMAP_PORT_6=21 REMAP_PORT_7=20
m CMIC_LEDUP1_PORT_ORDER_REMAP_8_11 REMAP_PORT_8=3 REMAP_PORT_9=2 REMAP_PORT_10=1 REMAP_PORT_11=0
m CMIC_LEDUP1_PORT_ORDER_REMAP_12_15 REMAP_PORT_12=63 REMAP_PORT_13=63 REMAP_PORT_14=63 REMAP_PORT_15=63
m CMIC_LEDUP1_PORT_ORDER_REMAP_16_19 REMAP_PORT_16=7 REMAP_PORT_17=6 REMAP_PORT_18=5 REMAP_PORT_19=4
m CMIC_LEDUP1_PORT_ORDER_REMAP_20_23 REMAP_PORT_20=11 REMAP_PORT_21=10 REMAP_PORT_22=9 REMAP_PORT_23=8
m CMIC_LEDUP1_PORT_ORDER_REMAP_24_27 REMAP_PORT_24=63 REMAP_PORT_25=63 REMAP_PORT_26=63 REMAP_PORT_27=63
m CMIC_LEDUP1_PORT_ORDER_REMAP_28_31 REMAP_PORT_28=63 REMAP_PORT_29=63 REMAP_PORT_30=63 REMAP_PORT_31=63
m CMIC_LEDUP1_PORT_ORDER_REMAP_32_35 REMAP_PORT_32=15 REMAP_PORT_33=14 REMAP_PORT_34=13 REMAP_PORT_35=12
m CMIC_LEDUP1_PORT_ORDER_REMAP_36_39 REMAP_PORT_36=27 REMAP_PORT_37=26 REMAP_PORT_38=25 REMAP_PORT_39=24
m CMIC_LEDUP1_PORT_ORDER_REMAP_40_43 REMAP_PORT_40=63 REMAP_PORT_41=63 REMAP_PORT_42=63 REMAP_PORT_43=63
m CMIC_LEDUP1_PORT_ORDER_REMAP_44_47 REMAP_PORT_44=63 REMAP_PORT_45=63 REMAP_PORT_46=63 REMAP_PORT_47=63
m CMIC_LEDUP1_PORT_ORDER_REMAP_48_51 REMAP_PORT_48=31 REMAP_PORT_49=30 REMAP_PORT_50=29 REMAP_PORT_51=28
m CMIC_LEDUP1_PORT_ORDER_REMAP_52_55 REMAP_PORT_52=35 REMAP_PORT_53=34 REMAP_PORT_54=33 REMAP_PORT_55=32
m CMIC_LEDUP1_PORT_ORDER_REMAP_56_59 REMAP_PORT_56=63 REMAP_PORT_57=63 REMAP_PORT_58=63 REMAP_PORT_59=63
m CMIC_LEDUP1_PORT_ORDER_REMAP_60_63 REMAP_PORT_60=63 REMAP_PORT_61=63 REMAP_PORT_62=63 REMAP_PORT_63=63
led 0 stop
led 0 prog \
02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 7E \
02 FB 42 24 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \
67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \
86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \
3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \
98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \
4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \
F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \
71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \
52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \
74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \
98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \
88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \
88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \
84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
led 0 start
led auto on
led 1 stop
led 1 prog \
02 FD 42 80 02 FF 42 00 02 FE 42 00 02 FA 42 7E \
02 FB 42 24 06 F9 D2 00 74 1E 02 F9 42 03 67 AC \
67 C3 67 52 86 FE 67 C3 67 52 86 FE 67 C3 67 52 \
86 FE 67 C3 67 52 86 FE 06 FB D6 FE 74 1E 86 FC \
3E FA 06 FE 88 4A 03 71 4C 67 84 57 67 84 57 67 \
98 57 06 FE 88 80 4A 00 27 97 75 4F 90 4A 00 27 \
4A 01 27 B7 97 71 69 77 42 06 F9 D6 FC 74 7C 02 \
F9 4A 07 37 4E 07 02 FC 42 00 4E 07 06 F9 0A 07 \
71 4F 77 42 16 FF 06 FD 17 4D DA 07 74 95 12 FF \
52 00 86 FD 57 86 FF 57 16 FF 06 FD 07 4D DA 07 \
74 A9 12 FF 52 00 86 FD 57 86 FF 57 06 FE C2 FC \
98 98 12 F4 50 C2 FC 98 98 F2 F0 14 06 F4 C2 03 \
88 77 D1 06 FE C2 FC 98 98 F2 E0 14 06 FE C2 03 \
88 18 71 E2 80 18 71 DD 67 98 67 98 57 67 98 67 \
84 57 80 18 71 EB 67 84 67 98 57 67 84 67 84 57 \
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
led 1 start
led auto on

View File

@ -0,0 +1,33 @@
# name lanes alias
Ethernet0 1,2,3,4 hundredGigE1
Ethernet4 5,6,7,8 hundredGigE2
Ethernet8 9,10,11,12 hundredGigE3
Ethernet12 13,14,15,16 hundredGigE4
Ethernet16 17,18,19,20 hundredGigE5
Ethernet20 21,22,23,24 hundredGigE6
Ethernet24 25,26,27,28 hundredGigE7
Ethernet28 29,30,31,32 hundredGigE8
Ethernet32 33,34,35,36 hundredGigE9
Ethernet36 37,38,39,40 hundredGigE10
Ethernet40 41,42,43,44 hundredGigE11
Ethernet44 45,46,47,48 hundredGigE12
Ethernet48 49,50,51,52 hundredGigE13
Ethernet52 53,54,55,56 hundredGigE14
Ethernet56 57,58,59,60 hundredGigE15
Ethernet60 61,62,63,64 hundredGigE16
Ethernet64 65,66,67,68 hundredGigE17
Ethernet68 69,70,71,72 hundredGigE18
Ethernet72 73,74,75,76 hundredGigE19
Ethernet76 77,78,79,80 hundredGigE20
Ethernet80 81,82,83,84 hundredGigE21
Ethernet84 85,86,87,88 hundredGigE22
Ethernet88 89,90,91,92 hundredGigE23
Ethernet92 93,94,95,96 hundredGigE24
Ethernet96 97,98,99,100 hundredGigE25
Ethernet100 101,102,103,104 hundredGigE26
Ethernet104 105,106,107,108 hundredGigE27
Ethernet108 109,110,111,112 hundredGigE28
Ethernet112 113,114,115,116 hundredGigE29
Ethernet116 117,118,119,120 hundredGigE30
Ethernet120 121,122,123,124 hundredGigE31
Ethernet124 125,126,127,128 hundredGigE32

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/etc/bcm/td3-as7726-32x100G.config.bcm

View File

@ -0,0 +1,491 @@
#polarity/lanemap is using TH2 style.
core_clock_frequency=1525
dpp_clock_ratio=2:3
oversubscribe_mode=1
pbmp_xport_xe=0x4888888888888888c2222222222222222
parity_enable=0
mem_cache_enable=0
l2_mem_entries=32768
l3_mem_entries=16384
fpem_mem_entries=131072
l2xmsg_mode=1
# Platform specfic
bcm_num_cos=8
bcm_stat_interval=2000000
cdma_timeout_usec=3000000
ipv6_lpm_128b_enable=0x1
l3_max_ecmp_mode=1
#l3_alpm_enable=2
lpm_scaling_enable=0
max_vp_lags=0
miim_intr_enable=0
module_64ports=1
schan_intr_enable=0
stable_size=0x5500000
tdma_timeout_usec=3000000
skip_L2_USER_ENTRY=0
bcm_tunnel_term_compatible_mode=1
phy_an_c73=1
dport_map_port_1=1
dport_map_port_5=2
dport_map_port_9=3
dport_map_port_13=4
dport_map_port_17=5
dport_map_port_21=6
dport_map_port_25=7
dport_map_port_29=8
dport_map_port_33=9
dport_map_port_37=10
dport_map_port_41=11
dport_map_port_45=12
dport_map_port_49=13
dport_map_port_53=14
dport_map_port_57=15
dport_map_port_61=16
dport_map_port_67=17
dport_map_port_71=18
dport_map_port_75=19
dport_map_port_79=20
dport_map_port_83=21
dport_map_port_87=22
dport_map_port_91=23
dport_map_port_95=24
dport_map_port_99=25
dport_map_port_103=26
dport_map_port_107=27
dport_map_port_111=28
dport_map_port_115=29
dport_map_port_119=30
dport_map_port_123=31
dport_map_port_127=32
dport_map_port_66=33
dport_map_port_130=34
portmap_1=1:100
portmap_5=5:100
portmap_9=9:100
portmap_13=13:100
portmap_17=17:100
portmap_21=21:100
portmap_25=25:100
portmap_29=29:100
portmap_33=33:100
portmap_37=37:100
portmap_41=41:100
portmap_45=45:100
portmap_49=49:100
portmap_53=53:100
portmap_57=57:100
portmap_61=61:100
portmap_67=65:100
portmap_71=69:100
portmap_75=73:100
portmap_79=77:100
portmap_83=81:100
portmap_87=85:100
portmap_91=89:100
portmap_95=93:100
portmap_99=97:100
portmap_103=101:100
portmap_107=105:100
portmap_111=109:100
portmap_115=113:100
portmap_119=117:100
portmap_123=121:100
portmap_127=125:100
portmap_66=129:10:m
portmap_130=128:10:m
portmap_65=130:10
portmap_131=131:10
phy_chain_rx_lane_map_physical{1.0}=0x1320
phy_chain_rx_lane_map_physical{5.0}=0x0123
phy_chain_rx_lane_map_physical{9.0}=0x0123
phy_chain_rx_lane_map_physical{13.0}=0x0123
phy_chain_rx_lane_map_physical{17.0}=0x0123
phy_chain_rx_lane_map_physical{21.0}=0x0123
phy_chain_rx_lane_map_physical{25.0}=0x0123
phy_chain_rx_lane_map_physical{29.0}=0x1230
phy_chain_rx_lane_map_physical{33.0}=0x0123
phy_chain_rx_lane_map_physical{37.0}=0x3210
phy_chain_rx_lane_map_physical{41.0}=0x0123
phy_chain_rx_lane_map_physical{45.0}=0x3210
phy_chain_rx_lane_map_physical{49.0}=0x0213
phy_chain_rx_lane_map_physical{53.0}=0x1320
phy_chain_rx_lane_map_physical{57.0}=0x0123
phy_chain_rx_lane_map_physical{61.0}=0x0123
phy_chain_rx_lane_map_physical{65.0}=0x3210
phy_chain_rx_lane_map_physical{69.0}=0x1032
phy_chain_rx_lane_map_physical{73.0}=0x3210
phy_chain_rx_lane_map_physical{77.0}=0x3201
phy_chain_rx_lane_map_physical{81.0}=0x3120
phy_chain_rx_lane_map_physical{85.0}=0x0123
phy_chain_rx_lane_map_physical{89.0}=0x3210
phy_chain_rx_lane_map_physical{93.0}=0x0123
phy_chain_rx_lane_map_physical{97.0}=0x3012
phy_chain_rx_lane_map_physical{101.0}=0x3210
phy_chain_rx_lane_map_physical{105.0}=0x3210
phy_chain_rx_lane_map_physical{109.0}=0x3210
phy_chain_rx_lane_map_physical{113.0}=0x3210
phy_chain_rx_lane_map_physical{117.0}=0x3210
phy_chain_rx_lane_map_physical{121.0}=0x3210
phy_chain_rx_lane_map_physical{125.0}=0x3210
phy_chain_tx_lane_map_physical{1.0}=0x3210
phy_chain_tx_lane_map_physical{5.0}=0x3210
phy_chain_tx_lane_map_physical{9.0}=0x3210
phy_chain_tx_lane_map_physical{13.0}=0x3210
phy_chain_tx_lane_map_physical{17.0}=0x3210
phy_chain_tx_lane_map_physical{21.0}=0x3210
phy_chain_tx_lane_map_physical{25.0}=0x3210
phy_chain_tx_lane_map_physical{29.0}=0x3120
phy_chain_tx_lane_map_physical{33.0}=0x0123
phy_chain_tx_lane_map_physical{37.0}=0x3210
phy_chain_tx_lane_map_physical{41.0}=0x0123
phy_chain_tx_lane_map_physical{45.0}=0x3210
phy_chain_tx_lane_map_physical{49.0}=0x2310
phy_chain_tx_lane_map_physical{53.0}=0x3210
phy_chain_tx_lane_map_physical{57.0}=0x1230
phy_chain_tx_lane_map_physical{61.0}=0x1230
phy_chain_tx_lane_map_physical{65.0}=0x1302
phy_chain_tx_lane_map_physical{69.0}=0x0123
phy_chain_tx_lane_map_physical{73.0}=0x2301
phy_chain_tx_lane_map_physical{77.0}=0x2013
phy_chain_tx_lane_map_physical{81.0}=0x3210
phy_chain_tx_lane_map_physical{85.0}=0x0123
phy_chain_tx_lane_map_physical{89.0}=0x3210
phy_chain_tx_lane_map_physical{93.0}=0x0123
phy_chain_tx_lane_map_physical{97.0}=0x0123
phy_chain_tx_lane_map_physical{101.0}=0x0123
phy_chain_tx_lane_map_physical{105.0}=0x0123
phy_chain_tx_lane_map_physical{109.0}=0x0123
phy_chain_tx_lane_map_physical{113.0}=0x0123
phy_chain_tx_lane_map_physical{117.0}=0x0123
phy_chain_tx_lane_map_physical{121.0}=0x0123
phy_chain_tx_lane_map_physical{125.0}=0x0123
phy_chain_rx_polarity_flip_physical{1.0}=0x0
phy_chain_rx_polarity_flip_physical{2.0}=0x0
phy_chain_rx_polarity_flip_physical{3.0}=0x1
phy_chain_rx_polarity_flip_physical{4.0}=0x1
phy_chain_rx_polarity_flip_physical{5.0}=0x0
phy_chain_rx_polarity_flip_physical{6.0}=0x1
phy_chain_rx_polarity_flip_physical{7.0}=0x0
phy_chain_rx_polarity_flip_physical{8.0}=0x1
phy_chain_rx_polarity_flip_physical{9.0}=0x1
phy_chain_rx_polarity_flip_physical{10.0}=0x1
phy_chain_rx_polarity_flip_physical{11.0}=0x0
phy_chain_rx_polarity_flip_physical{12.0}=0x1
phy_chain_rx_polarity_flip_physical{13.0}=0x1
phy_chain_rx_polarity_flip_physical{14.0}=0x0
phy_chain_rx_polarity_flip_physical{15.0}=0x1
phy_chain_rx_polarity_flip_physical{16.0}=0x0
phy_chain_rx_polarity_flip_physical{17.0}=0x0
phy_chain_rx_polarity_flip_physical{18.0}=0x1
phy_chain_rx_polarity_flip_physical{19.0}=0x0
phy_chain_rx_polarity_flip_physical{20.0}=0x1
phy_chain_rx_polarity_flip_physical{21.0}=0x1
phy_chain_rx_polarity_flip_physical{22.0}=0x0
phy_chain_rx_polarity_flip_physical{23.0}=0x1
phy_chain_rx_polarity_flip_physical{24.0}=0x0
phy_chain_rx_polarity_flip_physical{25.0}=0x1
phy_chain_rx_polarity_flip_physical{26.0}=0x0
phy_chain_rx_polarity_flip_physical{27.0}=0x0
phy_chain_rx_polarity_flip_physical{28.0}=0x1
phy_chain_rx_polarity_flip_physical{29.0}=0x0
phy_chain_rx_polarity_flip_physical{30.0}=0x1
phy_chain_rx_polarity_flip_physical{31.0}=0x0
phy_chain_rx_polarity_flip_physical{32.0}=0x1
phy_chain_rx_polarity_flip_physical{33.0}=0x1
phy_chain_rx_polarity_flip_physical{34.0}=0x0
phy_chain_rx_polarity_flip_physical{35.0}=0x1
phy_chain_rx_polarity_flip_physical{36.0}=0x0
phy_chain_rx_polarity_flip_physical{37.0}=0x0
phy_chain_rx_polarity_flip_physical{38.0}=0x1
phy_chain_rx_polarity_flip_physical{39.0}=0x0
phy_chain_rx_polarity_flip_physical{40.0}=0x1
phy_chain_rx_polarity_flip_physical{41.0}=0x1
phy_chain_rx_polarity_flip_physical{42.0}=0x0
phy_chain_rx_polarity_flip_physical{43.0}=0x1
phy_chain_rx_polarity_flip_physical{44.0}=0x0
phy_chain_rx_polarity_flip_physical{45.0}=0x0
phy_chain_rx_polarity_flip_physical{46.0}=0x1
phy_chain_rx_polarity_flip_physical{47.0}=0x0
phy_chain_rx_polarity_flip_physical{48.0}=0x1
phy_chain_rx_polarity_flip_physical{49.0}=0x1
phy_chain_rx_polarity_flip_physical{50.0}=0x1
phy_chain_rx_polarity_flip_physical{51.0}=0x0
phy_chain_rx_polarity_flip_physical{52.0}=0x0
phy_chain_rx_polarity_flip_physical{53.0}=0x0
phy_chain_rx_polarity_flip_physical{54.0}=0x0
phy_chain_rx_polarity_flip_physical{55.0}=0x0
phy_chain_rx_polarity_flip_physical{56.0}=0x1
phy_chain_rx_polarity_flip_physical{57.0}=0x0
phy_chain_rx_polarity_flip_physical{58.0}=0x1
phy_chain_rx_polarity_flip_physical{59.0}=0x0
phy_chain_rx_polarity_flip_physical{60.0}=0x1
phy_chain_rx_polarity_flip_physical{61.0}=0x1
phy_chain_rx_polarity_flip_physical{62.0}=0x1
phy_chain_rx_polarity_flip_physical{63.0}=0x1
phy_chain_rx_polarity_flip_physical{64.0}=0x1
phy_chain_rx_polarity_flip_physical{65.0}=0x0
phy_chain_rx_polarity_flip_physical{66.0}=0x1
phy_chain_rx_polarity_flip_physical{67.0}=0x0
phy_chain_rx_polarity_flip_physical{68.0}=0x1
phy_chain_rx_polarity_flip_physical{69.0}=0x1
phy_chain_rx_polarity_flip_physical{70.0}=0x0
phy_chain_rx_polarity_flip_physical{71.0}=0x1
phy_chain_rx_polarity_flip_physical{72.0}=0x0
phy_chain_rx_polarity_flip_physical{73.0}=0x0
phy_chain_rx_polarity_flip_physical{74.0}=0x1
phy_chain_rx_polarity_flip_physical{75.0}=0x0
phy_chain_rx_polarity_flip_physical{76.0}=0x1
phy_chain_rx_polarity_flip_physical{77.0}=0x0
phy_chain_rx_polarity_flip_physical{78.0}=0x1
phy_chain_rx_polarity_flip_physical{79.0}=0x0
phy_chain_rx_polarity_flip_physical{80.0}=0x0
phy_chain_rx_polarity_flip_physical{81.0}=0x0
phy_chain_rx_polarity_flip_physical{82.0}=0x0
phy_chain_rx_polarity_flip_physical{83.0}=0x1
phy_chain_rx_polarity_flip_physical{84.0}=0x1
phy_chain_rx_polarity_flip_physical{85.0}=0x1
phy_chain_rx_polarity_flip_physical{86.0}=0x0
phy_chain_rx_polarity_flip_physical{87.0}=0x1
phy_chain_rx_polarity_flip_physical{88.0}=0x0
phy_chain_rx_polarity_flip_physical{89.0}=0x0
phy_chain_rx_polarity_flip_physical{90.0}=0x1
phy_chain_rx_polarity_flip_physical{91.0}=0x0
phy_chain_rx_polarity_flip_physical{92.0}=0x1
phy_chain_rx_polarity_flip_physical{93.0}=0x0
phy_chain_rx_polarity_flip_physical{94.0}=0x1
phy_chain_rx_polarity_flip_physical{95.0}=0x0
phy_chain_rx_polarity_flip_physical{96.0}=0x1
phy_chain_rx_polarity_flip_physical{97.0}=0x0
phy_chain_rx_polarity_flip_physical{98.0}=0x0
phy_chain_rx_polarity_flip_physical{99.0}=0x0
phy_chain_rx_polarity_flip_physical{100.0}=0x0
phy_chain_rx_polarity_flip_physical{101.0}=0x0
phy_chain_rx_polarity_flip_physical{102.0}=0x1
phy_chain_rx_polarity_flip_physical{103.0}=0x1
phy_chain_rx_polarity_flip_physical{104.0}=0x0
phy_chain_rx_polarity_flip_physical{105.0}=0x1
phy_chain_rx_polarity_flip_physical{106.0}=0x0
phy_chain_rx_polarity_flip_physical{107.0}=0x1
phy_chain_rx_polarity_flip_physical{108.0}=0x0
phy_chain_rx_polarity_flip_physical{109.0}=0x0
phy_chain_rx_polarity_flip_physical{110.0}=0x1
phy_chain_rx_polarity_flip_physical{111.0}=0x0
phy_chain_rx_polarity_flip_physical{112.0}=0x1
phy_chain_rx_polarity_flip_physical{113.0}=0x1
phy_chain_rx_polarity_flip_physical{114.0}=0x0
phy_chain_rx_polarity_flip_physical{115.0}=0x1
phy_chain_rx_polarity_flip_physical{116.0}=0x0
phy_chain_rx_polarity_flip_physical{117.0}=0x0
phy_chain_rx_polarity_flip_physical{118.0}=0x1
phy_chain_rx_polarity_flip_physical{119.0}=0x0
phy_chain_rx_polarity_flip_physical{120.0}=0x1
phy_chain_rx_polarity_flip_physical{121.0}=0x1
phy_chain_rx_polarity_flip_physical{122.0}=0x0
phy_chain_rx_polarity_flip_physical{123.0}=0x1
phy_chain_rx_polarity_flip_physical{124.0}=0x0
phy_chain_rx_polarity_flip_physical{125.0}=0x0
phy_chain_rx_polarity_flip_physical{126.0}=0x1
phy_chain_rx_polarity_flip_physical{127.0}=0x0
phy_chain_rx_polarity_flip_physical{128.0}=0x0
phy_chain_tx_polarity_flip_physical{1.0}=0x0
phy_chain_tx_polarity_flip_physical{2.0}=0x1
phy_chain_tx_polarity_flip_physical{3.0}=0x0
phy_chain_tx_polarity_flip_physical{4.0}=0x1
phy_chain_tx_polarity_flip_physical{5.0}=0x0
phy_chain_tx_polarity_flip_physical{6.0}=0x1
phy_chain_tx_polarity_flip_physical{7.0}=0x0
phy_chain_tx_polarity_flip_physical{8.0}=0x1
phy_chain_tx_polarity_flip_physical{9.0}=0x1
phy_chain_tx_polarity_flip_physical{10.0}=0x0
phy_chain_tx_polarity_flip_physical{11.0}=0x1
phy_chain_tx_polarity_flip_physical{12.0}=0x0
phy_chain_tx_polarity_flip_physical{13.0}=0x1
phy_chain_tx_polarity_flip_physical{14.0}=0x0
phy_chain_tx_polarity_flip_physical{15.0}=0x1
phy_chain_tx_polarity_flip_physical{16.0}=0x0
phy_chain_tx_polarity_flip_physical{17.0}=0x1
phy_chain_tx_polarity_flip_physical{18.0}=0x0
phy_chain_tx_polarity_flip_physical{19.0}=0x1
phy_chain_tx_polarity_flip_physical{20.0}=0x0
phy_chain_tx_polarity_flip_physical{21.0}=0x1
phy_chain_tx_polarity_flip_physical{22.0}=0x0
phy_chain_tx_polarity_flip_physical{23.0}=0x1
phy_chain_tx_polarity_flip_physical{24.0}=0x0
phy_chain_tx_polarity_flip_physical{25.0}=0x1
phy_chain_tx_polarity_flip_physical{26.0}=0x0
phy_chain_tx_polarity_flip_physical{27.0}=0x1
phy_chain_tx_polarity_flip_physical{28.0}=0x0
phy_chain_tx_polarity_flip_physical{29.0}=0x1
phy_chain_tx_polarity_flip_physical{30.0}=0x1
phy_chain_tx_polarity_flip_physical{31.0}=0x0
phy_chain_tx_polarity_flip_physical{32.0}=0x0
phy_chain_tx_polarity_flip_physical{33.0}=0x1
phy_chain_tx_polarity_flip_physical{34.0}=0x0
phy_chain_tx_polarity_flip_physical{35.0}=0x1
phy_chain_tx_polarity_flip_physical{36.0}=0x0
phy_chain_tx_polarity_flip_physical{37.0}=0x1
phy_chain_tx_polarity_flip_physical{38.0}=0x0
phy_chain_tx_polarity_flip_physical{39.0}=0x1
phy_chain_tx_polarity_flip_physical{40.0}=0x0
phy_chain_tx_polarity_flip_physical{41.0}=0x1
phy_chain_tx_polarity_flip_physical{42.0}=0x0
phy_chain_tx_polarity_flip_physical{43.0}=0x1
phy_chain_tx_polarity_flip_physical{44.0}=0x0
phy_chain_tx_polarity_flip_physical{45.0}=0x1
phy_chain_tx_polarity_flip_physical{46.0}=0x0
phy_chain_tx_polarity_flip_physical{47.0}=0x1
phy_chain_tx_polarity_flip_physical{48.0}=0x0
phy_chain_tx_polarity_flip_physical{49.0}=0x1
phy_chain_tx_polarity_flip_physical{50.0}=0x0
phy_chain_tx_polarity_flip_physical{51.0}=0x0
phy_chain_tx_polarity_flip_physical{52.0}=0x1
phy_chain_tx_polarity_flip_physical{53.0}=0x0
phy_chain_tx_polarity_flip_physical{54.0}=0x1
phy_chain_tx_polarity_flip_physical{55.0}=0x0
phy_chain_tx_polarity_flip_physical{56.0}=0x1
phy_chain_tx_polarity_flip_physical{57.0}=0x1
phy_chain_tx_polarity_flip_physical{58.0}=0x1
phy_chain_tx_polarity_flip_physical{59.0}=0x1
phy_chain_tx_polarity_flip_physical{60.0}=0x0
phy_chain_tx_polarity_flip_physical{61.0}=0x1
phy_chain_tx_polarity_flip_physical{62.0}=0x0
phy_chain_tx_polarity_flip_physical{63.0}=0x1
phy_chain_tx_polarity_flip_physical{64.0}=0x0
phy_chain_tx_polarity_flip_physical{65.0}=0x1
phy_chain_tx_polarity_flip_physical{66.0}=0x1
phy_chain_tx_polarity_flip_physical{67.0}=0x0
phy_chain_tx_polarity_flip_physical{68.0}=0x0
phy_chain_tx_polarity_flip_physical{69.0}=0x0
phy_chain_tx_polarity_flip_physical{70.0}=0x1
phy_chain_tx_polarity_flip_physical{71.0}=0x0
phy_chain_tx_polarity_flip_physical{72.0}=0x1
phy_chain_tx_polarity_flip_physical{73.0}=0x1
phy_chain_tx_polarity_flip_physical{74.0}=0x1
phy_chain_tx_polarity_flip_physical{75.0}=0x0
phy_chain_tx_polarity_flip_physical{76.0}=0x1
phy_chain_tx_polarity_flip_physical{77.0}=0x1
phy_chain_tx_polarity_flip_physical{78.0}=0x1
phy_chain_tx_polarity_flip_physical{79.0}=0x0
phy_chain_tx_polarity_flip_physical{80.0}=0x0
phy_chain_tx_polarity_flip_physical{81.0}=0x1
phy_chain_tx_polarity_flip_physical{82.0}=0x0
phy_chain_tx_polarity_flip_physical{83.0}=0x1
phy_chain_tx_polarity_flip_physical{84.0}=0x0
phy_chain_tx_polarity_flip_physical{85.0}=0x1
phy_chain_tx_polarity_flip_physical{86.0}=0x0
phy_chain_tx_polarity_flip_physical{87.0}=0x1
phy_chain_tx_polarity_flip_physical{88.0}=0x0
phy_chain_tx_polarity_flip_physical{89.0}=0x1
phy_chain_tx_polarity_flip_physical{90.0}=0x0
phy_chain_tx_polarity_flip_physical{91.0}=0x1
phy_chain_tx_polarity_flip_physical{92.0}=0x0
phy_chain_tx_polarity_flip_physical{93.0}=0x1
phy_chain_tx_polarity_flip_physical{94.0}=0x0
phy_chain_tx_polarity_flip_physical{95.0}=0x1
phy_chain_tx_polarity_flip_physical{96.0}=0x0
phy_chain_tx_polarity_flip_physical{97.0}=0x1
phy_chain_tx_polarity_flip_physical{98.0}=0x0
phy_chain_tx_polarity_flip_physical{99.0}=0x1
phy_chain_tx_polarity_flip_physical{100.0}=0x0
phy_chain_tx_polarity_flip_physical{101.0}=0x1
phy_chain_tx_polarity_flip_physical{102.0}=0x0
phy_chain_tx_polarity_flip_physical{103.0}=0x1
phy_chain_tx_polarity_flip_physical{104.0}=0x0
phy_chain_tx_polarity_flip_physical{105.0}=0x1
phy_chain_tx_polarity_flip_physical{106.0}=0x0
phy_chain_tx_polarity_flip_physical{107.0}=0x1
phy_chain_tx_polarity_flip_physical{108.0}=0x0
phy_chain_tx_polarity_flip_physical{109.0}=0x1
phy_chain_tx_polarity_flip_physical{110.0}=0x0
phy_chain_tx_polarity_flip_physical{111.0}=0x1
phy_chain_tx_polarity_flip_physical{112.0}=0x0
phy_chain_tx_polarity_flip_physical{113.0}=0x1
phy_chain_tx_polarity_flip_physical{114.0}=0x0
phy_chain_tx_polarity_flip_physical{115.0}=0x1
phy_chain_tx_polarity_flip_physical{116.0}=0x0
phy_chain_tx_polarity_flip_physical{117.0}=0x1
phy_chain_tx_polarity_flip_physical{118.0}=0x0
phy_chain_tx_polarity_flip_physical{119.0}=0x1
phy_chain_tx_polarity_flip_physical{120.0}=0x0
phy_chain_tx_polarity_flip_physical{121.0}=0x1
phy_chain_tx_polarity_flip_physical{122.0}=0x0
phy_chain_tx_polarity_flip_physical{123.0}=0x1
phy_chain_tx_polarity_flip_physical{124.0}=0x0
phy_chain_tx_polarity_flip_physical{125.0}=0x0
phy_chain_tx_polarity_flip_physical{126.0}=0x1
phy_chain_tx_polarity_flip_physical{127.0}=0x0
phy_chain_tx_polarity_flip_physical{128.0}=0x0

View File

@ -0,0 +1 @@
Accton-AS7726-32X t1

View File

@ -0,0 +1,2 @@
CONSOLE_SPEED=115200
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pcie_aspm=off"

View File

@ -0,0 +1,24 @@
#!/usr/bin/env python
try:
import exceptions
import binascii
import time
import optparse
import warnings
import os
import sys
from sonic_eeprom import eeprom_base
from sonic_eeprom import eeprom_tlvinfo
import subprocess
except ImportError, e:
raise ImportError (str(e) + "- required module not found")
class board(eeprom_tlvinfo.TlvInfoDecoder):
_TLV_INFO_MAX_LEN = 256
def __init__(self, name, path, cpld_root, ro):
self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom"
#Two i2c buses might get flipped order, check them both.
if not os.path.exists(self.eeprom_path):
self.eeprom_path = "/sys/bus/i2c/devices/1-0056/eeprom"
super(board, self).__init__(self.eeprom_path, 0, '', True)

View File

@ -0,0 +1,61 @@
#!/usr/bin/env python
#############################################################################
# Accton
#
# Module contains an implementation of SONiC PSU Base API and
# provides the PSUs status which are available in the platform
#
#############################################################################
import os.path
try:
from sonic_psu.psu_base import PsuBase
except ImportError as e:
raise ImportError (str(e) + "- required module not found")
class PsuUtil(PsuBase):
"""Platform-specific PSUutil class"""
def __init__(self):
PsuBase.__init__(self)
self.psu_path = "/sys/bus/i2c/devices/"
self.psu_presence = "/psu_present"
self.psu_oper_status = "/psu_power_good"
self.psu_mapping = {
2: "49-0050",
1: "50-0053",
}
def get_num_psus(self):
return len(self.psu_mapping)
def get_psu_status(self, index):
if index is None:
return False
status = 0
node = self.psu_path + self.psu_mapping[index]+self.psu_oper_status
try:
with open(node, 'r') as power_status:
status = int(power_status.read())
except IOError:
return False
return status == 1
def get_psu_presence(self, index):
if index is None:
return False
status = 0
node = self.psu_path + self.psu_mapping[index] + self.psu_presence
try:
with open(node, 'r') as presence_status:
status = int(presence_status.read())
except IOError:
return False
return status == 1

View File

@ -0,0 +1,145 @@
# sfputil.py
#
# Platform-specific SFP transceiver interface for SONiC
#
try:
import time
from sonic_sfp.sfputilbase import SfpUtilBase
except ImportError as e:
raise ImportError("%s - required module not found" % str(e))
class SfpUtil(SfpUtilBase):
"""Platform-specific SfpUtil class"""
PORT_START = 0
PORT_END = 33
PORTS_IN_BLOCK = 34
BASE_OOM_PATH = "/sys/bus/i2c/devices/{0}-0050/"
BASE_CPLD_PATH = "/sys/bus/i2c/devices/11-0060/"
_port_to_is_present = {}
_port_to_lp_mode = {}
_port_to_eeprom_mapping = {}
_port_to_i2c_mapping = {
0: [1, 21],
1: [2, 22],
2: [3, 23],
3: [4, 24],
4: [5, 26],
5: [6, 25],
6: [7, 28],
7: [8, 27],
8: [9, 17],
9: [10, 18],
10: [11, 19],
11: [12, 20],
12: [13, 29],
13: [14, 30],
14: [15, 31],
15: [16, 32],
16: [17, 33],
17: [18, 34],
18: [19, 35],
19: [20, 36],
20: [21, 45],
21: [22, 46],
22: [23, 47],
23: [24, 48],
24: [25, 37],
25: [26, 38],
26: [27, 39],
27: [28, 40],
28: [29, 41],
29: [30, 42],
30: [31, 43],
31: [32, 44],
32: [33, 15],
33: [34, 16],
}
@property
def port_start(self):
return self.PORT_START
@property
def port_end(self):
return self.PORT_END
@property
def qsfp_ports(self):
return range(self.PORT_START, self.PORTS_IN_BLOCK + 1)
@property
def port_to_eeprom_mapping(self):
return self._port_to_eeprom_mapping
def __init__(self):
eeprom_path = self.BASE_OOM_PATH + "eeprom"
for x in range(0, self.port_end+1):
self.port_to_eeprom_mapping[x] = eeprom_path.format(
self._port_to_i2c_mapping[x][1]
)
SfpUtilBase.__init__(self)
def get_presence(self, port_num):
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
return False
present_path = self.BASE_CPLD_PATH + "module_present_" + str(port_num+1)
self.__port_to_is_present = present_path
try:
val_file = open(self.__port_to_is_present)
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
content = val_file.readline().rstrip()
val_file.close()
# content is a string, either "0" or "1"
if content == "1":
return True
return False
def get_low_power_mode(self, port_num):
raise NotImplementedError
def set_low_power_mode(self, port_num, lpmode):
raise NotImplementedError
def reset(self, port_num):
if port_num < self.port_start or port_num > self.port_end:
return False
mod_rst_path = self.BASE_CPLD_PATH + "module_reset_" + str(port_num+1)
self.__port_to_mod_rst = mod_rst_path
try:
reg_file = open(self.__port_to_mod_rst, 'r+')
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
reg_value = '1'
reg_file.write(reg_value)
reg_file.close()
return True
def get_transceiver_change_event(self):
"""
TODO: This function need to be implemented
when decide to support monitoring SFP(Xcvrd)
on this platform.
"""
raise NotImplementedError

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,129 @@
# name lanes alias index
Ethernet1 5,6 onehundredGigE1 0
Ethernet2 7,8 onehundredGigE2 1
Ethernet3 1,2 onehundredGigE3 2
Ethernet4 3,4 onehundredGigE4 3
Ethernet5 37,38 onehundredGigE5 4
Ethernet6 39,40 onehundredGigE6 5
Ethernet7 33,34 onehundredGigE7 6
Ethernet8 35,36 onehundredGigE8 7
Ethernet9 69,70 onehundredGigE9 8
Ethernet10 71,72 onehundredGigE10 9
Ethernet11 65,66 onehundredGigE11 10
Ethernet12 67,68 onehundredGigE12 11
Ethernet13 101,102 onehundredGigE13 12
Ethernet14 103,104 onehundredGigE14 13
Ethernet15 97,98 onehundredGigE15 14
Ethernet16 99,100 onehundredGigE16 15
Ethernet17 13,14 onehundredGigE17 16
Ethernet18 15,16 onehundredGigE18 17
Ethernet19 9,10 onehundredGigE19 18
Ethernet20 11,12 onehundredGigE20 19
Ethernet21 45,46 onehundredGigE21 20
Ethernet22 47,48 onehundredGigE22 21
Ethernet23 41,42 onehundredGigE23 22
Ethernet24 43,44 onehundredGigE24 23
Ethernet25 77,78 onehundredGigE25 24
Ethernet26 79,80 onehundredGigE26 25
Ethernet27 73,74 onehundredGigE27 26
Ethernet28 75,76 onehundredGigE28 27
Ethernet29 109,110 onehundredGigE29 28
Ethernet30 111,112 onehundredGigE30 29
Ethernet31 105,106 onehundredGigE31 30
Ethernet32 107,108 onehundredGigE32 31
Ethernet33 21,22 onehundredGigE33 32
Ethernet34 23,24 onehundredGigE34 33
Ethernet35 17,18 onehundredGigE35 34
Ethernet36 19,20 onehundredGigE36 35
Ethernet37 53,54 onehundredGigE37 36
Ethernet38 55,56 onehundredGigE38 37
Ethernet39 49,50 onehundredGigE39 38
Ethernet40 51,52 onehundredGigE40 39
Ethernet41 85,86 onehundredGigE41 40
Ethernet42 87,88 onehundredGigE42 41
Ethernet43 81,82 onehundredGigE43 42
Ethernet44 83,84 onehundredGigE44 43
Ethernet45 117,118 onehundredGigE45 44
Ethernet46 119,120 onehundredGigE46 45
Ethernet47 113,114 onehundredGigE47 46
Ethernet48 115,116 onehundredGigE48 47
Ethernet49 29,30 onehundredGigE49 48
Ethernet50 31,32 onehundredGigE50 49
Ethernet51 25,26 onehundredGigE51 50
Ethernet52 27,28 onehundredGigE52 51
Ethernet53 61,62 onehundredGigE53 52
Ethernet54 63,64 onehundredGigE54 53
Ethernet55 57,58 onehundredGigE55 54
Ethernet56 59,60 onehundredGigE56 55
Ethernet57 93,94 onehundredGigE57 56
Ethernet58 95,96 onehundredGigE58 57
Ethernet59 89,90 onehundredGigE59 58
Ethernet60 91,92 onehundredGigE60 59
Ethernet61 125,126 onehundredGigE61 60
Ethernet62 127,128 onehundredGigE62 61
Ethernet63 121,122 onehundredGigE63 62
Ethernet64 123,124 onehundredGigE64 63
Ethernet65 133,134 onehundredGigE65 64
Ethernet66 135,136 onehundredGigE66 65
Ethernet67 129,130 onehundredGigE67 66
Ethernet68 131,132 onehundredGigE68 67
Ethernet69 165,166 onehundredGigE69 68
Ethernet70 167,168 onehundredGigE70 69
Ethernet71 161,162 onehundredGigE71 70
Ethernet72 163,164 onehundredGigE72 71
Ethernet73 197,198 onehundredGigE73 72
Ethernet74 199,200 onehundredGigE74 73
Ethernet75 193,194 onehundredGigE75 74
Ethernet76 195,196 onehundredGigE76 75
Ethernet77 229,230 onehundredGigE77 76
Ethernet78 231,232 onehundredGigE78 77
Ethernet79 225,226 onehundredGigE79 78
Ethernet80 227,228 onehundredGigE80 79
Ethernet81 141,142 onehundredGigE81 80
Ethernet82 143,144 onehundredGigE82 81
Ethernet83 137,138 onehundredGigE83 82
Ethernet84 139,140 onehundredGigE84 83
Ethernet85 173,174 onehundredGigE85 84
Ethernet86 175,176 onehundredGigE86 85
Ethernet87 169,170 onehundredGigE87 86
Ethernet88 171,172 onehundredGigE88 87
Ethernet89 205,206 onehundredGigE89 88
Ethernet90 207,208 onehundredGigE90 89
Ethernet91 201,202 onehundredGigE91 90
Ethernet92 203,204 onehundredGigE92 91
Ethernet93 237,238 onehundredGigE93 92
Ethernet94 239,240 onehundredGigE94 93
Ethernet95 233,234 onehundredGigE95 94
Ethernet96 235,236 onehundredGigE96 95
Ethernet97 149,150 onehundredGigE97 96
Ethernet98 151,152 onehundredGigE98 97
Ethernet99 145,146 onehundredGigE99 98
Ethernet100 147,148 onehundredGigE100 99
Ethernet101 181,182 onehundredGigE101 100
Ethernet102 183,184 onehundredGigE102 101
Ethernet103 177,178 onehundredGigE103 102
Ethernet104 179,180 onehundredGigE104 103
Ethernet105 213,214 onehundredGigE105 104
Ethernet106 215,216 onehundredGigE106 105
Ethernet107 209,210 onehundredGigE107 106
Ethernet108 211,212 onehundredGigE108 107
Ethernet109 245,246 onehundredGigE109 108
Ethernet110 247,248 onehundredGigE110 109
Ethernet111 241,242 onehundredGigE111 110
Ethernet112 243,244 onehundredGigE112 111
Ethernet113 157,158 onehundredGigE113 112
Ethernet114 159,160 onehundredGigE114 113
Ethernet115 153,154 onehundredGigE115 114
Ethernet116 155,156 onehundredGigE116 115
Ethernet117 189,190 onehundredGigE117 116
Ethernet118 191,192 onehundredGigE118 117
Ethernet119 185,186 onehundredGigE119 118
Ethernet120 187,188 onehundredGigE120 119
Ethernet121 221,222 onehundredGigE121 120
Ethernet122 223,224 onehundredGigE122 121
Ethernet123 217,218 onehundredGigE123 122
Ethernet124 219,220 onehundredGigE124 123
Ethernet125 253,254 onehundredGigE125 124
Ethernet126 255,256 onehundredGigE126 125
Ethernet127 249,250 onehundredGigE127 126
Ethernet128 251,252 onehundredGigE128 127

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/config_16Q_FEC544_EVTB_100G.bcm

View File

@ -0,0 +1 @@
Accton-MINIPACK t1

View File

@ -0,0 +1,4 @@
CONSOLE_PORT=0x3f8
CONSOLE_DEV=0
CONSOLE_SPEED=57600
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="pcie_aspm=off"

View File

@ -0,0 +1 @@


View File

@ -0,0 +1,21 @@
#!/usr/bin/env python
try:
import exceptions
import binascii
import time
import optparse
import warnings
import os
import sys
from sonic_eeprom import eeprom_base
from sonic_eeprom import eeprom_tlvinfo
import subprocess
except ImportError, e:
raise ImportError (str(e) + "- required module not found")
class board(eeprom_tlvinfo.TlvInfoDecoder):
_TLV_INFO_MAX_LEN = 256
def __init__(self, name, path, cpld_root, ro):
self.eeprom_path = "/sys/bus/i2c/devices/1-0057/eeprom"
super(board, self).__init__(self.eeprom_path, 0x200, '', True)

View File

@ -0,0 +1,57 @@
#!/usr/bin/env python
#############################################################################
# Accton
#
# Module contains an implementation of SONiC PSU Base API and
# provides the PSUs status which are available in the platform
#
#############################################################################
import os.path
try:
from sonic_psu.psu_base import PsuBase
except ImportError as e:
raise ImportError (str(e) + "- required module not found")
class PsuUtil(PsuBase):
"""Platform-specific PSUutil class"""
def __init__(self):
PsuBase.__init__(self)
self.num = 4
self.psu_path = "/sys/bus/platform/devices/minipack_psensor/"
self.psu_voltage = "/in{0}_input"
def get_num_psus(self):
return self.num
def get_psu_status(self, index):
if index is None:
return False
status = 0
node = self.psu_path + self.psu_voltage.format(index*2-1)
try:
with open(node, 'r') as power_status:
status = int(power_status.read())
except IOError:
return False
return status > 0
def get_psu_presence(self, index):
if index is None:
return False
status = 0
node = self.psu_path + self.psu_voltage.format(index*2)
try:
with open(node, 'r') as presence_status:
status = int(presence_status.read())
except IOError:
return False
return status > 0

View File

@ -0,0 +1,94 @@
# sfputil.py
#
# Platform-specific SFP transceiver interface for SONiC
#
try:
import time
from sonic_sfp.sfputilbase import SfpUtilBase
except ImportError as e:
raise ImportError("%s - required module not found" % str(e))
class SfpUtil(SfpUtilBase):
"""Platform-specific SfpUtil class"""
PORT_START = 0
PORT_END = 128
BASE_OOM_PATH = "/sys/bus/i2c/devices/{0}-0050/"
_port_to_is_present = {}
_port_to_lp_mode = {}
_port_to_eeprom_mapping = {}
@property
def port_start(self):
return self.PORT_START
@property
def port_end(self):
return self.PORT_END
@property
def qsfp_ports(self):
return range(self.PORT_START, self.PORT_END + 1)
@property
def port_to_eeprom_mapping(self):
return self._port_to_eeprom_mapping
def sfp_map(self, index):
port = index + 1
base = ((port-1)/8*8) + 10
index = (port - 1) % 8
index = 7 - index
if (index%2):
index = index -1
else:
index = index +1
bus = base + index
return bus
def __init__(self):
eeprom_path = self.BASE_OOM_PATH + "eeprom"
for x in range(0, self.port_end+1):
bus = self.sfp_map(x)
self.port_to_eeprom_mapping[x] = eeprom_path.format(
bus)
SfpUtilBase.__init__(self)
def get_presence(self, port_num):
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
return False
eeprom_path = self.port_to_eeprom_mapping[port_num]
with open(eeprom_path) as f:
try:
content = f.read(1)
except IOError as e:
#Not print any error, for if any, treat as Not present.
return False
return True
def get_low_power_mode(self, port_num):
raise NotImplementedError
def set_low_power_mode(self, port_num, lpmode):
raise NotImplementedError
def reset(self, port_num):
raise NotImplementedError
def get_transceiver_change_event(self):
"""
TODO: This function need to be implemented
when decide to support monitoring SFP(Xcvrd)
on this platform.
"""
raise NotImplementedError

View File

@ -0,0 +1,3 @@
# libsensors configuration file
# ------------------------------------------------

View File

@ -0,0 +1,2 @@
{%- set default_topo = 't0' %}
{%- include 'buffers_config.j2' %}

View File

@ -0,0 +1,61 @@
{%- set default_cable = '5m' %}
{%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #}
{%- for port_idx in range(0,6) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(10,22) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(24,32) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4 + 2)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(6,10) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- endfor %}
{%- for port_idx in range(22,24) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx * 4)) %}{%- endif %}
{%- endfor %}
{%- endmacro %}
{%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": {
"ingress_lossless_pool": {
"size": "11213696",
"type": "ingress",
"mode": "dynamic",
"xoff": "3855488"
},
"egress_lossy_pool": {
"size": "9532224",
"type": "egress",
"mode": "dynamic"
},
"egress_lossless_pool": {
"size": "15982720",
"type": "egress",
"mode": "static"
}
},
"BUFFER_PROFILE": {
"ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]",
"size":"0",
"dynamic_th":"3"
},
"egress_lossless_profile": {
"pool":"[BUFFER_POOL|egress_lossless_pool]",
"size":"1518",
"static_th":"3995680"
},
"egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"1518",
"dynamic_th":"3"
}
},
{%- endmacro %}

View File

@ -0,0 +1,17 @@
# PG lossless profiles.
# speed cable size xon xoff threshold xon_offset
10000 5m 1248 2288 35776 -4 2288
25000 5m 1248 2288 53248 -4 2288
40000 5m 1248 2288 66560 -4 2288
50000 5m 1248 2288 79872 -4 2288
100000 5m 1248 2288 165568 -4 2288
10000 40m 1248 2288 37024 -4 2288
25000 40m 1248 2288 56160 -4 2288
40000 40m 1248 2288 71552 -4 2288
50000 40m 1248 2288 85696 -4 2288
100000 40m 1248 2288 177632 -4 2288
10000 300m 1248 2288 46176 -4 2288
25000 300m 1248 2288 79040 -4 2288
40000 300m 1248 2288 108160 -4 2288
50000 300m 1248 2288 131456 -4 2288
100000 300m 1248 2288 268736 -4 2288

View File

@ -0,0 +1,33 @@
# name lanes alias index speed
Ethernet0 33,34,35,36 Ethernet1/1 1 100000
Ethernet4 37,38,39,40 Ethernet2/1 2 100000
Ethernet8 41,42,43,44 Ethernet3/1 3 40000
Ethernet12 45,46,47,48 Ethernet4/1 4 40000
Ethernet16 49,50,51,52 Ethernet5/1 5 40000
Ethernet20 53,54,55,56 Ethernet6/1 6 40000
Ethernet24 57,58,59,60 Ethernet7/1 7 40000
Ethernet28 61,62,63,64 Ethernet8/1 8 40000
Ethernet32 65,66,67,68 Ethernet9/1 9 100000
Ethernet36 69,70,71,72 Ethernet10/1 10 100000
Ethernet40 73,74,75,76 Ethernet11/1 11 40000
Ethernet44 77,78,79,80 Ethernet12/1 12 40000
Ethernet48 81,82,83,84 Ethernet13/1 13 40000
Ethernet52 85,86,87,88 Ethernet14/1 14 40000
Ethernet56 89,90,91,92 Ethernet15/1 15 40000
Ethernet60 93,94,95,96 Ethernet16/1 16 40000
Ethernet64 97,98,99,100 Ethernet17/1 17 100000
Ethernet68 101,102,103,104 Ethernet18/1 18 100000
Ethernet72 105,106,107,108 Ethernet19/1 19 40000
Ethernet76 109,110,111,112 Ethernet20/1 20 40000
Ethernet80 113,114,115,116 Ethernet21/1 21 40000
Ethernet84 117,118,119,120 Ethernet22/1 22 40000
Ethernet88 121,122,123,124 Ethernet23/1 23 40000
Ethernet92 125,126,127,128 Ethernet24/1 24 40000
Ethernet96 1,2,3,4 Ethernet25/1 25 100000
Ethernet100 5,6,7,8 Ethernet26/1 26 100000
Ethernet104 9,10,11,12 Ethernet27/1 27 40000
Ethernet108 13,14,15,16 Ethernet28/1 28 40000
Ethernet112 17,18,19,20 Ethernet29/1 29 40000
Ethernet116 21,22,23,24 Ethernet30/1 30 40000
Ethernet120 25,26,27,28 Ethernet31/1 31 40000
Ethernet124 29,30,31,32 Ethernet32/1 32 40000

View File

@ -0,0 +1 @@
{%- include 'qos_config.j2' %}

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th-a7060-cx32s-8x100G+24x40G.config.bcm

View File

@ -0,0 +1,446 @@
# Arista 7060CX-32S
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2
bcm_num_cos=8
bcm_stat_flags=1
bcm_stat_jumbo=9236
cdma_timeout_usec=15000000
dma_desc_timeout_usec=15000000
higig2_hdr_mode=1
ipv6_lpm_128b_enable=1
l3_alpm_enable=2
lpm_scaling_enable=0
l2xmsg_mode=1
max_vp_lags=0
miim_intr_enable=0
module_64ports=1
os=unix
oversubscribe_mode=1
ptp_bs_fref.0=25000000
ptp_ts_pll_fref.0=25000000
robust_hash_disable_egress_vlan.0=1
robust_hash_disable_mpls.0=1
robust_hash_disable_vlan.0=1
tdma_timeout_usec.0=15000000
tslam_timeout_usec.0=15000000
pbmp_xport_xe.0=0x7ffffffffffffffffffffffffffffffffe
phy_an_allow_pll_change_hg.0=0
phy_an_c73_1.0=1
phy_an_c73_2.0=1
phy_an_c73_3.0=1
phy_an_c73_4.0=1
phy_an_c73_5.0=1
phy_an_c73_6.0=1
phy_an_c73_7.0=1
phy_an_c73_8.0=1
phy_an_c73_34.0=1
phy_an_c73_35.0=1
phy_an_c73_36.0=1
phy_an_c73_37.0=1
phy_an_c73_38.0=1
phy_an_c73_39.0=1
phy_an_c73_40.0=1
phy_an_c73_41.0=1
phy_an_c73_68.0=1
phy_an_c73_69.0=1
phy_an_c73_70.0=1
phy_an_c73_71.0=1
phy_an_c73_72.0=1
phy_an_c73_73.0=1
phy_an_c73_74.0=1
phy_an_c73_75.0=1
phy_an_c73_102.0=1
phy_an_c73_103.0=1
phy_an_c73_104.0=1
phy_an_c73_105.0=1
phy_an_c73_106.0=1
phy_an_c73_107.0=1
phy_an_c73_108.0=1
phy_an_c73_109.0=1
phy_an_fec_1.0=1
phy_an_fec_2.0=1
phy_an_fec_3.0=1
phy_an_fec_4.0=1
phy_an_fec_5.0=1
phy_an_fec_6.0=1
phy_an_fec_7.0=1
phy_an_fec_8.0=1
phy_an_fec_9.0=1
phy_an_fec_10.0=1
phy_an_fec_11.0=1
phy_an_fec_12.0=1
phy_an_fec_13.0=1
phy_an_fec_14.0=1
phy_an_fec_15.0=1
phy_an_fec_16.0=1
phy_an_fec_17.0=1
phy_an_fec_18.0=1
phy_an_fec_19.0=1
phy_an_fec_20.0=1
phy_an_fec_21.0=1
phy_an_fec_22.0=1
phy_an_fec_23.0=1
phy_an_fec_24.0=1
phy_an_fec_25.0=1
phy_an_fec_26.0=1
phy_an_fec_27.0=1
phy_an_fec_28.0=1
phy_an_fec_29.0=1
phy_an_fec_30.0=1
phy_an_fec_31.0=1
phy_an_fec_32.0=1
phy_an_fec_34.0=1
phy_an_fec_38.0=1
phy_an_fec_39.0=1
phy_an_fec_40.0=1
phy_an_fec_41.0=1
phy_an_fec_42.0=1
phy_an_fec_43.0=1
phy_an_fec_44.0=1
phy_an_fec_45.0=1
phy_an_fec_46.0=1
phy_an_fec_47.0=1
phy_an_fec_48.0=1
phy_an_fec_49.0=1
phy_an_fec_50.0=1
phy_an_fec_51.0=1
phy_an_fec_52.0=1
phy_an_fec_53.0=1
phy_an_fec_54.0=1
phy_an_fec_55.0=1
phy_an_fec_56.0=1
phy_an_fec_57.0=1
phy_an_fec_58.0=1
phy_an_fec_59.0=1
phy_an_fec_60.0=1
phy_an_fec_61.0=1
phy_an_fec_62.0=1
phy_an_fec_63.0=1
phy_an_fec_64.0=1
phy_an_fec_65.0=1
phy_an_fec_68.0=1
phy_an_fec_69.0=1
phy_an_fec_70.0=1
phy_an_fec_71.0=1
phy_an_fec_72.0=1
phy_an_fec_73.0=1
phy_an_fec_74.0=1
phy_an_fec_75.0=1
phy_an_fec_76.0=1
phy_an_fec_77.0=1
phy_an_fec_78.0=1
phy_an_fec_79.0=1
phy_an_fec_80.0=1
phy_an_fec_81.0=1
phy_an_fec_82.0=1
phy_an_fec_83.0=1
phy_an_fec_84.0=1
phy_an_fec_85.0=1
phy_an_fec_86.0=1
phy_an_fec_87.0=1
phy_an_fec_88.0=1
phy_an_fec_89.0=1
phy_an_fec_90.0=1
phy_an_fec_91.0=1
phy_an_fec_92.0=1
phy_an_fec_93.0=1
phy_an_fec_94.0=1
phy_an_fec_95.0=1
phy_an_fec_96.0=1
phy_an_fec_97.0=1
phy_an_fec_98.0=1
phy_an_fec_99.0=1
phy_an_fec_102.0=1
phy_an_fec_103.0=1
phy_an_fec_104.0=1
phy_an_fec_105.0=1
phy_an_fec_106.0=1
phy_an_fec_107.0=1
phy_an_fec_108.0=1
phy_an_fec_109.0=1
phy_an_fec_110.0=1
phy_an_fec_111.0=1
phy_an_fec_112.0=1
phy_an_fec_113.0=1
phy_an_fec_114.0=1
phy_an_fec_115.0=1
phy_an_fec_116.0=1
phy_an_fec_117.0=1
phy_an_fec_118.0=1
phy_an_fec_119.0=1
phy_an_fec_120.0=1
phy_an_fec_121.0=1
phy_an_fec_122.0=1
phy_an_fec_123.0=1
phy_an_fec_124.0=1
phy_an_fec_125.0=1
phy_an_fec_126.0=1
phy_an_fec_127.0=1
phy_an_fec_128.0=1
phy_an_fec_129.0=1
phy_an_fec_130.0=1
phy_an_fec_131.0=1
phy_an_fec_132.0=1
phy_an_fec_133.0=1
phy_xaui_rx_polarity_flip_1.0=0x1
phy_xaui_rx_polarity_flip_2.0=0x5
phy_xaui_rx_polarity_flip_3.0=0x1
phy_xaui_rx_polarity_flip_4.0=0x7
phy_xaui_rx_polarity_flip_5.0=0xc
phy_xaui_rx_polarity_flip_6.0=0xf
phy_xaui_rx_polarity_flip_7.0=0xc
phy_xaui_rx_polarity_flip_8.0=0xf
phy_xaui_rx_polarity_flip_34.0=0x0
phy_xaui_rx_polarity_flip_35.0=0x7
phy_xaui_rx_polarity_flip_36.0=0x4
phy_xaui_rx_polarity_flip_37.0=0x7
phy_xaui_rx_polarity_flip_38.0=0x4
phy_xaui_rx_polarity_flip_39.0=0x6
phy_xaui_rx_polarity_flip_40.0=0x1
phy_xaui_rx_polarity_flip_41.0=0x2
phy_xaui_rx_polarity_flip_68.0=0xd
phy_xaui_rx_polarity_flip_69.0=0x6
phy_xaui_rx_polarity_flip_70.0=0x1
phy_xaui_rx_polarity_flip_71.0=0x8
phy_xaui_rx_polarity_flip_72.0=0x7
phy_xaui_rx_polarity_flip_73.0=0xc
phy_xaui_rx_polarity_flip_74.0=0x7
phy_xaui_rx_polarity_flip_75.0=0x8
phy_xaui_rx_polarity_flip_102.0=0xb
phy_xaui_rx_polarity_flip_103.0=0xc
phy_xaui_rx_polarity_flip_104.0=0x3
phy_xaui_rx_polarity_flip_105.0=0xc
phy_xaui_rx_polarity_flip_106.0=0xb
phy_xaui_rx_polarity_flip_107.0=0x5
phy_xaui_rx_polarity_flip_108.0=0x1
phy_xaui_rx_polarity_flip_109.0=0x9
phy_xaui_tx_polarity_flip_1.0=0x0
phy_xaui_tx_polarity_flip_2.0=0xe
phy_xaui_tx_polarity_flip_3.0=0x2
phy_xaui_tx_polarity_flip_4.0=0xe
phy_xaui_tx_polarity_flip_5.0=0xc
phy_xaui_tx_polarity_flip_6.0=0xf
phy_xaui_tx_polarity_flip_7.0=0xc
phy_xaui_tx_polarity_flip_8.0=0xf
phy_xaui_tx_polarity_flip_34.0=0x0
phy_xaui_tx_polarity_flip_35.0=0xe
phy_xaui_tx_polarity_flip_36.0=0x0
phy_xaui_tx_polarity_flip_37.0=0xe
phy_xaui_tx_polarity_flip_38.0=0xf
phy_xaui_tx_polarity_flip_39.0=0xe
phy_xaui_tx_polarity_flip_40.0=0x6
phy_xaui_tx_polarity_flip_41.0=0xb
phy_xaui_tx_polarity_flip_68.0=0x9
phy_xaui_tx_polarity_flip_69.0=0xb
phy_xaui_tx_polarity_flip_70.0=0xd
phy_xaui_tx_polarity_flip_71.0=0x9
phy_xaui_tx_polarity_flip_72.0=0x6
phy_xaui_tx_polarity_flip_73.0=0xc
phy_xaui_tx_polarity_flip_74.0=0x9
phy_xaui_tx_polarity_flip_75.0=0x9
phy_xaui_tx_polarity_flip_102.0=0x6
phy_xaui_tx_polarity_flip_103.0=0xb
phy_xaui_tx_polarity_flip_104.0=0x6
phy_xaui_tx_polarity_flip_105.0=0xb
phy_xaui_tx_polarity_flip_106.0=0x6
phy_xaui_tx_polarity_flip_107.0=0xf
phy_xaui_tx_polarity_flip_108.0=0x6
phy_xaui_tx_polarity_flip_109.0=0xc
portmap_1.0=1:100
portmap_2.0=5:100
portmap_3.0=9:40
portmap_4.0=13:40
portmap_5.0=17:40
portmap_6.0=21:40
portmap_7.0=25:40
portmap_8.0=29:40
portmap_34.0=33:100
portmap_35.0=37:100
portmap_36.0=41:40
portmap_37.0=45:40
portmap_38.0=49:40
portmap_39.0=53:40
portmap_40.0=57:40
portmap_41.0=61:40
portmap_68.0=65:100
portmap_69.0=69:100
portmap_70.0=73:40
portmap_71.0=77:40
portmap_72.0=81:40
portmap_73.0=85:40
portmap_74.0=89:40
portmap_75.0=93:40
portmap_102.0=97:100
portmap_103.0=101:100
portmap_104.0=105:40
portmap_105.0=109:40
portmap_106.0=113:40
portmap_107.0=117:40
portmap_108.0=121:40
portmap_109.0=125:40
port_phy_addr_1.0=0xff
port_phy_addr_2.0=0xff
port_phy_addr_3.0=0xff
port_phy_addr_4.0=0xff
port_phy_addr_5.0=0xff
port_phy_addr_6.0=0xff
port_phy_addr_7.0=0xff
port_phy_addr_8.0=0xff
port_phy_addr_34.0=0xff
port_phy_addr_35.0=0xff
port_phy_addr_36.0=0xff
port_phy_addr_37.0=0xff
port_phy_addr_38.0=0xff
port_phy_addr_39.0=0xff
port_phy_addr_40.0=0xff
port_phy_addr_41.0=0xff
port_phy_addr_68.0=0xff
port_phy_addr_69.0=0xff
port_phy_addr_70.0=0xff
port_phy_addr_71.0=0xff
port_phy_addr_72.0=0xff
port_phy_addr_73.0=0xff
port_phy_addr_74.0=0xff
port_phy_addr_75.0=0xff
port_phy_addr_102.0=0xff
port_phy_addr_103.0=0xff
port_phy_addr_104.0=0xff
port_phy_addr_105.0=0xff
port_phy_addr_106.0=0xff
port_phy_addr_107.0=0xff
port_phy_addr_108.0=0xff
port_phy_addr_109.0=0xff
xgxs_rx_lane_map_1.0=0x3210
xgxs_rx_lane_map_2.0=0x3210
xgxs_rx_lane_map_3.0=0x3210
xgxs_rx_lane_map_4.0=0x3210
xgxs_rx_lane_map_5.0=0x0123
xgxs_rx_lane_map_6.0=0x2301
xgxs_rx_lane_map_7.0=0x0123
xgxs_rx_lane_map_8.0=0x2301
xgxs_rx_lane_map_34.0=0x0123
xgxs_rx_lane_map_35.0=0x0321
xgxs_rx_lane_map_36.0=0x0321
xgxs_rx_lane_map_37.0=0x0321
xgxs_rx_lane_map_38.0=0x1230
xgxs_rx_lane_map_39.0=0x2301
xgxs_rx_lane_map_40.0=0x1230
xgxs_rx_lane_map_41.0=0x2103
xgxs_rx_lane_map_68.0=0x1230
xgxs_rx_lane_map_69.0=0x2301
xgxs_rx_lane_map_70.0=0x1230
xgxs_rx_lane_map_71.0=0x2103
xgxs_rx_lane_map_72.0=0x1230
xgxs_rx_lane_map_73.0=0x2301
xgxs_rx_lane_map_74.0=0x1230
xgxs_rx_lane_map_75.0=0x2103
xgxs_rx_lane_map_102.0=0x3210
xgxs_rx_lane_map_103.0=0x3210
xgxs_rx_lane_map_104.0=0x3210
xgxs_rx_lane_map_105.0=0x3210
xgxs_rx_lane_map_106.0=0x3210
xgxs_rx_lane_map_107.0=0x3210
xgxs_rx_lane_map_108.0=0x3210
xgxs_rx_lane_map_109.0=0x3210
xgxs_tx_lane_map_1.0=0x0321
xgxs_tx_lane_map_2.0=0x2301
xgxs_tx_lane_map_3.0=0x0321
xgxs_tx_lane_map_4.0=0x2301
xgxs_tx_lane_map_5.0=0x0123
xgxs_tx_lane_map_6.0=0x0123
xgxs_tx_lane_map_7.0=0x0123
xgxs_tx_lane_map_8.0=0x0123
xgxs_tx_lane_map_34.0=0x2301
xgxs_tx_lane_map_35.0=0x0321
xgxs_tx_lane_map_36.0=0x2301
xgxs_tx_lane_map_37.0=0x0321
xgxs_tx_lane_map_38.0=0x0123
xgxs_tx_lane_map_39.0=0x1230
xgxs_tx_lane_map_40.0=0x2301
xgxs_tx_lane_map_41.0=0x1032
xgxs_tx_lane_map_68.0=0x0123
xgxs_tx_lane_map_69.0=0x1230
xgxs_tx_lane_map_70.0=0x2301
xgxs_tx_lane_map_71.0=0x1032
xgxs_tx_lane_map_72.0=0x0123
xgxs_tx_lane_map_73.0=0x1230
xgxs_tx_lane_map_74.0=0x2301
xgxs_tx_lane_map_75.0=0x1032
xgxs_tx_lane_map_102.0=0x0321
xgxs_tx_lane_map_103.0=0x2301
xgxs_tx_lane_map_104.0=0x0321
xgxs_tx_lane_map_105.0=0x2301
xgxs_tx_lane_map_106.0=0x0321
xgxs_tx_lane_map_107.0=0x2301
xgxs_tx_lane_map_108.0=0x0321
xgxs_tx_lane_map_109.0=0x2301
# tuning parameters for 25g serdes fiber
serdes_driver_current_1=0xa
serdes_preemphasis_1=0x284008
serdes_driver_current_2=0xa
serdes_preemphasis_2=0x284008
serdes_driver_current_3=0x8
serdes_preemphasis_3=0x185800
serdes_driver_current_4=0x8
serdes_preemphasis_4=0x185800
serdes_driver_current_5=0x8
serdes_preemphasis_5=0x185800
serdes_driver_current_6=0x8
serdes_preemphasis_6=0x185800
serdes_driver_current_7=0xf
serdes_preemphasis_7=0x205000
serdes_driver_current_8=0xf
serdes_preemphasis_8=0x205000
serdes_driver_current_34=0xd
serdes_preemphasis_34=0x303808
serdes_driver_current_35=0xd
serdes_preemphasis_35=0x303808
serdes_driver_current_36=0xf
serdes_preemphasis_36=0x205000
serdes_driver_current_37=0xf
serdes_preemphasis_37=0x205000
serdes_driver_current_38=0x8
serdes_preemphasis_38=0x185800
serdes_driver_current_39=0x8
serdes_preemphasis_39=0x185800
serdes_driver_current_40=0x8
serdes_preemphasis_40=0x185800
serdes_driver_current_41=0x8
serdes_preemphasis_41=0x185800
serdes_driver_current_68=0xf
serdes_preemphasis_68=0x373108
serdes_driver_current_69=0xf
serdes_preemphasis_69=0x373108
serdes_driver_current_70=0x4
serdes_preemphasis_70=0x145c00
serdes_driver_current_71=0x4
serdes_preemphasis_71=0x145c00
serdes_driver_current_72=0x4
serdes_preemphasis_72=0x145c00
serdes_driver_current_73=0x4
serdes_preemphasis_73=0x145c00
serdes_driver_current_74=0x4
serdes_preemphasis_74=0x145c00
serdes_driver_current_75=0x4
serdes_preemphasis_75=0x145c00
serdes_driver_current_102=0xa
serdes_preemphasis_102=0x284008
serdes_driver_current_103=0xa
serdes_preemphasis_103=0x284008
serdes_driver_current_104=0x4
serdes_preemphasis_104=0x145c00
serdes_driver_current_105=0x4
serdes_preemphasis_105=0x145c00
serdes_driver_current_106=0x4
serdes_preemphasis_106=0x145c00
serdes_driver_current_107=0x4
serdes_preemphasis_107=0x145c00
serdes_driver_current_108=0x4
serdes_preemphasis_108=0x145c00
serdes_driver_current_109=0x4
serdes_preemphasis_109=0x145c00
mmu_init_config="MSFT-TH-Tier1"

View File

@ -0,0 +1,105 @@
# name lanes alias index speed
Ethernet0 33 Ethernet1/1 1 25000
Ethernet1 34 Ethernet1/2 1 25000
Ethernet2 35 Ethernet1/3 1 25000
Ethernet3 36 Ethernet1/4 1 25000
Ethernet4 37 Ethernet2/1 2 25000
Ethernet5 38 Ethernet2/2 2 25000
Ethernet6 39 Ethernet2/3 2 25000
Ethernet7 40 Ethernet2/4 2 25000
Ethernet8 41 Ethernet3/1 3 25000
Ethernet9 42 Ethernet3/2 3 25000
Ethernet10 43 Ethernet3/3 3 25000
Ethernet11 44 Ethernet3/4 3 25000
Ethernet12 45 Ethernet4/1 4 25000
Ethernet13 46 Ethernet4/2 4 25000
Ethernet14 47 Ethernet4/3 4 25000
Ethernet15 48 Ethernet4/4 4 25000
Ethernet16 49 Ethernet5/1 5 25000
Ethernet17 50 Ethernet5/2 5 25000
Ethernet18 51 Ethernet5/3 5 25000
Ethernet19 52 Ethernet5/4 5 25000
Ethernet20 53 Ethernet6/1 6 25000
Ethernet21 54 Ethernet6/2 6 25000
Ethernet22 55 Ethernet6/3 6 25000
Ethernet23 56 Ethernet6/4 6 25000
Ethernet24 57,58,59,60 Ethernet7/1 7 100000
Ethernet28 61,62,63,64 Ethernet8/1 8 100000
Ethernet32 65,66,67,68 Ethernet9/1 9 100000
Ethernet36 69,70,71,72 Ethernet10/1 10 100000
Ethernet40 73 Ethernet11/1 11 25000
Ethernet41 74 Ethernet11/2 11 25000
Ethernet42 75 Ethernet11/3 11 25000
Ethernet43 76 Ethernet11/4 11 25000
Ethernet44 77 Ethernet12/1 12 25000
Ethernet45 78 Ethernet12/2 12 25000
Ethernet46 79 Ethernet12/3 12 25000
Ethernet47 80 Ethernet12/4 12 25000
Ethernet48 81 Ethernet13/1 13 25000
Ethernet49 82 Ethernet13/2 13 25000
Ethernet50 83 Ethernet13/3 13 25000
Ethernet51 84 Ethernet13/4 13 25000
Ethernet52 85 Ethernet14/1 14 25000
Ethernet53 86 Ethernet14/2 14 25000
Ethernet54 87 Ethernet14/3 14 25000
Ethernet55 88 Ethernet14/4 14 25000
Ethernet56 89 Ethernet15/1 15 25000
Ethernet57 90 Ethernet15/2 15 25000
Ethernet58 91 Ethernet15/3 15 25000
Ethernet59 92 Ethernet15/4 15 25000
Ethernet60 93 Ethernet16/1 16 25000
Ethernet61 94 Ethernet16/2 16 25000
Ethernet62 95 Ethernet16/3 16 25000
Ethernet63 96 Ethernet16/4 16 25000
Ethernet64 97 Ethernet17/1 17 25000
Ethernet65 98 Ethernet17/2 17 25000
Ethernet66 99 Ethernet17/3 17 25000
Ethernet67 100 Ethernet17/4 17 25000
Ethernet68 101 Ethernet18/1 18 25000
Ethernet69 102 Ethernet18/2 18 25000
Ethernet70 103 Ethernet18/3 18 25000
Ethernet71 104 Ethernet18/4 18 25000
Ethernet72 105 Ethernet19/1 19 25000
Ethernet73 106 Ethernet19/2 19 25000
Ethernet74 107 Ethernet19/3 19 25000
Ethernet75 108 Ethernet19/4 19 25000
Ethernet76 109 Ethernet20/1 20 25000
Ethernet77 110 Ethernet20/2 20 25000
Ethernet78 111 Ethernet20/3 20 25000
Ethernet79 112 Ethernet20/4 20 25000
Ethernet80 113 Ethernet21/1 21 25000
Ethernet81 114 Ethernet21/2 21 25000
Ethernet82 115 Ethernet21/3 21 25000
Ethernet83 116 Ethernet21/4 21 25000
Ethernet84 117 Ethernet22/1 22 25000
Ethernet85 118 Ethernet22/2 22 25000
Ethernet86 119 Ethernet22/3 22 25000
Ethernet87 120 Ethernet22/4 22 25000
Ethernet88 121,122,123,124 Ethernet23/1 23 100000
Ethernet92 125,126,127,128 Ethernet24/1 24 100000
Ethernet96 1,2,3,4 Ethernet25/1 25 100000
Ethernet100 5,6,7,8 Ethernet26/1 26 100000
Ethernet104 9 Ethernet27/1 27 25000
Ethernet105 10 Ethernet27/2 27 25000
Ethernet106 11 Ethernet27/3 27 25000
Ethernet107 12 Ethernet27/4 27 25000
Ethernet108 13 Ethernet28/1 28 25000
Ethernet109 14 Ethernet28/2 28 25000
Ethernet110 15 Ethernet28/3 28 25000
Ethernet111 16 Ethernet28/4 28 25000
Ethernet112 17 Ethernet29/1 29 25000
Ethernet113 18 Ethernet29/2 29 25000
Ethernet114 19 Ethernet29/3 29 25000
Ethernet115 20 Ethernet29/4 29 25000
Ethernet116 21 Ethernet30/1 30 25000
Ethernet117 22 Ethernet30/2 30 25000
Ethernet118 23 Ethernet30/3 30 25000
Ethernet119 24 Ethernet30/4 30 25000
Ethernet120 25 Ethernet31/1 31 25000
Ethernet121 26 Ethernet31/2 31 25000
Ethernet122 27 Ethernet31/3 31 25000
Ethernet123 28 Ethernet31/4 31 25000
Ethernet124 29 Ethernet32/1 32 25000
Ethernet125 30 Ethernet32/2 32 25000
Ethernet126 31 Ethernet32/3 32 25000
Ethernet127 32 Ethernet32/4 32 25000

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th-a7060-cx32s-8x100G+96x25G.config.bcm

View File

@ -0,0 +1,780 @@
# Arista 7060CX-32S
phy_an_allow_pll_change=1
arl_clean_timeout_usec=15000000
asf_mem_profile=2
bcm_num_cos=8
bcm_stat_flags=1
bcm_stat_jumbo=9236
cdma_timeout_usec=15000000
dma_desc_timeout_usec=15000000
higig2_hdr_mode=1
ipv6_lpm_128b_enable=1
l3_alpm_enable=2
lpm_scaling_enable=0
l2xmsg_mode=1
max_vp_lags=0
miim_intr_enable=0
module_64ports=1
os=unix
oversubscribe_mode=1
ptp_bs_fref.0=25000000
ptp_ts_pll_fref.0=25000000
robust_hash_disable_egress_vlan.0=1
robust_hash_disable_mpls.0=1
robust_hash_disable_vlan.0=1
tdma_timeout_usec.0=15000000
tslam_timeout_usec.0=15000000
pbmp_xport_xe=0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe
phy_an_allow_pll_change_hg.0=0
dport_map_direct=1
phy_an_c73=1
phy_an_fec_1.0=1
phy_an_fec_2.0=1
phy_an_fec_3.0=1
phy_an_fec_4.0=1
phy_an_fec_5.0=1
phy_an_fec_6.0=1
phy_an_fec_7.0=1
phy_an_fec_8.0=1
phy_an_fec_9.0=1
phy_an_fec_10.0=1
phy_an_fec_11.0=1
phy_an_fec_12.0=1
phy_an_fec_13.0=1
phy_an_fec_14.0=1
phy_an_fec_15.0=1
phy_an_fec_16.0=1
phy_an_fec_17.0=1
phy_an_fec_18.0=1
phy_an_fec_19.0=1
phy_an_fec_20.0=1
phy_an_fec_21.0=1
phy_an_fec_22.0=1
phy_an_fec_23.0=1
phy_an_fec_24.0=1
phy_an_fec_25.0=1
phy_an_fec_26.0=1
phy_an_fec_34.0=1
phy_an_fec_35.0=1
phy_an_fec_36.0=1
phy_an_fec_37.0=1
phy_an_fec_38.0=1
phy_an_fec_39.0=1
phy_an_fec_40.0=1
phy_an_fec_41.0=1
phy_an_fec_42.0=1
phy_an_fec_43.0=1
phy_an_fec_44.0=1
phy_an_fec_45.0=1
phy_an_fec_46.0=1
phy_an_fec_47.0=1
phy_an_fec_48.0=1
phy_an_fec_49.0=1
phy_an_fec_50.0=1
phy_an_fec_51.0=1
phy_an_fec_52.0=1
phy_an_fec_53.0=1
phy_an_fec_54.0=1
phy_an_fec_55.0=1
phy_an_fec_56.0=1
phy_an_fec_57.0=1
phy_an_fec_58.0=1
phy_an_fec_59.0=1
phy_an_fec_68.0=1
phy_an_fec_69.0=1
phy_an_fec_70.0=1
phy_an_fec_71.0=1
phy_an_fec_72.0=1
phy_an_fec_73.0=1
phy_an_fec_74.0=1
phy_an_fec_75.0=1
phy_an_fec_76.0=1
phy_an_fec_77.0=1
phy_an_fec_78.0=1
phy_an_fec_79.0=1
phy_an_fec_80.0=1
phy_an_fec_81.0=1
phy_an_fec_82.0=1
phy_an_fec_83.0=1
phy_an_fec_84.0=1
phy_an_fec_85.0=1
phy_an_fec_86.0=1
phy_an_fec_87.0=1
phy_an_fec_88.0=1
phy_an_fec_89.0=1
phy_an_fec_90.0=1
phy_an_fec_91.0=1
phy_an_fec_92.0=1
phy_an_fec_93.0=1
phy_an_fec_102.0=1
phy_an_fec_103.0=1
phy_an_fec_104.0=1
phy_an_fec_105.0=1
phy_an_fec_106.0=1
phy_an_fec_107.0=1
phy_an_fec_108.0=1
phy_an_fec_109.0=1
phy_an_fec_110.0=1
phy_an_fec_111.0=1
phy_an_fec_112.0=1
phy_an_fec_113.0=1
phy_an_fec_114.0=1
phy_an_fec_115.0=1
phy_an_fec_116.0=1
phy_an_fec_117.0=1
phy_an_fec_118.0=1
phy_an_fec_119.0=1
phy_an_fec_120.0=1
phy_an_fec_121.0=1
phy_an_fec_122.0=1
phy_an_fec_123.0=1
phy_an_fec_124.0=1
phy_an_fec_125.0=1
phy_an_fec_126.0=1
phy_an_fec_127.0=1
# Q1
portmap_1.0=1:100
portmap_2.0=5:100
portmap_3.0=9:25
portmap_4.0=10:25
portmap_5.0=11:25
portmap_6.0=12:25
portmap_7.0=13:25
portmap_8.0=14:25
portmap_9.0=15:25
portmap_10.0=16:25
portmap_11.0=17:25
portmap_12.0=18:25
portmap_13.0=19:25
portmap_14.0=20:25
portmap_15.0=21:25
portmap_16.0=22:25
portmap_17.0=23:25
portmap_18.0=24:25
portmap_19.0=25:25
portmap_20.0=26:25
portmap_21.0=27:25
portmap_22.0=28:25
portmap_23.0=29:25
portmap_24.0=30:25
portmap_25.0=31:25
portmap_26.0=32:25
phy_xaui_rx_polarity_flip_1.0=0x1
phy_xaui_rx_polarity_flip_2.0=0x5
phy_xaui_rx_polarity_flip_3.0=0x1
phy_xaui_rx_polarity_flip_4.0=0x0
phy_xaui_rx_polarity_flip_5.0=0x0
phy_xaui_rx_polarity_flip_6.0=0x0
phy_xaui_rx_polarity_flip_7.0=0x1
phy_xaui_rx_polarity_flip_8.0=0x1
phy_xaui_rx_polarity_flip_9.0=0x1
phy_xaui_rx_polarity_flip_10.0=0x0
phy_xaui_rx_polarity_flip_11.0=0x0
phy_xaui_rx_polarity_flip_12.0=0x0
phy_xaui_rx_polarity_flip_13.0=0x1
phy_xaui_rx_polarity_flip_14.0=0x1
phy_xaui_rx_polarity_flip_15.0=0x1
phy_xaui_rx_polarity_flip_16.0=0x1
phy_xaui_rx_polarity_flip_17.0=0x1
phy_xaui_rx_polarity_flip_18.0=0x1
phy_xaui_rx_polarity_flip_19.0=0x0
phy_xaui_rx_polarity_flip_20.0=0x0
phy_xaui_rx_polarity_flip_21.0=0x1
phy_xaui_rx_polarity_flip_22.0=0x1
phy_xaui_rx_polarity_flip_23.0=0x1
phy_xaui_rx_polarity_flip_24.0=0x1
phy_xaui_rx_polarity_flip_25.0=0x1
phy_xaui_rx_polarity_flip_26.0=0x1
phy_xaui_tx_polarity_flip_1.0=0x0
phy_xaui_tx_polarity_flip_2.0=0xe
phy_xaui_tx_polarity_flip_3.0=0x0
phy_xaui_tx_polarity_flip_4.0=0x1
phy_xaui_tx_polarity_flip_5.0=0x0
phy_xaui_tx_polarity_flip_6.0=0x0
phy_xaui_tx_polarity_flip_7.0=0x0
phy_xaui_tx_polarity_flip_8.0=0x1
phy_xaui_tx_polarity_flip_9.0=0x1
phy_xaui_tx_polarity_flip_10.0=0x1
phy_xaui_tx_polarity_flip_11.0=0x0
phy_xaui_tx_polarity_flip_12.0=0x0
phy_xaui_tx_polarity_flip_13.0=0x1
phy_xaui_tx_polarity_flip_14.0=0x1
phy_xaui_tx_polarity_flip_15.0=0x1
phy_xaui_tx_polarity_flip_16.0=0x1
phy_xaui_tx_polarity_flip_17.0=0x1
phy_xaui_tx_polarity_flip_18.0=0x1
phy_xaui_tx_polarity_flip_19.0=0x0
phy_xaui_tx_polarity_flip_20.0=0x0
phy_xaui_tx_polarity_flip_21.0=0x1
phy_xaui_tx_polarity_flip_22.0=0x1
phy_xaui_tx_polarity_flip_23.0=0x1
phy_xaui_tx_polarity_flip_24.0=0x1
phy_xaui_tx_polarity_flip_25.0=0x1
phy_xaui_tx_polarity_flip_26.0=0x1
xgxs_rx_lane_map_1.0=0x3210
xgxs_rx_lane_map_2.0=0x3210
xgxs_rx_lane_map_3.0=0x3210
xgxs_rx_lane_map_5.0=0x3210
xgxs_rx_lane_map_7.0=0x3210
xgxs_rx_lane_map_9.0=0x3210
xgxs_rx_lane_map_11.0=0x0123
xgxs_rx_lane_map_13.0=0x0123
xgxs_rx_lane_map_15.0=0x2301
xgxs_rx_lane_map_17.0=0x2301
xgxs_rx_lane_map_19.0=0x0123
xgxs_rx_lane_map_21.0=0x0123
xgxs_rx_lane_map_23.0=0x2301
xgxs_rx_lane_map_25.0=0x2301
xgxs_tx_lane_map_1.0=0x0321
xgxs_tx_lane_map_2.0=0x2301
xgxs_tx_lane_map_3.0=0x0321
xgxs_tx_lane_map_5.0=0x0321
xgxs_tx_lane_map_7.0=0x2301
xgxs_tx_lane_map_9.0=0x2301
xgxs_tx_lane_map_11.0=0x0123
xgxs_tx_lane_map_13.0=0x0123
xgxs_tx_lane_map_15.0=0x0123
xgxs_tx_lane_map_17.0=0x0123
xgxs_tx_lane_map_19.0=0x0123
xgxs_tx_lane_map_21.0=0x0123
xgxs_tx_lane_map_23.0=0x0123
xgxs_tx_lane_map_25.0=0x0123
# Q2
portmap_34.0=33:25
portmap_35.0=34:25
portmap_36.0=35:25
portmap_37.0=36:25
portmap_38.0=37:25
portmap_39.0=38:25
portmap_40.0=39:25
portmap_41.0=40:25
portmap_42.0=41:25
portmap_43.0=42:25
portmap_44.0=43:25
portmap_45.0=44:25
portmap_46.0=45:25
portmap_47.0=46:25
portmap_48.0=47:25
portmap_49.0=48:25
portmap_50.0=49:25
portmap_51.0=50:25
portmap_52.0=51:25
portmap_53.0=52:25
portmap_54.0=53:25
portmap_55.0=54:25
portmap_56.0=55:25
portmap_57.0=56:25
portmap_58.0=57:100
portmap_59.0=61:100
phy_xaui_rx_polarity_flip_34.0=0x0
phy_xaui_rx_polarity_flip_35.0=0x0
phy_xaui_rx_polarity_flip_36.0=0x0
phy_xaui_rx_polarity_flip_37.0=0x0
phy_xaui_rx_polarity_flip_38.0=0x1
phy_xaui_rx_polarity_flip_39.0=0x1
phy_xaui_rx_polarity_flip_40.0=0x1
phy_xaui_rx_polarity_flip_41.0=0x0
phy_xaui_rx_polarity_flip_42.0=0x0
phy_xaui_rx_polarity_flip_43.0=0x0
phy_xaui_rx_polarity_flip_44.0=0x1
phy_xaui_rx_polarity_flip_45.0=0x0
phy_xaui_rx_polarity_flip_46.0=0x1
phy_xaui_rx_polarity_flip_47.0=0x1
phy_xaui_rx_polarity_flip_48.0=0x1
phy_xaui_rx_polarity_flip_49.0=0x0
phy_xaui_rx_polarity_flip_50.0=0x0
phy_xaui_rx_polarity_flip_51.0=0x0
phy_xaui_rx_polarity_flip_52.0=0x1
phy_xaui_rx_polarity_flip_53.0=0x0
phy_xaui_rx_polarity_flip_54.0=0x0
phy_xaui_rx_polarity_flip_55.0=0x1
phy_xaui_rx_polarity_flip_56.0=0x1
phy_xaui_rx_polarity_flip_57.0=0x0
phy_xaui_rx_polarity_flip_58.0=0x1
phy_xaui_rx_polarity_flip_59.0=0x2
phy_xaui_tx_polarity_flip_34.0=0x0
phy_xaui_tx_polarity_flip_34.0=0x0
phy_xaui_tx_polarity_flip_36.0=0x0
phy_xaui_tx_polarity_flip_36.0=0x0
phy_xaui_tx_polarity_flip_38.0=0x0
phy_xaui_tx_polarity_flip_39.0=0x1
phy_xaui_tx_polarity_flip_40.0=0x1
phy_xaui_tx_polarity_flip_41.0=0x1
phy_xaui_tx_polarity_flip_42.0=0x0
phy_xaui_tx_polarity_flip_43.0=0x0
phy_xaui_tx_polarity_flip_44.0=0x0
phy_xaui_tx_polarity_flip_45.0=0x0
phy_xaui_tx_polarity_flip_46.0=0x0
phy_xaui_tx_polarity_flip_47.0=0x1
phy_xaui_tx_polarity_flip_48.0=0x1
phy_xaui_tx_polarity_flip_49.0=0x1
phy_xaui_tx_polarity_flip_50.0=0x1
phy_xaui_tx_polarity_flip_51.0=0x1
phy_xaui_tx_polarity_flip_52.0=0x1
phy_xaui_tx_polarity_flip_53.0=0x1
phy_xaui_tx_polarity_flip_54.0=0x0
phy_xaui_tx_polarity_flip_55.0=0x1
phy_xaui_tx_polarity_flip_56.0=0x1
phy_xaui_tx_polarity_flip_57.0=0x1
phy_xaui_tx_polarity_flip_58.0=0x6
phy_xaui_tx_polarity_flip_59.0=0xb
xgxs_rx_lane_map_34.0=0x0123
xgxs_rx_lane_map_36.0=0x0123
xgxs_rx_lane_map_38.0=0x0321
xgxs_rx_lane_map_40.0=0x0321
xgxs_rx_lane_map_42.0=0x0321
xgxs_rx_lane_map_44.0=0x0321
xgxs_rx_lane_map_46.0=0x0321
xgxs_rx_lane_map_48.0=0x0321
xgxs_rx_lane_map_50.0=0x1230
xgxs_rx_lane_map_52.0=0x1230
xgxs_rx_lane_map_54.0=0x2301
xgxs_rx_lane_map_56.0=0x2301
xgxs_rx_lane_map_58.0=0x1230
xgxs_rx_lane_map_59.0=0x2103
xgxs_tx_lane_map_34.0=0x2301
xgxs_tx_lane_map_36.0=0x2301
xgxs_tx_lane_map_38.0=0x0321
xgxs_tx_lane_map_40.0=0x0321
xgxs_tx_lane_map_42.0=0x2301
xgxs_tx_lane_map_44.0=0x2301
xgxs_tx_lane_map_46.0=0x0321
xgxs_tx_lane_map_48.0=0x0321
xgxs_tx_lane_map_50.0=0x0123
xgxs_tx_lane_map_52.0=0x0123
xgxs_tx_lane_map_54.0=0x1230
xgxs_tx_lane_map_56.0=0x1230
xgxs_tx_lane_map_58.0=0x2301
xgxs_tx_lane_map_59.0=0x1032
# Q3
portmap_68.0=65:100
portmap_69.0=69:100
portmap_70.0=73:25
portmap_71.0=74:25
portmap_72.0=75:25
portmap_73.0=76:25
portmap_74.0=77:25
portmap_75.0=78:25
portmap_76.0=79:25
portmap_77.0=80:25
portmap_78.0=81:25
portmap_79.0=82:25
portmap_80.0=83:25
portmap_81.0=84:25
portmap_82.0=85:25
portmap_83.0=86:25
portmap_84.0=87:25
portmap_85.0=88:25
portmap_86.0=89:25
portmap_87.0=90:25
portmap_88.0=91:25
portmap_89.0=92:25
portmap_90.0=93:25
portmap_91.0=94:25
portmap_92.0=95:25
portmap_93.0=96:25
phy_xaui_rx_polarity_flip_68.0=0xd
phy_xaui_rx_polarity_flip_69.0=0x6
phy_xaui_rx_polarity_flip_70.0=0x1
phy_xaui_rx_polarity_flip_71.0=0x0
phy_xaui_rx_polarity_flip_72.0=0x0
phy_xaui_rx_polarity_flip_73.0=0x0
phy_xaui_rx_polarity_flip_74.0=0x0
phy_xaui_rx_polarity_flip_75.0=0x0
phy_xaui_rx_polarity_flip_76.0=0x0
phy_xaui_rx_polarity_flip_77.0=0x1
phy_xaui_rx_polarity_flip_78.0=0x1
phy_xaui_rx_polarity_flip_79.0=0x1
phy_xaui_rx_polarity_flip_80.0=0x1
phy_xaui_rx_polarity_flip_81.0=0x0
phy_xaui_rx_polarity_flip_82.0=0x0
phy_xaui_rx_polarity_flip_83.0=0x0
phy_xaui_rx_polarity_flip_84.0=0x1
phy_xaui_rx_polarity_flip_85.0=0x1
phy_xaui_rx_polarity_flip_86.0=0x1
phy_xaui_rx_polarity_flip_87.0=0x1
phy_xaui_rx_polarity_flip_88.0=0x1
phy_xaui_rx_polarity_flip_89.0=0x0
phy_xaui_rx_polarity_flip_90.0=0x0
phy_xaui_rx_polarity_flip_91.0=0x0
phy_xaui_rx_polarity_flip_92.0=0x0
phy_xaui_rx_polarity_flip_93.0=0x1
phy_xaui_tx_polarity_flip_68.0=0x9
phy_xaui_tx_polarity_flip_69.0=0xb
phy_xaui_tx_polarity_flip_70.0=0x1
phy_xaui_tx_polarity_flip_71.0=0x0
phy_xaui_tx_polarity_flip_72.0=0x1
phy_xaui_tx_polarity_flip_73.0=0x1
phy_xaui_tx_polarity_flip_74.0=0x1
phy_xaui_tx_polarity_flip_75.0=0x0
phy_xaui_tx_polarity_flip_76.0=0x0
phy_xaui_tx_polarity_flip_77.0=0x1
phy_xaui_tx_polarity_flip_78.0=0x0
phy_xaui_tx_polarity_flip_79.0=0x1
phy_xaui_tx_polarity_flip_80.0=0x1
phy_xaui_tx_polarity_flip_81.0=0x0
phy_xaui_tx_polarity_flip_82.0=0x0
phy_xaui_tx_polarity_flip_83.0=0x0
phy_xaui_tx_polarity_flip_84.0=0x1
phy_xaui_tx_polarity_flip_85.0=0x1
phy_xaui_tx_polarity_flip_86.0=0x1
phy_xaui_tx_polarity_flip_87.0=0x0
phy_xaui_tx_polarity_flip_88.0=0x0
phy_xaui_tx_polarity_flip_89.0=0x1
phy_xaui_tx_polarity_flip_90.0=0x1
phy_xaui_tx_polarity_flip_91.0=0x0
phy_xaui_tx_polarity_flip_92.0=0x0
phy_xaui_tx_polarity_flip_93.0=0x1
xgxs_rx_lane_map_68.0=0x1230
xgxs_rx_lane_map_69.0=0x2301
xgxs_rx_lane_map_70.0=0x1230
xgxs_rx_lane_map_72.0=0x1230
xgxs_rx_lane_map_74.0=0x2103
xgxs_rx_lane_map_76.0=0x2103
xgxs_rx_lane_map_78.0=0x1230
xgxs_rx_lane_map_80.0=0x1230
xgxs_rx_lane_map_82.0=0x2301
xgxs_rx_lane_map_84.0=0x2301
xgxs_rx_lane_map_86.0=0x1230
xgxs_rx_lane_map_88.0=0x1230
xgxs_rx_lane_map_90.0=0x2103
xgxs_rx_lane_map_92.0=0x2103
xgxs_tx_lane_map_68.0=0x0123
xgxs_tx_lane_map_69.0=0x1230
xgxs_tx_lane_map_70.0=0x2301
xgxs_tx_lane_map_72.0=0x2301
xgxs_tx_lane_map_74.0=0x1032
xgxs_tx_lane_map_76.0=0x1032
xgxs_tx_lane_map_78.0=0x0123
xgxs_tx_lane_map_80.0=0x0123
xgxs_tx_lane_map_82.0=0x1230
xgxs_tx_lane_map_84.0=0x1230
xgxs_tx_lane_map_86.0=0x2301
xgxs_tx_lane_map_88.0=0x2301
xgxs_tx_lane_map_90.0=0x1032
xgxs_tx_lane_map_92.0=0x1032
# Q4
portmap_102.0=97:25
portmap_103.0=98:25
portmap_104.0=99:25
portmap_105.0=100:25
portmap_106.0=101:25
portmap_107.0=102:25
portmap_108.0=103:25
portmap_109.0=104:25
portmap_110.0=105:25
portmap_111.0=106:25
portmap_112.0=107:25
portmap_113.0=108:25
portmap_114.0=109:25
portmap_115.0=110:25
portmap_116.0=111:25
portmap_117.0=112:25
portmap_118.0=113:25
portmap_119.0=114:25
portmap_120.0=115:25
portmap_121.0=116:25
portmap_122.0=117:25
portmap_123.0=118:25
portmap_124.0=119:25
portmap_125.0=120:25
portmap_126.0=121:100
portmap_127.0=125:100
phy_xaui_rx_polarity_flip_102.0=0x1
phy_xaui_rx_polarity_flip_103.0=0x1
phy_xaui_rx_polarity_flip_104.0=0x0
phy_xaui_rx_polarity_flip_105.0=0x1
phy_xaui_rx_polarity_flip_106.0=0x0
phy_xaui_rx_polarity_flip_107.0=0x0
phy_xaui_rx_polarity_flip_108.0=0x1
phy_xaui_rx_polarity_flip_109.0=0x1
phy_xaui_rx_polarity_flip_110.0=0x1
phy_xaui_rx_polarity_flip_111.0=0x1
phy_xaui_rx_polarity_flip_112.0=0x0
phy_xaui_rx_polarity_flip_113.0=0x0
phy_xaui_rx_polarity_flip_114.0=0x0
phy_xaui_rx_polarity_flip_115.0=0x0
phy_xaui_rx_polarity_flip_116.0=0x1
phy_xaui_rx_polarity_flip_117.0=0x1
phy_xaui_rx_polarity_flip_118.0=0x1
phy_xaui_rx_polarity_flip_119.0=0x1
phy_xaui_rx_polarity_flip_120.0=0x0
phy_xaui_rx_polarity_flip_121.0=0x1
phy_xaui_rx_polarity_flip_122.0=0x1
phy_xaui_rx_polarity_flip_123.0=0x0
phy_xaui_rx_polarity_flip_124.0=0x1
phy_xaui_rx_polarity_flip_125.0=0x0
phy_xaui_rx_polarity_flip_126.0=0x1
phy_xaui_rx_polarity_flip_127.0=0x9
phy_xaui_tx_polarity_flip_102.0=0x0
phy_xaui_tx_polarity_flip_103.0=0x1
phy_xaui_tx_polarity_flip_104.0=0x1
phy_xaui_tx_polarity_flip_105.0=0x0
phy_xaui_tx_polarity_flip_106.0=0x1
phy_xaui_tx_polarity_flip_107.0=0x1
phy_xaui_tx_polarity_flip_108.0=0x0
phy_xaui_tx_polarity_flip_109.0=0x1
phy_xaui_tx_polarity_flip_110.0=0x0
phy_xaui_tx_polarity_flip_111.0=0x1
phy_xaui_tx_polarity_flip_112.0=0x1
phy_xaui_tx_polarity_flip_113.0=0x0
phy_xaui_tx_polarity_flip_114.0=0x1
phy_xaui_tx_polarity_flip_115.0=0x1
phy_xaui_tx_polarity_flip_116.0=0x0
phy_xaui_tx_polarity_flip_117.0=0x1
phy_xaui_tx_polarity_flip_118.0=0x0
phy_xaui_tx_polarity_flip_119.0=0x1
phy_xaui_tx_polarity_flip_120.0=0x1
phy_xaui_tx_polarity_flip_121.0=0x0
phy_xaui_tx_polarity_flip_122.0=0x1
phy_xaui_tx_polarity_flip_123.0=0x1
phy_xaui_tx_polarity_flip_124.0=0x1
phy_xaui_tx_polarity_flip_125.0=0x1
phy_xaui_tx_polarity_flip_126.0=0x6
phy_xaui_tx_polarity_flip_127.0=0xc
xgxs_rx_lane_map_102.0=0x3210
xgxs_rx_lane_map_104.0=0x3210
xgxs_rx_lane_map_106.0=0x3210
xgxs_rx_lane_map_108.0=0x3210
xgxs_rx_lane_map_110.0=0x3210
xgxs_rx_lane_map_112.0=0x3210
xgxs_rx_lane_map_114.0=0x3210
xgxs_rx_lane_map_116.0=0x3210
xgxs_rx_lane_map_118.0=0x3210
xgxs_rx_lane_map_120.0=0x3210
xgxs_rx_lane_map_122.0=0x3210
xgxs_rx_lane_map_124.0=0x3210
xgxs_rx_lane_map_126.0=0x3210
xgxs_rx_lane_map_127.0=0x3210
xgxs_tx_lane_map_102.0=0x0321
xgxs_tx_lane_map_104.0=0x0321
xgxs_tx_lane_map_106.0=0x2301
xgxs_tx_lane_map_108.0=0x2301
xgxs_tx_lane_map_110.0=0x0321
xgxs_tx_lane_map_112.0=0x0321
xgxs_tx_lane_map_114.0=0x2301
xgxs_tx_lane_map_116.0=0x2301
xgxs_tx_lane_map_118.0=0x0321
xgxs_tx_lane_map_120.0=0x0321
xgxs_tx_lane_map_122.0=0x2301
xgxs_tx_lane_map_124.0=0x2301
xgxs_tx_lane_map_126.0=0x0321
xgxs_tx_lane_map_127.0=0x2301
#mmu_init_config="MSFT-TH-Tier0"
# tuning parameters
serdes_driver_current_1=0xa
serdes_preemphasis_1=0x284008
serdes_driver_current_2=0xa
serdes_preemphasis_2=0x284008
serdes_driver_current_3=0xf
serdes_preemphasis_3=0x46408
serdes_driver_current_4=0xf
serdes_preemphasis_4=0x46408
serdes_driver_current_5=0xf
serdes_preemphasis_5=0x46408
serdes_driver_current_6=0xf
serdes_preemphasis_6=0x46408
serdes_driver_current_7=0xf
serdes_preemphasis_7=0x46408
serdes_driver_current_8=0xf
serdes_preemphasis_8=0x46408
serdes_driver_current_9=0xf
serdes_preemphasis_9=0x46408
serdes_driver_current_10=0xf
serdes_preemphasis_10=0x46408
serdes_driver_current_11=0xf
serdes_preemphasis_11=0x46408
serdes_driver_current_12=0xf
serdes_preemphasis_12=0x46408
serdes_driver_current_13=0xf
serdes_preemphasis_13=0x46408
serdes_driver_current_14=0xf
serdes_preemphasis_14=0x46408
serdes_driver_current_15=0xf
serdes_preemphasis_15=0x46408
serdes_driver_current_16=0xf
serdes_preemphasis_16=0x46408
serdes_driver_current_17=0xf
serdes_preemphasis_17=0x46408
serdes_driver_current_18=0xf
serdes_preemphasis_18=0x46408
serdes_driver_current_19=0xf
serdes_preemphasis_19=0x46408
serdes_driver_current_20=0xf
serdes_preemphasis_20=0x46408
serdes_driver_current_21=0xf
serdes_preemphasis_21=0x46408
serdes_driver_current_22=0xf
serdes_preemphasis_22=0x46408
serdes_driver_current_23=0xf
serdes_preemphasis_23=0x46408
serdes_driver_current_24=0xf
serdes_preemphasis_24=0x46408
serdes_driver_current_25=0xf
serdes_preemphasis_25=0x46408
serdes_driver_current_26=0xf
serdes_preemphasis_26=0x46408
serdes_driver_current_34=0xf
serdes_preemphasis_34=0x46408
serdes_driver_current_35=0xf
serdes_preemphasis_35=0x46408
serdes_driver_current_36=0xf
serdes_preemphasis_36=0x46408
serdes_driver_current_37=0xf
serdes_preemphasis_37=0x46408
serdes_driver_current_38=0xf
serdes_preemphasis_38=0x46408
serdes_driver_current_39=0xf
serdes_preemphasis_39=0x46408
serdes_driver_current_40=0xf
serdes_preemphasis_40=0x46408
serdes_driver_current_41=0xf
serdes_preemphasis_41=0x46408
serdes_driver_current_42=0xf
serdes_preemphasis_42=0x46408
serdes_driver_current_43=0xf
serdes_preemphasis_43=0x46408
serdes_driver_current_44=0xf
serdes_preemphasis_44=0x46408
serdes_driver_current_45=0xf
serdes_preemphasis_45=0x46408
serdes_driver_current_46=0xf
serdes_preemphasis_46=0x46408
serdes_driver_current_47=0xf
serdes_preemphasis_47=0x46408
serdes_driver_current_48=0xf
serdes_preemphasis_48=0x46408
serdes_driver_current_49=0xf
serdes_preemphasis_49=0x46408
serdes_driver_current_50=0xf
serdes_preemphasis_50=0x46408
serdes_driver_current_51=0xf
serdes_preemphasis_51=0x46408
serdes_driver_current_52=0xf
serdes_preemphasis_52=0x46408
serdes_driver_current_53=0xf
serdes_preemphasis_53=0x46408
serdes_driver_current_54=0xf
serdes_preemphasis_54=0x46408
serdes_driver_current_55=0xf
serdes_preemphasis_55=0x46408
serdes_driver_current_56=0xf
serdes_preemphasis_56=0x46408
serdes_driver_current_57=0xf
serdes_preemphasis_57=0x46408
serdes_driver_current_58=0xf
serdes_preemphasis_58=0x373108
serdes_driver_current_59=0xf
serdes_preemphasis_59=0x373108
serdes_driver_current_68=0xf
serdes_preemphasis_68=0x373108
serdes_driver_current_69=0xf
serdes_preemphasis_69=0x373108
serdes_driver_current_70=0xf
serdes_preemphasis_70=0x46408
serdes_driver_current_71=0xf
serdes_preemphasis_71=0x46408
serdes_driver_current_72=0xf
serdes_preemphasis_72=0x46408
serdes_driver_current_73=0xf
serdes_preemphasis_73=0x46408
serdes_driver_current_74=0xf
serdes_preemphasis_74=0x46408
serdes_driver_current_75=0xf
serdes_preemphasis_75=0x46408
serdes_driver_current_76=0xf
serdes_preemphasis_76=0x46408
serdes_driver_current_77=0xf
serdes_preemphasis_77=0x46408
serdes_driver_current_78=0xf
serdes_preemphasis_78=0x46408
serdes_driver_current_79=0xf
serdes_preemphasis_79=0x46408
serdes_driver_current_80=0xf
serdes_preemphasis_80=0x46408
serdes_driver_current_81=0xf
serdes_preemphasis_81=0x46408
serdes_driver_current_82=0xf
serdes_preemphasis_82=0x46408
serdes_driver_current_83=0xf
serdes_preemphasis_83=0x46408
serdes_driver_current_84=0xf
serdes_preemphasis_84=0x46408
serdes_driver_current_85=0xf
serdes_preemphasis_85=0x46408
serdes_driver_current_86=0xf
serdes_preemphasis_86=0x46408
serdes_driver_current_87=0xf
serdes_preemphasis_87=0x46408
serdes_driver_current_88=0xf
serdes_preemphasis_88=0x46408
serdes_driver_current_89=0xf
serdes_preemphasis_89=0x46408
serdes_driver_current_90=0xf
serdes_preemphasis_90=0x46408
serdes_driver_current_91=0xf
serdes_preemphasis_91=0x46408
serdes_driver_current_92=0xf
serdes_preemphasis_92=0x46408
serdes_driver_current_93=0xf
serdes_preemphasis_93=0x46408
serdes_driver_current_102=0xf
serdes_preemphasis_102=0x46408
serdes_driver_current_103=0xf
serdes_preemphasis_103=0x46408
serdes_driver_current_104=0xf
serdes_preemphasis_104=0x46408
serdes_driver_current_105=0xf
serdes_preemphasis_105=0x46408
serdes_driver_current_106=0xf
serdes_preemphasis_106=0x46408
serdes_driver_current_107=0xf
serdes_preemphasis_107=0x46408
serdes_driver_current_108=0xf
serdes_preemphasis_108=0x46408
serdes_driver_current_109=0xf
serdes_preemphasis_109=0x46408
serdes_driver_current_110=0xf
serdes_preemphasis_110=0x46408
serdes_driver_current_111=0xf
serdes_preemphasis_111=0x46408
serdes_driver_current_112=0xf
serdes_preemphasis_112=0x46408
serdes_driver_current_113=0xf
serdes_preemphasis_113=0x46408
serdes_driver_current_114=0xf
serdes_preemphasis_114=0x46408
serdes_driver_current_115=0xf
serdes_preemphasis_115=0x46408
serdes_driver_current_116=0xf
serdes_preemphasis_116=0x46408
serdes_driver_current_117=0xf
serdes_preemphasis_117=0x46408
serdes_driver_current_118=0xf
serdes_preemphasis_118=0x46408
serdes_driver_current_119=0xf
serdes_preemphasis_119=0x46408
serdes_driver_current_120=0xf
serdes_preemphasis_120=0x46408
serdes_driver_current_121=0xf
serdes_preemphasis_121=0x46408
serdes_driver_current_122=0xf
serdes_preemphasis_122=0x46408
serdes_driver_current_123=0xf
serdes_preemphasis_123=0x46408
serdes_driver_current_124=0xf
serdes_preemphasis_124=0x46408
serdes_driver_current_125=0xf
serdes_preemphasis_125=0x46408
serdes_driver_current_126=0xa
serdes_preemphasis_126=0x284008
serdes_driver_current_127=0xa
serdes_preemphasis_127=0x284008

View File

@ -1,80 +1,80 @@
# name lanes alias speed index
Ethernet0 0,1,2,3 Ethernet1/1 40000 1
Ethernet4 4,5,6,7 Ethernet2/1 40000 2
Ethernet8 8,9,10,11 Ethernet3/1 40000 3
Ethernet12 12,13,14,15 Ethernet4/1 40000 4
Ethernet16 16,17,18,19 Ethernet5/1 40000 5
Ethernet20 20,21,22,23 Ethernet6/1 40000 6
Ethernet24 24,25,26,27 Ethernet7/1 40000 7
Ethernet28 28,29,30,31 Ethernet8/1 40000 8
Ethernet32 32,33,34,35 Ethernet9/1 40000 9
Ethernet36 36,37,38,39 Ethernet10/1 40000 10
Ethernet40 40,41,42,43 Ethernet11/1 40000 11
Ethernet44 44,45,46,47 Ethernet12/1 40000 12
Ethernet48 48,49,50,51 Ethernet13/1 40000 13
Ethernet52 52,53,54,55 Ethernet14/1 40000 14
Ethernet56 56,57,58,59 Ethernet15/1 40000 15
Ethernet60 60,61,62,63 Ethernet16/1 40000 16
Ethernet64 64,65,66,67 Ethernet17/1 40000 17
Ethernet68 68,69,70,71 Ethernet18/1 40000 18
Ethernet72 72,73,74,75 Ethernet19/1 40000 19
Ethernet76 76,77,78,79 Ethernet20/1 40000 20
Ethernet80 80 Ethernet21/1 10000 21
Ethernet80 81 Ethernet21/2 10000 22
Ethernet80 82 Ethernet21/3 10000 23
Ethernet80 83 Ethernet21/4 10000 24
Ethernet84 84 Ethernet22/1 10000 25
Ethernet84 85 Ethernet22/2 10000 26
Ethernet84 86 Ethernet22/3 10000 27
Ethernet84 87 Ethernet22/4 10000 28
Ethernet88 88,89,90,91 Ethernet23/1 40000 29
Ethernet92 92,93,94,95 Ethernet24/1 40000 30
Ethernet96 96,97,98,99 Ethernet25/1 40000 31
Ethernet100 100,101,102,103 Ethernet26/1 40000 32
Ethernet104 104,105,106,107 Ethernet27/1 40000 33
Ethernet108 108,109,110,111 Ethernet28/1 40000 34
Ethernet112 112,113,114,115 Ethernet29/1 40000 35
Ethernet116 116,117,118,119 Ethernet30/1 40000 36
Ethernet120 120,121,122,123 Ethernet31/1 40000 37
Ethernet124 124,125,126,127 Ethernet32/1 40000 38
Ethernet128 128 Ethernet33/1 10000 39
Ethernet129 129 Ethernet33/2 10000 40
Ethernet130 130 Ethernet33/3 10000 41
Ethernet131 131 Ethernet33/4 10000 42
Ethernet132 132 Ethernet34/1 10000 43
Ethernet133 133 Ethernet34/2 10000 44
Ethernet134 134 Ethernet34/3 10000 45
Ethernet135 135 Ethernet34/4 10000 46
Ethernet136 136 Ethernet35/1 10000 47
Ethernet137 137 Ethernet35/2 10000 48
Ethernet138 138 Ethernet35/3 10000 49
Ethernet139 139 Ethernet35/4 10000 50
Ethernet140 140,141,142,143 Ethernet36/1 40000 51
Ethernet144 144,145,146,147 Ethernet37/1 40000 52
Ethernet148 148,149,150,151 Ethernet38/1 40000 53
Ethernet152 152,153,154,155 Ethernet39/1 40000 54
Ethernet156 156,157,158,159 Ethernet40/1 40000 55
Ethernet160 160,161,162,163 Ethernet41/1 40000 56
Ethernet164 164,165,166,167 Ethernet42/1 40000 57
Ethernet168 168,169,170,171 Ethernet43/1 40000 58
Ethernet172 172,173,174,175 Ethernet44/1 40000 59
Ethernet176 176,177,178,179 Ethernet45/1 40000 60
Ethernet180 180,181,182,183 Ethernet46/1 40000 61
Ethernet184 184,185,186,187 Ethernet47/1 40000 62
Ethernet188 188,189,190,191 Ethernet48/1 40000 63
Ethernet192 192,193,194,195 Ethernet49/1 40000 64
Ethernet196 196,197,198,199 Ethernet50/1 40000 65
Ethernet200 200,201,202,203 Ethernet51/1 40000 66
Ethernet204 204,205,206,207 Ethernet52/1 40000 67
Ethernet208 208,209,210,211 Ethernet53/1 40000 68
Ethernet212 212,213,214,215 Ethernet54/1 40000 69
Ethernet216 216,217,218,219 Ethernet55/1 40000 70
Ethernet220 220,221,222,223 Ethernet56/1 40000 71
Ethernet224 224,225,226,227 Ethernet57/1 40000 72
Ethernet228 228,229,230,231 Ethernet58/1 40000 73
Ethernet232 232,233,234,235 Ethernet59/1 40000 74
Ethernet236 236,237,238,239 Ethernet60/1 40000 75
Ethernet240 240,241,242,243 Ethernet61/1 40000 76
Ethernet244 244,245,246,247 Ethernet62/1 40000 77
Ethernet248 248,249,250,251 Ethernet63/1 40000 78
Ethernet252 252,253,254,255 Ethernet64/1 40000 79
# name lanes alias speed index autoneg
Ethernet0 0,1,2,3 Ethernet1/1 40000 1 0
Ethernet4 4,5,6,7 Ethernet2/1 40000 2 0
Ethernet8 8,9,10,11 Ethernet3/1 40000 3 0
Ethernet12 12,13,14,15 Ethernet4/1 40000 4 0
Ethernet16 16,17,18,19 Ethernet5/1 40000 5 0
Ethernet20 20,21,22,23 Ethernet6/1 40000 6 0
Ethernet24 24,25,26,27 Ethernet7/1 40000 7 0
Ethernet28 28,29,30,31 Ethernet8/1 40000 8 0
Ethernet32 32,33,34,35 Ethernet9/1 40000 9 1
Ethernet36 36,37,38,39 Ethernet10/1 40000 10 1
Ethernet40 40,41,42,43 Ethernet11/1 40000 11 1
Ethernet44 44,45,46,47 Ethernet12/1 40000 12 1
Ethernet48 48,49,50,51 Ethernet13/1 40000 13 1
Ethernet52 52,53,54,55 Ethernet14/1 40000 14 1
Ethernet56 56,57,58,59 Ethernet15/1 40000 15 1
Ethernet60 60,61,62,63 Ethernet16/1 40000 16 1
Ethernet64 64,65,66,67 Ethernet17/1 40000 17 1
Ethernet68 68,69,70,71 Ethernet18/1 40000 18 1
Ethernet72 72,73,74,75 Ethernet19/1 40000 19 1
Ethernet76 76,77,78,79 Ethernet20/1 40000 20 1
Ethernet80 80 Ethernet21/1 10000 21 0
Ethernet81 81 Ethernet21/2 10000 21 0
Ethernet82 82 Ethernet21/3 10000 21 0
Ethernet83 83 Ethernet21/4 10000 21 0
Ethernet84 84 Ethernet22/1 10000 22 0
Ethernet85 85 Ethernet22/2 10000 22 0
Ethernet86 86 Ethernet22/3 10000 22 0
Ethernet87 87 Ethernet22/4 10000 22 0
Ethernet88 88,89,90,91 Ethernet23/1 40000 23 0
Ethernet92 92,93,94,95 Ethernet24/1 40000 24 0
Ethernet96 96,97,98,99 Ethernet25/1 40000 25 0
Ethernet100 100,101,102,103 Ethernet26/1 40000 26 0
Ethernet104 104,105,106,107 Ethernet27/1 40000 27 0
Ethernet108 108,109,110,111 Ethernet28/1 40000 28 0
Ethernet112 112,113,114,115 Ethernet29/1 40000 29 0
Ethernet116 116,117,118,119 Ethernet30/1 40000 30 0
Ethernet120 120,121,122,123 Ethernet31/1 40000 31 0
Ethernet124 124,125,126,127 Ethernet32/1 40000 32 0
Ethernet128 128 Ethernet33/1 10000 33 0
Ethernet129 129 Ethernet33/2 10000 33 0
Ethernet130 130 Ethernet33/3 10000 33 0
Ethernet131 131 Ethernet33/4 10000 33 0
Ethernet132 132 Ethernet34/1 10000 34 0
Ethernet133 133 Ethernet34/2 10000 34 0
Ethernet134 134 Ethernet34/3 10000 34 0
Ethernet135 135 Ethernet34/4 10000 34 0
Ethernet136 136 Ethernet35/1 10000 35 0
Ethernet137 137 Ethernet35/2 10000 35 0
Ethernet138 138 Ethernet35/3 10000 35 0
Ethernet139 139 Ethernet35/4 10000 35 0
Ethernet140 140,141,142,143 Ethernet36/1 40000 36 0
Ethernet144 144,145,146,147 Ethernet37/1 40000 37 0
Ethernet148 148,149,150,151 Ethernet38/1 40000 38 0
Ethernet152 152,153,154,155 Ethernet39/1 40000 39 0
Ethernet156 156,157,158,159 Ethernet40/1 40000 40 0
Ethernet160 160,161,162,163 Ethernet41/1 40000 41 1
Ethernet164 164,165,166,167 Ethernet42/1 40000 42 1
Ethernet168 168,169,170,171 Ethernet43/1 40000 43 1
Ethernet172 172,173,174,175 Ethernet44/1 40000 44 1
Ethernet176 176,177,178,179 Ethernet45/1 40000 45 1
Ethernet180 180,181,182,183 Ethernet46/1 40000 46 1
Ethernet184 184,185,186,187 Ethernet47/1 40000 47 1
Ethernet188 188,189,190,191 Ethernet48/1 40000 48 1
Ethernet192 192,193,194,195 Ethernet49/1 40000 49 1
Ethernet196 196,197,198,199 Ethernet50/1 40000 50 1
Ethernet200 200,201,202,203 Ethernet51/1 40000 51 1
Ethernet204 204,205,206,207 Ethernet52/1 40000 52 1
Ethernet208 208,209,210,211 Ethernet53/1 40000 53 1
Ethernet212 212,213,214,215 Ethernet54/1 40000 54 1
Ethernet216 216,217,218,219 Ethernet55/1 40000 55 1
Ethernet220 220,221,222,223 Ethernet56/1 40000 56 1
Ethernet224 224,225,226,227 Ethernet57/1 40000 57 1
Ethernet228 228,229,230,231 Ethernet58/1 40000 58 1
Ethernet232 232,233,234,235 Ethernet59/1 40000 59 1
Ethernet236 236,237,238,239 Ethernet60/1 40000 60 1
Ethernet240 240,241,242,243 Ethernet61/1 40000 61 1
Ethernet244 244,245,246,247 Ethernet62/1 40000 62 1
Ethernet248 248,249,250,251 Ethernet63/1 40000 63 1
Ethernet252 252,253,254,255 Ethernet64/1 40000 64 1

View File

@ -1,3 +1,4 @@
CONSOLE_PORT=0x2f8
CONSOLE_DEV=1
CONSOLE_SPEED=9600
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="module_blacklist=gpio_ich"

View File

@ -1,2 +1,3 @@
CONSOLE_PORT=0x3f8
CONSOLE_DEV=0
ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="module_blacklist=gpio_ich"

View File

@ -7,8 +7,10 @@ echo "Replace ONIE reboot with Dell reset commands"
# set I2C GPIO mux
[ -d /sys/class/gpio/gpio1 ] || echo 1 > /sys/class/gpio/export
[ -d /sys/class/gpio/gpio2 ] || echo 2 > /sys/class/gpio/export
[ -d /sys/class/gpio/gpio10 ] || echo 10 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio1/direction
echo out > /sys/class/gpio/gpio2/direction
echo out > /sys/class/gpio/gpio10/direction
echo 0 > /sys/class/gpio/gpio1/value
echo 0 > /sys/class/gpio/gpio2/value

View File

@ -1,3 +1,13 @@
#!/bin/sh
# Export GPIO10 if needed
[ -d /sys/class/gpio/gpio10 ] || echo 10 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio10/direction
#Toggle GPIO10 pin (to reset MUX)
echo 1 > /sys/class/gpio/gpio10/value
echo 0 > /sys/class/gpio/gpio10/value
#Power Reset
echo 1 > /sys/devices/platform/dell-s6000-cpld.0/power_reset

View File

@ -16,15 +16,15 @@ except ImportError as e:
class SfpUtil(SfpUtilBase):
"""Platform-specific SfpUtil class"""
PORT_START = 0
PORT_END = 31
PORT_START = 1
PORT_END = 32
PORTS_IN_BLOCK = 32
IOM_1_PORT_START = 0
IOM_1_PORT_END = 11
IOM_2_PORT_START = 12
IOM_2_PORT_END = 21
IOM_3_PORT_START = 22
IOM_3_PORT_END = 31
IOM_1_PORT_START = 1
IOM_1_PORT_END = 12
IOM_2_PORT_START = 13
IOM_2_PORT_END = 22
IOM_3_PORT_START = 23
IOM_3_PORT_END = 32
BASE_VAL_PATH = "/sys/class/i2c-adapter/i2c-{0}/{0}-003e/"
OIR_FD_PATH = "/sys/devices/platform/dell_ich.0/sci_int_gpio_sus6"
@ -33,38 +33,39 @@ class SfpUtil(SfpUtilBase):
epoll = -1
_port_to_eeprom_mapping = {}
_port_to_i2c_mapping = {
0: [9, 18],
1: [9, 19],
2: [9, 20],
3: [9, 21],
4: [9, 22],
5: [9, 23],
6: [9, 24],
7: [9, 25],
8: [8, 26],
9: [8, 27],
10: [8, 28],
11: [8, 29],
12: [8, 31], # reordered
13: [8, 30],
14: [8, 33], # reordered
15: [8, 32],
16: [7, 34],
17: [7, 35],
18: [7, 36],
19: [7, 37],
20: [7, 38],
21: [7, 39],
22: [7, 40],
23: [7, 41],
24: [6, 42],
25: [6, 43],
26: [6, 44],
27: [6, 45],
28: [6, 46],
29: [6, 47],
30: [6, 48],
31: [6, 49]
0: [0, 00], # Dummy Entry
1: [9, 18],
2: [9, 19],
3: [9, 20],
4: [9, 21],
5: [9, 22],
6: [9, 23],
7: [9, 24],
8: [9, 25],
9: [8, 26],
10: [8, 27],
11: [8, 28],
12: [8, 29],
13: [8, 31], # reordered
14: [8, 30],
15: [8, 33], # reordered
16: [8, 32],
17: [7, 34],
18: [7, 35],
19: [7, 36],
20: [7, 37],
21: [7, 38],
22: [7, 39],
23: [7, 40],
24: [7, 41],
25: [6, 42],
26: [6, 43],
27: [6, 44],
28: [6, 45],
29: [6, 46],
30: [6, 47],
31: [6, 48],
32: [6, 49]
}
@property
@ -127,13 +128,10 @@ class SfpUtil(SfpUtilBase):
self.epoll.close()
self.oir_fd.close()
def get_presence(self, port_num):
global i2c_line
def normalize_port(self, port_num):
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
return False
return -1, -1
# port_num and i2c match
if port_num >= self.iom1_port_start and port_num <= self.iom1_port_end:
i2c_line = 14
@ -144,6 +142,24 @@ class SfpUtil(SfpUtilBase):
port_num <= self.iom3_port_end):
i2c_line = 16
# Rationalize port settings
if port_num >= self.iom1_port_start and port_num <= self.iom1_port_end:
port_num = port_num - 1
elif port_num >= self.iom2_port_start and port_num <= self.iom2_port_end:
port_num = (port_num - 1) % 12
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
port_num = (port_num - 1) % 22
return i2c_line, port_num
def get_presence(self, port_num):
i2c_line, port_num = self.normalize_port(port_num)
if port_num == -1:
return False
try:
qsfp_path = self.BASE_VAL_PATH.format(i2c_line)+"qsfp_modprs"
reg_file = open(qsfp_path, "r")
@ -161,13 +177,6 @@ class SfpUtil(SfpUtilBase):
# content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Rationalize port settings
if port_num >= self.iom2_port_start and port_num <= self.iom2_port_end:
port_num = port_num % 12
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
port_num = port_num % 22
# Mask off the bit corresponding to our port
mask = (1 << port_num)
@ -179,20 +188,10 @@ class SfpUtil(SfpUtilBase):
def get_low_power_mode(self, port_num):
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
i2c_line, port_num = self.normalize_port(port_num)
if port_num == -1:
return False
# port_num and i2c match
if port_num >= self.iom1_port_start and port_num <= self.iom1_port_end:
i2c_line = 14
elif (port_num >= self.iom2_port_start and
port_num <= self.iom2_port_end):
i2c_line = 15
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
i2c_line = 16
try:
qsfp_path = self.BASE_VAL_PATH.format(i2c_line)+"qsfp_lpmode"
reg_file = open(qsfp_path, "r")
@ -210,13 +209,6 @@ class SfpUtil(SfpUtilBase):
# content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Rationalize port settings
if port_num >= self.iom2_port_start and port_num <= self.iom2_port_end:
port_num = port_num % 12
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
port_num = port_num % 22
# Mask off the bit corresponding to our port
mask = (1 << port_num)
@ -228,24 +220,15 @@ class SfpUtil(SfpUtilBase):
def set_low_power_mode(self, port_num, lpmode):
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
i2c_line, port_num = self.normalize_port(port_num)
if port_num == -1:
return False
# port_num and i2c match
if port_num >= self.iom1_port_start and port_num <= self.iom1_port_end:
i2c_line = 14
elif (port_num >= self.iom2_port_start and
port_num <= self.iom2_port_end):
i2c_line = 15
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
i2c_line = 16
try:
qsfp_path = self.BASE_VAL_PATH.format(i2c_line)+"qsfp_lpmode"
reg_file = open(qsfp_path, "r+")
except IOError as e:
print "Error: unable to open file: %s" % str(e)
return False
@ -259,13 +242,6 @@ class SfpUtil(SfpUtilBase):
# content is a string containing the hex representation of the register
reg_value = int(content, 16)
# Rationalize port settings
if port_num >= self.iom2_port_start and port_num <= self.iom2_port_end:
port_num = port_num % 12
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
port_num = port_num % 22
# Mask off the bit corresponding to our port
mask = (1 << port_num)
# LPMode is active high; set or clear the bit accordingly
@ -285,20 +261,10 @@ class SfpUtil(SfpUtilBase):
def reset(self, port_num):
# Check for invalid port_num
if port_num < self.port_start or port_num > self.port_end:
i2c_line, port_num = self.normalize_port(port_num)
if port_num == -1:
return False
# port_num and i2c match
if port_num >= self.iom1_port_start and port_num <= self.iom1_port_end:
i2c_line = 14
elif (port_num >= self.iom2_port_start and
port_num <= self.iom2_port_end):
i2c_line = 15
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
i2c_line = 16
try:
qsfp_path = self.BASE_VAL_PATH.format(i2c_line)+"qsfp_lpmode"
reg_file = open(qsfp_path, "r+")
@ -312,13 +278,6 @@ class SfpUtil(SfpUtilBase):
# File content is a string containing the hex representation of th
reg_value = int(content, 16)
# Rationalize port settings
if port_num >= self.iom2_port_start and port_num <= self.iom2_port_end:
port_num = port_num % 12
elif (port_num >= self.iom3_port_start and
port_num <= self.iom3_port_end):
port_num = port_num % 22
# Mask off the bit corresponding to our port
mask = (1 << port_num)
@ -406,11 +365,11 @@ class SfpUtil(SfpUtilBase):
port = self.port_start
while port <= self.port_end:
if interrupt_reg & (1 << port):
if interrupt_reg & (1 << (port-1)):
# update only if atleast one port has generated
# interrupt
is_port_dict_updated = True
if status_reg & (1 << port):
if status_reg & (1 << (port-1)):
# status reg 1 => optics is removed
port_dict[port] = '0'
else:

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -20,14 +20,10 @@ class PsuUtil(PsuBase):
def __init__(self):
PsuBase.__init__(self)
self.psu_path = ""
for index in range(0, 100):
hwmon_path = "/sys/devices/platform/mlxplat/mlxreg-hotplug/hwmon/hwmon{}/".format(index)
if os.path.exists(hwmon_path):
self.psu_path = hwmon_path
break
self.psu_presence = "pwr{}"
self.psu_oper_status = "pwr{}"
self.psu_path = "/var/run/hw-management/thermal/"
self.psu_presence = "psu{}_pwr_status"
self.psu_oper_status = "psu{}_pwr_status"
def get_num_psus(self):
"""

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -17,3 +17,76 @@ chip "tps53679-*"
label pout2 "TPS pout2"
label iout1 "TPS iout1"
label iout2 "TPS iout2"
chip "mlxsw-*"
ignore temp2
ignore temp3
ignore temp4
ignore temp5
ignore temp6
ignore temp7
ignore temp8
ignore temp9
ignore temp10
ignore temp11
ignore temp12
ignore temp13
ignore temp14
ignore temp15
ignore temp16
ignore temp17
ignore temp18
ignore temp19
ignore temp20
ignore temp21
ignore temp22
ignore temp23
ignore temp24
ignore temp25
ignore temp26
ignore temp27
ignore temp28
ignore temp29
ignore temp30
ignore temp31
ignore temp32
ignore temp33
ignore temp34
ignore temp35
ignore temp36
ignore temp37
ignore temp38
ignore temp39
ignore temp40
ignore temp41
ignore temp42
ignore temp43
ignore temp44
ignore temp45
ignore temp46
ignore temp47
ignore temp48
ignore temp49
ignore temp50
ignore temp51
ignore temp52
ignore temp53
ignore temp54
ignore temp55
ignore temp56
ignore temp57
ignore temp58
ignore temp59
ignore temp60
ignore temp61
ignore temp62
ignore temp63
ignore temp64
chip "*-virtual-*"
ignore temp1
ignore temp2
chip "dps460-*"
ignore fan2
ignore fan3

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -21,14 +21,9 @@ class PsuUtil(PsuBase):
def __init__(self):
PsuBase.__init__(self)
self.psu_path = ""
for index in range(0, 100):
hwmon_path = "/sys/devices/platform/mlxplat/mlxreg-hotplug/hwmon/hwmon{}/".format(index)
if os.path.exists(hwmon_path):
self.psu_path = hwmon_path
break
self.psu_presence = "pwr{}"
self.psu_oper_status = "pwr{}"
self.psu_path = "/var/run/hw-management/thermal/"
self.psu_presence = "psu{}_status"
self.psu_oper_status = "psu{}_pwr_status"
def get_num_psus(self):
"""

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -21,14 +21,9 @@ class PsuUtil(PsuBase):
def __init__(self):
PsuBase.__init__(self)
self.psu_path = ""
for index in range(0, 100):
hwmon_path = "/sys/devices/platform/mlxplat/mlxreg-hotplug/hwmon/hwmon{}/".format(index)
if os.path.exists(hwmon_path):
self.psu_path = hwmon_path
break
self.psu_presence = "psu{}"
self.psu_oper_status = "pwr{}"
self.psu_path = "/var/run/hw-management/thermal/"
self.psu_presence = "psu{}_status"
self.psu_oper_status = "psu{}_pwr_status"
def get_num_psus(self):
"""

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -0,0 +1 @@
../ACS-MSN2700/buffers.json.j2

View File

@ -0,0 +1 @@
../ACS-MSN2700/buffers_defaults_t0.j2

View File

@ -0,0 +1 @@
../ACS-MSN2700/buffers_defaults_t1.j2

View File

@ -0,0 +1 @@
../ACS-MSN2700/pg_profile_lookup.ini

View File

@ -0,0 +1,37 @@
# name lanes speed alias index
Ethernet0 0,1,2,3 100000 etp1 1
Ethernet4 4,5,6,7 100000 etp2 2
Ethernet8 8,9,10,11 100000 etp3 3
Ethernet12 12,13,14,15 100000 etp4 4
Ethernet16 16,17,18,19 100000 etp5 5
Ethernet20 20,21,22,23 100000 etp6 6
Ethernet24 24,25,26,27 100000 etp7 7
Ethernet28 28,29,30,31 100000 etp8 8
Ethernet32 32,33,34,35 100000 etp9 9
Ethernet36 36,37,38,39 100000 etp10 10
Ethernet40 40,41,42,43 100000 etp11 11
Ethernet44 44,45,46,47 100000 etp12 12
Ethernet48 48,49,50,51 100000 etp13 13
Ethernet52 52,53,54,55 100000 etp14 14
Ethernet56 56,57,58,59 100000 etp15 15
Ethernet60 60,61,62,63 100000 etp16 16
Ethernet64 64,65,66,67 100000 etp17 17
Ethernet68 68,69,70,71 100000 etp18 18
Ethernet72 72,73,74,75 100000 etp19 19
Ethernet76 76,77,78,79 100000 etp20 20
Ethernet80 80,81,82,83 100000 etp21 21
Ethernet84 84,85,86,87 100000 etp22 22
Ethernet88 88,89,90,91 100000 etp23 23
Ethernet92 92,93,94,95 100000 etp24 24
Ethernet96 96,97,98,99 100000 etp25 25
Ethernet100 100,101,102,103 100000 etp26 26
Ethernet104 104,105,106,107 100000 etp27 27
Ethernet108 108,109,110,111 100000 etp28 28
Ethernet112 112,113 50000 etp29a 29
Ethernet114 114,115 50000 etp29b 29
Ethernet116 116,117 50000 etp30a 30
Ethernet118 118,119 50000 etp30b 30
Ethernet120 120,121 50000 etp31a 31
Ethernet122 122,123 50000 etp31b 31
Ethernet124 124,125 50000 etp32a 32
Ethernet126 126,127 50000 etp32b 32

View File

@ -0,0 +1 @@
../ACS-MSN2700/qos.json.j2

View File

@ -0,0 +1 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_2700_8x50g_28x100g.xml

View File

@ -0,0 +1,250 @@
<?xml version="1.0"?>
<root>
<platform_info type="2700">
<!-- Device MAC address -->
<device-mac-address>00:02:03:04:05:00</device-mac-address>
<!-- ISSU enabled -->
<issu-enabled>1</issu-enabled>
<!-- Number of ports in the following port list -->
<number-of-physical-ports>32</number-of-physical-ports>
<!-- List of ports in the device -->
<ports-list>
<port-info>
<local-port>1</local-port>
<width>4</width>
<module>16</module>
<!-- 0 none, 1=2, 2=4, 3=2,4 -->
<breakout-modes>3</breakout-modes>
<!-- (BITMASK) 4096 - 10Gb , 939524096 - 25Gb , 98368 - 40Gb , 3221225472 - 50Gb , 11534336 - 100Gb-->
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>3</local-port>
<width>4</width>
<module>17</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>5</local-port>
<width>4</width>
<module>18</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>7</local-port>
<width>4</width>
<module>19</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>9</local-port>
<width>4</width>
<module>20</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>11</local-port>
<width>4</width>
<module>21</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>13</local-port>
<width>4</width>
<module>22</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>15</local-port>
<width>4</width>
<module>23</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>17</local-port>
<width>4</width>
<module>24</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>19</local-port>
<width>4</width>
<module>25</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>21</local-port>
<width>4</width>
<module>26</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>23</local-port>
<width>4</width>
<module>27</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>25</local-port>
<width>4</width>
<module>28</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
<split>2</split>
</port-info>
<port-info>
<local-port>27</local-port>
<width>4</width>
<module>29</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
<split>2</split>
</port-info>
<port-info>
<local-port>29</local-port>
<width>4</width>
<module>30</module>
<breakout-modes>3</breakout-modes>
<port-speed>3221225472</port-speed>
<split>2</split>
</port-info>
<port-info>
<local-port>31</local-port>
<width>4</width>
<module>31</module>
<breakout-modes>1</breakout-modes>
<port-speed>3221225472</port-speed>
<split>2</split>
</port-info>
<port-info>
<local-port>33</local-port>
<width>4</width>
<module>14</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>35</local-port>
<width>4</width>
<module>15</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>37</local-port>
<width>4</width>
<module>12</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>39</local-port>
<width>4</width>
<module>13</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>41</local-port>
<width>4</width>
<module>10</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>43</local-port>
<width>4</width>
<module>11</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>45</local-port>
<width>4</width>
<module>8</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>47</local-port>
<width>4</width>
<module>9</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>49</local-port>
<width>4</width>
<module>6</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>51</local-port>
<width>4</width>
<module>7</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>53</local-port>
<width>4</width>
<module>4</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>55</local-port>
<width>4</width>
<module>5</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>57</local-port>
<width>4</width>
<module>2</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>59</local-port>
<width>4</width>
<module>3</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>61</local-port>
<width>4</width>
<module>0</module>
<breakout-modes>3</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
<port-info>
<local-port>63</local-port>
<width>4</width>
<module>1</module>
<breakout-modes>1</breakout-modes>
<port-speed>11534336</port-speed>
</port-info>
</ports-list>
</platform_info>
</root>

View File

@ -0,0 +1,40 @@
#!/bin/bash
declare -r EXIT_SUCCESS="0"
declare -r EXIT_TIMEOUT="1"
declare -r QSFP_PATH="/var/run/hw-management/qsfp"
function WaitForQsfpReady() {
local -r _QSFP_PATH="${1}"
local -i _WDOG_CNT="1"
local -ir _WDOG_MAX="300"
local -r _TIMEOUT="1s"
while [[ "${_WDOG_CNT}" -le "${_WDOG_MAX}" ]]; do
for _QSFP in ${_QSFP_PATH}/qsfp*; do
if [[ -e "${_QSFP}" ]]; then
return "${EXIT_SUCCESS}"
fi
done
let "_WDOG_CNT++"
sleep "${_TIMEOUT}"
done
return "${EXIT_TIMEOUT}"
}
echo "Wait for QSFP I2C interface is ready"
WaitForQsfpReady "${QSFP_PATH}"
EXIT_CODE="$?"
if [[ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]]; then
echo "QSFP I2C interface is not ready: timeout"
exit "${EXIT_CODE}"
fi
echo "QSFP I2C interface is ready: mlxsw_minimal has finished initialization"
exit "${EXIT_SUCCESS}"

View File

@ -26,7 +26,7 @@ except ImportError, e:
raise ImportError (str(e) + "- required module not found")
SYSLOG_IDENTIFIER = "eeprom.py"
EEPROM_SYMLINK = "/bsp/eeprom/vpd_info"
EEPROM_SYMLINK = "/var/run/hw-management/eeprom/vpd_info"
CACHE_FILE = "/var/cache/sonic/decode-syseeprom/syseeprom_cache"
def log_error(msg):

View File

@ -21,14 +21,9 @@ class PsuUtil(PsuBase):
def __init__(self):
PsuBase.__init__(self)
self.psu_path = ""
for index in range(0, 100):
hwmon_path = "/sys/devices/platform/mlxplat/mlxreg-hotplug/hwmon/hwmon{}/".format(index)
if os.path.exists(hwmon_path):
self.psu_path = hwmon_path
break
self.psu_presence = "psu{}"
self.psu_oper_status = "pwr{}"
self.psu_path = "/var/run/hw-management/thermal/"
self.psu_presence = "psu{}_status"
self.psu_oper_status = "psu{}_pwr_status"
def get_num_psus(self):
"""

View File

@ -18,7 +18,15 @@ PMAOS_RST = 0
PMAOS_ENABLE = 1
PMAOS_DISABLE = 2
def get_port_admin_status_by_log_port(log_port):
PORT_TYPE_NVE = 8
PORT_TYPE_OFFSET = 28
PORT_TYPE_MASK = 0xF0000000
NVE_MASK = PORT_TYPE_MASK & (PORT_TYPE_NVE << PORT_TYPE_OFFSET)
def is_nve(port):
return (port & NVE_MASK) != 0
def is_port_admin_status_up(log_port):
oper_state_p = new_sx_port_oper_state_t_p()
admin_state_p = new_sx_port_admin_state_t_p()
module_state_p = new_sx_port_module_state_t_p()
@ -48,9 +56,10 @@ def get_log_ports(handle, sfp_module):
log_port_list = []
for i in range(0, port_cnt):
port_attributes = sx_port_attributes_t_arr_getitem(port_attributes_list, i)
if port_attributes.port_mapping.module_port == sfp_module:
if get_port_admin_status_by_log_port(port_attributes.log_port):
log_port_list.append(port_attributes.log_port)
if is_nve(int(port_attributes.log_port)) == False \
and port_attributes.port_mapping.module_port == sfp_module \
and is_port_admin_status_up(port_attributes.log_port):
log_port_list.append(port_attributes.log_port)
return log_port_list

View File

@ -22,7 +22,7 @@ GET_HWSKU_CMD = "sonic-cfggen -d -v DEVICE_METADATA.localhost.hwsku"
# magic code defnition for port number, qsfp port position of each hwsku
# port_position_tuple = (PORT_START, QSFP_PORT_START, PORT_END, PORT_IN_BLOCK, EEPROM_OFFSET)
hwsku_dict = {'ACS-MSN2700': 0, "LS-SN2700":0, 'ACS-MSN2740': 0, 'ACS-MSN2100': 1, 'ACS-MSN2410': 2, 'ACS-MSN2010': 3, 'ACS-MSN3700': 0, 'ACS-MSN3700C': 0}
hwsku_dict = {'ACS-MSN2700': 0, "LS-SN2700":0, 'ACS-MSN2740': 0, 'ACS-MSN2100': 1, 'ACS-MSN2410': 2, 'ACS-MSN2010': 3, 'ACS-MSN3700': 0, 'ACS-MSN3700C': 0, 'Mellanox-SN2700': 0, 'Mellanox-SN2700-D48C8': 0}
port_position_tuple_list = [(0, 0, 31, 32, 1), (0, 0, 15, 16, 1), (0, 48, 55, 56, 1),(0, 18, 21, 22, 1)]
class SfpUtil(SfpUtilBase):
@ -41,7 +41,7 @@ class SfpUtil(SfpUtilBase):
db_sel_tbl = None
state_db = None
sfpd_status_tbl = None
qsfp_sysfs_path = "/sys/devices/platform/i2c_mlxcpld.1/i2c-1/i2c-2/2-0048/"
qsfp_sysfs_path = "/var/run/hw-management/qsfp/"
@property
def port_start(self):

View File

@ -0,0 +1,4 @@
{
"skip_ledd": true
}

View File

@ -19,3 +19,77 @@ chip "ucd9200-i2c-5-41"
bus "i2c-17" "i2c-1-mux (chan_id 7)"
chip "lm75-i2c-17-49"
label temp1 "Ambient Board Temp"
chip "mlxsw-*"
ignore temp2
ignore temp3
ignore temp4
ignore temp5
ignore temp6
ignore temp7
ignore temp8
ignore temp9
ignore temp10
ignore temp11
ignore temp12
ignore temp13
ignore temp14
ignore temp15
ignore temp16
ignore temp17
ignore temp18
ignore temp19
ignore temp20
ignore temp21
ignore temp22
ignore temp23
ignore temp24
ignore temp25
ignore temp26
ignore temp27
ignore temp28
ignore temp29
ignore temp30
ignore temp31
ignore temp32
ignore temp33
ignore temp34
ignore temp35
ignore temp36
ignore temp37
ignore temp38
ignore temp39
ignore temp40
ignore temp41
ignore temp42
ignore temp43
ignore temp44
ignore temp45
ignore temp46
ignore temp47
ignore temp48
ignore temp49
ignore temp50
ignore temp51
ignore temp52
ignore temp53
ignore temp54
ignore temp55
ignore temp56
ignore temp57
ignore temp58
ignore temp59
ignore temp60
ignore temp61
ignore temp62
ignore temp63
ignore temp64
chip "*-virtual-*"
ignore temp1
ignore temp2
chip "dps460-*"
ignore fan2
ignore fan3

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -20,14 +20,10 @@ class PsuUtil(PsuBase):
def __init__(self):
PsuBase.__init__(self)
self.psu_path = ""
for index in range(0, 100):
hwmon_path = "/sys/devices/platform/mlxplat/mlxreg-hotplug/hwmon/hwmon{}/".format(index)
if os.path.exists(hwmon_path):
self.psu_path = hwmon_path
break
self.psu_presence = "psu{}"
self.psu_oper_status = "pwr{}"
self.psu_path = "/var/run/hw-management/thermal/"
self.psu_presence = "psu{}_status"
self.psu_oper_status = "psu{}_pwr_status"
def get_num_psus(self):
"""

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -1,7 +1,7 @@
################################################################################
# Copyright (c) 2019 Mellanox Technologies
#
# Platform specific sensors config for MSN3700
# Platform specific sensors config for SN3700
################################################################################
# Temperature sensors
@ -15,6 +15,10 @@ bus "i2c-7" "i2c-1-mux (chan_id 6)"
chip "tmp102-i2c-*-4a"
label temp1 "Ambient Port Side Temp (air exhaust)"
bus "i2c-15" "i2c-1-mux (chan_id 6)"
chip "tmp102-i2c-15-49"
label temp1 "Ambient COMEX Temp"
# Power controllers
bus "i2c-5" "i2c-1-mux (chan_id 4)"
chip "tps53679-i2c-*-70"
@ -30,6 +34,7 @@ bus "i2c-5" "i2c-1-mux (chan_id 4)"
chip "tps53679-i2c-*-71"
label in1 "PMIC-2 PSU 12V Rail (in)"
label in2 "PMIC-2 ASIC 3.3V Rail (out)"
compute in2 (1.5)*@, @/(1.5)
label in3 "PMIC-2 ASIC 1.8V Rail (out)"
label temp1 "PMIC-2 Temp 1"
label temp2 "PMIC-2 Temp 2"
@ -38,6 +43,28 @@ bus "i2c-5" "i2c-1-mux (chan_id 4)"
label curr1 "PMIC-2 ASIC 3.3V Rail Curr (out)"
label curr2 "PMIC-2 ASIC 1.8V Rail Curr (out)"
bus "i2c-15" "i2c-1-mux (chan_id 6)"
chip "tps53679-i2c-*-58"
label in1 "PMIC-3 PSU 12V Rail (in)"
label in2 "PMIC-3 COMEX 1.8V Rail (out)"
label in3 "PMIC-3 COMEX 1.05V Rail (out)"
label temp1 "PMIC-3 Temp 1"
label temp2 "PMIC-3 Temp 2"
label power1 "PMIC-3 COMEX 1.8V Rail Pwr (out)"
label power2 "PMIC-3 COMEX 1.05V Rail Pwr (out)"
label curr1 "PMIC-3 COMEX 1.8V Rail Curr (out)"
label curr2 "PMIC-3 COMEX 1.05V Rail Curr (out)"
chip "tps53679-i2c-*-61"
label in1 "PMIC-4 PSU 12V Rail (in)"
label in2 "PMIC-4 COMEX 1.2V Rail (out)"
ignore in3
label temp1 "PMIC-4 Temp 1"
label temp2 "PMIC-4 Temp 2"
label power1 "PMIC-4 COMEX 1.2V Rail Pwr (out)"
ignore power2
label curr1 "PMIC-4 COMEX 1.2V Rail Curr (out)"
ignore curr2
# Power supplies
bus "i2c-4" "i2c-1-mux (chan_id 3)"
chip "dps460-i2c-*-58"

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/platform_wait

View File

@ -0,0 +1 @@
../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json

View File

@ -1,7 +1,7 @@
################################################################################
# Copyright (c) 2019 Mellanox Technologies
#
# Platform specific sensors config for MSN3700C
# Platform specific sensors config for SN3700C
################################################################################
# Temperature sensors
@ -15,6 +15,10 @@ bus "i2c-7" "i2c-1-mux (chan_id 6)"
chip "tmp102-i2c-*-4a"
label temp1 "Ambient Port Side Temp (air exhaust)"
bus "i2c-15" "i2c-1-mux (chan_id 6)"
chip "tmp102-i2c-15-49"
label temp1 "Ambient COMEX Temp"
# Power controllers
bus "i2c-5" "i2c-1-mux (chan_id 4)"
chip "tps53679-i2c-*-70"
@ -30,6 +34,7 @@ bus "i2c-5" "i2c-1-mux (chan_id 4)"
chip "tps53679-i2c-*-71"
label in1 "PMIC-2 PSU 12V Rail (in)"
label in2 "PMIC-2 ASIC 3.3V Rail (out)"
compute in2 (1.5)*@, @/(1.5)
label in3 "PMIC-2 ASIC 1.8V Rail (out)"
label temp1 "PMIC-2 Temp 1"
label temp2 "PMIC-2 Temp 2"
@ -38,6 +43,28 @@ bus "i2c-5" "i2c-1-mux (chan_id 4)"
label curr1 "PMIC-2 ASIC 3.3V Rail Curr (out)"
label curr2 "PMIC-2 ASIC 1.8V Rail Curr (out)"
bus "i2c-15" "i2c-1-mux (chan_id 6)"
chip "tps53679-i2c-*-58"
label in1 "PMIC-3 PSU 12V Rail (in)"
label in2 "PMIC-3 COMEX 1.8V Rail (out)"
label in3 "PMIC-3 COMEX 1.05V Rail (out)"
label temp1 "PMIC-3 Temp 1"
label temp2 "PMIC-3 Temp 2"
label power1 "PMIC-3 COMEX 1.8V Rail Pwr (out)"
label power2 "PMIC-3 COMEX 1.05V Rail Pwr (out)"
label curr1 "PMIC-3 COMEX 1.8V Rail Curr (out)"
label curr2 "PMIC-3 COMEX 1.05V Rail Curr (out)"
chip "tps53679-i2c-*-61"
label in1 "PMIC-4 PSU 12V Rail (in)"
label in2 "PMIC-4 COMEX 1.2V Rail (out)"
ignore in3
label temp1 "PMIC-4 Temp 1"
label temp2 "PMIC-4 Temp 2"
label power1 "PMIC-4 COMEX 1.2V Rail Pwr (out)"
ignore power2
label curr1 "PMIC-4 COMEX 1.2V Rail Curr (out)"
ignore curr2
# Power supplies
bus "i2c-4" "i2c-1-mux (chan_id 3)"
chip "dps460-i2c-*-58"
@ -79,10 +106,6 @@ chip "mlxreg_fan-isa-*"
label fan6 "Chassis Fan Drawer-3 Tach 2"
label fan7 "Chassis Fan Drawer-4 Tach 1"
label fan8 "Chassis Fan Drawer-4 Tach 2"
ignore fan9
ignore fan10
ignore fan11
ignore fan12
# Miscellaneous
chip "*-virtual-*"

View File

@ -10,6 +10,13 @@
#################
$ModLoad imuxsock # provides support for local system logging
#
# Set a rate limit on messages from the container
#
$SystemLogRateLimitInterval 300
$SystemLogRateLimitBurst 20000
#$ModLoad imklog # provides kernel logging support
#$ModLoad immark # provides --MARK-- message capability

View File

@ -1,5 +1,8 @@
FROM debian:jessie
## Remove retired jessie-updates repo
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
# Clean documentation in FROM image
RUN find /usr/share/doc -depth \( -type f -o -type l \) ! -name copyright | xargs rm || true
@ -28,12 +31,9 @@ RUN apt-get -y install \
vim-tiny \
perl \
python \
rsyslog \
less
# Install a newer version of rsyslog from jessie-backports in hopes of
# eliminating memory leaks
RUN apt-get -y -t jessie-backports install rsyslog
COPY ["etc/rsyslog.conf", "/etc/rsyslog.conf"]
COPY ["etc/rsyslog.d/*", "/etc/rsyslog.d/"]
COPY ["root/.vimrc", "/root/.vimrc"]

View File

@ -14,6 +14,13 @@
#################
$ModLoad imuxsock # provides support for local system logging
#
# Set a rate limit on messages from the container
#
$SystemLogRateLimitInterval 300
$SystemLogRateLimitBurst 20000
#$ModLoad imklog # provides kernel logging support
#$ModLoad immark # provides --MARK-- message capability

View File

@ -5,4 +5,3 @@ deb http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-fre
deb-src http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free
deb http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free
deb-src http://debian-archive.trafficmanager.net/debian-security/ jessie/updates main contrib non-free
deb http://debian-archive.trafficmanager.net/debian/ jessie-backports main contrib non-free

View File

@ -13,7 +13,7 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
# Install required packages
RUN apt-get install -y libdbus-1-3 libdaemon0 libjansson4 libc-ares2 iproute libpython2.7 libjson-c2 logrotate
RUN apt-get install -y libdbus-1-3 libdaemon0 libjansson4 libc-ares2 iproute2 libpython2.7 libjson-c2 logrotate
{% if docker_fpm_frr_debs.strip() -%}
# Copy locally-built Debian package dependencies

View File

@ -1,4 +1,4 @@
FROM docker-config-engine
FROM docker-config-engine-stretch
ARG docker_container_name
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
@ -8,14 +8,14 @@ ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install -f -y ifupdown arping libdbus-1-3 libdaemon0 libjansson4 libpython2.7
RUN apt-get install -f -y ifupdown arping libdbus-1-3 libdaemon0 libjansson4 libpython2.7 iproute2
RUN apt-get install -f -y ndisc6 tcpdump python-scapy
## Install redis-tools dependencies
## TODO: implicitly install dependencies
RUN apt-get -y install libjemalloc1
RUN apt-get install -y libelf1 libmnl0
RUN apt-get install -y libelf1 libmnl0 bridge-utils
RUN pip install setuptools
RUN pip install pyroute2==0.5.3 netifaces==0.10.7

View File

@ -14,6 +14,8 @@ def enable_counters():
enable_counter_group(db, 'PORT')
enable_counter_group(db, 'QUEUE')
enable_counter_group(db, 'PFCWD')
enable_counter_group(db, 'PG_WATERMARK')
enable_counter_group(db, 'QUEUE_WATERMARK')
def get_uptime():
with open('/proc/uptime') as fp:

View File

@ -43,8 +43,8 @@ HWSKU=`sonic-cfggen -d -v "DEVICE_METADATA['localhost']['hwsku']"`
# Don't load json config if system warm start or
# swss docker warm start is enabled, the data already exists in appDB.
SYSTEM_WARM_START=`redis-cli -n 4 hget "WARM_RESTART|system" enable`
SWSS_WARM_START=`redis-cli -n 4 hget "WARM_RESTART|swss" enable`
SYSTEM_WARM_START=`redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|system" enable`
SWSS_WARM_START=`redis-cli -n 6 hget "WARM_RESTART_ENABLE_TABLE|swss" enable`
if [[ "$SYSTEM_WARM_START" == "true" ]] || [[ "$SWSS_WARM_START" == "true" ]]; then
# We have to make sure db data has not been flushed.
RESTORE_COUNT=`redis-cli -n 6 hget "WARM_RESTART_TABLE|orchagent" restore_count`

View File

@ -1,4 +1,4 @@
FROM docker-config-engine
FROM docker-config-engine-stretch
ARG docker_container_name
RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%syslogtag%/;" /etc/rsyslog.conf
@ -6,11 +6,8 @@ RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%s
# Make apt-get non-interactive
ENV DEBIAN_FRONTEND=noninteractive
# Update apt's cache of available packages
RUN apt-get update
# Install required packages
RUN apt-get install -y python-pip libpython2.7 sensord fancontrol ipmitool
RUN apt-get update && apt-get install -y python-pip libpython2.7 ipmitool librrd8 librrd-dev rrdtool
{% if docker_platform_monitor_debs.strip() -%}
# Copy locally-built Debian package dependencies
@ -55,7 +52,7 @@ RUN apt-get autoclean -y
RUN apt-get autoremove -y
RUN rm -rf /debs /python-wheels ~/.cache
COPY ["start.sh", "lm-sensors.sh", "/usr/bin/"]
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
COPY ["docker_init.sh", "lm-sensors.sh", "/usr/bin/"]
COPY ["docker-pmon.supervisord.conf.j2", "start.sh.j2", "/usr/share/sonic/templates/"]
ENTRYPOINT ["/usr/bin/supervisord"]
ENTRYPOINT ["/usr/bin/docker_init.sh"]

View File

@ -37,6 +37,7 @@ autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
{% if not skip_ledd %}
[program:ledd]
command=/usr/bin/ledd
priority=5
@ -45,7 +46,9 @@ autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
startsecs=0
{% endif %}
{% if not skip_xcvrd %}
[program:xcvrd]
command=/usr/bin/xcvrd
priority=6
@ -54,7 +57,9 @@ autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
startsecs=0
{% endif %}
{% if not skip_psud %}
[program:psud]
command=/usr/bin/psud
priority=7
@ -63,4 +68,4 @@ autorestart=false
stdout_logfile=syslog
stderr_logfile=syslog
startsecs=0
{% endif %}

View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Generate supervisord config file and the start.sh scripts
mkdir -p /etc/supervisor/conf.d/
if [ -e /usr/share/sonic/platform/pmon_daemon_control.json ];
then
sonic-cfggen -j /usr/share/sonic/platform/pmon_daemon_control.json -t /usr/share/sonic/templates/docker-pmon.supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf
sonic-cfggen -j /usr/share/sonic/platform/pmon_daemon_control.json -t /usr/share/sonic/templates/start.sh.j2 > /usr/bin/start.sh
chmod +x /usr/bin/start.sh
else
sonic-cfggen -t /usr/share/sonic/templates/docker-pmon.supervisord.conf.j2 > /etc/supervisor/conf.d/supervisord.conf
sonic-cfggen -t /usr/share/sonic/templates/start.sh.j2 > /usr/bin/start.sh
chmod +x /usr/bin/start.sh
fi
exec /usr/bin/supervisord

View File

@ -1,5 +1,7 @@
#!/usr/bin/env bash
declare -r EXIT_SUCCESS="0"
mkdir -p /var/sonic
echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status
@ -7,6 +9,16 @@ rm -f /var/run/rsyslogd.pid
supervisorctl start rsyslogd
# If this platform has synchronization script, run it
if [ -e /usr/share/sonic/platform/platform_wait ]; then
/usr/share/sonic/platform/platform_wait
EXIT_CODE="$?"
if [ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]; then
supervisorctl shutdown
exit "${EXIT_CODE}"
fi
fi
# If this platform has an lm-sensors config file, copy it to it's proper place
# and start lm-sensors
if [ -e /usr/share/sonic/platform/sensors.conf ]; then
@ -25,8 +37,14 @@ if [ -e /usr/share/sonic/platform/fancontrol ]; then
supervisorctl start fancontrol
fi
{% if not skip_ledd %}
supervisorctl start ledd
{% endif %}
{% if not skip_xcvrd %}
supervisorctl start xcvrd
{% endif %}
{% if not skip_psud %}
supervisorctl start psud
{% endif %}

View File

@ -2,6 +2,9 @@ FROM debian:jessie
MAINTAINER Pavel Shirshov
## Remove retired jessie-updates repo
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
## Copy dependencies
COPY \
{% for deb in docker_ptf_debs.split(' ') -%}
@ -35,6 +38,7 @@ RUN sed --in-place 's/httpredir.debian.org/debian-archive.trafficmanager.net/' /
cmake \
libqt5core5a \
libqt5network5 \
libboost-atomic1.55.0 \
less \
git \
iputils-ping \
@ -43,7 +47,8 @@ RUN sed --in-place 's/httpredir.debian.org/debian-archive.trafficmanager.net/' /
tcpdump \
python \
python-dev \
python-scapy
python-scapy \
python-six
RUN dpkg -i \
{% for deb in docker_ptf_debs.split(' ') -%}

View File

@ -30,6 +30,6 @@ RUN rm -rf /debs
COPY ["start.sh", "/usr/bin/"]
COPY ["docker-router-advertiser.supervisord.conf", "/etc/supervisor/conf.d/"]
COPY ["radvd.conf.j2", "/usr/share/sonic/templates/"]
COPY ["radvd.conf.j2", "wait_for_intf.sh.j2", "/usr/share/sonic/templates/"]
ENTRYPOINT ["/usr/bin/supervisord"]

View File

@ -21,5 +21,12 @@ if [ $NUM_IFACES -eq 0 ]; then
exit 0
fi
# Generate the script that waits for pertinent interfaces to come up and make it executable
sonic-cfggen -d -t /usr/share/sonic/templates/wait_for_intf.sh.j2 > /usr/bin/wait_for_intf.sh
chmod +x /usr/bin/wait_for_intf.sh
# Wait for pertinent interfaces to come up
/usr/bin/wait_for_intf.sh
# Start the router advertiser
supervisorctl start radvd

View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
STATE_DB_IDX="6"
VLAN_TABLE_PREFIX="VLAN_TABLE"
function wait_until_iface_ready
{
TABLE_PREFIX=$1
IFACE=$2
echo "Waiting until interface $IFACE is ready..."
# Wait for the interface to come up
# (i.e., interface is present in STATE_DB and state is "ok")
while true; do
RESULT=$(redis-cli -n ${STATE_DB_IDX} HGET "${TABLE_PREFIX}|${IFACE}" "state" 2> /dev/null)
if [ x"$RESULT" == x"ok" ]; then
break
fi
sleep 1
done
echo "Interface ${IFACE} is ready!"
}
# Wait for all interfaces to be up and ready
{% for (name, prefix) in VLAN_INTERFACE %}
wait_until_iface_ready ${VLAN_TABLE_PREFIX} {{ name }}
{% endfor %}

View File

@ -7,7 +7,7 @@ Before=ntp-config.service
[Service]
User={{ sonicadmin_user }}
ExecStartPre=/usr/bin/{{docker_container_name}}.sh start
ExecStart=/usr/bin/{{docker_container_name}}.sh attach
ExecStart=/usr/bin/{{docker_container_name}}.sh wait
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
[Install]

View File

@ -29,12 +29,16 @@ def
{# Port configuration to cable length look-up table #}
{# Each record describes mapping of DUT (DUT port) role and neighbor role to cable length #}
{# Roles described in the minigraph #}
{%- set ports2cable = {
'torrouter_server' : '5m',
'leafrouter_torrouter' : '40m',
'spinerouter_leafrouter' : '300m'
}
-%}
{%- if defs.ports2cable is defined %}
{%- set ports2cable = defs.ports2cable %}
{%- else %}
{%- set ports2cable = {
'torrouter_server' : '5m',
'leafrouter_torrouter' : '40m',
'spinerouter_leafrouter' : '300m'
}
-%}
{%- endif %}
{%- macro cable_length(port_name) %}
{%- set cable_len = [] %}
@ -127,10 +131,7 @@ def
{{ defs.generate_pg_profils(port_names_active) }}
{% else %}
"BUFFER_PG": {
"{{ port_names_active }}|0-2": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
},
"{{ port_names_active }}|5-6": {
"{{ port_names_active }}|0": {
"profile" : "[BUFFER_PROFILE|ingress_lossy_profile]"
}
},

View File

@ -6,7 +6,7 @@ After=docker.service
[Service]
User=root
ExecStartPre=/usr/bin/{{docker_container_name}}.sh start
ExecStart=/usr/bin/{{docker_container_name}}.sh attach
ExecStart=/usr/bin/{{docker_container_name}}.sh wait
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
[Install]

View File

@ -7,7 +7,7 @@ Before=ntp-config.service
[Service]
User={{ sonicadmin_user }}
ExecStartPre=/usr/bin/{{ docker_container_name }}.sh start
ExecStart=/usr/bin/{{ docker_container_name }}.sh attach
ExecStart=/usr/bin/{{ docker_container_name }}.sh wait
ExecStop=/usr/bin/{{ docker_container_name }}.sh stop
[Install]

Some files were not shown because too many files have changed in this diff Show More