diff --git a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py index bef3a3e7a7..016f7c45c8 100644 --- a/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py +++ b/device/mellanox/x86_64-mlnx_msn2700-r0/plugins/sfputil.py @@ -60,9 +60,9 @@ platform_dict = {'x86_64-mlnx_msn2700-r0': 0, 'x86_64-mlnx_msn2740-r0': 0, 'x86_ 'x86_64-mlnx_msn2410-r0': 2, 'x86_64-mlnx_msn2010-r0': 3, 'x86_64-mlnx_msn3420-r0': 5, 'x86_64-mlnx_msn3700-r0': 0, 'x86_64-mlnx_msn3700c-r0': 0, 'x86_64-mlnx_msn3800-r0': 4, 'x86_64-mlnx_msn4410-r0': 0, 'x86_64-mlnx_msn4600-r0': 4, 'x86_64-mlnx_msn4600c-r0': 4, - 'x86_64-mlnx_msn4700-r0': 0} + 'x86_64-mlnx_msn4700-r0': 0, 'x86_64-nvidia_sn2201-r0': 6} port_position_tuple_list = [(0, 0, 31, 32, 1), (0, 0, 15, 16, 1), (0, 48, 55, 56, 1), - (0, 18, 21, 22, 1), (0, 0, 63, 64, 1), (0, 48, 59, 60, 1)] + (0, 18, 21, 22, 1), (0, 0, 63, 64, 1), (0, 48, 59, 60, 1), (0, 48, 51, 52, 1)] def log_info(msg, also_print_to_console=False): diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers.json.j2 b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers.json.j2 new file mode 120000 index 0000000000..add8bf8bb7 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers.json.j2 @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/buffers.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_defaults_t0.j2 b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_defaults_t0.j2 new file mode 120000 index 0000000000..7bcae62336 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_defaults_t0.j2 @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/buffers_defaults_t0.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_defaults_t1.j2 b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_defaults_t1.j2 new file mode 120000 index 0000000000..a437d61343 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_defaults_t1.j2 @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/buffers_defaults_t1.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_dynamic.json.j2 b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_dynamic.json.j2 new file mode 120000 index 0000000000..8c4117c662 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/buffers_dynamic.json.j2 @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/buffers_dynamic.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/hwsku.json b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/hwsku.json new file mode 100644 index 0000000000..fcd6343ca9 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/hwsku.json @@ -0,0 +1,160 @@ +{ + "interfaces": { + "Ethernet0": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet1": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet2": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet3": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet4": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet5": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet6": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet7": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet8": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet9": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet10": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet11": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet12": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet13": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet14": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet15": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet16": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet17": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet18": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet19": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet20": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet21": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet22": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet23": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet24": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet25": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet26": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet27": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet28": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet29": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet30": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet31": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet32": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet33": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet34": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet35": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet36": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet37": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet38": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet39": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet40": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet41": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet42": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet43": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet44": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet45": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet46": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet47": { + "default_brkout_mode": "1x1G[100]" + }, + "Ethernet48": { + "default_brkout_mode": "1x100G[50G,40G,25G,10G]" + }, + "Ethernet52": { + "default_brkout_mode": "1x100G[50G,40G,25G,10G]" + }, + "Ethernet56": { + "default_brkout_mode": "1x100G[50G,40G,25G,10G]" + }, + "Ethernet60": { + "default_brkout_mode": "1x100G[50G,40G,25G,10G]" + } + } +} diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/pg_profile_lookup.ini b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/pg_profile_lookup.ini new file mode 100644 index 0000000000..53652080e9 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/pg_profile_lookup.ini @@ -0,0 +1,40 @@ +## +## Copyright (c) 2018-2021 NVIDIA CORPORATION & AFFILIATES. +## Apache-2.0 +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## + +# PG lossless profiles. +# speed cable size xon xoff threshold + 100 5m 49152 19456 29696 0 + 1000 5m 49152 19456 29696 0 + 10000 5m 49152 19456 29696 0 + 25000 5m 49152 19456 29696 0 + 40000 5m 49152 19456 29696 0 + 50000 5m 49152 19456 29696 0 + 100000 5m 50176 19456 30720 0 + 100 40m 49152 19456 29696 0 + 1000 40m 49152 19456 29696 0 + 10000 40m 49152 19456 29696 0 + 25000 40m 51200 19456 31744 0 + 40000 40m 52224 19456 32768 0 + 50000 40m 53248 19456 33792 0 + 100000 40m 58368 19456 38912 0 + 100 300m 56320 19456 29696 0 + 1000 300m 56320 19456 29696 0 + 10000 300m 56320 19456 36864 0 + 25000 300m 67584 19456 48128 0 + 40000 300m 78848 19456 59392 0 + 50000 300m 86016 19456 66560 0 + 100000 300m 123904 19456 104448 0 diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/port_config.ini b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/port_config.ini new file mode 100644 index 0000000000..08d2e2df07 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/port_config.ini @@ -0,0 +1,70 @@ +## +## Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. +## Apache-2.0 +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## + +# name lanes alias index speed +Ethernet0 0 etp1 1 1000 +Ethernet1 4 etp2 2 1000 +Ethernet2 8 etp3 3 1000 +Ethernet3 12 etp4 4 1000 +Ethernet4 16 etp5 5 1000 +Ethernet5 20 etp6 6 1000 +Ethernet6 24 etp7 7 1000 +Ethernet7 28 etp8 8 1000 +Ethernet8 32 etp9 9 1000 +Ethernet9 36 etp10 10 1000 +Ethernet10 40 etp11 11 1000 +Ethernet11 44 etp12 12 1000 +Ethernet12 48 etp13 13 1000 +Ethernet13 52 etp14 14 1000 +Ethernet14 56 etp15 15 1000 +Ethernet15 60 etp16 16 1000 +Ethernet16 64 etp17 17 1000 +Ethernet17 68 etp18 18 1000 +Ethernet18 72 etp19 19 1000 +Ethernet19 76 etp20 20 1000 +Ethernet20 80 etp21 21 1000 +Ethernet21 84 etp22 22 1000 +Ethernet22 88 etp23 23 1000 +Ethernet23 92 etp24 24 1000 +Ethernet24 96 etp25 25 1000 +Ethernet25 100 etp26 26 1000 +Ethernet26 104 etp27 27 1000 +Ethernet27 108 etp28 28 1000 +Ethernet28 112 etp29 29 1000 +Ethernet29 116 etp30 30 1000 +Ethernet30 120 etp31 31 1000 +Ethernet31 124 etp32 32 1000 +Ethernet32 128 etp33 33 1000 +Ethernet33 132 etp34 34 1000 +Ethernet34 136 etp35 35 1000 +Ethernet35 140 etp36 36 1000 +Ethernet36 144 etp37 37 1000 +Ethernet37 148 etp38 38 1000 +Ethernet38 152 etp39 39 1000 +Ethernet39 156 etp40 40 1000 +Ethernet40 160 etp41 41 1000 +Ethernet41 164 etp42 42 1000 +Ethernet42 168 etp43 43 1000 +Ethernet43 172 etp44 44 1000 +Ethernet44 176 etp45 45 1000 +Ethernet45 180 etp46 46 1000 +Ethernet46 184 etp47 47 1000 +Ethernet47 188 etp48 48 1000 +Ethernet48 192,193,194,195 etp49 49 100000 +Ethernet52 196,197,198,199 etp50 50 100000 +Ethernet56 200,201,202,203 etp51 51 100000 +Ethernet60 204,205,206,207 etp52 52 100000 diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/qos.json.j2 b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/qos.json.j2 new file mode 120000 index 0000000000..eccf286dc8 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/qos.json.j2 @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/ACS-MSN2700/qos.json.j2 \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/sai.profile b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/sai.profile new file mode 100644 index 0000000000..692ad368de --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/sai.profile @@ -0,0 +1,3 @@ +SAI_INIT_CONFIG_FILE=/usr/share/sonic/hwsku/sai_2201.xml +SAI_DUMP_STORE_PATH=/var/log/mellanox/sdk-dumps +SAI_DUMP_STORE_AMOUNT=10 diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/sai_2201.xml b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/sai_2201.xml new file mode 100644 index 0000000000..d50843270c --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/ACS-SN2201/sai_2201.xml @@ -0,0 +1,402 @@ + + + + + + + + 00:02:03:04:05:00 + + + 1 + + + 52 + + + + + 61 + 1 + 0 + + 0 + + 3 + + + 62 + 1 + 1 + 0 + 3 + + + 63 + 1 + 2 + 0 + 3 + + + 64 + 1 + 3 + 0 + 3 + + + 57 + 1 + 4 + 0 + 3 + + + 58 + 1 + 5 + 0 + 3 + + + 59 + 1 + 6 + 0 + 3 + + + 60 + 1 + 7 + 0 + 3 + + + 53 + 1 + 8 + 0 + 3 + + + 54 + 1 + 9 + 0 + 3 + + + 55 + 1 + 10 + 0 + 3 + + + 56 + 1 + 11 + 0 + 3 + + + 49 + 1 + 12 + 0 + 3 + + + 50 + 1 + 13 + 0 + 3 + + + 51 + 1 + 14 + 0 + 3 + + + 52 + 1 + 15 + 0 + 3 + + + 45 + 1 + 16 + 0 + 3 + + + 46 + 1 + 17 + 0 + 3 + + + 47 + 1 + 18 + 0 + 3 + + + 48 + 1 + 19 + 0 + 3 + + + 41 + 1 + 20 + 0 + 3 + + + 42 + 1 + 21 + 0 + 3 + + + 43 + 1 + 22 + 0 + 3 + + + 44 + 1 + 23 + 0 + 3 + + + 37 + 1 + 24 + 0 + 3 + + + 38 + 1 + 25 + 0 + 3 + + + 39 + 1 + 26 + 0 + 3 + + + 40 + 1 + 27 + 0 + 3 + + + 33 + 1 + 28 + 0 + 3 + + + 34 + 1 + 29 + 0 + 3 + + + 35 + 1 + 30 + 0 + 3 + + + 36 + 1 + 31 + 0 + 3 + + + 1 + 1 + 32 + 0 + 3 + + + 2 + 1 + 33 + 0 + 3 + + + 3 + 1 + 34 + 0 + 3 + + + 4 + 1 + 35 + 0 + 3 + + + 5 + 1 + 36 + 0 + 3 + + + 6 + 1 + 37 + 0 + 3 + + + 17 + 1 + 38 + 0 + 3 + + + 18 + 1 + 39 + 0 + 3 + + + 19 + 1 + 40 + 0 + 3 + + + 20 + 1 + 41 + 0 + 3 + + + 21 + 1 + 42 + 0 + 3 + + + 22 + 1 + 43 + 0 + 3 + + + 23 + 1 + 44 + 0 + 3 + + + 24 + 1 + 45 + 0 + 3 + + + 25 + 1 + 46 + 0 + 3 + + + 26 + 1 + 47 + 0 + 3 + + + 9 + 4 + 48 + 3 + 11534336 + + + 7 + 4 + 49 + 3 + 11534336 + + + 13 + 4 + 50 + 3 + 11534336 + + + 11 + 4 + 51 + 3 + 11534336 + + + + + diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/default_sku b/device/mellanox/x86_64-nvidia_sn2201-r0/default_sku new file mode 100644 index 0000000000..46029c3e83 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/default_sku @@ -0,0 +1 @@ +ACS-MSN2201 t1 diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/installer.conf b/device/mellanox/x86_64-nvidia_sn2201-r0/installer.conf new file mode 100644 index 0000000000..8fcb08aba3 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/installer.conf @@ -0,0 +1 @@ +ONIE_PLATFORM_EXTRA_CMDLINE_LINUX="acpi_enforce_resources=lax" diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/pcie.yaml b/device/mellanox/x86_64-nvidia_sn2201-r0/pcie.yaml new file mode 100644 index 0000000000..49de6829aa --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/pcie.yaml @@ -0,0 +1,152 @@ +## +## Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. +## Apache-2.0 +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## + +- bus: '00' + dev: '00' + fn: '0' + id: '1980' + name: 'Host bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '04' + fn: '0' + id: '19a1' + name: 'Host bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '05' + fn: '0' + id: '19a2' + name: 'Generic system peripheral: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '06' + fn: '0' + id: '19a3' + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '09' + fn: '0' + id: '19a4' + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '0b' + fn: '0' + id: '19a6' + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '0f' + fn: '0' + id: '19a9' + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '10' + fn: '0' + id: '19aa' + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 11 + fn: '0' + id: '19ab' + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 12 + fn: '0' + id: 19ac + name: 'System peripheral: Intel Corporation DNV SMBus Contoller - Host (rev 11)' +- bus: '00' + dev: 15 + fn: '0' + id: 19d0 + name: 'USB controller: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 16 + fn: '0' + id: 19d1 + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 17 + fn: '0' + id: 19d2 + name: 'PCI bridge: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 18 + fn: '0' + id: 1973 + name: 'Communication controller: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 1c + fn: '0' + id: 19db + name: 'SD Host controller: Intel Corporation Device (rev 11)' +- bus: '00' + dev: 1f + fn: '0' + id: 19dc + name: 'ISA bridge: Intel Corporation DNV LPC or eSPI (rev 11)' +- bus: '00' + dev: 1f + fn: '2' + id: 197e + name: 'Memory controller: Intel Corporation Device (rev 11)' +- bus: '00' + dev: '1f' + fn: '4' + id: 19df + name: 'SMBus: Intel Corporation DNV SMBus controller (rev 11)' +- bus: '00' + dev: '1f' + fn: '5' + id: 19e0 + name: 'Serial bus controller: Intel Corporation DNV SPI Controller (rev 11)' +- bus: '01' + dev: '00' + fn: '0' + id: 19e2 + name: 'Co-processor: Intel Corporation Device (rev 11)' +- bus: '02' + dev: '00' + fn: '0' + id: 0026 + name: 'Non-Volatile memory controller: Device (rev 03)' +- bus: '03' + dev: '00' + fn: '0' + id: cb84 + name: 'Ethernet controller: Mellanox Technologies MT52100' +- bus: '06' + dev: '00' + fn: '0' + id: 1533 + name: 'Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03)' +- bus: '07' + dev: '00' + fn: '0' + id: 15c3 + name: 'Ethernet controller: Intel Corporation Device (rev 11)' +- bus: '07' + dev: '00' + fn: '1' + id: 15c3 + name: 'Ethernet controller: Intel Corporation Device (rev 11)' +- bus: '08' + dev: '00' + fn: '0' + id: 15c3 + name: 'Ethernet controller: Intel Corporation Device (rev 11)' +- bus: '08' + dev: '00' + fn: '1' + id: 15c3 + name: 'Ethernet controller: Intel Corporation Device (rev 11)' diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/platform.json b/device/mellanox/x86_64-nvidia_sn2201-r0/platform.json new file mode 100644 index 0000000000..d98a191d0a --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/platform.json @@ -0,0 +1,479 @@ +{ + "chassis": { + "name": "SN2201", + "components": [{ + "name": "ONIE" + }, + { + "name": "SSD" + }, + { + "name": "BIOS" + }, + { + "name": "CPLD1" + }, + { + "name": "CPLD2" + } + ], + "fans": [{ + "name": "fan1" + }, + { + "name": "fan2" + }, + { + "name": "fan3" + }, + { + "name": "fan4" + } + ], + "psus": [ + { + "name": "PSU 1", + "fans": [ + { + "name": "psu1_fan1" + } + ], + "thermals": [ + { + "name": "PSU-1 Temp" + } + ] + }, + { + "name": "PSU 2", + "fans": [ + { + "name": "psu2_fan1" + } + ], + "thermals": [ + { + "name": "PSU-2 Temp" + } + ] + } + ], + "thermals": [ + { + "name": "Ambient Port Side Temp" + }, + { + "name": "Ambient Fan Side Temp" + }, + { + "name": "CPU Pack Temp" + }, + { + "name": "CPU Core 0 Temp" + }, + { + "name": "CPU Core 1 Temp" + }, + { + "name": "ASIC" + } + ], + "sfps": [{ + "name": "sfp1", + "thermals": [{ + "name": "xSFP module 1 Temp" + }] + }, + { + "name": "sfp2", + "thermals": [{ + "name": "xSFP module 2 Temp" + }] + }, + { + "name": "sfp3", + "thermals": [{ + "name": "xSFP module 3 Temp" + }] + }, + { + "name": "sfp4", + "thermals": [{ + "name": "xSFP module 4 Temp" + }] + } + ] + }, + "interfaces": { + "Ethernet0": { + "index": "1", + "lanes": "0", + "breakout_modes": { + "1x1G[100]": ["etp1"] + } + }, + "Ethernet1": { + "index": "2", + "lanes": "4", + "breakout_modes": { + "1x1G[100]": ["etp2"] + } + }, + "Ethernet2": { + "index": "3", + "lanes": "8", + "breakout_modes": { + "1x1G[100]": ["etp3"] + } + }, + "Ethernet3": { + "index": "4", + "lanes": "12", + "breakout_modes": { + "1x1G[100]": ["etp4"] + } + }, + "Ethernet4": { + "index": "5", + "lanes": "16", + "breakout_modes": { + "1x1G[100]": ["etp5"] + } + }, + "Ethernet5": { + "index": "6", + "lanes": "20", + "breakout_modes": { + "1x1G[100]": ["etp6"] + } + }, + "Ethernet6": { + "index": "7", + "lanes": "24", + "breakout_modes": { + "1x1G[100]": ["etp7"] + } + }, + "Ethernet7": { + "index": "8", + "lanes": "28", + "breakout_modes": { + "1x1G[100]": ["etp8"] + } + }, + + "Ethernet8": { + "index": "9", + "lanes": "32", + "breakout_modes": { + "1x1G[100]": ["etp9"] + } + }, + "Ethernet9": { + "index": "10", + "lanes": "36", + "breakout_modes": { + "1x1G[100]": ["etp10"] + } + }, + "Ethernet10": { + "index": "11", + "lanes": "40", + "breakout_modes": { + "1x1G[100]": ["etp11"] + } + }, + "Ethernet11": { + "index": "12", + "lanes": "44", + "breakout_modes": { + "1x1G[100]": ["etp12"] + } + }, + "Ethernet12": { + "index": "13", + "lanes": "48", + "breakout_modes": { + "1x1G[100]": ["etp13"] + } + }, + "Ethernet13": { + "index": "14", + "lanes": "52", + "breakout_modes": { + "1x1G[100]": ["etp14"] + } + }, + "Ethernet14": { + "index": "15", + "lanes": "56", + "breakout_modes": { + "1x1G[100]": ["etp15"] + } + }, + "Ethernet15": { + "index": "16", + "lanes": "60", + "breakout_modes": { + "1x1G[100]": ["etp16"] + } + }, + + "Ethernet16": { + "index": "17", + "lanes": "64", + "breakout_modes": { + "1x1G[100]": ["etp17"] + } + }, + "Ethernet17": { + "index": "18", + "lanes": "68", + "breakout_modes": { + "1x1G[100]": ["etp18"] + } + }, + "Ethernet18": { + "index": "19", + "lanes": "72", + "breakout_modes": { + "1x1G[100]": ["etp19"] + } + }, + "Ethernet19": { + "index": "20", + "lanes": "76", + "breakout_modes": { + "1x1G[100]": ["etp20"] + } + }, + "Ethernet20": { + "index": "21", + "lanes": "80", + "breakout_modes": { + "1x1G[100]": ["etp21"] + } + }, + "Ethernet21": { + "index": "22", + "lanes": "84", + "breakout_modes": { + "1x1G[100]": ["etp22"] + } + }, + "Ethernet22": { + "index": "23", + "lanes": "88", + "breakout_modes": { + "1x1G[100]": ["etp23"] + } + }, + "Ethernet23": { + "index": "24", + "lanes": "92", + "breakout_modes": { + "1x1G[100]": ["etp24"] + } + }, + "Ethernet24": { + "index": "25", + "lanes": "96", + "breakout_modes": { + "1x1G[100]": ["etp25"] + } + }, + "Ethernet25": { + "index": "26", + "lanes": "100", + "breakout_modes": { + "1x1G[100]": ["etp26"] + } + }, + "Ethernet26": { + "index": "27", + "lanes": "104", + "breakout_modes": { + "1x1G[100]": ["etp27"] + } + }, + "Ethernet27": { + "index": "28", + "lanes": "108", + "breakout_modes": { + "1x1G[100]": ["etp28"] + } + }, + "Ethernet28": { + "index": "29", + "lanes": "112", + "breakout_modes": { + "1x1G[100]": ["etp29"] + } + }, + "Ethernet29": { + "index": "30", + "lanes": "116", + "breakout_modes": { + "1x1G[100]": ["etp30"] + } + }, + "Ethernet30": { + "index": "31", + "lanes": "120", + "breakout_modes": { + "1x1G[100]": ["etp31"] + } + }, + "Ethernet31": { + "index": "32", + "lanes": "124", + "breakout_modes": { + "1x1G[100]": ["etp32"] + } + }, + "Ethernet32": { + "index": "33", + "lanes": "128", + "breakout_modes": { + "1x1G[100]": ["etp33"] + } + }, + "Ethernet33": { + "index": "34", + "lanes": "132", + "breakout_modes": { + "1x1G[100]": ["etp34"] + } + }, + "Ethernet34": { + "index": "35", + "lanes": "136", + "breakout_modes": { + "1x1G[100]": ["etp35"] + } + }, + "Ethernet35": { + "index": "36", + "lanes": "140", + "breakout_modes": { + "1x1G[100]": ["etp36"] + } + }, + "Ethernet36": { + "index": "37", + "lanes": "144", + "breakout_modes": { + "1x1G[100]": ["etp37"] + } + }, + "Ethernet37": { + "index": "38", + "lanes": "148", + "breakout_modes": { + "1x1G[100]": ["etp38"] + } + }, + "Ethernet38": { + "index": "39", + "lanes": "152", + "breakout_modes": { + "1x1G[100]": ["etp39"] + } + }, + "Ethernet39": { + "index": "40", + "lanes": "156", + "breakout_modes": { + "1x1G[100]": ["etp40"] + } + }, + "Ethernet40": { + "index": "41", + "lanes": "160", + "breakout_modes": { + "1x1G[100]": ["etp41"] + } + }, + "Ethernet41": { + "index": "42", + "lanes": "164", + "breakout_modes": { + "1x1G[100]": ["etp42"] + } + }, + "Ethernet42": { + "index": "43", + "lanes": "168", + "breakout_modes": { + "1x1G[100]": ["etp43"] + } + }, + "Ethernet43": { + "index": "44", + "lanes": "172", + "breakout_modes": { + "1x1G[100]": ["etp44"] + } + }, + "Ethernet44": { + "index": "45", + "lanes": "176", + "breakout_modes": { + "1x1G[100]": ["etp45"] + } + }, + "Ethernet45": { + "index": "46", + "lanes": "180", + "breakout_modes": { + "1x1G[100]": ["etp46"] + } + }, + "Ethernet46": { + "index": "47", + "lanes": "184", + "breakout_modes": { + "1x1G[100]": ["etp47"] + } + }, + "Ethernet47": { + "index": "48", + "lanes": "188", + "breakout_modes": { + "1x1G[100]": ["etp48"] + } + }, + "Ethernet48": { + "index": "49,49,49,49", + "lanes": "192,193,194,195", + "breakout_modes": { + "1x100G[50G,40G,25G,10G]": ["etp49"], + "2x50G[25G,10G]": ["etp49a", "etp49b"] + } + }, + "Ethernet52": { + "index": "50,50,50,50", + "lanes": "196,197,198,199", + "breakout_modes": { + "1x100G[50G,40G,25G,10G]": ["etp50"], + "2x50G[25G,10G]": ["etp50a", "etp50b"] + } + }, + "Ethernet56": { + "index": "51,51,51,51", + "lanes": "200,201,202,203", + "breakout_modes": { + "1x100G[50G,40G,25G,10G]": ["etp51"], + "2x50G[25G,10G]": ["etp51a", "etp51b"] + } + }, + "Ethernet60": { + "index": "52,52,52,52", + "lanes": "204,205,206,207", + "breakout_modes": { + "1x100G[50G,40G,25G,10G]": ["etp52"], + "2x50G[25G,10G]": ["etp52a", "etp52b"] + } + } + } +} diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/platform_asic b/device/mellanox/x86_64-nvidia_sn2201-r0/platform_asic new file mode 100644 index 0000000000..70c0748855 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/platform_asic @@ -0,0 +1 @@ +mellanox diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/platform_reboot b/device/mellanox/x86_64-nvidia_sn2201-r0/platform_reboot new file mode 120000 index 0000000000..43c8ea5674 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/platform_reboot @@ -0,0 +1 @@ +../x86_64-mlnx_msn2700-r0/platform_reboot \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/platform_wait b/device/mellanox/x86_64-nvidia_sn2201-r0/platform_wait new file mode 120000 index 0000000000..4b30bd4298 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/platform_wait @@ -0,0 +1 @@ +../x86_64-mlnx_msn2700-r0/platform_wait \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/eeprom.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/eeprom.py new file mode 120000 index 0000000000..b4e2a6a616 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/eeprom.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/eeprom.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/fanutil.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/fanutil.py new file mode 120000 index 0000000000..82ea06ef91 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/fanutil.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/fanutil.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/psuutil.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/psuutil.py new file mode 120000 index 0000000000..9f724238a8 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/psuutil.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/psuutil.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfplpmget.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfplpmget.py new file mode 120000 index 0000000000..2e84f435ab --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfplpmget.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/sfplpmget.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfplpmset.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfplpmset.py new file mode 120000 index 0000000000..6a88bac304 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfplpmset.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/sfplpmset.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfpreset.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfpreset.py new file mode 120000 index 0000000000..fef2063e34 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfpreset.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/sfpreset.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfputil.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfputil.py new file mode 120000 index 0000000000..45909b880f --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/sfputil.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/sfputil.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/thermalutil.py b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/thermalutil.py new file mode 120000 index 0000000000..cef21ffacc --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/plugins/thermalutil.py @@ -0,0 +1 @@ +../../x86_64-mlnx_msn2700-r0/plugins/thermalutil.py \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/pmon_daemon_control.json b/device/mellanox/x86_64-nvidia_sn2201-r0/pmon_daemon_control.json new file mode 120000 index 0000000000..435a2ce7c0 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/pmon_daemon_control.json @@ -0,0 +1 @@ +../x86_64-mlnx_msn2700-r0/pmon_daemon_control.json \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/sensors.conf b/device/mellanox/x86_64-nvidia_sn2201-r0/sensors.conf new file mode 100644 index 0000000000..176502c473 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/sensors.conf @@ -0,0 +1,47 @@ +################################################################################ +# Copyright (c) 2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# +# Platform specific sensors config for SN2201 +################################################################################ + +# Fan Controller emc2305. +bus "i2c-7" "i2c-1-mux (chan_id 5)" + chip "emc2305-i2c-7-4d" + ignore fan5 + +# Temperature sensors +chip "coretemp-isa-0000" + label temp8 "Core 0" + label temp14 "Core 1" + +bus "i2c-2" "i2c-1-mux (chan_id 0)" + chip "lm75-i2c-*-4a" + label temp1 "Ambient Switch Board Temp" + +bus "i2c-2" "i2c-1-mux (chan_id 0)" + chip "lm75-i2c-*-4b" + label temp1 "Ambient Port side Temp" + +bus "i2c-7" "i2c-1-mux (chan_id 5)" + chip "lm75-i2c-*-49" + label temp1 "Ambient Fan side Temp" + +bus "i2c-8" "i2c-1-mux (chan_id 6)" + chip "lm75-i2c-*-4f" + label temp1 "Ambient CPU Board Temp" + +# Power controllers +bus "i2c-9" "i2c-1-mux (chan_id 7)" + chip "pmbus-i2c-*-40" + ignore curr3 + ignore in3 + ignore power3 + +bus "i2c-2" "i2c-1-mux (chan_id 0)" + chip "ads1015-i2c-*-49" + ignore in1 + ignore in2 + ignore in4 + ignore in5 + ignore in6 + ignore in7 diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/system_health_monitoring_config.json b/device/mellanox/x86_64-nvidia_sn2201-r0/system_health_monitoring_config.json new file mode 120000 index 0000000000..98df66c27c --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/system_health_monitoring_config.json @@ -0,0 +1 @@ +../x86_64-mlnx_msn2700-r0/system_health_monitoring_config.json \ No newline at end of file diff --git a/device/mellanox/x86_64-nvidia_sn2201-r0/thermal_policy.json b/device/mellanox/x86_64-nvidia_sn2201-r0/thermal_policy.json new file mode 120000 index 0000000000..5a25cd87f7 --- /dev/null +++ b/device/mellanox/x86_64-nvidia_sn2201-r0/thermal_policy.json @@ -0,0 +1 @@ +../x86_64-mlnx_msn2700-r0/thermal_policy.json \ No newline at end of file diff --git a/platform/mellanox/asic_table.j2 b/platform/mellanox/asic_table.j2 index 78f8aec07f..1d28b37186 100644 --- a/platform/mellanox/asic_table.j2 +++ b/platform/mellanox/asic_table.j2 @@ -40,6 +40,7 @@ 'x86_64-mlnx_msn4700-r0':'MELLANOX-SPECTRUM-3', 'x86_64-mlnx_msn4600c-r0':'MELLANOX-SPECTRUM-3', 'x86_64-mlnx_msn4600-r0':'MELLANOX-SPECTRUM-3', + 'x86_64-nvidia_sn2201-r0':'MELLANOX-SPECTRUM', 'vs-platform':'vs' } %} diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py b/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py index 50dd6cef53..6a712af68f 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/chassis.py @@ -63,7 +63,6 @@ REBOOT_CAUSE_FILE_LENGTH = 1 # Global logger class instance logger = Logger() - class Chassis(ChassisBase): """Platform-specific Chassis class""" diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/device_data.py b/platform/mellanox/mlnx-platform-api/sonic_platform/device_data.py index bebd97f810..962901a612 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/device_data.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/device_data.py @@ -153,6 +153,13 @@ DEVICE_DATA = { 'sfp': { 'max_port_per_line_card': 16 } + }, + 'x86_64-nvidia_sn2201-r0': { + 'thermal': { + "capability": { + "comex_amb": False + } + } } } diff --git a/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py b/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py index 56348998ac..a0d392d4b6 100644 --- a/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py +++ b/platform/mellanox/mlnx-platform-api/sonic_platform/thermal.py @@ -109,6 +109,14 @@ THERMAL_NAMING_RULE = { "high_threshold": "mlxsw-gearbox{}/temp_trip_hot", "high_critical_threshold": "mlxsw-gearbox{}/temp_trip_crit", "type": "indexable" + }, + { + "name": "Ambient CPU Board Temp", + "temperature": "cpu_amb" + }, + { + "name": "Ambient Switch Board Temp", + "temperature": "swb_amb" } ], 'linecard thermals': {