[device/accton] Platform2.0 API Implementation for accton as7116-54x (#3622)

Implement Component platform2.0 API for accton as7116-54x platform
This commit is contained in:
simonJi2018 2019-11-09 13:49:46 +08:00 committed by lguohan
parent 96fffd883d
commit b2e15f2318
37 changed files with 2711 additions and 866 deletions

View File

@ -1,72 +1,72 @@
{% set default_cable = '5m' %} {% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '20971328' %} {% set ingress_lossless_pool_size = '20971328' %}
{% set ingress_lossy_pool_size = '20971328' %} {% set ingress_lossy_pool_size = '20971328' %}
{% set egress_lossless_pool_size = '20971328' %} {% set egress_lossless_pool_size = '20971328' %}
{% set egress_lossy_pool_size = '20971328' %} {% set egress_lossy_pool_size = '20971328' %}
{%- macro generate_port_lists(PORT_ALL) %} {%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #} {# Generate list of ports #}
{%- for port_idx in range(0, 48) %} {%- for port_idx in range(0, 48) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %} {%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
{%- endfor %} {%- endfor %}
{%- for port_idx in range(48, 54) %} {%- for port_idx in range(48, 54) %}
{%- if PORT_ALL.append("Ethernet%d" % (48 + (port_idx-48) * 4)) %}{%- endif %} {%- if PORT_ALL.append("Ethernet%d" % (48 + (port_idx-48) * 4)) %}{%- endif %}
{%- endfor %} {%- endfor %}
{%- endmacro %} {%- endmacro %}
{%- macro generate_buffer_pool_and_profiles() %} {%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": { "BUFFER_POOL": {
"ingress_lossless_pool": { "ingress_lossless_pool": {
"size": "{{ ingress_lossless_pool_size }}", "size": "{{ ingress_lossless_pool_size }}",
"type": "ingress", "type": "ingress",
"mode": "static" "mode": "static"
}, },
"ingress_lossy_pool": { "ingress_lossy_pool": {
"size": "{{ ingress_lossy_pool_size }}", "size": "{{ ingress_lossy_pool_size }}",
"type": "ingress", "type": "ingress",
"mode": "dynamic" "mode": "dynamic"
}, },
"egress_lossless_pool": { "egress_lossless_pool": {
"size": "{{ egress_lossless_pool_size }}", "size": "{{ egress_lossless_pool_size }}",
"type": "egress", "type": "egress",
"mode": "static" "mode": "static"
}, },
"egress_lossy_pool": { "egress_lossy_pool": {
"size": "{{ egress_lossy_pool_size }}", "size": "{{ egress_lossy_pool_size }}",
"type": "egress", "type": "egress",
"mode": "dynamic" "mode": "dynamic"
} }
}, },
"BUFFER_PROFILE": { "BUFFER_PROFILE": {
"ingress_lossless_profile": { "ingress_lossless_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]", "pool":"[BUFFER_POOL|ingress_lossless_pool]",
"xon":"78400", "xon":"78400",
"xoff":"132160", "xoff":"132160",
"size":"3584", "size":"3584",
"static_th":"82880" "static_th":"82880"
}, },
"ingress_lossy_profile": { "ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossy_pool]", "pool":"[BUFFER_POOL|ingress_lossy_pool]",
"size":"3584", "size":"3584",
"dynamic_th":"-1" "dynamic_th":"-1"
}, },
"egress_lossy_profile": { "egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]", "pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"3584", "size":"3584",
"dynamic_th":"-4" "dynamic_th":"-4"
} }
}, },
{%- endmacro %} {%- endmacro %}
{# the typo of generate_pg_profils dued to buffers_config.j2 #} {# the typo of generate_pg_profils dued to buffers_config.j2 #}
{# Default, we do not bind any buffer profiles. #} {# Default, we do not bind any buffer profiles. #}
{%- macro generate_pg_profils(port_names) %} {%- macro generate_pg_profils(port_names) %}
"BUFFER_PG": { "BUFFER_PG": {
} }
{%- endmacro %} {%- endmacro %}
{# Default, we do not bind any buffer profiles. #} {# Default, we do not bind any buffer profiles. #}
{%- macro generate_queue_buffers(port_names) %} {%- macro generate_queue_buffers(port_names) %}
"BUFFER_QUEUE": { "BUFFER_QUEUE": {
} }
{%- endmacro %} {%- endmacro %}

View File

@ -1,72 +1,72 @@
{% set default_cable = '5m' %} {% set default_cable = '5m' %}
{% set ingress_lossless_pool_size = '20971328' %} {% set ingress_lossless_pool_size = '20971328' %}
{% set ingress_lossy_pool_size = '20971328' %} {% set ingress_lossy_pool_size = '20971328' %}
{% set egress_lossless_pool_size = '20971328' %} {% set egress_lossless_pool_size = '20971328' %}
{% set egress_lossy_pool_size = '20971328' %} {% set egress_lossy_pool_size = '20971328' %}
{%- macro generate_port_lists(PORT_ALL) %} {%- macro generate_port_lists(PORT_ALL) %}
{# Generate list of ports #} {# Generate list of ports #}
{%- for port_idx in range(0, 48) %} {%- for port_idx in range(0, 48) %}
{%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %} {%- if PORT_ALL.append("Ethernet%d" % (port_idx)) %}{%- endif %}
{%- endfor %} {%- endfor %}
{%- for port_idx in range(48, 54) %} {%- for port_idx in range(48, 54) %}
{%- if PORT_ALL.append("Ethernet%d" % (48 + (port_idx-48) * 4)) %}{%- endif %} {%- if PORT_ALL.append("Ethernet%d" % (48 + (port_idx-48) * 4)) %}{%- endif %}
{%- endfor %} {%- endfor %}
{%- endmacro %} {%- endmacro %}
{%- macro generate_buffer_pool_and_profiles() %} {%- macro generate_buffer_pool_and_profiles() %}
"BUFFER_POOL": { "BUFFER_POOL": {
"ingress_lossless_pool": { "ingress_lossless_pool": {
"size": "{{ ingress_lossless_pool_size }}", "size": "{{ ingress_lossless_pool_size }}",
"type": "ingress", "type": "ingress",
"mode": "static" "mode": "static"
}, },
"ingress_lossy_pool": { "ingress_lossy_pool": {
"size": "{{ ingress_lossy_pool_size }}", "size": "{{ ingress_lossy_pool_size }}",
"type": "ingress", "type": "ingress",
"mode": "dynamic" "mode": "dynamic"
}, },
"egress_lossless_pool": { "egress_lossless_pool": {
"size": "{{ egress_lossless_pool_size }}", "size": "{{ egress_lossless_pool_size }}",
"type": "egress", "type": "egress",
"mode": "static" "mode": "static"
}, },
"egress_lossy_pool": { "egress_lossy_pool": {
"size": "{{ egress_lossy_pool_size }}", "size": "{{ egress_lossy_pool_size }}",
"type": "egress", "type": "egress",
"mode": "dynamic" "mode": "dynamic"
} }
}, },
"BUFFER_PROFILE": { "BUFFER_PROFILE": {
"ingress_lossless_profile": { "ingress_lossless_profile": {
"pool":"[BUFFER_POOL|ingress_lossless_pool]", "pool":"[BUFFER_POOL|ingress_lossless_pool]",
"xon":"78400", "xon":"78400",
"xoff":"132160", "xoff":"132160",
"size":"3584", "size":"3584",
"static_th":"82880" "static_th":"82880"
}, },
"ingress_lossy_profile": { "ingress_lossy_profile": {
"pool":"[BUFFER_POOL|ingress_lossy_pool]", "pool":"[BUFFER_POOL|ingress_lossy_pool]",
"size":"3584", "size":"3584",
"dynamic_th":"-1" "dynamic_th":"-1"
}, },
"egress_lossy_profile": { "egress_lossy_profile": {
"pool":"[BUFFER_POOL|egress_lossy_pool]", "pool":"[BUFFER_POOL|egress_lossy_pool]",
"size":"3584", "size":"3584",
"dynamic_th":"-4" "dynamic_th":"-4"
} }
}, },
{%- endmacro %} {%- endmacro %}
{# the typo of generate_pg_profils dued to buffers_config.j2 #} {# the typo of generate_pg_profils dued to buffers_config.j2 #}
{# Default, we do not bind any buffer profiles. #} {# Default, we do not bind any buffer profiles. #}
{%- macro generate_pg_profils(port_names) %} {%- macro generate_pg_profils(port_names) %}
"BUFFER_PG": { "BUFFER_PG": {
} }
{%- endmacro %} {%- endmacro %}
{# Default, we do not bind any buffer profiles. #} {# Default, we do not bind any buffer profiles. #}
{%- macro generate_queue_buffers(port_names) %} {%- macro generate_queue_buffers(port_names) %}
"BUFFER_QUEUE": { "BUFFER_QUEUE": {
} }
{%- endmacro %} {%- endmacro %}

View File

@ -0,0 +1,414 @@
init start stage unit=0 low-level
init set port-map unit=0 port=0 eth-macro=2 lane=0 max-speed=25g active=true
init set port-map unit=0 port=1 eth-macro=2 lane=1 max-speed=25g active=true
init set port-map unit=0 port=2 eth-macro=2 lane=2 max-speed=25g active=true
init set port-map unit=0 port=3 eth-macro=2 lane=3 max-speed=25g active=true
init set port-map unit=0 port=4 eth-macro=3 lane=0 max-speed=25g active=true
init set port-map unit=0 port=5 eth-macro=3 lane=1 max-speed=25g active=true
init set port-map unit=0 port=6 eth-macro=3 lane=2 max-speed=25g active=true
init set port-map unit=0 port=7 eth-macro=3 lane=3 max-speed=25g active=true
init set port-map unit=0 port=8 eth-macro=4 lane=0 max-speed=25g active=true
init set port-map unit=0 port=9 eth-macro=4 lane=1 max-speed=25g active=true
init set port-map unit=0 port=10 eth-macro=4 lane=2 max-speed=25g active=true
init set port-map unit=0 port=11 eth-macro=4 lane=3 max-speed=25g active=true
init set port-map unit=0 port=12 eth-macro=5 lane=0 max-speed=25g active=true
init set port-map unit=0 port=13 eth-macro=5 lane=1 max-speed=25g active=true
init set port-map unit=0 port=14 eth-macro=5 lane=2 max-speed=25g active=true
init set port-map unit=0 port=15 eth-macro=5 lane=3 max-speed=25g active=true
init set port-map unit=0 port=16 eth-macro=8 lane=0 max-speed=25g active=true
init set port-map unit=0 port=17 eth-macro=8 lane=1 max-speed=25g active=true
init set port-map unit=0 port=18 eth-macro=8 lane=2 max-speed=25g active=true
init set port-map unit=0 port=19 eth-macro=8 lane=3 max-speed=25g active=true
init set port-map unit=0 port=20 eth-macro=10 lane=0 max-speed=25g active=true
init set port-map unit=0 port=21 eth-macro=10 lane=1 max-speed=25g active=true
init set port-map unit=0 port=22 eth-macro=10 lane=2 max-speed=25g active=true
init set port-map unit=0 port=23 eth-macro=10 lane=3 max-speed=25g active=true
init set port-map unit=0 port=24 eth-macro=12 lane=0 max-speed=25g active=true
init set port-map unit=0 port=25 eth-macro=12 lane=1 max-speed=25g active=true
init set port-map unit=0 port=26 eth-macro=12 lane=2 max-speed=25g active=true
init set port-map unit=0 port=27 eth-macro=12 lane=3 max-speed=25g active=true
init set port-map unit=0 port=28 eth-macro=14 lane=0 max-speed=25g active=true
init set port-map unit=0 port=29 eth-macro=14 lane=1 max-speed=25g active=true
init set port-map unit=0 port=30 eth-macro=14 lane=2 max-speed=25g active=true
init set port-map unit=0 port=31 eth-macro=14 lane=3 max-speed=25g active=true
init set port-map unit=0 port=32 eth-macro=16 lane=0 max-speed=25g active=true
init set port-map unit=0 port=33 eth-macro=16 lane=1 max-speed=25g active=true
init set port-map unit=0 port=34 eth-macro=16 lane=2 max-speed=25g active=true
init set port-map unit=0 port=35 eth-macro=16 lane=3 max-speed=25g active=true
init set port-map unit=0 port=36 eth-macro=17 lane=0 max-speed=25g active=true
init set port-map unit=0 port=37 eth-macro=17 lane=1 max-speed=25g active=true
init set port-map unit=0 port=38 eth-macro=17 lane=2 max-speed=25g active=true
init set port-map unit=0 port=39 eth-macro=17 lane=3 max-speed=25g active=true
init set port-map unit=0 port=40 eth-macro=18 lane=0 max-speed=25g active=true
init set port-map unit=0 port=41 eth-macro=18 lane=1 max-speed=25g active=true
init set port-map unit=0 port=42 eth-macro=18 lane=2 max-speed=25g active=true
init set port-map unit=0 port=43 eth-macro=18 lane=3 max-speed=25g active=true
init set port-map unit=0 port=44 eth-macro=19 lane=0 max-speed=25g active=true
init set port-map unit=0 port=45 eth-macro=19 lane=1 max-speed=25g active=true
init set port-map unit=0 port=46 eth-macro=19 lane=2 max-speed=25g active=true
init set port-map unit=0 port=47 eth-macro=19 lane=3 max-speed=25g active=true
init set port-map unit=0 port=48 eth-macro=21 lane=0 max-speed=100g active=true
init set port-map unit=0 port=49 eth-macro=20 lane=0 max-speed=100g active=true
init set port-map unit=0 port=50 eth-macro=26 lane=0 max-speed=100g active=true
init set port-map unit=0 port=51 eth-macro=27 lane=0 max-speed=100g active=true
init set port-map unit=0 port=52 eth-macro=28 lane=0 max-speed=100g active=true
init set port-map unit=0 port=53 eth-macro=29 lane=0 max-speed=100g active=true
init set port-map unit=0 port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true
init set port-map unit=0 port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true
init start stage unit=0 task-rsrc
init start stage unit=0 module
init start stage unit=0 task
phy set lane-swap unit=0 portlist=0 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=1 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=2 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=3 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=4 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=5 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=6 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=7 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=8 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=9 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=10 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=11 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=12 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=13 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=14 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=15 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=16 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=17 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=18 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=19 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=20 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=21 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=22 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=23 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=24 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=25 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=26 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=27 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=28 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=29 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=30 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=31 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=32 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=33 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=34 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=35 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=36 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=37 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=38 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=39 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=40 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=41 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=42 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=43 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=44 lane-cnt=1 property=tx data=0x0
phy set lane-swap unit=0 portlist=45 lane-cnt=1 property=tx data=0x1
phy set lane-swap unit=0 portlist=46 lane-cnt=1 property=tx data=0x2
phy set lane-swap unit=0 portlist=47 lane-cnt=1 property=tx data=0x3
phy set lane-swap unit=0 portlist=48 lane-cnt=4 property=tx data=0x1.3.0.2
phy set lane-swap unit=0 portlist=49 lane-cnt=4 property=tx data=0x0.3.1.2
phy set lane-swap unit=0 portlist=50 lane-cnt=4 property=tx data=0x1.3.0.2
phy set lane-swap unit=0 portlist=51 lane-cnt=4 property=tx data=0x2.0.3.1
phy set lane-swap unit=0 portlist=52 lane-cnt=4 property=tx data=0x3.2.1.0
phy set lane-swap unit=0 portlist=53 lane-cnt=4 property=tx data=0x3.2.1.0
phy set lane-swap unit=0 portlist=0 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=1 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=2 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=3 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=4 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=5 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=6 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=7 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=8 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=9 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=10 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=11 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=12 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=13 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=14 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=15 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=16 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=17 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=18 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=19 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=20 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=21 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=22 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=23 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=24 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=25 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=26 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=27 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=28 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=29 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=30 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=31 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=32 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=33 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=34 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=35 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=36 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=37 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=38 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=39 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=40 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=41 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=42 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=43 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=44 lane-cnt=1 property=rx data=0x1
phy set lane-swap unit=0 portlist=45 lane-cnt=1 property=rx data=0x2
phy set lane-swap unit=0 portlist=46 lane-cnt=1 property=rx data=0x3
phy set lane-swap unit=0 portlist=47 lane-cnt=1 property=rx data=0x0
phy set lane-swap unit=0 portlist=48 lane-cnt=4 property=rx data=0x2.1.0.3
phy set lane-swap unit=0 portlist=49 lane-cnt=4 property=rx data=0x0.1.3.2
phy set lane-swap unit=0 portlist=50 lane-cnt=4 property=rx data=0x3.1.0.2
phy set lane-swap unit=0 portlist=51 lane-cnt=4 property=rx data=0x1.3.0.2
phy set lane-swap unit=0 portlist=52 lane-cnt=4 property=rx data=0x3.2.1.0
phy set lane-swap unit=0 portlist=53 lane-cnt=4 property=rx data=0x3.2.1.0
phy set polarity-rev unit=0 portlist=0 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=1 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=2 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=3 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=4 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=5 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=6 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=7 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=8 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=9 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=10 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=11 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=12 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=13 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=14 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=15 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=16 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=17 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=18 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=19 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=20 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=21 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=22 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=23 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=24 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=25 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=26 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=27 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=28 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=29 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=30 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=31 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=32 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=33 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=34 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=35 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=36 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=37 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=38 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=39 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=40 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=41 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=42 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=43 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=44 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=45 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=46 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=47 lane-cnt=1 property=tx data=0x0
phy set polarity-rev unit=0 portlist=48 lane-cnt=4 property=tx data=0x0.0.0.1
phy set polarity-rev unit=0 portlist=49 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev unit=0 portlist=50 lane-cnt=4 property=tx data=0x1.1.0.0
phy set polarity-rev unit=0 portlist=51 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev unit=0 portlist=52 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev unit=0 portlist=53 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev unit=0 portlist=0 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=1 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=2 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=3 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=4 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=5 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=6 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=7 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=8 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=9 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=10 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=11 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=12 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=13 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=14 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=15 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=16 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=17 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=18 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=19 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=20 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=21 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=22 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=23 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=24 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=25 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=26 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=27 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=28 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=29 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=30 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=31 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=32 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=33 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=34 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=35 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=36 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=37 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=38 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=39 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=40 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=41 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=42 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=43 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=44 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=45 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=46 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=47 lane-cnt=1 property=rx data=0x0
phy set polarity-rev unit=0 portlist=48 lane-cnt=4 property=rx data=0x0.1.0.1
phy set polarity-rev unit=0 portlist=49 lane-cnt=4 property=rx data=0x1.0.1.0
phy set polarity-rev unit=0 portlist=50 lane-cnt=4 property=rx data=0x0.0.1.0
phy set polarity-rev unit=0 portlist=51 lane-cnt=4 property=rx data=0x0.0.0.1
phy set polarity-rev unit=0 portlist=52 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev unit=0 portlist=53 lane-cnt=4 property=rx data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=0 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=4 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=8 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=12 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=16 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=20 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=24 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=28 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=32 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=36 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=40 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=44 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=48 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=49 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=50 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=51 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=52 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c0 data=0x1e.1e.1e.1e
phy set pre-emphasis unit=0 portlist=53 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set mdio portlist=0 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=1 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=2 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=3 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=4 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=5 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=6 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=7 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=8 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=9 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=10 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=11 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=12 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=13 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=14 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=15 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=16 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=17 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=18 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=19 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=20 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=21 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=22 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=23 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=24 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=25 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=26 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=27 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=28 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=29 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=30 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=31 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=32 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=33 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=34 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=35 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=36 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=37 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=38 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=39 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=40 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=41 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=42 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=43 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=44 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=45 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=46 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=47 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=48 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=49 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=50 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=51 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=52 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=53 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=129 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=130 devad=0x1E addr=0x2 data=0x0000
port set property unit=0 portlist=0-47 speed=25g
port set property unit=0 portlist=48-53 speed=100g
port set property unit=0 portlist=129-130 speed=10g
port set property unit=0 portlist=0-47 medium-type=cr
port set property unit=0 portlist=48-53 medium-type=cr4
port set property unit=0 portlist=129-130 medium-type=kr
port set adver unit=0 portlist=129-130 speed-10g-kr
port set property unit=0 portlist=129-130 an=enable
port set property unit=0 portlist=129-130 admin=enable
port set property unit=0 portlist=0-53 admin=disable

View File

@ -1,63 +1,63 @@
init start stage low-level init start stage unit=0 low-level
init set port-map port=0 eth-macro=2 lane=0 max-speed=25g active=true init set port-map unit=0 port=0 eth-macro=2 lane=0 max-speed=25g active=true
init set port-map port=1 eth-macro=2 lane=1 max-speed=25g active=true init set port-map unit=0 port=1 eth-macro=2 lane=1 max-speed=25g active=true
init set port-map port=2 eth-macro=2 lane=2 max-speed=25g active=true init set port-map unit=0 port=2 eth-macro=2 lane=2 max-speed=25g active=true
init set port-map port=3 eth-macro=2 lane=3 max-speed=25g active=true init set port-map unit=0 port=3 eth-macro=2 lane=3 max-speed=25g active=true
init set port-map port=4 eth-macro=3 lane=0 max-speed=25g active=true init set port-map unit=0 port=4 eth-macro=3 lane=0 max-speed=25g active=true
init set port-map port=5 eth-macro=3 lane=1 max-speed=25g active=true init set port-map unit=0 port=5 eth-macro=3 lane=1 max-speed=25g active=true
init set port-map port=6 eth-macro=3 lane=2 max-speed=25g active=true init set port-map unit=0 port=6 eth-macro=3 lane=2 max-speed=25g active=true
init set port-map port=7 eth-macro=3 lane=3 max-speed=25g active=true init set port-map unit=0 port=7 eth-macro=3 lane=3 max-speed=25g active=true
init set port-map port=8 eth-macro=4 lane=0 max-speed=25g active=true init set port-map unit=0 port=8 eth-macro=4 lane=0 max-speed=25g active=true
init set port-map port=9 eth-macro=4 lane=1 max-speed=25g active=true init set port-map unit=0 port=9 eth-macro=4 lane=1 max-speed=25g active=true
init set port-map port=10 eth-macro=4 lane=2 max-speed=25g active=true init set port-map unit=0 port=10 eth-macro=4 lane=2 max-speed=25g active=true
init set port-map port=11 eth-macro=4 lane=3 max-speed=25g active=true init set port-map unit=0 port=11 eth-macro=4 lane=3 max-speed=25g active=true
init set port-map port=12 eth-macro=5 lane=0 max-speed=25g active=true init set port-map unit=0 port=12 eth-macro=5 lane=0 max-speed=25g active=true
init set port-map port=13 eth-macro=5 lane=1 max-speed=25g active=true init set port-map unit=0 port=13 eth-macro=5 lane=1 max-speed=25g active=true
init set port-map port=14 eth-macro=5 lane=2 max-speed=25g active=true init set port-map unit=0 port=14 eth-macro=5 lane=2 max-speed=25g active=true
init set port-map port=15 eth-macro=5 lane=3 max-speed=25g active=true init set port-map unit=0 port=15 eth-macro=5 lane=3 max-speed=25g active=true
init set port-map port=16 eth-macro=8 lane=0 max-speed=25g active=true init set port-map unit=0 port=16 eth-macro=8 lane=0 max-speed=25g active=true
init set port-map port=17 eth-macro=8 lane=1 max-speed=25g active=true init set port-map unit=0 port=17 eth-macro=8 lane=1 max-speed=25g active=true
init set port-map port=18 eth-macro=8 lane=2 max-speed=25g active=true init set port-map unit=0 port=18 eth-macro=8 lane=2 max-speed=25g active=true
init set port-map port=19 eth-macro=8 lane=3 max-speed=25g active=true init set port-map unit=0 port=19 eth-macro=8 lane=3 max-speed=25g active=true
init set port-map port=20 eth-macro=10 lane=0 max-speed=25g active=true init set port-map unit=0 port=20 eth-macro=10 lane=0 max-speed=25g active=true
init set port-map port=21 eth-macro=10 lane=1 max-speed=25g active=true init set port-map unit=0 port=21 eth-macro=10 lane=1 max-speed=25g active=true
init set port-map port=22 eth-macro=10 lane=2 max-speed=25g active=true init set port-map unit=0 port=22 eth-macro=10 lane=2 max-speed=25g active=true
init set port-map port=23 eth-macro=10 lane=3 max-speed=25g active=true init set port-map unit=0 port=23 eth-macro=10 lane=3 max-speed=25g active=true
init set port-map port=24 eth-macro=12 lane=0 max-speed=25g active=true init set port-map unit=0 port=24 eth-macro=12 lane=0 max-speed=25g active=true
init set port-map port=25 eth-macro=12 lane=1 max-speed=25g active=true init set port-map unit=0 port=25 eth-macro=12 lane=1 max-speed=25g active=true
init set port-map port=26 eth-macro=12 lane=2 max-speed=25g active=true init set port-map unit=0 port=26 eth-macro=12 lane=2 max-speed=25g active=true
init set port-map port=27 eth-macro=12 lane=3 max-speed=25g active=true init set port-map unit=0 port=27 eth-macro=12 lane=3 max-speed=25g active=true
init set port-map port=28 eth-macro=14 lane=0 max-speed=25g active=true init set port-map unit=0 port=28 eth-macro=14 lane=0 max-speed=25g active=true
init set port-map port=29 eth-macro=14 lane=1 max-speed=25g active=true init set port-map unit=0 port=29 eth-macro=14 lane=1 max-speed=25g active=true
init set port-map port=30 eth-macro=14 lane=2 max-speed=25g active=true init set port-map unit=0 port=30 eth-macro=14 lane=2 max-speed=25g active=true
init set port-map port=31 eth-macro=14 lane=3 max-speed=25g active=true init set port-map unit=0 port=31 eth-macro=14 lane=3 max-speed=25g active=true
init set port-map port=32 eth-macro=16 lane=0 max-speed=25g active=true init set port-map unit=0 port=32 eth-macro=16 lane=0 max-speed=25g active=true
init set port-map port=33 eth-macro=16 lane=1 max-speed=25g active=true init set port-map unit=0 port=33 eth-macro=16 lane=1 max-speed=25g active=true
init set port-map port=34 eth-macro=16 lane=2 max-speed=25g active=true init set port-map unit=0 port=34 eth-macro=16 lane=2 max-speed=25g active=true
init set port-map port=35 eth-macro=16 lane=3 max-speed=25g active=true init set port-map unit=0 port=35 eth-macro=16 lane=3 max-speed=25g active=true
init set port-map port=36 eth-macro=17 lane=0 max-speed=25g active=true init set port-map unit=0 port=36 eth-macro=17 lane=0 max-speed=25g active=true
init set port-map port=37 eth-macro=17 lane=1 max-speed=25g active=true init set port-map unit=0 port=37 eth-macro=17 lane=1 max-speed=25g active=true
init set port-map port=38 eth-macro=17 lane=2 max-speed=25g active=true init set port-map unit=0 port=38 eth-macro=17 lane=2 max-speed=25g active=true
init set port-map port=39 eth-macro=17 lane=3 max-speed=25g active=true init set port-map unit=0 port=39 eth-macro=17 lane=3 max-speed=25g active=true
init set port-map port=40 eth-macro=18 lane=0 max-speed=25g active=true init set port-map unit=0 port=40 eth-macro=18 lane=0 max-speed=25g active=true
init set port-map port=41 eth-macro=18 lane=1 max-speed=25g active=true init set port-map unit=0 port=41 eth-macro=18 lane=1 max-speed=25g active=true
init set port-map port=42 eth-macro=18 lane=2 max-speed=25g active=true init set port-map unit=0 port=42 eth-macro=18 lane=2 max-speed=25g active=true
init set port-map port=43 eth-macro=18 lane=3 max-speed=25g active=true init set port-map unit=0 port=43 eth-macro=18 lane=3 max-speed=25g active=true
init set port-map port=44 eth-macro=19 lane=0 max-speed=25g active=true init set port-map unit=0 port=44 eth-macro=19 lane=0 max-speed=25g active=true
init set port-map port=45 eth-macro=19 lane=1 max-speed=25g active=true init set port-map unit=0 port=45 eth-macro=19 lane=1 max-speed=25g active=true
init set port-map port=46 eth-macro=19 lane=2 max-speed=25g active=true init set port-map unit=0 port=46 eth-macro=19 lane=2 max-speed=25g active=true
init set port-map port=47 eth-macro=19 lane=3 max-speed=25g active=true init set port-map unit=0 port=47 eth-macro=19 lane=3 max-speed=25g active=true
init set port-map port=48 eth-macro=20 lane=0 max-speed=100g active=true init set port-map unit=0 port=48 eth-macro=21 lane=0 max-speed=100g active=true
init set port-map port=49 eth-macro=21 lane=0 max-speed=100g active=true init set port-map unit=0 port=49 eth-macro=20 lane=0 max-speed=100g active=true
init set port-map port=50 eth-macro=26 lane=0 max-speed=100g active=true init set port-map unit=0 port=50 eth-macro=26 lane=0 max-speed=100g active=true
init set port-map port=51 eth-macro=27 lane=0 max-speed=100g active=true init set port-map unit=0 port=51 eth-macro=27 lane=0 max-speed=100g active=true
init set port-map port=52 eth-macro=28 lane=0 max-speed=100g active=true init set port-map unit=0 port=52 eth-macro=28 lane=0 max-speed=100g active=true
init set port-map port=53 eth-macro=29 lane=0 max-speed=100g active=true init set port-map unit=0 port=53 eth-macro=29 lane=0 max-speed=100g active=true
init set port-map port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true init set port-map unit=0 port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true
init set port-map port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true init set port-map unit=0 port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true
init start stage task-rsrc init start stage unit=0 task-rsrc
init start stage module init start stage unit=0 module
init start stage task init start stage unit=0 task
phy set lane-swap portlist=0 lane-cnt=1 property=tx data=0x0 phy set lane-swap portlist=0 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=1 lane-cnt=1 property=tx data=0x1 phy set lane-swap portlist=1 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=2 lane-cnt=1 property=tx data=0x2 phy set lane-swap portlist=2 lane-cnt=1 property=tx data=0x2
@ -106,7 +106,12 @@ phy set lane-swap portlist=44 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=45 lane-cnt=1 property=tx data=0x1 phy set lane-swap portlist=45 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=46 lane-cnt=1 property=tx data=0x2 phy set lane-swap portlist=46 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=47 lane-cnt=1 property=tx data=0x3 phy set lane-swap portlist=47 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=48-53 lane-cnt=4 property=tx data=0x03.02.01.00 phy set lane-swap portlist=48 lane-cnt=4 property=tx data=0x1.3.0.2
phy set lane-swap portlist=49 lane-cnt=4 property=tx data=0x0.3.1.2
phy set lane-swap portlist=50 lane-cnt=4 property=tx data=0x1.3.0.2
phy set lane-swap portlist=51 lane-cnt=4 property=tx data=0x2.0.3.1
phy set lane-swap portlist=52 lane-cnt=4 property=tx data=0x3.2.1.0
phy set lane-swap portlist=53 lane-cnt=4 property=tx data=0x3.2.1.0
phy set lane-swap portlist=0 lane-cnt=1 property=rx data=0x0 phy set lane-swap portlist=0 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=1 lane-cnt=1 property=rx data=0x1 phy set lane-swap portlist=1 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=2 lane-cnt=1 property=rx data=0x2 phy set lane-swap portlist=2 lane-cnt=1 property=rx data=0x2
@ -155,7 +160,12 @@ phy set lane-swap portlist=44 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=45 lane-cnt=1 property=rx data=0x2 phy set lane-swap portlist=45 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=46 lane-cnt=1 property=rx data=0x3 phy set lane-swap portlist=46 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=47 lane-cnt=1 property=rx data=0x0 phy set lane-swap portlist=47 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=48-53 lane-cnt=4 property=rx data=0x03.02.01.00 phy set lane-swap portlist=48 lane-cnt=4 property=rx data=0x2.1.0.3
phy set lane-swap portlist=49 lane-cnt=4 property=rx data=0x0.1.3.2
phy set lane-swap portlist=50 lane-cnt=4 property=rx data=0x3.1.0.2
phy set lane-swap portlist=51 lane-cnt=4 property=rx data=0x1.3.0.2
phy set lane-swap portlist=52 lane-cnt=4 property=rx data=0x3.2.1.0
phy set lane-swap portlist=53 lane-cnt=4 property=rx data=0x3.2.1.0
phy set polarity-rev portlist=0 lane-cnt=1 property=tx data=0x0 phy set polarity-rev portlist=0 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=1 lane-cnt=1 property=tx data=0x0 phy set polarity-rev portlist=1 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=2 lane-cnt=1 property=tx data=0x0 phy set polarity-rev portlist=2 lane-cnt=1 property=tx data=0x0
@ -204,9 +214,9 @@ phy set polarity-rev portlist=44 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=45 lane-cnt=1 property=tx data=0x0 phy set polarity-rev portlist=45 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=46 lane-cnt=1 property=tx data=0x0 phy set polarity-rev portlist=46 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=47 lane-cnt=1 property=tx data=0x0 phy set polarity-rev portlist=47 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=48 lane-cnt=4 property=tx data=0x0.0.0.0 phy set polarity-rev portlist=48 lane-cnt=4 property=tx data=0x0.0.0.1
phy set polarity-rev portlist=49 lane-cnt=4 property=tx data=0x0.0.0.0 phy set polarity-rev portlist=49 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=50 lane-cnt=4 property=tx data=0x0.0.0.0 phy set polarity-rev portlist=50 lane-cnt=4 property=tx data=0x1.1.0.0
phy set polarity-rev portlist=51 lane-cnt=4 property=tx data=0x0.0.0.0 phy set polarity-rev portlist=51 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=52 lane-cnt=4 property=tx data=0x0.0.0.0 phy set polarity-rev portlist=52 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=53 lane-cnt=4 property=tx data=0x0.0.0.0 phy set polarity-rev portlist=53 lane-cnt=4 property=tx data=0x0.0.0.0
@ -258,83 +268,83 @@ phy set polarity-rev portlist=44 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=45 lane-cnt=1 property=rx data=0x0 phy set polarity-rev portlist=45 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=46 lane-cnt=1 property=rx data=0x0 phy set polarity-rev portlist=46 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=47 lane-cnt=1 property=rx data=0x0 phy set polarity-rev portlist=47 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=48 lane-cnt=4 property=rx data=0x0.0.0.0 phy set polarity-rev portlist=48 lane-cnt=4 property=rx data=0x0.1.0.1
phy set polarity-rev portlist=49 lane-cnt=4 property=rx data=0x0.0.0.0 phy set polarity-rev portlist=49 lane-cnt=4 property=rx data=0x1.0.1.0
phy set polarity-rev portlist=50 lane-cnt=4 property=rx data=0x0.0.0.0 phy set polarity-rev portlist=50 lane-cnt=4 property=rx data=0x0.0.1.0
phy set polarity-rev portlist=51 lane-cnt=4 property=rx data=0x0.0.0.0 phy set polarity-rev portlist=51 lane-cnt=4 property=rx data=0x0.0.0.1
phy set polarity-rev portlist=52 lane-cnt=4 property=rx data=0x0.0.0.0 phy set polarity-rev portlist=52 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev portlist=53 lane-cnt=4 property=rx data=0x0.0.0.0 phy set polarity-rev portlist=53 lane-cnt=4 property=rx data=0x0.0.0.0
phy set pre-emphasis portlist=0 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=0 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=0 lane-cnt=4 property=cn1 data=0x1.1.1.1 phy set pre-emphasis portlist=0 lane-cnt=4 property=cn1 data=0x1.1.1.1
phy set pre-emphasis portlist=0 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A phy set pre-emphasis portlist=0 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
phy set pre-emphasis portlist=0 lane-cnt=4 property=c1 data=0x7.7.7.7 phy set pre-emphasis portlist=0 lane-cnt=4 property=c1 data=0x7.7.7.7
phy set pre-emphasis portlist=4 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=4 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=4 lane-cnt=4 property=cn1 data=0x1.1.1.1 phy set pre-emphasis portlist=4 lane-cnt=4 property=cn1 data=0x1.1.1.1
phy set pre-emphasis portlist=4 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A phy set pre-emphasis portlist=4 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
phy set pre-emphasis portlist=4 lane-cnt=4 property=c1 data=0x7.7.7.7 phy set pre-emphasis portlist=4 lane-cnt=4 property=c1 data=0x7.7.7.7
phy set pre-emphasis portlist=8 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=8 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=8 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=8 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=8 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=8 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=8 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=8 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=12 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=12 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=12 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=12 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=12 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B phy set pre-emphasis portlist=12 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
phy set pre-emphasis portlist=12 lane-cnt=4 property=c1 data=0x7.7.7.7 phy set pre-emphasis portlist=12 lane-cnt=4 property=c1 data=0x7.7.7.7
phy set pre-emphasis portlist=16 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=16 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=16 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=16 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=16 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=16 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=16 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=16 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=20 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=20 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=20 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=20 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=20 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=20 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=20 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=20 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=24 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=24 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=24 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=24 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=24 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=24 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=24 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=24 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=28 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=28 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=28 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=28 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=28 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=28 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=28 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=28 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=32 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=32 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=32 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=32 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=32 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=32 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=32 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=32 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=36 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=36 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=36 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=36 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=36 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=36 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=36 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=36 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=40 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=40 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=40 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=40 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=40 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=40 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=40 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=40 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=44 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=44 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=44 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=44 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=44 lane-cnt=4 property=c0 data=0x1C.1C.1C.1C phy set pre-emphasis portlist=44 lane-cnt=4 property=c0 data=0x1c.1c.1c.1c
phy set pre-emphasis portlist=44 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=44 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=48 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=48 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=48 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=48 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=48 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B phy set pre-emphasis portlist=48 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
phy set pre-emphasis portlist=48 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=48 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=49 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=49 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=49 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=49 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=49 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B phy set pre-emphasis portlist=49 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
phy set pre-emphasis portlist=49 lane-cnt=4 property=c1 data=0x6.6.6.6 phy set pre-emphasis portlist=49 lane-cnt=4 property=c1 data=0x6.6.6.6
phy set pre-emphasis portlist=50 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=50 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=50 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=50 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=50 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B phy set pre-emphasis portlist=50 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
phy set pre-emphasis portlist=50 lane-cnt=4 property=c1 data=0x7.7.7.7 phy set pre-emphasis portlist=50 lane-cnt=4 property=c1 data=0x7.7.7.7
phy set pre-emphasis portlist=51 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=51 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=51 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=51 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=51 lane-cnt=4 property=c0 data=0x1B.1B.1B.1B phy set pre-emphasis portlist=51 lane-cnt=4 property=c0 data=0x1b.1b.1b.1b
phy set pre-emphasis portlist=51 lane-cnt=4 property=c1 data=0x7.7.7.7 phy set pre-emphasis portlist=51 lane-cnt=4 property=c1 data=0x7.7.7.7
phy set pre-emphasis portlist=52 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=52 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=52 lane-cnt=4 property=cn1 data=0x0.0.0.0 phy set pre-emphasis portlist=52 lane-cnt=4 property=cn1 data=0x0.0.0.0
phy set pre-emphasis portlist=52 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A phy set pre-emphasis portlist=52 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
phy set pre-emphasis portlist=52 lane-cnt=4 property=c1 data=0x8.8.8.8 phy set pre-emphasis portlist=52 lane-cnt=4 property=c1 data=0x8.8.8.8
phy set pre-emphasis portlist=53 lane-cnt=4 property=c2 data=0x2.2.2.2 phy set pre-emphasis portlist=53 lane-cnt=4 property=c2 data=0x2.2.2.2
phy set pre-emphasis portlist=53 lane-cnt=4 property=cn1 data=0x1.1.1.1 phy set pre-emphasis portlist=53 lane-cnt=4 property=cn1 data=0x1.1.1.1
phy set pre-emphasis portlist=53 lane-cnt=4 property=c0 data=0x1A.1A.1A.1A phy set pre-emphasis portlist=53 lane-cnt=4 property=c0 data=0x1a.1a.1a.1a
phy set pre-emphasis portlist=53 lane-cnt=4 property=c1 data=0x7.7.7.7 phy set pre-emphasis portlist=53 lane-cnt=4 property=c1 data=0x7.7.7.7
phy set mdio portlist=0 devad=0x1E addr=0x2 data=0x8000 phy set mdio portlist=0 devad=0x1E addr=0x2 data=0x8000
phy set mdio portlist=1 devad=0x1E addr=0x2 data=0x8000 phy set mdio portlist=1 devad=0x1E addr=0x2 data=0x8000
@ -400,5 +410,6 @@ port set property portlist=48-53 medium-type=sr4
port set property portlist=129-130 medium-type=kr port set property portlist=129-130 medium-type=kr
port set adver portlist=129-130 speed-10g-kr port set adver portlist=129-130 speed-10g-kr
port set property portlist=129-130 an=enable port set property portlist=129-130 an=enable
port set property portlist=129-130 admin=enable port set property unit=0 portlist=129-130 admin=enable
port set property portlist=0-53 admin=disable port set property unit=0 portlist=0-53 admin=disable

View File

@ -412,3 +412,4 @@ port set adver portlist=129-130 speed-10g-kr
port set property portlist=129-130 an=enable port set property portlist=129-130 an=enable
port set property unit=0 portlist=129-130 admin=enable port set property unit=0 portlist=129-130 admin=enable
port set property unit=0 portlist=0-53 admin=disable port set property unit=0 portlist=0-53 admin=disable

View File

@ -0,0 +1,2 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/proc_init.nps
SAI_DSH_CONFIG_FILE=/usr/share/sonic/hwsku/port_config.nps

View File

@ -1,404 +0,0 @@
init start stage low-level
init set port-map port=0 eth-macro=2 lane=0 max-speed=25g active=true
init set port-map port=1 eth-macro=2 lane=1 max-speed=25g active=true
init set port-map port=2 eth-macro=2 lane=2 max-speed=25g active=true
init set port-map port=3 eth-macro=2 lane=3 max-speed=25g active=true
init set port-map port=4 eth-macro=3 lane=0 max-speed=25g active=true
init set port-map port=5 eth-macro=3 lane=1 max-speed=25g active=true
init set port-map port=6 eth-macro=3 lane=2 max-speed=25g active=true
init set port-map port=7 eth-macro=3 lane=3 max-speed=25g active=true
init set port-map port=8 eth-macro=4 lane=0 max-speed=25g active=true
init set port-map port=9 eth-macro=4 lane=1 max-speed=25g active=true
init set port-map port=10 eth-macro=4 lane=2 max-speed=25g active=true
init set port-map port=11 eth-macro=4 lane=3 max-speed=25g active=true
init set port-map port=12 eth-macro=5 lane=0 max-speed=25g active=true
init set port-map port=13 eth-macro=5 lane=1 max-speed=25g active=true
init set port-map port=14 eth-macro=5 lane=2 max-speed=25g active=true
init set port-map port=15 eth-macro=5 lane=3 max-speed=25g active=true
init set port-map port=16 eth-macro=8 lane=0 max-speed=25g active=true
init set port-map port=17 eth-macro=8 lane=1 max-speed=25g active=true
init set port-map port=18 eth-macro=8 lane=2 max-speed=25g active=true
init set port-map port=19 eth-macro=8 lane=3 max-speed=25g active=true
init set port-map port=20 eth-macro=10 lane=0 max-speed=25g active=true
init set port-map port=21 eth-macro=10 lane=1 max-speed=25g active=true
init set port-map port=22 eth-macro=10 lane=2 max-speed=25g active=true
init set port-map port=23 eth-macro=10 lane=3 max-speed=25g active=true
init set port-map port=24 eth-macro=12 lane=0 max-speed=25g active=true
init set port-map port=25 eth-macro=12 lane=1 max-speed=25g active=true
init set port-map port=26 eth-macro=12 lane=2 max-speed=25g active=true
init set port-map port=27 eth-macro=12 lane=3 max-speed=25g active=true
init set port-map port=28 eth-macro=14 lane=0 max-speed=25g active=true
init set port-map port=29 eth-macro=14 lane=1 max-speed=25g active=true
init set port-map port=30 eth-macro=14 lane=2 max-speed=25g active=true
init set port-map port=31 eth-macro=14 lane=3 max-speed=25g active=true
init set port-map port=32 eth-macro=16 lane=0 max-speed=25g active=true
init set port-map port=33 eth-macro=16 lane=1 max-speed=25g active=true
init set port-map port=34 eth-macro=16 lane=2 max-speed=25g active=true
init set port-map port=35 eth-macro=16 lane=3 max-speed=25g active=true
init set port-map port=36 eth-macro=17 lane=0 max-speed=25g active=true
init set port-map port=37 eth-macro=17 lane=1 max-speed=25g active=true
init set port-map port=38 eth-macro=17 lane=2 max-speed=25g active=true
init set port-map port=39 eth-macro=17 lane=3 max-speed=25g active=true
init set port-map port=40 eth-macro=18 lane=0 max-speed=25g active=true
init set port-map port=41 eth-macro=18 lane=1 max-speed=25g active=true
init set port-map port=42 eth-macro=18 lane=2 max-speed=25g active=true
init set port-map port=43 eth-macro=18 lane=3 max-speed=25g active=true
init set port-map port=44 eth-macro=19 lane=0 max-speed=25g active=true
init set port-map port=45 eth-macro=19 lane=1 max-speed=25g active=true
init set port-map port=46 eth-macro=19 lane=2 max-speed=25g active=true
init set port-map port=47 eth-macro=19 lane=3 max-speed=25g active=true
init set port-map port=48 eth-macro=20 lane=0 max-speed=100g active=true
init set port-map port=49 eth-macro=21 lane=0 max-speed=100g active=true
init set port-map port=50 eth-macro=26 lane=0 max-speed=100g active=true
init set port-map port=51 eth-macro=27 lane=0 max-speed=100g active=true
init set port-map port=52 eth-macro=28 lane=0 max-speed=100g active=true
init set port-map port=53 eth-macro=29 lane=0 max-speed=100g active=true
init set port-map port=129 eth-macro=0 lane=1 max-speed=10g active=true guarantee=true cpi=true
init set port-map port=130 eth-macro=0 lane=0 max-speed=10g active=true guarantee=true cpi=true init-done=true
init start stage task-rsrc
init start stage module
init start stage task
phy set lane-swap portlist=0 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=1 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=2 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=3 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=4 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=5 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=6 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=7 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=8 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=9 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=10 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=11 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=12 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=13 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=14 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=15 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=16 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=17 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=18 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=19 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=20 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=21 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=22 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=23 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=24 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=25 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=26 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=27 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=28 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=29 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=30 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=31 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=32 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=33 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=34 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=35 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=36 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=37 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=38 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=39 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=40 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=41 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=42 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=43 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=44 lane-cnt=1 property=tx data=0x0
phy set lane-swap portlist=45 lane-cnt=1 property=tx data=0x1
phy set lane-swap portlist=46 lane-cnt=1 property=tx data=0x2
phy set lane-swap portlist=47 lane-cnt=1 property=tx data=0x3
phy set lane-swap portlist=48-53 lane-cnt=4 property=tx data=0x03.02.01.00
phy set lane-swap portlist=0 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=1 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=2 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=3 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=4 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=5 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=6 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=7 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=8 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=9 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=10 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=11 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=12 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=13 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=14 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=15 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=16 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=17 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=18 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=19 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=20 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=21 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=22 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=23 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=24 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=25 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=26 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=27 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=28 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=29 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=30 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=31 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=32 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=33 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=34 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=35 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=36 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=37 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=38 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=39 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=40 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=41 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=42 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=43 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=44 lane-cnt=1 property=rx data=0x1
phy set lane-swap portlist=45 lane-cnt=1 property=rx data=0x2
phy set lane-swap portlist=46 lane-cnt=1 property=rx data=0x3
phy set lane-swap portlist=47 lane-cnt=1 property=rx data=0x0
phy set lane-swap portlist=48-53 lane-cnt=4 property=rx data=0x03.02.01.00
phy set polarity-rev portlist=0 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=1 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=2 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=3 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=4 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=5 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=6 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=7 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=8 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=9 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=10 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=11 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=12 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=13 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=14 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=15 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=16 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=17 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=18 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=19 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=20 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=21 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=22 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=23 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=24 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=25 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=26 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=27 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=28 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=29 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=30 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=31 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=32 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=33 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=34 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=35 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=36 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=37 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=38 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=39 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=40 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=41 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=42 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=43 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=44 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=45 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=46 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=47 lane-cnt=1 property=tx data=0x0
phy set polarity-rev portlist=48 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=49 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=50 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=51 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=52 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=53 lane-cnt=4 property=tx data=0x0.0.0.0
phy set polarity-rev portlist=0 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=1 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=2 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=3 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=4 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=5 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=6 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=7 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=8 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=9 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=10 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=11 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=12 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=13 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=14 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=15 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=16 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=17 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=18 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=19 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=20 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=21 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=22 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=23 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=24 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=25 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=26 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=27 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=28 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=29 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=30 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=31 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=32 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=33 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=34 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=35 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=36 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=37 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=38 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=39 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=40 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=41 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=42 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=43 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=44 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=45 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=46 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=47 lane-cnt=1 property=rx data=0x0
phy set polarity-rev portlist=48 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev portlist=49 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev portlist=50 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev portlist=51 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev portlist=52 lane-cnt=4 property=rx data=0x0.0.0.0
phy set polarity-rev portlist=53 lane-cnt=4 property=rx data=0x0.0.0.0
phy set pre-emphasis portlist=0 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=0 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=0 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=0 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=4 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=4 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=4 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=4 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=8 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=8 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=8 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=8 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=12 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=12 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=12 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=12 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=16 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=16 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=16 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=16 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=20 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=20 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=20 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=20 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=24 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=24 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=24 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=24 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=28 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=28 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=28 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=28 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=32 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=32 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=32 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=32 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=36 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=36 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=36 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=36 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=40 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=40 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=40 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=40 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=44 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=44 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=44 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=44 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=48 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=48 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=48 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=48 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=49 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=49 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=49 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=49 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=50 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=50 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=50 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=50 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=51 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=51 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=51 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=51 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=52 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=52 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=52 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=52 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set pre-emphasis portlist=53 lane-cnt=4 property=c2 data=0x0.0.0.0
phy set pre-emphasis portlist=53 lane-cnt=4 property=cn1 data=0x4.4.4.4
phy set pre-emphasis portlist=53 lane-cnt=4 property=c0 data=0x1E.1E.1E.1E
phy set pre-emphasis portlist=53 lane-cnt=4 property=c1 data=0x2.2.2.2
phy set mdio portlist=0 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=1 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=2 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=3 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=4 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=5 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=6 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=7 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=8 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=9 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=10 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=11 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=12 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=13 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=14 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=15 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=16 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=17 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=18 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=19 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=20 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=21 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=22 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=23 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=24 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=25 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=26 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=27 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=28 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=29 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=30 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=31 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=32 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=33 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=34 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=35 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=36 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=37 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=38 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=39 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=40 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=41 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=42 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=43 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=44 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=45 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=46 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=47 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=48 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=49 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=50 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=51 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=52 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=53 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=129 devad=0x1E addr=0x2 data=0x0000
phy set mdio portlist=130 devad=0x1E addr=0x2 data=0x0000
port set property portlist=0-47 speed=25g
port set property portlist=48-53 speed=100g
port set property portlist=129-130 speed=10g
port set property portlist=0-47 medium-type=cr
port set property portlist=48-53 medium-type=cr4
port set property portlist=129-130 medium-type=kr
port set adver portlist=129-130 speed-10g-kr
port set property portlist=129-130 an=enable
port set property portlist=129-130 admin=enable
port set property portlist=0-53 admin=disable

View File

@ -1,2 +0,0 @@
SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/proc_init.nps
SAI_DSH_CONFIG_FILE=/usr/share/sonic/hwsku/port_config.nps

View File

@ -1 +1 @@
Accton-AS7116-54X t1 Accton-AS7116-54X-R0 t1

View File

@ -7,4 +7,4 @@ MAXTEMP=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=58
MINSTART=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=100 MINSTART=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=100
MINSTOP=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=40 MINSTOP=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=40
MINPWM=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=40 MINPWM=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=40
MAXPWM=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=100 MAXPWM=/sys/bus/i2c/devices/1-0063/fan_duty_cycle_percentage=100

View File

@ -18,4 +18,4 @@ class board(eeprom_tlvinfo.TlvInfoDecoder):
_TLV_INFO_MAX_LEN = 256 _TLV_INFO_MAX_LEN = 256
def __init__(self, name, path, cpld_root, ro): def __init__(self, name, path, cpld_root, ro):
self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom" self.eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom"
super(board, self).__init__(self.eeprom_path, 0, '', True) super(board, self).__init__(self.eeprom_path, 0, '', True)

View File

@ -168,4 +168,5 @@ class SfpUtil(SfpUtilBase):
time.sleep(2) time.sleep(2)
return True, ret_present return True, ret_present

View File

@ -10,4 +10,4 @@ chip "as7116_54x_fan-*"
label fan7 "rear fan 2" label fan7 "rear fan 2"
label fan8 "rear fan 3" label fan8 "rear fan 3"
label fan9 "rear fan 4" label fan9 "rear fan 4"
label fan10 "rear fan 5" label fan10 "rear fan 5"

View File

@ -0,0 +1,2 @@
__all__ = ["platform", "chassis"]
from sonic_platform import *

View File

@ -0,0 +1,174 @@
#!/usr/bin/env python
#############################################################################
#
# Module contains an implementation of SONiC Platform Base API and
# provides the Chassis information which are available in the platform
#
#############################################################################
try:
import sys
import re
import os
import subprocess
import json
import syslog
from sonic_platform_base.chassis_base import ChassisBase
from sonic_daemon_base.daemon_base import Logger
from sonic_platform.fan import Fan
from sonic_platform.psu import Psu
from sonic_platform.component import Component
from sonic_platform.thermal import Thermal
from sonic_platform.sfp import Sfp
from sonic_platform.eeprom import Tlv
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
NUM_FAN_TRAY = 5
NUM_FAN = 2
NUM_PSU = 2
NUM_THERMAL = 4
NUM_SFP = 54
SFP_PORT_START = 0
QSFP_PORT_START = 48
SFP_PORT_END = 47
QSFP_PORT_END=53
HOST_REBOOT_CAUSE_PATH = "/host/reboot-cause/"
PMON_REBOOT_CAUSE_PATH = "/usr/share/sonic/platform/api_files/reboot-cause/"
REBOOT_CAUSE_FILE = "reboot-cause.txt"
PREV_REBOOT_CAUSE_FILE = "previous-reboot-cause.txt"
COMPONENT_NAME_LIST = ["BIOS"]
HOST_CHK_CMD = "docker > /dev/null 2>&1"
class Chassis(ChassisBase):
"""Platform-specific Chassis class"""
def __init__(self):
super(Chassis, self).__init__()
for fantray_index in range(0, NUM_FAN_TRAY):
for fan_index in range(0, NUM_FAN):
fan = Fan(fantray_index, fan_index)
self._fan_list.append(fan)
for index in range(0, NUM_PSU):
psu = Psu(index)
self._psu_list.append(psu)
for index in range(0, NUM_THERMAL):
thermal = Thermal(index)
self._thermal_list.append(thermal)
self.PORT_START = SFP_PORT_START
self.QSFP_PORT_START = QSFP_PORT_START
self.PORT_END = QSFP_PORT_END
for index in range(0, NUM_SFP):
if index in range(self.QSFP_PORT_START, self.QSPORT_END + 1):
sfp_module = Sfp(index, 'QSFP')
else:
sfp_module = Sfp(index, 'SFP')
self._sfp_list.append(sfp_module)
self._component_name_list = COMPONENT_NAME_LIST
self._watchdog = Watchdog()
self._eeprom = Tlv()
logger.log_info("Chassis loaded successfully")
def __is_host(self):
return os.system(HOST_CHK_CMD) == 0
def __read_txt_file(self, file_path):
try:
with open(file_path, 'r') as fd:
data = fd.read()
return data.strip()
except IOError:
pass
return None
def get_base_mac(self):
"""
Retrieves the base MAC address for the chassis
Returns:
A string containing the MAC address in the format
'XX:XX:XX:XX:XX:XX'
"""
return self._eeprom.get_mac()
def get_serial_number(self):
"""
Retrieves the hardware serial number for the chassis
Returns:
A string containing the hardware serial number for this chassis.
"""
return self._eeprom.get_serial()
def get_system_eeprom_info(self):
"""
Retrieves the full content of system EEPROM information for the chassis
Returns:
A dictionary where keys are the type code defined in
OCP ONIE TlvInfo EEPROM format and values are their corresponding
values.
"""
return self._eeprom.get_eeprom()
def get_firmware_version(self, component_name):
"""
Retrieves platform-specific hardware/firmware versions for chassis
componenets such as BIOS, CPLD, FPGA, etc.
Args:
type: A string, component name
Returns:
A string containing platform-specific component versions
"""
self.component = Component(component_name)
if component_name not in self._component_name_list:
return None
return self.component.get_firmware_version()
def install_component_firmware(self, component_name, image_path):
"""
Install firmware to module
Args:
type: A string, component name.
image_path: A string, path to firmware image.
Returns:
A boolean, True if install successfully, False if not
"""
self.component = Component(component_name)
if component_name not in self._component_name_list:
return False
return self.component.upgrade_firmware(image_path)
def get_reboot_cause(self):
"""
Retrieves the cause of the previous reboot
Returns:
A tuple (string, string) where the first element is a string
containing the cause of the previous reboot. This string must be
one of the predefined strings in this class. If the first string
is "REBOOT_CAUSE_HARDWARE_OTHER", the second string can be used
to pass a description of the reboot cause.
"""
description = 'None'
reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER
reboot_cause_path = (HOST_REBOOT_CAUSE_PATH + REBOOT_CAUSE_FILE) if self.__is_host(
) else PMON_REBOOT_CAUSE_PATH + REBOOT_CAUSE_FILE
prev_reboot_cause_path = (HOST_REBOOT_CAUSE_PATH + PREV_REBOOT_CAUSE_FILE) if self.__is_host(
) else PMON_REBOOT_CAUSE_PATH + PREV_REBOOT_CAUSE_FILE
sw_reboot_cause = self.__read_txt_file(
reboot_cause_path) or "Unknown"
prev_sw_reboot_cause = self.__read_txt_file(
prev_reboot_cause_path) or "Unknown"
if sw_reboot_cause != "Unknown":
reboot_cause = self.REBOOT_CAUSE_NON_HARDWARE
description = sw_reboot_cause
else:
reboot_cause = self.REBOOT_CAUSE_HARDWARE_OTHER
description = 'Unknown reason'
return (reboot_cause, description)

View File

@ -0,0 +1,83 @@
#!/usr/bin/env python
#############################################################################
# Component contains an implementation of SONiC Platform Base API and
# provides the components firmware management function
#############################################################################
import json
import os.path
import shutil
import shlex
import subprocess
try:
from sonic_platform_base.device_base import DeviceBase
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
BIOS_VERSION_PATH = "/sys/class/dmi/id/bios_version"
class Component(DeviceBase):
"""Platform-specific Component class"""
DEVICE_TYPE = "component"
def __init__(self, component_name):
DeviceBase.__init__(self)
self.name = component_name.upper()
def __run_command(self, command):
# Run bash command and print output to stdout
try:
process = subprocess.Popen(
shlex.split(command), stdout=subprocess.PIPE)
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break
rc = process.poll()
if rc != 0:
return False
except:
return False
return True
def __get_bios_version(self):
# Retrieves the BIOS firmware version
try:
with open(BIOS_VERSION_PATH, 'r') as fd:
bios_version = fd.read()
return bios_version.strip()
except Exception as e:
return None
def get_firmware_version(self):
"""
Retrieves the firmware version of module
Returns:
string: The firmware versions of the module
"""
fw_version = None
if self.name == "BIOS":
fw_version = self.__get_bios_version()
return fw_version
def upgrade_firmware(self, image_path):
"""
Install firmware to module
Args:
image_path: A string, path to firmware image
Returns:
A boolean, True if install successfully, False if not
"""
if not os.path.isfile(image_path):
return False
if self.name == "BIOS":
print("Not supported")
return False
return self.__run_command(install_command)

View File

@ -0,0 +1,112 @@
#!/usr/bin/env python
#############################################################################
# Platform and model specific eeprom subclass, inherits from the base class,
# and provides the followings:
# - the eeprom format definition
# - specific encoder/decoder if there is special need
#############################################################################
try:
import glob
import os
import sys
import imp
import re
from array import array
from cStringIO import StringIO
from sonic_platform_base.sonic_eeprom import eeprom_dts
from sonic_platform_base.sonic_eeprom import eeprom_tlvinfo
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
CACHE_ROOT = '/var/cache/sonic/decode-syseeprom'
CACHE_FILE = 'syseeprom_cache'
class Tlv(eeprom_tlvinfo.TlvInfoDecoder):
EEPROM_DECODE_HEADLINES = 6
def __init__(self):
self._eeprom_path = "/sys/bus/i2c/devices/0-0056/eeprom"
super(Tlv, self).__init__(self._eeprom_path, 0, '', True)
self._eeprom = self._load_eeprom()
def __parse_output(self, decode_output):
decode_output.replace('\0', '')
lines = decode_output.split('\n')
lines = lines[self.EEPROM_DECODE_HEADLINES:]
_eeprom_info_dict = dict()
for line in lines:
try:
match = re.search(
'(0x[0-9a-fA-F]{2})([\s]+[\S]+[\s]+)([\S]+)', line)
if match is not None:
idx = match.group(1)
value = match.group(3).rstrip('\0')
_eeprom_info_dict[idx] = value
except:
pass
return _eeprom_info_dict
def _load_eeprom(self):
original_stdout = sys.stdout
sys.stdout = StringIO()
err = self.read_eeprom_db()
if err:
# Failed to read EEPROM information from database. Read from cache file
pass
else:
decode_output = sys.stdout.getvalue()
sys.stdout = original_stdout
return self.__parse_output(decode_output)
status = self.check_status()
if status < 'ok':
return False
if not os.path.exists(CACHE_ROOT):
try:
os.makedirs(CACHE_ROOT)
except:
pass
#
# only the eeprom classes that inherit from eeprom_base
# support caching. Others will work normally
#
try:
self.set_cache_name(os.path.join(CACHE_ROOT, CACHE_FILE))
except:
pass
e = self.read_eeprom()
if e is None:
return 0
try:
self.update_cache(e)
except:
pass
self.decode_eeprom(e)
decode_output = sys.stdout.getvalue()
sys.stdout = original_stdout
(is_valid, valid_crc) = self.is_checksum_valid(e)
if not is_valid:
return False
return self.__parse_output(decode_output)
def get_eeprom(self):
return self._eeprom
def get_serial(self):
return self._eeprom.get('0x23', "Undefined.")
def get_mac(self):
return self._eeprom.get('0x24', "Undefined.")

View File

@ -0,0 +1,165 @@
#!/usr/bin/env python
#############################################################################
#
# Module contains an implementation of SONiC Platform Base API and
# provides the fan status which are available in the platform
#
#############################################################################
import json
import math
import os.path
try:
from sonic_platform_base.fan_base import FanBase
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
FAN_PATH = "/sys/bus/i2c/devices/1-0063/"
FANTRAY_NAME_LIST = ["FANTRAY-1", "FANTRAY-2",
"FANTRAY-3", "FANTRAY-4", "FANTRAY-5"]
FAN_NAME_LIST = ["front", "rear"]
class Fan(FanBase):
"""Platform-specific Fan class"""
def __init__(self, fan_tray_index, fan_index=0):
self.fan_index = fan_index
self.fan_tray_index = fan_tray_index
self.fan_presence = "fan{}_present"
self.fan_direction = "fan{}_direction"
self.fan_fault = "fan{}_{}_fault"
self.fan_speed_rpm = "fan{}_{}_speed_rpm"
FanBase.__init__(self)
def __read_txt_file(self, file_path):
try:
with open(file_path, 'r') as fd:
data = fd.read()
return data.strip()
except IOError:
pass
return ""
def __write_txt_file(self, file_path, value):
try:
with open(file_path, 'w') as fd:
fd.write(str(value))
except:
return False
return True
def __search_file_by_name(self, directory, file_name):
for dirpath, dirnames, files in os.walk(directory):
for name in files:
file_path = os.path.join(dirpath, name)
if name in file_name:
return file_path
return None
def get_direction(self):
"""
Retrieves the direction of fan
Returns:
A string, either FAN_DIRECTION_INTAKE or FAN_DIRECTION_EXHAUST
depending on fan direction
"""
direction = self.FAN_DIRECTION_EXHAUST
fan_direction_file = (FAN_PATH +
self.fan_direction.format(self.fan_tray_index+1))
raw = self.__read_txt_file(fan_direction_file).strip('\r\n')
direction = self.FAN_DIRECTION_INTAKE if str(
raw).upper() == "1" else self.FAN_DIRECTION_EXHAUST
return direction
def get_speed(self):
"""
Retrieves the speed of fan as a percentage of full speed
Returns:
An integer, the percentage of full fan speed, in the range 0 (off)
to 12000 (full speed)
"""
speed = 0
if self.get_presence():
fan_speed_file = (FAN_PATH +
self.fan_speed_rpm.format(self.fan_tray_index+1,FAN_NAME_LIST[self.fan_index]))
speed = self.__read_txt_file(fan_speed_file).strip('\r\n')
return int(speed)
def get_target_speed(self):
"""
Retrieves the target (expected) speed of the fan
Returns:
An integer, the percentage of full fan speed, in the range 0 (off)
to 100 (full speed)
"""
target = 0
if self.get_presence():
fan_speed_file=(FAN_PATH +
self.fan_speed_rpm.format(self.fan_tray_index+1, FAN_NAME_LIST[self.fan_index]))
target=self.__read_txt_file(fan_speed_file).strip('\r\n')
return target
def get_speed_tolerance(self):
"""
Retrieves the speed tolerance of the fan
Returns:
An integer, the percentage of variance from target speed which is
considered tolerable
"""
return 10
def set_speed(self, speed):
"""
Sets the fan speed
Args:
speed: An integer, the percentage of full fan speed to set fan to,
in the range 0 (off) to 100 (full speed)
Returns:
A boolean, True if speed is set successfully, False if not
Note:
Depends on pwm or target mode is selected:
1) pwm = speed_pc * 255 <-- Currently use this mode.
2) target_pwm = speed_pc * 100 / 255
2.1) set pwm{}_enable to 3
"""
return False
def set_status_led(self, color):
"""
Sets the state of the fan module status LED
Args:
color: A string representing the color with which to set the
fan module status LED
Returns:
bool: True if status LED state is set successfully, False if not
"""
return False
def get_name(self):
"""
Retrieves the name of the device
Returns:
string: The name of the device
"""
fan_name = FAN_NAME_LIST[self.fan_tray_index]
return fan_name
def get_presence(self):
"""
Retrieves the presence of the PSU
Returns:
bool: True if PSU is present, False if not
"""
fan_direction_file = (FAN_PATH +
self.fan_presence.format(self.fan_tray_index+1))
present_str = self.__read_txt_file(fan_direction_file) or '1'
return int(present_str) == 0

View File

@ -0,0 +1,20 @@
#!/usr/bin/env python
#############################################################################
# Module contains an implementation of SONiC Platform Base API and
# provides the platform information
#
#############################################################################
try:
from sonic_platform_base.platform_base import PlatformBase
from sonic_platform.chassis import Chassis
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
class Platform(PlatformBase):
"""Platform-specific Platform class"""
def __init__(self):
PlatformBase.__init__(self)
self._chassis = Chassis()

View File

@ -0,0 +1,102 @@
#!/usr/bin/env python
#############################################################################
# psuutil.py
# Platform-specific PSU status interface for SONiC
#############################################################################
import os.path
import sonic_platform
try:
from sonic_platform_base.psu_base import PsuBase
from sonic_platform.fan import Fan
except ImportError as e:
raise ImportError(str(e) + "- required module not found")
FAN_MAX_RPM = 9600
PSU_NAME_LIST = ["PSU-0", "PSU-1"]
class Psu(PsuBase):
"""Platform-specific Psu class"""
SYSFS_PSU_DIR = ["/sys/bus/i2c/devices/10-0050",
"/sys/bus/i2c/devices/11-0053"]
def __init__(self):
self.index = psu_index
PsuBase.__init__(self)
def get_fan(self):
"""
Retrieves object representing the fan module contained in this PSU
Returns:
An object dervied from FanBase representing the fan module
contained in this PSU
"""
# Hardware not supported
return False
def get_powergood_status(self):
"""
Retrieves the powergood status of PSU
Returns:
A boolean, True if PSU has stablized its output voltages and passed all
its internal self-tests, False if not.
"""
return self.get_status()
def set_status_led(self, color):
"""
Sets the state of the PSU status LED
Args:
color: A string representing the color with which to set the PSU status LED
Note: Only support green and off
Returns:
bool: True if status LED state is set successfully, False if not
"""
# Hardware not supported
return False
def get_name(self):
"""
Retrieves the name of the device
Returns:
string: The name of the device
"""
return PSU_NAME_LIST[self.index]
def get_presence(self):
"""
Retrieves the presence of the PSU
Returns:
bool: True if PSU is present, False if not
"""
attr_file ='psu_present'
attr_path = self.SYSFS_PSU_DIR[self.index-1] +'/' + attr_file
status = 0
try:
with open(attr_path, 'r') as psu_prs:
status = int(psu_prs.read())
except IOError:
return False
return status == 1
def get_status(self):
"""
Retrieves the operational status of the device
Returns:
A boolean value, True if device is operating properly, False if not
"""
attr_file = 'psu_power_good'
attr_path = self.SYSFS_PSU_DIR[self.index-1] +'/' + attr_file
status = 0
try:
with open(attr_path, 'r') as power_status:
status = int(power_status.read())
except IOError:
return False
return status == 1

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
[Unit] [Unit]
Description=Accton AS7116-54X Platform initialization service Description=Accton AS7116-54X Platform initialization service
Before=pmon.service Before=pmon.service
After=sysinit.target
DefaultDependencies=no DefaultDependencies=no
[Service] [Service]
@ -10,4 +11,4 @@ ExecStop=/usr/local/bin/accton_as7116_util.py clean
RemainAfterExit=yes RemainAfterExit=yes
[Install] [Install]
WantedBy=multi-user.target WantedBy=multi-user.target

View File

@ -0,0 +1,41 @@
#!/bin/bash
PREV_REBOOT_CAUSE="/host/reboot-cause/"
DEVICE="/usr/share/sonic/device"
PLATFORM=$(/usr/local/bin/sonic-cfggen -H -v DEVICE_METADATA.localhost.platform)
FILES=$DEVICE/$PLATFORM/api_files
install() {
# Install sonic-platform package
if [ -e $DEVICE/$PLATFORM/sonic_platform-1.0-py2-none-any.whl ]; then
pip install $DEVICE/$PLATFORM/sonic_platform-1.0-py2-none-any.whl
fi
}
init() {
# mount needed files for sonic-platform package
mkdir -p $FILES
mkdir -p $FILES/reboot-cause
mount -B $PREV_REBOOT_CAUSE $FILES/reboot-cause
}
deinit() {
# deinit sonic-platform package
umount -f $PREV_REBOOT_CAUSE $FILES/reboot-cause >/dev/null 2>/dev/null
}
uninstall() {
# Uninstall sonic-platform package
pip uninstall -y sonic-platform >/dev/null 2>/dev/null
}
case "$1" in
install | uninstall | init | deinit)
$1
;;
*)
echo "Usage: $0 {install|uninstall|init|deinit}"
exit 1
;;
esac

View File

@ -1,15 +1,34 @@
#!/usr/bin/env python
import os
import sys
from setuptools import setup from setuptools import setup
os.listdir
DEVICE_NAME = 'accton'
HW_SKU = 'x86_64-accton_as7116_54x-r0'
setup( setup(
name='as7116-54x', name='sonic-platform',
version='1.0.0', version='1.0',
description='Module to initialize Accton AS7116-54X platforms', description='SONiC platform API implementation on Accton Platforms',
license='Apache 2.0',
packages=['as7116-54x'], author='SONiC Team',
package_dir={'as7116-54x': 'as7116-54x/classes'}, author_email='linuxnetdev@microsoft.com',
) url='https://github.com/Azure/sonic-buildimage',
maintainer='Simon Ji',
maintainer_email='Simon.Ji@mediatek.com',
packages=[
'sonic_platform',
],
package_dir={
'sonic_platform': '../../../device/{}/{}/sonic_platform'.format(DEVICE_NAME, HW_SKU)},
classifiers=[
'Development Status :: 3 - Alpha',
'Environment :: Plugins',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
'Intended Audience :: System Administrators',
'License :: OSI Approved :: Apache Software License',
'Natural Language :: English',
'Operating System :: POSIX :: Linux',
'Programming Language :: Python :: 2.7',
'Topic :: Utilities',
],
keywords='sonic SONiC platform PLATFORM',
)

View File

@ -21,13 +21,13 @@ Usage: %(scriptName)s [options] command object
options: options:
-h | --help : this help message -h | --help : this help message
-d | --debug : run with debug mode -d | --debug : run with debug mode
-f | --force : ignore error during installation or clean -f | --force : ignore error during installation or clean
command: command:
install : install drivers and generate related sysfs nodes install : install drivers and generate related sysfs nodes
clean : uninstall drivers and remove related sysfs nodes clean : uninstall drivers and remove related sysfs nodes
show : show all systen status show : show all systen status
sff : dump SFP eeprom sff : dump SFP eeprom
set : change board setting with fan|led|sfp set : change board setting with fan|led|sfp
""" """
import os import os
@ -46,7 +46,7 @@ version = '0.1.0'
verbose = False verbose = False
DEBUG = False DEBUG = False
args = [] args = []
ALL_DEVICE = {} ALL_DEVICE = {}
DEVICE_NO = {'led':5, 'fan':1, 'thermal':3, 'psu':2, 'sfp':54} DEVICE_NO = {'led':5, 'fan':1, 'thermal':3, 'psu':2, 'sfp':54}
FORCE = 0 FORCE = 0
#logging.basicConfig(filename= PROJECT_NAME+'.log', filemode='w',level=logging.DEBUG) #logging.basicConfig(filename= PROJECT_NAME+'.log', filemode='w',level=logging.DEBUG)
@ -55,37 +55,37 @@ FORCE = 0
if DEBUG == True: if DEBUG == True:
print sys.argv[0] print sys.argv[0]
print 'ARGV :', sys.argv[1:] print 'ARGV :', sys.argv[1:]
def main(): def main():
global DEBUG global DEBUG
global args global args
global FORCE global FORCE
if len(sys.argv)<2: if len(sys.argv)<2:
show_help() show_help()
options, args = getopt.getopt(sys.argv[1:], 'hdf', ['help', options, args = getopt.getopt(sys.argv[1:], 'hdf', ['help',
'debug', 'debug',
'force', 'force',
]) ])
if DEBUG == True: if DEBUG == True:
print options print options
print args print args
print len(sys.argv) print len(sys.argv)
for opt, arg in options: for opt, arg in options:
if opt in ('-h', '--help'): if opt in ('-h', '--help'):
show_help() show_help()
elif opt in ('-d', '--debug'): elif opt in ('-d', '--debug'):
DEBUG = True DEBUG = True
logging.basicConfig(level=logging.INFO) logging.basicConfig(level=logging.INFO)
elif opt in ('-f', '--force'): elif opt in ('-f', '--force'):
FORCE = 1 FORCE = 1
else: else:
logging.info('no option') logging.info('no option')
for arg in args: for arg in args:
if arg == 'install': if arg == 'install':
do_install() do_install()
elif arg == 'clean': elif arg == 'clean':
@ -95,23 +95,23 @@ def main():
elif arg == 'sff': elif arg == 'sff':
if len(args)!=2: if len(args)!=2:
show_eeprom_help() show_eeprom_help()
elif int(args[1]) ==0 or int(args[1]) > DEVICE_NO['sfp']: elif int(args[1]) ==0 or int(args[1]) > DEVICE_NO['sfp']:
show_eeprom_help() show_eeprom_help()
else: else:
show_eeprom(args[1]) show_eeprom(args[1])
return return
elif arg == 'set': elif arg == 'set':
if len(args)<3: if len(args)<3:
show_set_help() show_set_help()
else: else:
set_device(args[1:]) set_device(args[1:])
return return
else: else:
show_help() show_help()
return 0 return 0
def show_help(): def show_help():
print __doc__ % {'scriptName' : sys.argv[0].split("/")[-1]} print __doc__ % {'scriptName' : sys.argv[0].split("/")[-1]}
sys.exit(0) sys.exit(0)
@ -120,36 +120,36 @@ def show_set_help():
cmd = sys.argv[0].split("/")[-1]+ " " + args[0] cmd = sys.argv[0].split("/")[-1]+ " " + args[0]
print cmd +" [led|sfp|fan]" print cmd +" [led|sfp|fan]"
print " use \""+ cmd + " led 0-4 \" to set led color" print " use \""+ cmd + " led 0-4 \" to set led color"
print " use \""+ cmd + " fan 0-100\" to set fan duty percetage" print " use \""+ cmd + " fan 0-100\" to set fan duty percetage"
print " use \""+ cmd + " sfp 1-54 {0|1}\" to set sfp# tx_disable" print " use \""+ cmd + " sfp 1-54 {0|1}\" to set sfp# tx_disable"
sys.exit(0) sys.exit(0)
def show_eeprom_help(): def show_eeprom_help():
cmd = sys.argv[0].split("/")[-1]+ " " + args[0] cmd = sys.argv[0].split("/")[-1]+ " " + args[0]
print " use \""+ cmd + " 1-54 \" to dump sfp# eeprom" print " use \""+ cmd + " 1-54 \" to dump sfp# eeprom"
sys.exit(0) sys.exit(0)
def my_log(txt): def my_log(txt):
if DEBUG == True: if DEBUG == True:
print "[ROY]"+txt print "[ROY]"+txt
return return
def log_os_system(cmd, show): def log_os_system(cmd, show):
logging.info('Run :'+cmd) logging.info('Run :'+cmd)
status, output = commands.getstatusoutput(cmd) status, output = commands.getstatusoutput(cmd)
my_log (cmd +"with result:" + str(status)) my_log (cmd +"with result:" + str(status))
my_log (" output:"+output) my_log (" output:"+output)
if status: if status:
logging.info('Failed :'+cmd) logging.info('Failed :'+cmd)
if show: if show:
print('Failed :'+cmd) print('Failed :'+cmd)
return status, output return status, output
def driver_check(): def driver_check():
ret, lsmod = log_os_system("lsmod| grep accton", 0) ret, lsmod = log_os_system("lsmod| grep accton", 0)
logging.info('mods:'+lsmod) logging.info('mods:'+lsmod)
if len(lsmod) ==0: if len(lsmod) ==0:
return False return False
return True return True
@ -169,19 +169,19 @@ def driver_install():
for i in range(0,len(kos)): for i in range(0,len(kos)):
status, output = log_os_system(kos[i], 1) status, output = log_os_system(kos[i], 1)
if status: if status:
if FORCE == 0: if FORCE == 0:
return status return status
return 0 return 0
def driver_uninstall(): def driver_uninstall():
global FORCE global FORCE
for i in range(0,len(kos)): for i in range(0,len(kos)):
rm = kos[-(i+1)].replace("modprobe", "modprobe -rq") rm = kos[-(i+1)].replace("modprobe", "modprobe -rq")
rm = rm.replace("insmod", "rmmod") rm = rm.replace("insmod", "rmmod")
status, output = log_os_system(rm, 1) status, output = log_os_system(rm, 1)
if status: if status:
if FORCE == 0: if FORCE == 0:
return status return status
return 0 return 0
led_prefix ='/sys/class/leds/'+PROJECT_NAME+'_led::' led_prefix ='/sys/class/leds/'+PROJECT_NAME+'_led::'
@ -192,13 +192,13 @@ hwmon_prefix ={'led': led_prefix}
i2c_prefix = '/sys/bus/i2c/devices/' i2c_prefix = '/sys/bus/i2c/devices/'
i2c_bus = {'fan': ['1-0063'] , i2c_bus = {'fan': ['1-0063'] ,
'thermal': ['17-004b','19-0049', '20-004a'] , 'thermal': ['17-004b','19-0049', '20-004a'] ,
'psu': ['10-0050','11-0058'], 'psu': ['10-0050','11-0058'],
'sfp': ['-0050']} 'sfp': ['-0050']}
i2c_nodes = {'fan': ['present', 'front_speed_rpm', 'rear_speed_rpm'] , i2c_nodes = {'fan': ['present', 'front_speed_rpm', 'rear_speed_rpm'] ,
'thermal': ['hwmon/hwmon*/temp1_input'] , 'thermal': ['hwmon/hwmon*/temp1_input'] ,
'psu': ['psu_present ', 'psu_power_good'] , 'psu': ['psu_present ', 'psu_power_good'] ,
'sfp': ['sfp_is_present ', 'sfp_tx_disable_all']} 'sfp': ['sfp_is_present ', 'sfp_tx_disable_all']}
sfp_map = [37,38,39,40, sfp_map = [37,38,39,40,
41,42,43,44,45,46,47,48,49,50, 41,42,43,44,45,46,47,48,49,50,
51,52,53,54,55,56,57,58,59,60, 51,52,53,54,55,56,57,58,59,60,
@ -234,23 +234,23 @@ mknod =[
def device_install(): def device_install():
global FORCE global FORCE
for i in range(0,len(mknod)): for i in range(0,len(mknod)):
#for pca954x need times to built new i2c buses #for pca954x need times to built new i2c buses
if mknod[i].find('pca954') != -1: if mknod[i].find('pca954') != -1:
time.sleep(1) time.sleep(1)
status, output = log_os_system(mknod[i], 1) status, output = log_os_system(mknod[i], 1)
if status: if status:
print output print output
if FORCE == 0: if FORCE == 0:
return status return status
for i in range(0,len(sfp_map)): for i in range(0,len(sfp_map)):
status, output =log_os_system("echo as7116_54x_sfp"+str(i+1)+" 0x50 > /sys/bus/i2c/devices/i2c-"+str(sfp_map[i])+"/new_device", 1) status, output =log_os_system("echo as7116_54x_sfp"+str(i+1)+" 0x50 > /sys/bus/i2c/devices/i2c-"+str(sfp_map[i])+"/new_device", 1)
if status: if status:
print output print output
if FORCE == 0: if FORCE == 0:
return status return status
if i <= 47: if i <= 47:
@ -260,11 +260,11 @@ def device_install():
if FORCE == 0: if FORCE == 0:
return status return status
return return
def device_uninstall(): def device_uninstall():
global FORCE global FORCE
status, output =log_os_system("ls /sys/bus/i2c/devices/1-0077", 0) status, output =log_os_system("ls /sys/bus/i2c/devices/1-0077", 0)
for i in range(0,len(sfp_map)): for i in range(0,len(sfp_map)):
@ -272,11 +272,11 @@ def device_uninstall():
status, output =log_os_system("echo 0x50 > "+ target, 1) status, output =log_os_system("echo 0x50 > "+ target, 1)
if status: if status:
print output print output
if FORCE == 0: if FORCE == 0:
return status return status
nodelist = mknod nodelist = mknod
for i in range(len(nodelist)): for i in range(len(nodelist)):
target = nodelist[-(i+1)] target = nodelist[-(i+1)]
temp = target.split() temp = target.split()
@ -285,72 +285,79 @@ def device_uninstall():
status, output = log_os_system(" ".join(temp), 1) status, output = log_os_system(" ".join(temp), 1)
if status: if status:
print output print output
if FORCE == 0: if FORCE == 0:
return status return status
return return
def system_ready(): def system_ready():
if driver_check() == False: if driver_check() == False:
return False return False
if not device_exist(): if not device_exist():
return False return False
return True return True
def do_install(): def do_install():
print "Checking system...." print "Checking system...."
if driver_check() == False: if driver_check() == False:
print "No driver, installing...." print "No driver, installing...."
status = driver_install() status = driver_install()
if status: if status:
if FORCE == 0: if FORCE == 0:
return status return status
else: else:
print PROJECT_NAME.upper()+" drivers detected...." print PROJECT_NAME.upper()+" drivers detected...."
if not device_exist(): if not device_exist():
print "No device, installing...." print "No device, installing...."
status = device_install() status = device_install()
if status: if status:
if FORCE == 0: if FORCE == 0:
return status return status
else: else:
print PROJECT_NAME.upper()+" devices detected...." print PROJECT_NAME.upper()+" devices detected...."
status, output = log_os_system(
"/bin/sh /usr/local/bin/platform_api_mgnt.sh init", 1)
if status:
print output
if FORCE == 0:
return status
return return
def do_uninstall(): def do_uninstall():
print "Checking system...." print "Checking system...."
if not device_exist(): if not device_exist():
print PROJECT_NAME.upper() +" has no device installed...." print PROJECT_NAME.upper() +" has no device installed...."
else: else:
print "Removing device...." print "Removing device...."
status = device_uninstall() status = device_uninstall()
if status: if status:
if FORCE == 0: if FORCE == 0:
return status return status
if driver_check()== False : if driver_check()== False :
print PROJECT_NAME.upper() +" has no driver installed...." print PROJECT_NAME.upper() +" has no driver installed...."
else: else:
print "Removing installed driver...." print "Removing installed driver...."
status = driver_uninstall() status = driver_uninstall()
if status: if status:
if FORCE == 0: if FORCE == 0:
return status return status
return return
def devices_info(): def devices_info():
global DEVICE_NO global DEVICE_NO
global ALL_DEVICE global ALL_DEVICE
global i2c_bus, hwmon_types global i2c_bus, hwmon_types
for key in DEVICE_NO: for key in DEVICE_NO:
ALL_DEVICE[key]= {} ALL_DEVICE[key]= {}
for i in range(0,DEVICE_NO[key]): for i in range(0,DEVICE_NO[key]):
ALL_DEVICE[key][key+str(i+1)] = [] ALL_DEVICE[key][key+str(i+1)] = []
for key in i2c_bus: for key in i2c_bus:
buses = i2c_bus[key] buses = i2c_bus[key]
nodes = i2c_nodes[key] nodes = i2c_nodes[key]
for i in range(0,len(buses)): for i in range(0,len(buses)):
for j in range(0,len(nodes)): for j in range(0,len(nodes)):
if 'fan' == key: if 'fan' == key:
@ -358,52 +365,52 @@ def devices_info():
node = key+str(k+1) node = key+str(k+1)
path = i2c_prefix+ buses[i]+"/fan"+str(k+1)+"_"+ nodes[j] path = i2c_prefix+ buses[i]+"/fan"+str(k+1)+"_"+ nodes[j]
my_log(node+": "+ path) my_log(node+": "+ path)
ALL_DEVICE[key][node].append(path) ALL_DEVICE[key][node].append(path)
elif 'sfp' == key: elif 'sfp' == key:
for k in range(0,DEVICE_NO[key]): for k in range(0,DEVICE_NO[key]):
node = key+str(k+1) node = key+str(k+1)
path = i2c_prefix+ str(sfp_map[k])+ buses[i]+"/"+ nodes[j] path = i2c_prefix+ str(sfp_map[k])+ buses[i]+"/"+ nodes[j]
my_log(node+": "+ path) my_log(node+": "+ path)
ALL_DEVICE[key][node].append(path) ALL_DEVICE[key][node].append(path)
else: else:
node = key+str(i+1) node = key+str(i+1)
path = i2c_prefix+ buses[i]+"/"+ nodes[j] path = i2c_prefix+ buses[i]+"/"+ nodes[j]
my_log(node+": "+ path) my_log(node+": "+ path)
ALL_DEVICE[key][node].append(path) ALL_DEVICE[key][node].append(path)
for key in hwmon_types: for key in hwmon_types:
itypes = hwmon_types[key] itypes = hwmon_types[key]
nodes = hwmon_nodes[key] nodes = hwmon_nodes[key]
for i in range(0,len(itypes)): for i in range(0,len(itypes)):
for j in range(0,len(nodes)): for j in range(0,len(nodes)):
node = key+"_"+itypes[i] node = key+"_"+itypes[i]
path = hwmon_prefix[key]+ itypes[i]+"/"+ nodes[j] path = hwmon_prefix[key]+ itypes[i]+"/"+ nodes[j]
my_log(node+": "+ path) my_log(node+": "+ path)
ALL_DEVICE[key][ key+str(i+1)].append(path) ALL_DEVICE[key][ key+str(i+1)].append(path)
#show dict all in the order #show dict all in the order
if DEBUG == True: if DEBUG == True:
for i in sorted(ALL_DEVICE.keys()): for i in sorted(ALL_DEVICE.keys()):
print(i+": ") print(i+": ")
for j in sorted(ALL_DEVICE[i].keys()): for j in sorted(ALL_DEVICE[i].keys()):
print(" "+j) print(" "+j)
for k in (ALL_DEVICE[i][j]): for k in (ALL_DEVICE[i][j]):
print(" "+" "+k) print(" "+" "+k)
return return
def show_eeprom(index): def show_eeprom(index):
if system_ready()==False: if system_ready()==False:
print("System's not ready.") print("System's not ready.")
print("Please install first!") print("Please install first!")
return return
if len(ALL_DEVICE)==0: if len(ALL_DEVICE)==0:
devices_info() devices_info()
node = ALL_DEVICE['sfp'] ['sfp'+str(index)][0] node = ALL_DEVICE['sfp'] ['sfp'+str(index)][0]
node = node.replace(node.split("/")[-1], 'sfp_eeprom') node = node.replace(node.split("/")[-1], 'sfp_eeprom')
# check if got hexdump command in current environment # check if got hexdump command in current environment
ret, log = log_os_system("which hexdump", 0) ret, log = log_os_system("which hexdump", 0)
ret, log2 = log_os_system("which busybox hexdump", 0) ret, log2 = log_os_system("which busybox hexdump", 0)
if len(log): if len(log):
hex_cmd = 'hexdump' hex_cmd = 'hexdump'
elif len(log2): elif len(log2):
@ -412,111 +419,111 @@ def show_eeprom(index):
log = 'Failed : no hexdump cmd!!' log = 'Failed : no hexdump cmd!!'
logging.info(log) logging.info(log)
print log print log
return 1 return 1
print node + ":" print node + ":"
ret, log = log_os_system("cat "+node+"| "+hex_cmd+" -C", 1) ret, log = log_os_system("cat "+node+"| "+hex_cmd+" -C", 1)
if ret==0: if ret==0:
print log print log
else: else:
print "**********device no found**********" print "**********device no found**********"
return return
def set_device(args): def set_device(args):
global DEVICE_NO global DEVICE_NO
global ALL_DEVICE global ALL_DEVICE
if system_ready()==False: if system_ready()==False:
print("System's not ready.") print("System's not ready.")
print("Please install first!") print("Please install first!")
return return
if len(ALL_DEVICE)==0: if len(ALL_DEVICE)==0:
devices_info() devices_info()
if args[0]=='led': if args[0]=='led':
if int(args[1])>4: if int(args[1])>4:
show_set_help() show_set_help()
return return
#print ALL_DEVICE['led'] #print ALL_DEVICE['led']
for i in range(0,len(ALL_DEVICE['led'])): for i in range(0,len(ALL_DEVICE['led'])):
for k in (ALL_DEVICE['led']['led'+str(i+1)]): for k in (ALL_DEVICE['led']['led'+str(i+1)]):
ret, log = log_os_system("echo "+args[1]+" >"+k, 1) ret, log = log_os_system("echo "+args[1]+" >"+k, 1)
if ret: if ret:
return ret return ret
elif args[0]=='fan': elif args[0]=='fan':
if int(args[1])>100: if int(args[1])>100:
show_set_help() show_set_help()
return return
#print ALL_DEVICE['fan'] #print ALL_DEVICE['fan']
#fan1~6 is all fine, all fan share same setting #fan1~6 is all fine, all fan share same setting
node = ALL_DEVICE['fan'] ['fan1'][0] node = ALL_DEVICE['fan'] ['fan1'][0]
node = node.replace(node.split("/")[-1], 'fan_duty_cycle_percentage') node = node.replace(node.split("/")[-1], 'fan_duty_cycle_percentage')
ret, log = log_os_system("cat "+ node, 1) ret, log = log_os_system("cat "+ node, 1)
if ret==0: if ret==0:
print ("Previous fan duty: " + log.strip() +"%") print ("Previous fan duty: " + log.strip() +"%")
ret, log = log_os_system("echo "+args[1]+" >"+node, 1) ret, log = log_os_system("echo "+args[1]+" >"+node, 1)
if ret==0: if ret==0:
print ("Current fan duty: " + args[1] +"%") print ("Current fan duty: " + args[1] +"%")
return ret return ret
elif args[0]=='sfp': elif args[0]=='sfp':
if int(args[1])> DEVICE_NO[args[0]] or int(args[1])==0: if int(args[1])> DEVICE_NO[args[0]] or int(args[1])==0:
show_set_help() show_set_help()
return return
if len(args)<2: if len(args)<2:
show_set_help() show_set_help()
return return
if int(args[2])>1: if int(args[2])>1:
show_set_help() show_set_help()
return return
#print ALL_DEVICE[args[0]] #print ALL_DEVICE[args[0]]
for i in range(0,len(ALL_DEVICE[args[0]])): for i in range(0,len(ALL_DEVICE[args[0]])):
for j in ALL_DEVICE[args[0]][args[0]+str(args[1])]: for j in ALL_DEVICE[args[0]][args[0]+str(args[1])]:
if j.find('tx_disable')!= -1: if j.find('tx_disable')!= -1:
ret, log = log_os_system("echo "+args[2]+" >"+ j, 1) ret, log = log_os_system("echo "+args[2]+" >"+ j, 1)
if ret: if ret:
return ret return ret
return return
#get digits inside a string. #get digits inside a string.
#Ex: 31 for "sfp31" #Ex: 31 for "sfp31"
def get_value(input): def get_value(input):
digit = re.findall('\d+', input) digit = re.findall('\d+', input)
return int(digit[0]) return int(digit[0])
def device_traversal(): def device_traversal():
if system_ready()==False: if system_ready()==False:
print("System's not ready.") print("System's not ready.")
print("Please install first!") print("Please install first!")
return return
if len(ALL_DEVICE)==0: if len(ALL_DEVICE)==0:
devices_info() devices_info()
for i in sorted(ALL_DEVICE.keys()): for i in sorted(ALL_DEVICE.keys()):
print("============================================") print("============================================")
print(i.upper()+": ") print(i.upper()+": ")
print("============================================") print("============================================")
for j in sorted(ALL_DEVICE[i].keys(), key=get_value): for j in sorted(ALL_DEVICE[i].keys(), key=get_value):
print " "+j+":", print " "+j+":",
for k in (ALL_DEVICE[i][j]): for k in (ALL_DEVICE[i][j]):
ret, log = log_os_system("cat "+k, 0) ret, log = log_os_system("cat "+k, 0)
func = k.split("/")[-1].strip() func = k.split("/")[-1].strip()
func = re.sub(j+'_','',func,1) func = re.sub(j+'_','',func,1)
func = re.sub(i.lower()+'_','',func,1) func = re.sub(i.lower()+'_','',func,1)
if ret==0: if ret==0:
print func+"="+log+" ", print func+"="+log+" ",
else: else:
print func+"="+"X"+" ", print func+"="+"X"+" ",
print print
print("----------------------------------------------------------------") print("----------------------------------------------------------------")
print print
return return
def device_exist(): def device_exist():
ret1, log = log_os_system("ls "+i2c_prefix+"*0077", 0) ret1, log = log_os_system("ls "+i2c_prefix+"*0077", 0)
ret2, log = log_os_system("ls "+i2c_prefix+"i2c-2", 0) ret2, log = log_os_system("ls "+i2c_prefix+"i2c-2", 0)

View File

@ -1,19 +1,8 @@
#!/usr/bin/make -f #!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.
include /usr/share/dpkg/pkg-info.mk
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export INSTALL_MOD_DIR:=extra export INSTALL_MOD_DIR:=extra
PYTHON ?= python2 PYTHON ?= python2.7
PACKAGE_PRE_NAME := sonic-platform-accton PACKAGE_PRE_NAME := sonic-platform-accton
KVERSION ?= $(shell uname -r) KVERSION ?= $(shell uname -r)
@ -27,60 +16,25 @@ CLASSES_DIR := classes
CONF_DIR := conf CONF_DIR := conf
%: %:
dh $@ --with systemd,python2,python3 --buildsystem=pybuild dh $@
clean: override_dh_auto_build:
dh_testdir
dh_testroot
dh_clean
build:
#make modules -C $(KERNEL_SRC)/build M=$(MODULE_SRC)
(for mod in $(MODULE_DIRS); do \ (for mod in $(MODULE_DIRS); do \
make modules -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules; \ make modules -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules; \
$(PYTHON) $${mod}/setup.py build; \ $(PYTHON) $${mod}/setup.py bdist_wheel -d $(MOD_SRC_DIR)/$${mod}/modules; \
done) done)
binary: binary-arch binary-indep override_dh_auto_install:
# Nothing to do
binary-arch:
# Nothing to do
#install: build
#dh_testdir
#dh_testroot
#dh_clean -k
#dh_installdirs
binary-indep:
dh_testdir
dh_installdirs
# Custom package commands
(for mod in $(MODULE_DIRS); do \ (for mod in $(MODULE_DIRS); do \
dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \ dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /usr/local/bin; \ cp $(MOD_SRC_DIR)/$${mod}/$(MODULE_DIR)/*.ko \
dh_installdirs -p$(PACKAGE_PRE_NAME)-$${mod} /lib/systemd/system; \ debian/$(PACKAGE_PRE_NAME)-$${mod}/$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \
cp $(MOD_SRC_DIR)/$${mod}/$(MODULE_DIR)/*.ko debian/$(PACKAGE_PRE_NAME)-$${mod}/$(KERNEL_SRC)/$(INSTALL_MOD_DIR); \ done)
cp $(MOD_SRC_DIR)/$${mod}/$(UTILS_DIR)/* debian/$(PACKAGE_PRE_NAME)-$${mod}/usr/local/bin/; \
cp $(MOD_SRC_DIR)/$${mod}/$(SERVICE_DIR)/*.service debian/$(PACKAGE_PRE_NAME)-$${mod}/lib/systemd/system/; \ override_dh_usrlocal:
$(PYTHON) $${mod}/setup.py install --root=$(MOD_SRC_DIR)/debian/$(PACKAGE_PRE_NAME)-$${mod} --install-layout=deb; \
override_dh_clean:
dh_clean
(for mod in $(MODULE_DIRS); do \
make -C $(KERNEL_SRC)/build M=$(MOD_SRC_DIR)/$${mod}/modules clean; \
done) done)
# Resuming debhelper scripts
dh_testroot
dh_install
dh_installchangelogs
dh_installdocs
dh_systemd_enable
dh_installinit
dh_systemd_start
dh_link
dh_fixperms
dh_compress
dh_strip
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
.PHONY: build binary binary-arch binary-indep clean

View File

@ -0,0 +1,4 @@
as7116-54x/utils/* usr/local/bin
as7116-54x/service/*.service lib/systemd/system
as7116-54x/modules/sonic_platform-1.0-py2-none-any.whl usr/share/sonic/device/x86_64-accton_as7116_54x-r0
as7116-54x/service/platform_api/platform_api_mgnt.sh usr/local/bin

View File

@ -0,0 +1,5 @@
depmod -a
systemctl enable as7116-platform-init.service
systemctl start as7116-platform-init.service
/usr/local/bin/platform_api_mgnt.sh install