From fac5e204c49a1643ba7b0ff84e7451dc3d292b76 Mon Sep 17 00:00:00 2001 From: gechiang <62408185+gechiang@users.noreply.github.com> Date: Wed, 31 Mar 2021 14:23:24 -0700 Subject: [PATCH] 7260cx3 DualToR config.bcm support based on DualToR setting in device metadata at boot time (#7168) * 7260cx3 DualToR config.bcm support based on DualToR setting in device metadata at boot time. For HWSKU Arista-7260CX3-C64 the MMU setting SOC for T0/T1 is also combined into the config.bcm.j2 logic so use just one config file and adding delta based on Switch Roles. --- ...64-64x100G-t0.config.bcm => config.bcm.j2} | 24 +- .../Arista-7260CX3-C64/sai.profile | 2 + .../Arista-7260CX3-C64/sai.profile.j2 | 14 - .../th2-a7260cx3-64-64x100G-t1.config.bcm | 1015 ----------------- ...12x50G+8x100G.config.bcm => config.bcm.j2} | 12 + .../Arista-7260CX3-D108C8/sai.profile | 2 +- ...cx3-64-64x40G.config.bcm => config.bcm.j2} | 12 + .../Arista-7260CX3-Q64/sai.profile | 2 +- platform/broadcom/docker-syncd-brcm/start.sh | 12 + 9 files changed, 63 insertions(+), 1032 deletions(-) rename device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/{th2-a7260cx3-64-64x100G-t0.config.bcm => config.bcm.j2} (97%) create mode 100644 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile delete mode 100644 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile.j2 delete mode 100644 device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t1.config.bcm rename device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/{th2-a7260cx3-64-112x50G+8x100G.config.bcm => config.bcm.j2} (98%) rename device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/{th2-a7260cx3-64-64x40G.config.bcm => config.bcm.j2} (98%) diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t0.config.bcm b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 similarity index 97% rename from device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t0.config.bcm rename to device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 index faeeb4bb1e..3676e5e84b 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t0.config.bcm +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/config.bcm.j2 @@ -1,3 +1,24 @@ +{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} +{%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier1"' -%} +{%- set IPinIP_sock = '' -%} +{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined -%} +{%- if DEVICE_METADATA['localhost']['type'] is defined -%} +{%- set switch_role = DEVICE_METADATA['localhost']['type'] -%} +{%- if 'torrouter' in switch_role.lower() or 'torswitch' in switch_role.lower() %} +{%- set mmu_sock = 'mmu_init_config="MSFT-TH2-Tier0"' -%} +{%- endif %} +{%- endif %} +{%- if DEVICE_METADATA['localhost']['subtype'] is defined -%} +{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} +{%- if 'dualtor' in switch_subtype.lower() %} +{%- set IPinIP_sock = 'sai_tunnel_support=1 + host_as_route_disable=1 + l3_ecmp_levels=2' -%} +{%- endif %} +{%- endif %} +{%- endif %} +{# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x100G-t1.config.bcm" #} + PHY_AN_ALLOW_PLL_CHANGE=1 arl_clean_timeout_usec=15000000 asf_mem_profile=2 @@ -1012,4 +1033,5 @@ serdes_preemphasis_115=0x184606 serdes_preemphasis_116=0x103706 serdes_preemphasis_117=0x133c06 -mmu_init_config="MSFT-TH2-Tier0" +{{ mmu_sock }} +{{ IPinIP_sock }} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile new file mode 100644 index 0000000000..5163d6140f --- /dev/null +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile @@ -0,0 +1,2 @@ +SAI_INIT_CONFIG_FILE=/etc/sai.d/config.bcm +SAI_NUM_ECMP_MEMBERS=64 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile.j2 b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile.j2 deleted file mode 100644 index 403c797a47..0000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/sai.profile.j2 +++ /dev/null @@ -1,14 +0,0 @@ -{# Get sai.profile based on switch_role #} -{%- if DEVICE_METADATA is defined -%} -{%- set switch_role = DEVICE_METADATA['localhost']['type'] -%} -{%- if 'torrouter' in switch_role.lower() or 'torswitch' in switch_role.lower() %} -{% set sai_profile_contents = 'SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-a7260cx3-64-64x100G-t0.config.bcm' -%} -{%- else %} -{% set sai_profile_contents = 'SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-a7260cx3-64-64x100G-t1.config.bcm' -%} -{%- endif %} -{%- else %} -{% set sai_profile_contents = 'SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-a7260cx3-64-64x100G-t1.config.bcm' -%} -{%- endif %} -{# Write the contents of sai_ profile_filename to sai.profile file #} -{{ sai_profile_contents }} -SAI_NUM_ECMP_MEMBERS=64 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t1.config.bcm b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t1.config.bcm deleted file mode 100644 index 96fa6f32d6..0000000000 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-C64/th2-a7260cx3-64-64x100G-t1.config.bcm +++ /dev/null @@ -1,1015 +0,0 @@ -PHY_AN_ALLOW_PLL_CHANGE=1 -arl_clean_timeout_usec=15000000 -asf_mem_profile=2 -bcm_num_cos=10 -bcm_stat_flags=1 -bcm_stat_jumbo=9236 -cdma_timeout_usec=15000000 -core_clock_frequency=1700 -dma_desc_timeout_usec=15000000 -dpp_clock_ratio=2:3 -higig2_hdr_mode=1 -ipv6_lpm_128b_enable=1 -l3_alpm_enable=2 -lpm_scaling_enable=0 -l2xmsg_mode=1 -max_vp_lags=0 -mem_scan_enable=1 -miim_intr_enable=0 -module_64ports=1 -os=unix -oversubscribe_mode=1 -pbmp_xport_xe=0x40003ffff0000ffffc0003fffe0001fffe -phy_an_allow_pll_change_hg=0 -phy_an_c73_100=1 -phy_an_c73_102=1 -phy_an_c73_103=1 -phy_an_c73_104=1 -phy_an_c73_105=1 -phy_an_c73_106=1 -phy_an_c73_107=1 -phy_an_c73_108=1 -phy_an_c73_109=1 -phy_an_c73_10=1 -phy_an_c73_110=1 -phy_an_c73_111=1 -phy_an_c73_112=1 -phy_an_c73_113=1 -phy_an_c73_114=1 -phy_an_c73_115=1 -phy_an_c73_116=1 -phy_an_c73_117=1 -phy_an_c73_11=1 -phy_an_c73_12=1 -phy_an_c73_13=1 -phy_an_c73_14=1 -phy_an_c73_15=1 -phy_an_c73_16=1 -phy_an_c73_1=1 -phy_an_c73_2=1 -phy_an_c73_34=1 -phy_an_c73_35=1 -phy_an_c73_36=1 -phy_an_c73_37=1 -phy_an_c73_38=1 -phy_an_c73_39=1 -phy_an_c73_3=1 -phy_an_c73_40=1 -phy_an_c73_41=1 -phy_an_c73_42=1 -phy_an_c73_43=1 -phy_an_c73_44=1 -phy_an_c73_45=1 -phy_an_c73_46=1 -phy_an_c73_47=1 -phy_an_c73_48=1 -phy_an_c73_49=1 -phy_an_c73_4=1 -phy_an_c73_5=1 -phy_an_c73_66=1 -phy_an_c73_68=1 -phy_an_c73_69=1 -phy_an_c73_6=1 -phy_an_c73_70=1 -phy_an_c73_71=1 -phy_an_c73_72=1 -phy_an_c73_73=1 -phy_an_c73_74=1 -phy_an_c73_75=1 -phy_an_c73_76=1 -phy_an_c73_77=1 -phy_an_c73_78=1 -phy_an_c73_79=1 -phy_an_c73_7=1 -phy_an_c73_80=1 -phy_an_c73_81=1 -phy_an_c73_82=1 -phy_an_c73_83=1 -phy_an_c73_8=1 -phy_an_c73_9=1 -phy_chain_rx_lane_map_physical{1.0}=0x3210 -phy_chain_rx_lane_map_physical{101.0}=0x0123 -phy_chain_rx_lane_map_physical{105.0}=0x0123 -phy_chain_rx_lane_map_physical{109.0}=0x0123 -phy_chain_rx_lane_map_physical{113.0}=0x2301 -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}=0x1203 -phy_chain_rx_lane_map_physical{129.0}=0x3210 -phy_chain_rx_lane_map_physical{13.0}=0x0321 -phy_chain_rx_lane_map_physical{133.0}=0x1032 -phy_chain_rx_lane_map_physical{137.0}=0x3210 -phy_chain_rx_lane_map_physical{141.0}=0x0123 -phy_chain_rx_lane_map_physical{145.0}=0x3210 -phy_chain_rx_lane_map_physical{149.0}=0x2310 -phy_chain_rx_lane_map_physical{153.0}=0x0132 -phy_chain_rx_lane_map_physical{157.0}=0x1302 -phy_chain_rx_lane_map_physical{161.0}=0x3021 -phy_chain_rx_lane_map_physical{165.0}=0x2031 -phy_chain_rx_lane_map_physical{169.0}=0x2031 -phy_chain_rx_lane_map_physical{17.0}=0x3210 -phy_chain_rx_lane_map_physical{173.0}=0x1302 -phy_chain_rx_lane_map_physical{177.0}=0x2031 -phy_chain_rx_lane_map_physical{181.0}=0x0213 -phy_chain_rx_lane_map_physical{185.0}=0x0213 -phy_chain_rx_lane_map_physical{189.0}=0x1302 -phy_chain_rx_lane_map_physical{193.0}=0x3120 -phy_chain_rx_lane_map_physical{197.0}=0x0231 -phy_chain_rx_lane_map_physical{201.0}=0x2031 -phy_chain_rx_lane_map_physical{205.0}=0x0213 -phy_chain_rx_lane_map_physical{209.0}=0x2013 -phy_chain_rx_lane_map_physical{21.0}=0x3021 -phy_chain_rx_lane_map_physical{213.0}=0x3021 -phy_chain_rx_lane_map_physical{217.0}=0x0231 -phy_chain_rx_lane_map_physical{221.0}=0x2031 -phy_chain_rx_lane_map_physical{225.0}=0x1203 -phy_chain_rx_lane_map_physical{229.0}=0x1230 -phy_chain_rx_lane_map_physical{233.0}=0x3021 -phy_chain_rx_lane_map_physical{237.0}=0x1032 -phy_chain_rx_lane_map_physical{241.0}=0x2301 -phy_chain_rx_lane_map_physical{245.0}=0x0321 -phy_chain_rx_lane_map_physical{249.0}=0x2301 -phy_chain_rx_lane_map_physical{25.0}=0x2301 -phy_chain_rx_lane_map_physical{253.0}=0x2301 -phy_chain_rx_lane_map_physical{257.0}=0x3210 -phy_chain_rx_lane_map_physical{29.0}=0x3021 -phy_chain_rx_lane_map_physical{33.0}=0x1302 -phy_chain_rx_lane_map_physical{37.0}=0x2031 -phy_chain_rx_lane_map_physical{41.0}=0x3021 -phy_chain_rx_lane_map_physical{45.0}=0x1023 -phy_chain_rx_lane_map_physical{49.0}=0x0213 -phy_chain_rx_lane_map_physical{5.0}=0x3201 -phy_chain_rx_lane_map_physical{53.0}=0x3201 -phy_chain_rx_lane_map_physical{57.0}=0x2013 -phy_chain_rx_lane_map_physical{61.0}=0x0213 -phy_chain_rx_lane_map_physical{65.0}=0x1203 -phy_chain_rx_lane_map_physical{69.0}=0x0213 -phy_chain_rx_lane_map_physical{73.0}=0x0213 -phy_chain_rx_lane_map_physical{77.0}=0x3120 -phy_chain_rx_lane_map_physical{81.0}=0x0213 -phy_chain_rx_lane_map_physical{85.0}=0x2031 -phy_chain_rx_lane_map_physical{89.0}=0x2031 -phy_chain_rx_lane_map_physical{9.0}=0x0321 -phy_chain_rx_lane_map_physical{93.0}=0x3120 -phy_chain_rx_lane_map_physical{97.0}=0x1203 -phy_chain_rx_polarity_flip_physical{1.0}=0x1 -phy_chain_rx_polarity_flip_physical{10.0}=0x0 -phy_chain_rx_polarity_flip_physical{100.0}=0x1 -phy_chain_rx_polarity_flip_physical{101.0}=0x1 -phy_chain_rx_polarity_flip_physical{102.0}=0x0 -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{11.0}=0x1 -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}=0x0 -phy_chain_rx_polarity_flip_physical{119.0}=0x1 -phy_chain_rx_polarity_flip_physical{12.0}=0x1 -phy_chain_rx_polarity_flip_physical{120.0}=0x0 -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}=0x1 -phy_chain_rx_polarity_flip_physical{128.0}=0x1 -phy_chain_rx_polarity_flip_physical{129.0}=0x0 -phy_chain_rx_polarity_flip_physical{13.0}=0x1 -phy_chain_rx_polarity_flip_physical{130.0}=0x1 -phy_chain_rx_polarity_flip_physical{131.0}=0x1 -phy_chain_rx_polarity_flip_physical{132.0}=0x0 -phy_chain_rx_polarity_flip_physical{133.0}=0x1 -phy_chain_rx_polarity_flip_physical{134.0}=0x1 -phy_chain_rx_polarity_flip_physical{135.0}=0x1 -phy_chain_rx_polarity_flip_physical{136.0}=0x0 -phy_chain_rx_polarity_flip_physical{137.0}=0x0 -phy_chain_rx_polarity_flip_physical{138.0}=0x0 -phy_chain_rx_polarity_flip_physical{139.0}=0x1 -phy_chain_rx_polarity_flip_physical{14.0}=0x0 -phy_chain_rx_polarity_flip_physical{140.0}=0x0 -phy_chain_rx_polarity_flip_physical{141.0}=0x1 -phy_chain_rx_polarity_flip_physical{142.0}=0x0 -phy_chain_rx_polarity_flip_physical{143.0}=0x1 -phy_chain_rx_polarity_flip_physical{144.0}=0x0 -phy_chain_rx_polarity_flip_physical{145.0}=0x1 -phy_chain_rx_polarity_flip_physical{146.0}=0x0 -phy_chain_rx_polarity_flip_physical{147.0}=0x1 -phy_chain_rx_polarity_flip_physical{148.0}=0x0 -phy_chain_rx_polarity_flip_physical{149.0}=0x0 -phy_chain_rx_polarity_flip_physical{15.0}=0x1 -phy_chain_rx_polarity_flip_physical{150.0}=0x1 -phy_chain_rx_polarity_flip_physical{151.0}=0x1 -phy_chain_rx_polarity_flip_physical{152.0}=0x0 -phy_chain_rx_polarity_flip_physical{153.0}=0x0 -phy_chain_rx_polarity_flip_physical{154.0}=0x1 -phy_chain_rx_polarity_flip_physical{155.0}=0x1 -phy_chain_rx_polarity_flip_physical{156.0}=0x0 -phy_chain_rx_polarity_flip_physical{157.0}=0x0 -phy_chain_rx_polarity_flip_physical{158.0}=0x0 -phy_chain_rx_polarity_flip_physical{159.0}=0x1 -phy_chain_rx_polarity_flip_physical{16.0}=0x0 -phy_chain_rx_polarity_flip_physical{160.0}=0x0 -phy_chain_rx_polarity_flip_physical{161.0}=0x1 -phy_chain_rx_polarity_flip_physical{162.0}=0x1 -phy_chain_rx_polarity_flip_physical{163.0}=0x0 -phy_chain_rx_polarity_flip_physical{164.0}=0x1 -phy_chain_rx_polarity_flip_physical{165.0}=0x0 -phy_chain_rx_polarity_flip_physical{166.0}=0x0 -phy_chain_rx_polarity_flip_physical{167.0}=0x1 -phy_chain_rx_polarity_flip_physical{168.0}=0x1 -phy_chain_rx_polarity_flip_physical{169.0}=0x1 -phy_chain_rx_polarity_flip_physical{17.0}=0x1 -phy_chain_rx_polarity_flip_physical{170.0}=0x1 -phy_chain_rx_polarity_flip_physical{171.0}=0x0 -phy_chain_rx_polarity_flip_physical{172.0}=0x0 -phy_chain_rx_polarity_flip_physical{173.0}=0x0 -phy_chain_rx_polarity_flip_physical{174.0}=0x0 -phy_chain_rx_polarity_flip_physical{175.0}=0x1 -phy_chain_rx_polarity_flip_physical{176.0}=0x1 -phy_chain_rx_polarity_flip_physical{177.0}=0x1 -phy_chain_rx_polarity_flip_physical{178.0}=0x1 -phy_chain_rx_polarity_flip_physical{179.0}=0x0 -phy_chain_rx_polarity_flip_physical{18.0}=0x0 -phy_chain_rx_polarity_flip_physical{180.0}=0x0 -phy_chain_rx_polarity_flip_physical{181.0}=0x1 -phy_chain_rx_polarity_flip_physical{182.0}=0x1 -phy_chain_rx_polarity_flip_physical{183.0}=0x0 -phy_chain_rx_polarity_flip_physical{184.0}=0x0 -phy_chain_rx_polarity_flip_physical{185.0}=0x0 -phy_chain_rx_polarity_flip_physical{186.0}=0x0 -phy_chain_rx_polarity_flip_physical{187.0}=0x1 -phy_chain_rx_polarity_flip_physical{188.0}=0x1 -phy_chain_rx_polarity_flip_physical{189.0}=0x0 -phy_chain_rx_polarity_flip_physical{19.0}=0x1 -phy_chain_rx_polarity_flip_physical{190.0}=0x0 -phy_chain_rx_polarity_flip_physical{191.0}=0x1 -phy_chain_rx_polarity_flip_physical{192.0}=0x0 -phy_chain_rx_polarity_flip_physical{193.0}=0x0 -phy_chain_rx_polarity_flip_physical{194.0}=0x0 -phy_chain_rx_polarity_flip_physical{195.0}=0x1 -phy_chain_rx_polarity_flip_physical{196.0}=0x1 -phy_chain_rx_polarity_flip_physical{197.0}=0x1 -phy_chain_rx_polarity_flip_physical{198.0}=0x1 -phy_chain_rx_polarity_flip_physical{199.0}=0x0 -phy_chain_rx_polarity_flip_physical{2.0}=0x0 -phy_chain_rx_polarity_flip_physical{20.0}=0x0 -phy_chain_rx_polarity_flip_physical{200.0}=0x0 -phy_chain_rx_polarity_flip_physical{201.0}=0x0 -phy_chain_rx_polarity_flip_physical{202.0}=0x0 -phy_chain_rx_polarity_flip_physical{203.0}=0x1 -phy_chain_rx_polarity_flip_physical{204.0}=0x0 -phy_chain_rx_polarity_flip_physical{205.0}=0x1 -phy_chain_rx_polarity_flip_physical{206.0}=0x1 -phy_chain_rx_polarity_flip_physical{207.0}=0x0 -phy_chain_rx_polarity_flip_physical{208.0}=0x0 -phy_chain_rx_polarity_flip_physical{209.0}=0x1 -phy_chain_rx_polarity_flip_physical{21.0}=0x0 -phy_chain_rx_polarity_flip_physical{210.0}=0x1 -phy_chain_rx_polarity_flip_physical{211.0}=0x0 -phy_chain_rx_polarity_flip_physical{212.0}=0x0 -phy_chain_rx_polarity_flip_physical{213.0}=0x0 -phy_chain_rx_polarity_flip_physical{214.0}=0x0 -phy_chain_rx_polarity_flip_physical{215.0}=0x1 -phy_chain_rx_polarity_flip_physical{216.0}=0x0 -phy_chain_rx_polarity_flip_physical{217.0}=0x0 -phy_chain_rx_polarity_flip_physical{218.0}=0x0 -phy_chain_rx_polarity_flip_physical{219.0}=0x1 -phy_chain_rx_polarity_flip_physical{22.0}=0x0 -phy_chain_rx_polarity_flip_physical{220.0}=0x1 -phy_chain_rx_polarity_flip_physical{221.0}=0x0 -phy_chain_rx_polarity_flip_physical{222.0}=0x0 -phy_chain_rx_polarity_flip_physical{223.0}=0x1 -phy_chain_rx_polarity_flip_physical{224.0}=0x1 -phy_chain_rx_polarity_flip_physical{225.0}=0x1 -phy_chain_rx_polarity_flip_physical{226.0}=0x0 -phy_chain_rx_polarity_flip_physical{227.0}=0x0 -phy_chain_rx_polarity_flip_physical{228.0}=0x1 -phy_chain_rx_polarity_flip_physical{229.0}=0x0 -phy_chain_rx_polarity_flip_physical{23.0}=0x1 -phy_chain_rx_polarity_flip_physical{230.0}=0x0 -phy_chain_rx_polarity_flip_physical{231.0}=0x1 -phy_chain_rx_polarity_flip_physical{232.0}=0x1 -phy_chain_rx_polarity_flip_physical{233.0}=0x1 -phy_chain_rx_polarity_flip_physical{234.0}=0x0 -phy_chain_rx_polarity_flip_physical{235.0}=0x0 -phy_chain_rx_polarity_flip_physical{236.0}=0x0 -phy_chain_rx_polarity_flip_physical{237.0}=0x1 -phy_chain_rx_polarity_flip_physical{238.0}=0x0 -phy_chain_rx_polarity_flip_physical{239.0}=0x1 -phy_chain_rx_polarity_flip_physical{24.0}=0x0 -phy_chain_rx_polarity_flip_physical{240.0}=0x0 -phy_chain_rx_polarity_flip_physical{241.0}=0x1 -phy_chain_rx_polarity_flip_physical{242.0}=0x0 -phy_chain_rx_polarity_flip_physical{243.0}=0x1 -phy_chain_rx_polarity_flip_physical{244.0}=0x0 -phy_chain_rx_polarity_flip_physical{245.0}=0x1 -phy_chain_rx_polarity_flip_physical{246.0}=0x1 -phy_chain_rx_polarity_flip_physical{247.0}=0x1 -phy_chain_rx_polarity_flip_physical{248.0}=0x0 -phy_chain_rx_polarity_flip_physical{249.0}=0x0 -phy_chain_rx_polarity_flip_physical{25.0}=0x1 -phy_chain_rx_polarity_flip_physical{250.0}=0x1 -phy_chain_rx_polarity_flip_physical{251.0}=0x0 -phy_chain_rx_polarity_flip_physical{252.0}=0x1 -phy_chain_rx_polarity_flip_physical{253.0}=0x1 -phy_chain_rx_polarity_flip_physical{254.0}=0x0 -phy_chain_rx_polarity_flip_physical{255.0}=0x1 -phy_chain_rx_polarity_flip_physical{256.0}=0x0 -phy_chain_rx_polarity_flip_physical{257.0}=0x0 -phy_chain_rx_polarity_flip_physical{259.0}=0x0 -phy_chain_rx_polarity_flip_physical{26.0}=0x0 -phy_chain_rx_polarity_flip_physical{27.0}=0x1 -phy_chain_rx_polarity_flip_physical{28.0}=0x0 -phy_chain_rx_polarity_flip_physical{29.0}=0x0 -phy_chain_rx_polarity_flip_physical{3.0}=0x1 -phy_chain_rx_polarity_flip_physical{30.0}=0x0 -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}=0x0 -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}=0x1 -phy_chain_rx_polarity_flip_physical{37.0}=0x1 -phy_chain_rx_polarity_flip_physical{38.0}=0x1 -phy_chain_rx_polarity_flip_physical{39.0}=0x0 -phy_chain_rx_polarity_flip_physical{4.0}=0x0 -phy_chain_rx_polarity_flip_physical{40.0}=0x0 -phy_chain_rx_polarity_flip_physical{41.0}=0x0 -phy_chain_rx_polarity_flip_physical{42.0}=0x1 -phy_chain_rx_polarity_flip_physical{43.0}=0x1 -phy_chain_rx_polarity_flip_physical{44.0}=0x1 -phy_chain_rx_polarity_flip_physical{45.0}=0x1 -phy_chain_rx_polarity_flip_physical{46.0}=0x0 -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{5.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}=0x1 -phy_chain_rx_polarity_flip_physical{56.0}=0x0 -phy_chain_rx_polarity_flip_physical{57.0}=0x0 -phy_chain_rx_polarity_flip_physical{58.0}=0x0 -phy_chain_rx_polarity_flip_physical{59.0}=0x1 -phy_chain_rx_polarity_flip_physical{6.0}=0x0 -phy_chain_rx_polarity_flip_physical{60.0}=0x1 -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}=0x1 -phy_chain_rx_polarity_flip_physical{65.0}=0x1 -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}=0x0 -phy_chain_rx_polarity_flip_physical{7.0}=0x0 -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}=0x1 -phy_chain_rx_polarity_flip_physical{73.0}=0x1 -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}=0x0 -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{8.0}=0x1 -phy_chain_rx_polarity_flip_physical{80.0}=0x1 -phy_chain_rx_polarity_flip_physical{81.0}=0x1 -phy_chain_rx_polarity_flip_physical{82.0}=0x1 -phy_chain_rx_polarity_flip_physical{83.0}=0x0 -phy_chain_rx_polarity_flip_physical{84.0}=0x0 -phy_chain_rx_polarity_flip_physical{85.0}=0x1 -phy_chain_rx_polarity_flip_physical{86.0}=0x1 -phy_chain_rx_polarity_flip_physical{87.0}=0x0 -phy_chain_rx_polarity_flip_physical{88.0}=0x0 -phy_chain_rx_polarity_flip_physical{89.0}=0x0 -phy_chain_rx_polarity_flip_physical{9.0}=0x1 -phy_chain_rx_polarity_flip_physical{90.0}=0x0 -phy_chain_rx_polarity_flip_physical{91.0}=0x1 -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}=0x0 -phy_chain_rx_polarity_flip_physical{95.0}=0x1 -phy_chain_rx_polarity_flip_physical{96.0}=0x0 -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_tx_lane_map_physical{1.0}=0x2031 -phy_chain_tx_lane_map_physical{101.0}=0x1023 -phy_chain_tx_lane_map_physical{105.0}=0x1302 -phy_chain_tx_lane_map_physical{109.0}=0x0321 -phy_chain_tx_lane_map_physical{113.0}=0x2301 -phy_chain_tx_lane_map_physical{117.0}=0x3120 -phy_chain_tx_lane_map_physical{121.0}=0x3102 -phy_chain_tx_lane_map_physical{125.0}=0x3210 -phy_chain_tx_lane_map_physical{129.0}=0x1023 -phy_chain_tx_lane_map_physical{13.0}=0x3021 -phy_chain_tx_lane_map_physical{133.0}=0x3210 -phy_chain_tx_lane_map_physical{137.0}=0x2031 -phy_chain_tx_lane_map_physical{141.0}=0x1302 -phy_chain_tx_lane_map_physical{145.0}=0x3210 -phy_chain_tx_lane_map_physical{149.0}=0x0213 -phy_chain_tx_lane_map_physical{153.0}=0x3210 -phy_chain_tx_lane_map_physical{157.0}=0x1320 -phy_chain_tx_lane_map_physical{161.0}=0x3210 -phy_chain_tx_lane_map_physical{165.0}=0x0231 -phy_chain_tx_lane_map_physical{169.0}=0x3120 -phy_chain_tx_lane_map_physical{17.0}=0x1032 -phy_chain_tx_lane_map_physical{173.0}=0x0312 -phy_chain_tx_lane_map_physical{177.0}=0x0231 -phy_chain_tx_lane_map_physical{181.0}=0x3210 -phy_chain_tx_lane_map_physical{185.0}=0x3210 -phy_chain_tx_lane_map_physical{189.0}=0x1320 -phy_chain_tx_lane_map_physical{193.0}=0x0321 -phy_chain_tx_lane_map_physical{197.0}=0x3120 -phy_chain_tx_lane_map_physical{201.0}=0x3120 -phy_chain_tx_lane_map_physical{205.0}=0x0123 -phy_chain_tx_lane_map_physical{209.0}=0x3120 -phy_chain_tx_lane_map_physical{21.0}=0x0213 -phy_chain_tx_lane_map_physical{213.0}=0x3021 -phy_chain_tx_lane_map_physical{217.0}=0x0312 -phy_chain_tx_lane_map_physical{221.0}=0x2301 -phy_chain_tx_lane_map_physical{225.0}=0x0123 -phy_chain_tx_lane_map_physical{229.0}=0x2031 -phy_chain_tx_lane_map_physical{233.0}=0x0231 -phy_chain_tx_lane_map_physical{237.0}=0x0213 -phy_chain_tx_lane_map_physical{241.0}=0x1320 -phy_chain_tx_lane_map_physical{245.0}=0x2031 -phy_chain_tx_lane_map_physical{249.0}=0x3120 -phy_chain_tx_lane_map_physical{25.0}=0x0231 -phy_chain_tx_lane_map_physical{253.0}=0x0321 -phy_chain_tx_lane_map_physical{257.0}=0x3210 -phy_chain_tx_lane_map_physical{29.0}=0x1230 -phy_chain_tx_lane_map_physical{33.0}=0x1032 -phy_chain_tx_lane_map_physical{37.0}=0x0123 -phy_chain_tx_lane_map_physical{41.0}=0x0213 -phy_chain_tx_lane_map_physical{45.0}=0x0132 -phy_chain_tx_lane_map_physical{49.0}=0x2031 -phy_chain_tx_lane_map_physical{5.0}=0x2301 -phy_chain_tx_lane_map_physical{53.0}=0x2301 -phy_chain_tx_lane_map_physical{57.0}=0x2031 -phy_chain_tx_lane_map_physical{61.0}=0x2031 -phy_chain_tx_lane_map_physical{65.0}=0x1230 -phy_chain_tx_lane_map_physical{69.0}=0x2013 -phy_chain_tx_lane_map_physical{73.0}=0x0213 -phy_chain_tx_lane_map_physical{77.0}=0x2310 -phy_chain_tx_lane_map_physical{81.0}=0x0321 -phy_chain_tx_lane_map_physical{85.0}=0x2013 -phy_chain_tx_lane_map_physical{89.0}=0x0213 -phy_chain_tx_lane_map_physical{9.0}=0x3012 -phy_chain_tx_lane_map_physical{93.0}=0x3102 -phy_chain_tx_lane_map_physical{97.0}=0x3210 -phy_chain_tx_polarity_flip_physical{1.0}=0x0 -phy_chain_tx_polarity_flip_physical{10.0}=0x1 -phy_chain_tx_polarity_flip_physical{100.0}=0x0 -phy_chain_tx_polarity_flip_physical{101.0}=0x0 -phy_chain_tx_polarity_flip_physical{102.0}=0x1 -phy_chain_tx_polarity_flip_physical{103.0}=0x0 -phy_chain_tx_polarity_flip_physical{104.0}=0x0 -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 -phy_chain_tx_polarity_flip_physical{109.0}=0x0 -phy_chain_tx_polarity_flip_physical{11.0}=0x1 -phy_chain_tx_polarity_flip_physical{110.0}=0x0 -phy_chain_tx_polarity_flip_physical{111.0}=0x0 -phy_chain_tx_polarity_flip_physical{112.0}=0x1 -phy_chain_tx_polarity_flip_physical{113.0}=0x1 -phy_chain_tx_polarity_flip_physical{114.0}=0x1 -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}=0x0 -phy_chain_tx_polarity_flip_physical{12.0}=0x0 -phy_chain_tx_polarity_flip_physical{120.0}=0x0 -phy_chain_tx_polarity_flip_physical{121.0}=0x0 -phy_chain_tx_polarity_flip_physical{122.0}=0x0 -phy_chain_tx_polarity_flip_physical{123.0}=0x0 -phy_chain_tx_polarity_flip_physical{124.0}=0x1 -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}=0x1 -phy_chain_tx_polarity_flip_physical{128.0}=0x1 -phy_chain_tx_polarity_flip_physical{129.0}=0x1 -phy_chain_tx_polarity_flip_physical{13.0}=0x0 -phy_chain_tx_polarity_flip_physical{130.0}=0x0 -phy_chain_tx_polarity_flip_physical{131.0}=0x1 -phy_chain_tx_polarity_flip_physical{132.0}=0x0 -phy_chain_tx_polarity_flip_physical{133.0}=0x1 -phy_chain_tx_polarity_flip_physical{134.0}=0x1 -phy_chain_tx_polarity_flip_physical{135.0}=0x1 -phy_chain_tx_polarity_flip_physical{136.0}=0x1 -phy_chain_tx_polarity_flip_physical{137.0}=0x1 -phy_chain_tx_polarity_flip_physical{138.0}=0x1 -phy_chain_tx_polarity_flip_physical{139.0}=0x1 -phy_chain_tx_polarity_flip_physical{14.0}=0x1 -phy_chain_tx_polarity_flip_physical{140.0}=0x1 -phy_chain_tx_polarity_flip_physical{141.0}=0x0 -phy_chain_tx_polarity_flip_physical{142.0}=0x1 -phy_chain_tx_polarity_flip_physical{143.0}=0x1 -phy_chain_tx_polarity_flip_physical{144.0}=0x1 -phy_chain_tx_polarity_flip_physical{145.0}=0x1 -phy_chain_tx_polarity_flip_physical{146.0}=0x1 -phy_chain_tx_polarity_flip_physical{147.0}=0x1 -phy_chain_tx_polarity_flip_physical{148.0}=0x0 -phy_chain_tx_polarity_flip_physical{149.0}=0x1 -phy_chain_tx_polarity_flip_physical{15.0}=0x0 -phy_chain_tx_polarity_flip_physical{150.0}=0x0 -phy_chain_tx_polarity_flip_physical{151.0}=0x0 -phy_chain_tx_polarity_flip_physical{152.0}=0x0 -phy_chain_tx_polarity_flip_physical{153.0}=0x1 -phy_chain_tx_polarity_flip_physical{154.0}=0x0 -phy_chain_tx_polarity_flip_physical{155.0}=0x0 -phy_chain_tx_polarity_flip_physical{156.0}=0x0 -phy_chain_tx_polarity_flip_physical{157.0}=0x0 -phy_chain_tx_polarity_flip_physical{158.0}=0x0 -phy_chain_tx_polarity_flip_physical{159.0}=0x0 -phy_chain_tx_polarity_flip_physical{16.0}=0x0 -phy_chain_tx_polarity_flip_physical{160.0}=0x0 -phy_chain_tx_polarity_flip_physical{161.0}=0x0 -phy_chain_tx_polarity_flip_physical{162.0}=0x1 -phy_chain_tx_polarity_flip_physical{163.0}=0x1 -phy_chain_tx_polarity_flip_physical{164.0}=0x0 -phy_chain_tx_polarity_flip_physical{165.0}=0x1 -phy_chain_tx_polarity_flip_physical{166.0}=0x1 -phy_chain_tx_polarity_flip_physical{167.0}=0x1 -phy_chain_tx_polarity_flip_physical{168.0}=0x0 -phy_chain_tx_polarity_flip_physical{169.0}=0x0 -phy_chain_tx_polarity_flip_physical{17.0}=0x0 -phy_chain_tx_polarity_flip_physical{170.0}=0x1 -phy_chain_tx_polarity_flip_physical{171.0}=0x1 -phy_chain_tx_polarity_flip_physical{172.0}=0x1 -phy_chain_tx_polarity_flip_physical{173.0}=0x0 -phy_chain_tx_polarity_flip_physical{174.0}=0x0 -phy_chain_tx_polarity_flip_physical{175.0}=0x1 -phy_chain_tx_polarity_flip_physical{176.0}=0x0 -phy_chain_tx_polarity_flip_physical{177.0}=0x1 -phy_chain_tx_polarity_flip_physical{178.0}=0x0 -phy_chain_tx_polarity_flip_physical{179.0}=0x0 -phy_chain_tx_polarity_flip_physical{18.0}=0x1 -phy_chain_tx_polarity_flip_physical{180.0}=0x0 -phy_chain_tx_polarity_flip_physical{181.0}=0x0 -phy_chain_tx_polarity_flip_physical{182.0}=0x0 -phy_chain_tx_polarity_flip_physical{183.0}=0x0 -phy_chain_tx_polarity_flip_physical{184.0}=0x1 -phy_chain_tx_polarity_flip_physical{185.0}=0x0 -phy_chain_tx_polarity_flip_physical{186.0}=0x1 -phy_chain_tx_polarity_flip_physical{187.0}=0x1 -phy_chain_tx_polarity_flip_physical{188.0}=0x1 -phy_chain_tx_polarity_flip_physical{189.0}=0x0 -phy_chain_tx_polarity_flip_physical{19.0}=0x1 -phy_chain_tx_polarity_flip_physical{190.0}=0x0 -phy_chain_tx_polarity_flip_physical{191.0}=0x0 -phy_chain_tx_polarity_flip_physical{192.0}=0x0 -phy_chain_tx_polarity_flip_physical{193.0}=0x1 -phy_chain_tx_polarity_flip_physical{194.0}=0x1 -phy_chain_tx_polarity_flip_physical{195.0}=0x1 -phy_chain_tx_polarity_flip_physical{196.0}=0x0 -phy_chain_tx_polarity_flip_physical{197.0}=0x0 -phy_chain_tx_polarity_flip_physical{198.0}=0x1 -phy_chain_tx_polarity_flip_physical{199.0}=0x1 -phy_chain_tx_polarity_flip_physical{2.0}=0x1 -phy_chain_tx_polarity_flip_physical{20.0}=0x1 -phy_chain_tx_polarity_flip_physical{200.0}=0x1 -phy_chain_tx_polarity_flip_physical{201.0}=0x1 -phy_chain_tx_polarity_flip_physical{202.0}=0x1 -phy_chain_tx_polarity_flip_physical{203.0}=0x1 -phy_chain_tx_polarity_flip_physical{204.0}=0x1 -phy_chain_tx_polarity_flip_physical{205.0}=0x0 -phy_chain_tx_polarity_flip_physical{206.0}=0x1 -phy_chain_tx_polarity_flip_physical{207.0}=0x1 -phy_chain_tx_polarity_flip_physical{208.0}=0x1 -phy_chain_tx_polarity_flip_physical{209.0}=0x1 -phy_chain_tx_polarity_flip_physical{21.0}=0x0 -phy_chain_tx_polarity_flip_physical{210.0}=0x1 -phy_chain_tx_polarity_flip_physical{211.0}=0x1 -phy_chain_tx_polarity_flip_physical{212.0}=0x0 -phy_chain_tx_polarity_flip_physical{213.0}=0x0 -phy_chain_tx_polarity_flip_physical{214.0}=0x1 -phy_chain_tx_polarity_flip_physical{215.0}=0x0 -phy_chain_tx_polarity_flip_physical{216.0}=0x1 -phy_chain_tx_polarity_flip_physical{217.0}=0x1 -phy_chain_tx_polarity_flip_physical{218.0}=0x1 -phy_chain_tx_polarity_flip_physical{219.0}=0x0 -phy_chain_tx_polarity_flip_physical{22.0}=0x0 -phy_chain_tx_polarity_flip_physical{220.0}=0x1 -phy_chain_tx_polarity_flip_physical{221.0}=0x0 -phy_chain_tx_polarity_flip_physical{222.0}=0x0 -phy_chain_tx_polarity_flip_physical{223.0}=0x0 -phy_chain_tx_polarity_flip_physical{224.0}=0x1 -phy_chain_tx_polarity_flip_physical{225.0}=0x1 -phy_chain_tx_polarity_flip_physical{226.0}=0x1 -phy_chain_tx_polarity_flip_physical{227.0}=0x1 -phy_chain_tx_polarity_flip_physical{228.0}=0x0 -phy_chain_tx_polarity_flip_physical{229.0}=0x0 -phy_chain_tx_polarity_flip_physical{23.0}=0x0 -phy_chain_tx_polarity_flip_physical{230.0}=0x1 -phy_chain_tx_polarity_flip_physical{231.0}=0x1 -phy_chain_tx_polarity_flip_physical{232.0}=0x1 -phy_chain_tx_polarity_flip_physical{233.0}=0x0 -phy_chain_tx_polarity_flip_physical{234.0}=0x0 -phy_chain_tx_polarity_flip_physical{235.0}=0x0 -phy_chain_tx_polarity_flip_physical{236.0}=0x0 -phy_chain_tx_polarity_flip_physical{237.0}=0x1 -phy_chain_tx_polarity_flip_physical{238.0}=0x1 -phy_chain_tx_polarity_flip_physical{239.0}=0x1 -phy_chain_tx_polarity_flip_physical{24.0}=0x0 -phy_chain_tx_polarity_flip_physical{240.0}=0x0 -phy_chain_tx_polarity_flip_physical{241.0}=0x1 -phy_chain_tx_polarity_flip_physical{242.0}=0x1 -phy_chain_tx_polarity_flip_physical{243.0}=0x1 -phy_chain_tx_polarity_flip_physical{244.0}=0x0 -phy_chain_tx_polarity_flip_physical{245.0}=0x1 -phy_chain_tx_polarity_flip_physical{246.0}=0x1 -phy_chain_tx_polarity_flip_physical{247.0}=0x1 -phy_chain_tx_polarity_flip_physical{248.0}=0x1 -phy_chain_tx_polarity_flip_physical{249.0}=0x1 -phy_chain_tx_polarity_flip_physical{25.0}=0x1 -phy_chain_tx_polarity_flip_physical{250.0}=0x0 -phy_chain_tx_polarity_flip_physical{251.0}=0x0 -phy_chain_tx_polarity_flip_physical{252.0}=0x0 -phy_chain_tx_polarity_flip_physical{253.0}=0x1 -phy_chain_tx_polarity_flip_physical{254.0}=0x1 -phy_chain_tx_polarity_flip_physical{255.0}=0x1 -phy_chain_tx_polarity_flip_physical{256.0}=0x0 -phy_chain_tx_polarity_flip_physical{257.0}=0x0 -phy_chain_tx_polarity_flip_physical{259.0}=0x0 -phy_chain_tx_polarity_flip_physical{26.0}=0x0 -phy_chain_tx_polarity_flip_physical{27.0}=0x0 -phy_chain_tx_polarity_flip_physical{28.0}=0x0 -phy_chain_tx_polarity_flip_physical{29.0}=0x1 -phy_chain_tx_polarity_flip_physical{3.0}=0x1 -phy_chain_tx_polarity_flip_physical{30.0}=0x1 -phy_chain_tx_polarity_flip_physical{31.0}=0x1 -phy_chain_tx_polarity_flip_physical{32.0}=0x0 -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 -phy_chain_tx_polarity_flip_physical{37.0}=0x1 -phy_chain_tx_polarity_flip_physical{38.0}=0x1 -phy_chain_tx_polarity_flip_physical{39.0}=0x1 -phy_chain_tx_polarity_flip_physical{4.0}=0x1 -phy_chain_tx_polarity_flip_physical{40.0}=0x0 -phy_chain_tx_polarity_flip_physical{41.0}=0x0 -phy_chain_tx_polarity_flip_physical{42.0}=0x0 -phy_chain_tx_polarity_flip_physical{43.0}=0x0 -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}=0x1 -phy_chain_tx_polarity_flip_physical{49.0}=0x0 -phy_chain_tx_polarity_flip_physical{5.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}=0x1 -phy_chain_tx_polarity_flip_physical{56.0}=0x0 -phy_chain_tx_polarity_flip_physical{57.0}=0x0 -phy_chain_tx_polarity_flip_physical{58.0}=0x1 -phy_chain_tx_polarity_flip_physical{59.0}=0x1 -phy_chain_tx_polarity_flip_physical{6.0}=0x1 -phy_chain_tx_polarity_flip_physical{60.0}=0x1 -phy_chain_tx_polarity_flip_physical{61.0}=0x0 -phy_chain_tx_polarity_flip_physical{62.0}=0x1 -phy_chain_tx_polarity_flip_physical{63.0}=0x1 -phy_chain_tx_polarity_flip_physical{64.0}=0x1 -phy_chain_tx_polarity_flip_physical{65.0}=0x0 -phy_chain_tx_polarity_flip_physical{66.0}=0x1 -phy_chain_tx_polarity_flip_physical{67.0}=0x1 -phy_chain_tx_polarity_flip_physical{68.0}=0x0 -phy_chain_tx_polarity_flip_physical{69.0}=0x1 -phy_chain_tx_polarity_flip_physical{7.0}=0x1 -phy_chain_tx_polarity_flip_physical{70.0}=0x1 -phy_chain_tx_polarity_flip_physical{71.0}=0x1 -phy_chain_tx_polarity_flip_physical{72.0}=0x0 -phy_chain_tx_polarity_flip_physical{73.0}=0x1 -phy_chain_tx_polarity_flip_physical{74.0}=0x0 -phy_chain_tx_polarity_flip_physical{75.0}=0x0 -phy_chain_tx_polarity_flip_physical{76.0}=0x0 -phy_chain_tx_polarity_flip_physical{77.0}=0x0 -phy_chain_tx_polarity_flip_physical{78.0}=0x0 -phy_chain_tx_polarity_flip_physical{79.0}=0x1 -phy_chain_tx_polarity_flip_physical{8.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}=0x1 -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}=0x0 -phy_chain_tx_polarity_flip_physical{88.0}=0x0 -phy_chain_tx_polarity_flip_physical{89.0}=0x1 -phy_chain_tx_polarity_flip_physical{9.0}=0x0 -phy_chain_tx_polarity_flip_physical{90.0}=0x1 -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}=0x0 -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}=0x0 -phy_chain_tx_polarity_flip_physical{97.0}=0x0 -phy_chain_tx_polarity_flip_physical{98.0}=0x1 -phy_chain_tx_polarity_flip_physical{99.0}=0x1 -port_init_autoneg_100=0 -port_init_autoneg_102=0 -port_init_autoneg_103=0 -port_init_autoneg_104=0 -port_init_autoneg_105=0 -port_init_autoneg_106=0 -port_init_autoneg_107=0 -port_init_autoneg_108=0 -port_init_autoneg_109=0 -port_init_autoneg_10=0 -port_init_autoneg_110=0 -port_init_autoneg_111=0 -port_init_autoneg_112=0 -port_init_autoneg_113=0 -port_init_autoneg_114=0 -port_init_autoneg_115=0 -port_init_autoneg_116=0 -port_init_autoneg_117=0 -port_init_autoneg_11=0 -port_init_autoneg_12=0 -port_init_autoneg_13=0 -port_init_autoneg_14=0 -port_init_autoneg_15=0 -port_init_autoneg_16=0 -port_init_autoneg_1=0 -port_init_autoneg_2=0 -port_init_autoneg_34=0 -port_init_autoneg_35=0 -port_init_autoneg_36=0 -port_init_autoneg_37=0 -port_init_autoneg_38=0 -port_init_autoneg_39=0 -port_init_autoneg_3=0 -port_init_autoneg_40=0 -port_init_autoneg_41=0 -port_init_autoneg_42=0 -port_init_autoneg_43=0 -port_init_autoneg_44=0 -port_init_autoneg_45=0 -port_init_autoneg_46=0 -port_init_autoneg_47=0 -port_init_autoneg_48=0 -port_init_autoneg_49=0 -port_init_autoneg_4=0 -port_init_autoneg_5=0 -port_init_autoneg_66=0 -port_init_autoneg_68=0 -port_init_autoneg_69=0 -port_init_autoneg_6=0 -port_init_autoneg_70=0 -port_init_autoneg_71=0 -port_init_autoneg_72=0 -port_init_autoneg_73=0 -port_init_autoneg_74=0 -port_init_autoneg_75=0 -port_init_autoneg_76=0 -port_init_autoneg_77=0 -port_init_autoneg_78=0 -port_init_autoneg_79=0 -port_init_autoneg_7=0 -port_init_autoneg_80=0 -port_init_autoneg_81=0 -port_init_autoneg_82=0 -port_init_autoneg_83=0 -port_init_autoneg_8=0 -port_init_autoneg_9=0 -port_init_cl72_hg=1 -port_phy_addr_100=0xff -port_phy_addr_102=0xff -port_phy_addr_103=0xff -port_phy_addr_104=0xff -port_phy_addr_105=0xff -port_phy_addr_106=0xff -port_phy_addr_107=0xff -port_phy_addr_108=0xff -port_phy_addr_109=0xff -port_phy_addr_10=0xff -port_phy_addr_110=0xff -port_phy_addr_111=0xff -port_phy_addr_112=0xff -port_phy_addr_113=0xff -port_phy_addr_114=0xff -port_phy_addr_115=0xff -port_phy_addr_116=0xff -port_phy_addr_117=0xff -port_phy_addr_11=0xff -port_phy_addr_12=0xff -port_phy_addr_13=0xff -port_phy_addr_14=0xff -port_phy_addr_15=0xff -port_phy_addr_16=0xff -port_phy_addr_1=0xff -port_phy_addr_2=0xff -port_phy_addr_34=0xff -port_phy_addr_35=0xff -port_phy_addr_36=0xff -port_phy_addr_37=0xff -port_phy_addr_38=0xff -port_phy_addr_39=0xff -port_phy_addr_3=0xff -port_phy_addr_40=0xff -port_phy_addr_41=0xff -port_phy_addr_42=0xff -port_phy_addr_43=0xff -port_phy_addr_44=0xff -port_phy_addr_45=0xff -port_phy_addr_46=0xff -port_phy_addr_47=0xff -port_phy_addr_48=0xff -port_phy_addr_49=0xff -port_phy_addr_4=0xff -port_phy_addr_5=0xff -port_phy_addr_66=0xff -port_phy_addr_68=0xff -port_phy_addr_69=0xff -port_phy_addr_6=0xff -port_phy_addr_70=0xff -port_phy_addr_71=0xff -port_phy_addr_72=0xff -port_phy_addr_73=0xff -port_phy_addr_74=0xff -port_phy_addr_75=0xff -port_phy_addr_76=0xff -port_phy_addr_77=0xff -port_phy_addr_78=0xff -port_phy_addr_79=0xff -port_phy_addr_7=0xff -port_phy_addr_80=0xff -port_phy_addr_81=0xff -port_phy_addr_82=0xff -port_phy_addr_83=0xff -port_phy_addr_8=0xff -port_phy_addr_9=0xff -portmap_100=259:10 -portmap_101=262:10 -portmap_102=217:100 -portmap_103=213:100 -portmap_104=229:100 -portmap_105=237:100 -portmap_106=249:100 -portmap_107=245:100 -portmap_108=209:100 -portmap_109=221:100 -portmap_10=29:100 -portmap_110=233:100 -portmap_111=225:100 -portmap_112=241:100 -portmap_113=253:100 -portmap_114=197:100 -portmap_115=205:100 -portmap_116=201:100 -portmap_117=193:100 -portmap_11=41:100 -portmap_12=33:100 -portmap_134=263:10 -portmap_13=57:100 -portmap_14=53:100 -portmap_15=49:100 -portmap_16=61:100 -portmap_1=5:100 -portmap_2=13:100 -portmap_33=260:10 -portmap_34=77:100 -portmap_35=65:100 -portmap_36=85:100 -portmap_37=89:100 -portmap_38=109:100 -portmap_39=97:100 -portmap_3=25:100 -portmap_40=69:100 -portmap_41=73:100 -portmap_42=93:100 -portmap_43=81:100 -portmap_44=101:100 -portmap_45=105:100 -portmap_46=117:100 -portmap_47=121:100 -portmap_48=125:100 -portmap_49=113:100 -portmap_4=21:100 -portmap_5=37:100 -portmap_66=257:10 -portmap_67=261:10 -portmap_68=149:100 -portmap_69=153:100 -portmap_6=45:100 -portmap_70=173:100 -portmap_71=161:100 -portmap_72=181:100 -portmap_73=185:100 -portmap_74=157:100 -portmap_75=145:100 -portmap_76=165:100 -portmap_77=169:100 -portmap_78=189:100 -portmap_79=177:100 -portmap_7=9:100 -portmap_80=141:100 -portmap_81=133:100 -portmap_82=129:100 -portmap_83=137:100 -portmap_8=1:100 -portmap_9=17:100 -robust_hash_disable_egress_vlan=1 -robust_hash_disable_mpls=1 -robust_hash_disable_vlan=1 -stable_size=0x5500000 -stable_size=0x5500000 -tdma_timeout_usec=15000000 -tslam_timeout_usec=15000000 - -# tuning parameters -serdes_preemphasis_1=0x184606 -serdes_preemphasis_2=0x164108 -serdes_preemphasis_3=0x164308 -serdes_preemphasis_4=0x144108 -serdes_preemphasis_5=0x144108 -serdes_preemphasis_6=0x164106 -serdes_preemphasis_7=0x184507 -serdes_preemphasis_8=0x184606 -serdes_preemphasis_9=0x184507 -serdes_preemphasis_10=0x194407 -serdes_preemphasis_11=0x194407 -serdes_preemphasis_12=0x184507 -serdes_preemphasis_13=0x144108 -serdes_preemphasis_14=0x144108 -serdes_preemphasis_15=0x194407 -serdes_preemphasis_16=0x194407 -serdes_preemphasis_34=0x184408 -serdes_preemphasis_35=0x184606 -serdes_preemphasis_36=0x164308 -serdes_preemphasis_37=0x184606 -serdes_preemphasis_38=0x164108 -serdes_preemphasis_39=0x184606 -serdes_preemphasis_40=0xe3206 -serdes_preemphasis_41=0xe3205 -serdes_preemphasis_42=0x103a06 -serdes_preemphasis_43=0xe3205 -serdes_preemphasis_44=0x184606 -serdes_preemphasis_45=0x184507 -serdes_preemphasis_46=0x144108 -serdes_preemphasis_47=0x103a07 -serdes_preemphasis_48=0x194407 -serdes_preemphasis_49=0x194407 -serdes_preemphasis_66=0x43004 -serdes_preemphasis_68=0x164308 -serdes_preemphasis_69=0x164408 -serdes_preemphasis_70=0xe3206 -serdes_preemphasis_71=0xe3205 -serdes_preemphasis_72=0xe3205 -serdes_preemphasis_73=0xe3206 -serdes_preemphasis_74=0x164108 -serdes_preemphasis_75=0x184606 -serdes_preemphasis_76=0x164608 -serdes_preemphasis_77=0x184507 -serdes_preemphasis_78=0x184507 -serdes_preemphasis_79=0x184606 -serdes_preemphasis_80=0x184606 -serdes_preemphasis_81=0x184407 -serdes_preemphasis_82=0x103706 -serdes_preemphasis_83=0x103706 -serdes_preemphasis_100=0x43004 -serdes_preemphasis_102=0x184408 -serdes_preemphasis_103=0x184606 -serdes_preemphasis_104=0x184606 -serdes_preemphasis_105=0x16410a -serdes_preemphasis_106=0x184408 -serdes_preemphasis_107=0x194308 -serdes_preemphasis_108=0x144108 -serdes_preemphasis_109=0x144108 -serdes_preemphasis_110=0x144108 -serdes_preemphasis_111=0x144108 -serdes_preemphasis_112=0x164608 -serdes_preemphasis_113=0x164608 -serdes_preemphasis_114=0x174507 -serdes_preemphasis_115=0x184606 -serdes_preemphasis_116=0x103706 -serdes_preemphasis_117=0x133c06 - -mmu_init_config="MSFT-TH2-Tier1" diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/th2-a7260cx3-64-112x50G+8x100G.config.bcm b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 similarity index 98% rename from device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/th2-a7260cx3-64-112x50G+8x100G.config.bcm rename to device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 index 6e4c266b1d..d07f910898 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/th2-a7260cx3-64-112x50G+8x100G.config.bcm +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/config.bcm.j2 @@ -1,3 +1,14 @@ +{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} +{%- set IPinIP_sock = '' -%} +{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%} +{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} +{%- if 'dualtor' in switch_subtype.lower() %} +{%- set IPinIP_sock = 'sai_tunnel_support=1 + host_as_route_disable=1 + l3_ecmp_levels=2' -%} +{%- endif %} +{%- endif %} +{# The following is the common soc properties that used to be named "th2-a7260cx3-64-112x50G+8x100G.config.bcm" #} PHY_AN_ALLOW_PLL_CHANGE=1 arl_clean_timeout_usec=15000000 asf_mem_profile=2 @@ -934,3 +945,4 @@ serdes_preemphasis_130=0x580c serdes_preemphasis_131=0x580c mmu_init_config="MSFT-TH2-Tier0" +{{ IPinIP_sock }} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile index 166f5c5b6e..5163d6140f 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-D108C8/sai.profile @@ -1,2 +1,2 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-a7260cx3-64-112x50G+8x100G.config.bcm +SAI_INIT_CONFIG_FILE=/etc/sai.d/config.bcm SAI_NUM_ECMP_MEMBERS=64 diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/th2-a7260cx3-64-64x40G.config.bcm b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 similarity index 98% rename from device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/th2-a7260cx3-64-64x40G.config.bcm rename to device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 index e26a8131ef..b0de32162d 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/th2-a7260cx3-64-64x40G.config.bcm +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/config.bcm.j2 @@ -1,3 +1,14 @@ +{# Construct config.bcm to include additional soc properties per specific device metadata requirement #} +{%- set IPinIP_sock = '' -%} +{%- if DEVICE_METADATA is defined and DEVICE_METADATA['localhost'] is defined and DEVICE_METADATA['localhost']['subtype'] is defined -%} +{%- set switch_subtype = DEVICE_METADATA['localhost']['subtype'] -%} +{%- if 'dualtor' in switch_subtype.lower() %} +{%- set IPinIP_sock = 'sai_tunnel_support=1 + host_as_route_disable=1 + l3_ecmp_levels=2' -%} +{%- endif %} +{%- endif %} +{# The following is the common soc properties that used to be named "th2-a7260cx3-64-64x40G.config.bcm" #} PHY_AN_ALLOW_PLL_CHANGE=1 arl_clean_timeout_usec=15000000 asf_mem_profile=2 @@ -1013,3 +1024,4 @@ serdes_preemphasis_116=0x105004 serdes_preemphasis_117=0x105004 mmu_init_config="MSFT-TH2-Tier0" +{{ IPinIP_sock }} diff --git a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile index a89cba46c3..5163d6140f 100644 --- a/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile +++ b/device/arista/x86_64-arista_7260cx3_64/Arista-7260CX3-Q64/sai.profile @@ -1,2 +1,2 @@ -SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/th2-a7260cx3-64-64x40G.config.bcm +SAI_INIT_CONFIG_FILE=/etc/sai.d/config.bcm SAI_NUM_ECMP_MEMBERS=64 diff --git a/platform/broadcom/docker-syncd-brcm/start.sh b/platform/broadcom/docker-syncd-brcm/start.sh index 9927b877a6..e4a5b2e2c5 100755 --- a/platform/broadcom/docker-syncd-brcm/start.sh +++ b/platform/broadcom/docker-syncd-brcm/start.sh @@ -9,10 +9,22 @@ rm -f ${SYNCD_SOCKET_FILE} mkdir -p /etc/sai.d/ +# There are two ways to specify the contents of the SAI_INIT_CONFIG_FILE and they are mutually exclusive +# via current method (sai.profile.j2) or new method (config.bcm.j2) +# If delta is large, use sai.profile.j2 which basically require the user to select which config file to use +# If delta is small, use config.bcm.j2 where additional SAI INIT config properties are added +# based on specific device metadata requirement +# in this case sai.profile should have been modified to use the path /etc/sai.d/config.bcm +# There is also a possibility that both sai.profile.j2 and config.bcm.j2 are absent. in that cacse just copy +# sai.profile to the new /etc/said directory. + # Create/Copy the sai.profile to /etc/sai.d/sai.profile if [ -f $HWSKU_DIR/sai.profile.j2 ]; then sonic-cfggen -d -t $HWSKU_DIR/sai.profile.j2 > /etc/sai.d/sai.profile else + if [ -f $HWSKU_DIR/config.bcm.j2 ]; then + sonic-cfggen -d -t $HWSKU_DIR/config.bcm.j2 > /etc/sai.d/config.bcm + fi if [ -f $HWSKU_DIR/sai.profile ]; then cp $HWSKU_DIR/sai.profile /etc/sai.d/sai.profile fi