diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/fani.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/fani.c
index 852142e4..b4e9ef6d 100644
--- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/fani.c
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/fani.c
@@ -88,6 +88,37 @@ onlp_fan_info_t finfo[] = {
MAKE_FAN_INFO_NODE_ON_PSU(2,1)
};
+static fan_path_T fan_path_c[] = /* must map with onlp_fan_id */
+{
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_RESERVED),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_1_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_2_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_3_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_4_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_5_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_6_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_7_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_MAIN_BOARD(PROJECT_NAME, FAN_8_ON_MAIN_BOARD),
+ MAKE_FAN_PATH_ON_PSU(1 ,1),
+ MAKE_FAN_PATH_ON_PSU(2, 1)
+};
+
+/* Static fan information */
+onlp_fan_info_t finfo_c[] = {
+ { }, /* Not used */
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(1),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(2),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(3),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(4),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(5),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(6),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(7),
+ MAKE_FAN_INFO_NODE_ON_MAIN_BOARD(8),
+ MAKE_FAN_INFO_NODE_ON_PSU(1,1),
+ MAKE_FAN_INFO_NODE_ON_PSU(2,1)
+};
+
+
/*
* This function will be called prior to all of onlp_fani_* functions.
*/
@@ -95,10 +126,16 @@ int
onlp_fani_init(void)
{
mlnx_platform_info_t* mlnx_platform_info = get_platform_info();
+ if(!strcmp(mlnx_platform_info->onl_platform_name, "x86-64-mlnx_msn3700c-r0")) {
+ mlnx_platform_info->finfo = finfo_c;
+ mlnx_platform_info->fan_fnames = fan_path_c;
+ } else {
+ mlnx_platform_info->finfo = finfo;
+ mlnx_platform_info->fan_fnames = fan_path;
+ }
+
mlnx_platform_info->min_fan_speed = min_fan_speed;
mlnx_platform_info->max_fan_speed = max_fan_speed;
- mlnx_platform_info->finfo = finfo;
- mlnx_platform_info->fan_fnames = fan_path;
mlnx_platform_info->fan_type = FAN_TYPE_NO_EEPROM;
mlnx_platform_info->fan_per_module = 2;
mlnx_platform_info->first_psu_fan_id = FIRST_PSU_FAN_ID;
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/ledi.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/ledi.c
index 2e4224dd..e95ecef2 100644
--- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/ledi.c
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/ledi.c
@@ -101,6 +101,61 @@ static onlp_led_info_t linfo[] =
},
};
+static char* file_names_c[] = /* must map with onlp_led_id */
+{
+ "reserved",
+ "status",
+ "fan1",
+ "fan2",
+ "fan3",
+ "fan4",
+ "psu",
+};
+
+/*
+ * Get the information for the given LED OID.
+ */
+static onlp_led_info_t linfo_c[] =
+{
+ { }, /* Not used */
+ {
+ { ONLP_LED_ID_CREATE(LED_SYSTEM), "Chassis LED 1 (SYSTEM LED)", 0 },
+ ONLP_LED_STATUS_PRESENT,
+ ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING |
+ ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_AUTO,
+ },
+ {
+ { ONLP_LED_ID_CREATE(LED_FAN1), "Chassis LED 2 (FAN1 (1-2) )", 0 },
+ ONLP_LED_STATUS_PRESENT,
+ ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING |
+ ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_AUTO,
+ },
+ {
+ { ONLP_LED_ID_CREATE(LED_FAN2), "Chassis LED 3 (FAN2 (3-4) )", 0 },
+ ONLP_LED_STATUS_PRESENT,
+ ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING |
+ ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_AUTO,
+ },
+ {
+ { ONLP_LED_ID_CREATE(LED_FAN3), "Chassis LED 4 (FAN3 (5-6) )", 0 },
+ ONLP_LED_STATUS_PRESENT,
+ ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING |
+ ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_AUTO,
+ },
+ {
+ { ONLP_LED_ID_CREATE(LED_FAN4), "Chassis LED 5 (FAN5 (7-8) )", 0 },
+ ONLP_LED_STATUS_PRESENT,
+ ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING |
+ ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_AUTO,
+ },
+ {
+ { ONLP_LED_ID_CREATE(LED_PSU_T3), "Chassis LED 6 (PSU LED)", 0 },
+ ONLP_LED_STATUS_PRESENT,
+ ONLP_LED_CAPS_ON_OFF | ONLP_LED_CAPS_GREEN | ONLP_LED_CAPS_GREEN_BLINKING |
+ ONLP_LED_CAPS_ORANGE | ONLP_LED_CAPS_ORANGE_BLINKING | ONLP_LED_CAPS_AUTO,
+ },
+};
+
/*
* This function will be called prior to any other onlp_ledi_* functions.
*/
@@ -111,7 +166,14 @@ onlp_ledi_init(void)
* ONLPD calls it too early before all BSP insfrastructure is set
*/
mlnx_platform_info_t* mlnx_platform_info = get_platform_info();
- mlnx_platform_info->linfo = linfo;
- mlnx_platform_info->led_fnames = file_names;
+
+ if(!strcmp(mlnx_platform_info->onl_platform_name, "x86-64-mlnx_msn3700c-r0")) {
+ mlnx_platform_info->linfo = linfo_c;
+ mlnx_platform_info->led_fnames = file_names_c;
+ } else {
+ mlnx_platform_info->linfo = linfo;
+ mlnx_platform_info->led_fnames = file_names;
+ }
+
return ONLP_STATUS_OK;
}
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/platform_lib.h b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/platform_lib.h
index 581dfa21..82955499 100644
--- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/platform_lib.h
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/platform_lib.h
@@ -28,12 +28,20 @@
#include "x86_64_mlnx_msn3700_log.h"
#define CHASSIS_PSU_COUNT 2
+#define CPLD_COUNT 3
+#define SFP_PORT_COUNT 32
+
#define CHASSIS_TOTAL_FAN_COUNT 14
#define CHASSIS_TOTAL_THERMAL_COUNT 10
#define CHASSIS_FAN_COUNT (CHASSIS_TOTAL_FAN_COUNT - CHASSIS_PSU_COUNT)
#define CHASSIS_THERMAL_COUNT (CHASSIS_TOTAL_THERMAL_COUNT - CHASSIS_PSU_COUNT)
-#define CPLD_COUNT 3
-#define SFP_PORT_COUNT 32
#define CHASSIS_LED_COUNT 8
+#define CHASSIS_C_TOTAL_FAN_COUNT 10
+#define CHASSIS_C_TOTAL_THERMAL_COUNT 8
+#define CHASSIS_C_FAN_COUNT (CHASSIS_C_TOTAL_FAN_COUNT - CHASSIS_PSU_COUNT)
+#define CHASSIS_C_THERMAL_COUNT (CHASSIS_C_TOTAL_THERMAL_COUNT - CHASSIS_PSU_COUNT)
+#define CHASSIS_C_LED_COUNT 6
+
+
#endif /* __PLATFORM_LIB_H__ */
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/sysi.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/sysi.c
index 8de5dcad..7b069527 100644
--- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/sysi.c
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/sysi.c
@@ -37,16 +37,29 @@
#include "x86_64_mlnx_msn3700_int.h"
#include "x86_64_mlnx_msn3700_log.h"
-#define ONL_PLATFORM_NAME "x86-64-mlnx-msn3700-r0"
+static const char* __ONL_PLATFORM_NAME = NULL;
int mc_get_platform_info(mlnx_platform_info_t* mlnx_platform)
{
- strncpy(mlnx_platform->onl_platform_name, ONL_PLATFORM_NAME, PLATFORM_NAME_MAX_LEN);
+ if (!__ONL_PLATFORM_NAME) {
+ strncpy(mlnx_platform->onl_platform_name, "x86-64-mlnx-msn3700-all", PLATFORM_NAME_MAX_LEN);
+ }
+ else {
+ strncpy(mlnx_platform->onl_platform_name, __ONL_PLATFORM_NAME, PLATFORM_NAME_MAX_LEN);
+ }
+
+ if (!strcmp(mlnx_platform->onl_platform_name, "x86-64-mlnx_msn3700c-r0")) {
+ mlnx_platform->led_num = CHASSIS_C_LED_COUNT;
+ mlnx_platform->fan_num = CHASSIS_C_FAN_COUNT;
+ mlnx_platform->thermal_num = CHASSIS_C_THERMAL_COUNT;
+ } else {
+ mlnx_platform->led_num = CHASSIS_LED_COUNT;
+ mlnx_platform->fan_num = CHASSIS_FAN_COUNT;
+ mlnx_platform->thermal_num = CHASSIS_THERMAL_COUNT;
+ }
+
mlnx_platform->sfp_num = SFP_PORT_COUNT;
- mlnx_platform->led_num = CHASSIS_LED_COUNT;
mlnx_platform->psu_num = CHASSIS_PSU_COUNT;
- mlnx_platform->fan_num = CHASSIS_FAN_COUNT;
- mlnx_platform->thermal_num = CHASSIS_THERMAL_COUNT;
mlnx_platform->cpld_num = CPLD_COUNT;
mlnx_platform->psu_fixed = false;
mlnx_platform->fan_fixed = false;
@@ -56,6 +69,28 @@ int mc_get_platform_info(mlnx_platform_info_t* mlnx_platform)
return ONLP_STATUS_OK;
}
+int
+onlp_sysi_platform_set(const char* platform)
+{
+ mlnx_platform_info_t* mlnx_platform;
+
+ if(!strcmp(platform, "x86-64-mlnx-msn3700-r0")) {
+ __ONL_PLATFORM_NAME = "x86-64-mlnx_msn3700-r0";
+ mlnx_platform = get_platform_info();
+ mc_get_platform_info(mlnx_platform);
+ return ONLP_STATUS_OK;
+ } else if(!strcmp(platform, "x86-64-mlnx-msn3700c-r0")) {
+ __ONL_PLATFORM_NAME = "x86-64-mlnx_msn3700c-r0";
+ mlnx_platform = get_platform_info();
+ mc_get_platform_info(mlnx_platform);
+ return ONLP_STATUS_OK;
+ } else if(!strcmp(platform, "x86-64-mlnx-msn3700-all")) {
+ __ONL_PLATFORM_NAME = "x86-64-mlnx-msn3700-all";
+ return ONLP_STATUS_OK;
+ }
+ return ONLP_STATUS_E_UNSUPPORTED;
+}
+
int
onlp_sysi_init(void)
{
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/thermali.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/thermali.c
index 880b498c..a41b9bd7 100644
--- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/thermali.c
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700/onlp/builds/src/module/src/thermali.c
@@ -106,6 +106,56 @@ static onlp_thermal_info_t tinfo[] = {
}
};
+static char* thermal_fnames_c[] = /* must map with onlp_thermal_id */
+{
+ "reserved",
+ "cpu_core0",
+ "cpu_core1",
+ "cpu_pack",
+ "asic",
+ "board_amb",
+ "port_amb",
+ "psu1",
+ "psu2"
+};
+
+/* Static values */
+static onlp_thermal_info_t tinfo_c[] = {
+ { }, /* Not used */
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_CPU_CORE_0), "CPU Core 0", 0},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_ALL, 0, CPU_THERMAL_THRESHOLD_INIT_DEFAULTS
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_CPU_CORE_1), "CPU Core 1", 0},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_ALL, 0, CPU_THERMAL_THRESHOLD_INIT_DEFAULTS
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_CPU_PACK), "CPU pack", 0},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_ALL, 0, CPU_THERMAL_THRESHOLD_INIT_DEFAULTS
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_ASIC), "Asic Thermal Sensor", 0},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_ALL, 0, ASIC_THERMAL_THRESHOLD_INIT_DEFAULTS
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_BOARD_AMB), "Board AMB Thermal Sensor", 0},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_GET_TEMPERATURE, 0, {0,0,0}
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_PORT), "Port AMB Thermal Sensor", 0},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_GET_TEMPERATURE, 0, {0,0,0}
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_ON_PSU1), "PSU-1 Thermal Sensor 1", ONLP_PSU_ID_CREATE(PSU1_ID)},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_GET_TEMPERATURE, 0, {0,0,0}
+ },
+ { { ONLP_THERMAL_ID_CREATE(THERMAL_ON_PSU2), "PSU-2 Thermal Sensor 1", ONLP_PSU_ID_CREATE(PSU2_ID)},
+ ONLP_THERMAL_STATUS_PRESENT,
+ ONLP_THERMAL_CAPS_GET_TEMPERATURE, 0, {0,0,0}
+ }
+};
+
/*
* This will be called to intiialize the thermali subsystem.
*/
@@ -113,7 +163,13 @@ int
onlp_thermali_init(void)
{
mlnx_platform_info_t* mlnx_platform_info = get_platform_info();
- mlnx_platform_info->tinfo=tinfo;
- mlnx_platform_info->thermal_fnames=thermal_fnames;
+ if(!strcmp(mlnx_platform_info->onl_platform_name, "x86-64-mlnx_msn3700c-r0")) {
+ mlnx_platform_info->tinfo=tinfo_c;
+ mlnx_platform_info->thermal_fnames=thermal_fnames_c;
+ } else {
+ mlnx_platform_info->tinfo=tinfo;
+ mlnx_platform_info->thermal_fnames=thermal_fnames;
+ }
+
return ONLP_STATUS_OK;
}
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/.gitignore b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/.gitignore
new file mode 100644
index 00000000..3edba0a7
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/.gitignore
@@ -0,0 +1,3 @@
+*x86-64*.mk
+*x86_64*.mk
+onlpdump.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/Makefile
new file mode 100644
index 00000000..dc1e7b86
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/Makefile
@@ -0,0 +1 @@
+include $(ONL)/make/pkg.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/modules/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/modules/Makefile
new file mode 100644
index 00000000..003238cf
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/modules/Makefile
@@ -0,0 +1 @@
+include $(ONL)/make/pkg.mk
\ No newline at end of file
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/modules/PKG.yml b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/modules/PKG.yml
new file mode 100644
index 00000000..eb719f74
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/modules/PKG.yml
@@ -0,0 +1 @@
+!include $ONL_TEMPLATES/no-platform-modules.yml ARCH=amd64 VENDOR=mellanox BASENAME=x86-64-mlnx-msn3700c
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/Makefile
new file mode 100644
index 00000000..dc1e7b86
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/Makefile
@@ -0,0 +1 @@
+include $(ONL)/make/pkg.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/PKG.yml b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/PKG.yml
new file mode 100644
index 00000000..06df7f67
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/PKG.yml
@@ -0,0 +1 @@
+!include $ONL_TEMPLATES/onlp-platform-any.yml PLATFORM=x86-64-mlnx-msn3700c ARCH=amd64 TOOLCHAIN=x86_64-linux-gnu
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/Makefile
new file mode 100644
index 00000000..e7437cb2
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/Makefile
@@ -0,0 +1,2 @@
+FILTER=src
+include $(ONL)/make/subdirs.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/lib/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/lib/Makefile
new file mode 100644
index 00000000..2de46808
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/lib/Makefile
@@ -0,0 +1,45 @@
+############################################################
+#
+#
+# Copyright 2014 BigSwitch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.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.eclipse.org/legal/epl-v10.html
+#
+# 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.
+#
+#
+############################################################
+#
+#
+############################################################
+include $(ONL)/make/config.amd64.mk
+
+MODULE := libonlp-x86-64-mlnx-msn3700c
+include $(BUILDER)/standardinit.mk
+
+DEPENDMODULES := AIM IOF mlnx_common x86_64_mlnx_msn3700 onlplib
+DEPENDMODULE_HEADERS := sff
+
+include $(BUILDER)/dependmodules.mk
+
+SHAREDLIB := libonlp-x86-64-mlnx-msn3700c.so
+$(SHAREDLIB)_TARGETS := $(ALL_TARGETS)
+include $(BUILDER)/so.mk
+.DEFAULT_GOAL := $(SHAREDLIB)
+
+GLOBAL_CFLAGS += -I$(onlp_BASEDIR)/module/inc
+GLOBAL_CFLAGS += -I$(mlnx_common_BASEDIR)/module/inc
+GLOBAL_CFLAGS += -DAIM_CONFIG_INCLUDE_MODULES_INIT=1
+GLOBAL_CFLAGS += -fPIC
+GLOBAL_LINK_LIBS += -lpthread
+
+include $(BUILDER)/targets.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/onlpdump/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/onlpdump/Makefile
new file mode 100644
index 00000000..35117643
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/onlp/builds/onlpdump/Makefile
@@ -0,0 +1,46 @@
+############################################################
+#
+#
+# Copyright 2014 BigSwitch Networks, Inc.
+#
+# Licensed under the Eclipse Public License, Version 1.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.eclipse.org/legal/epl-v10.html
+#
+# 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.
+#
+#
+############################################################
+#
+#
+#
+############################################################
+include $(ONL)/make/config.amd64.mk
+
+.DEFAULT_GOAL := onlpdump
+
+MODULE := onlpdump
+include $(BUILDER)/standardinit.mk
+
+DEPENDMODULES := AIM IOF onlp mlnx_common x86_64_mlnx_msn3700 onlplib onlp_platform_defaults sff cjson cjson_util timer_wheel OS
+
+include $(BUILDER)/dependmodules.mk
+
+BINARY := onlpdump
+$(BINARY)_LIBRARIES := $(LIBRARY_TARGETS)
+include $(BUILDER)/bin.mk
+
+GLOBAL_CFLAGS += -DAIM_CONFIG_AIM_MAIN_FUNCTION=onlpdump_main
+GLOBAL_CFLAGS += -DAIM_CONFIG_INCLUDE_MODULES_INIT=1
+GLOBAL_CFLAGS += -DAIM_CONFIG_INCLUDE_MAIN=1
+GLOBAL_CFLAGS += -I$(mlnx_common_BASEDIR)/module/inc
+GLOBAL_LINK_LIBS += -lpthread -lm
+
+include $(BUILDER)/targets.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/Makefile
new file mode 100644
index 00000000..dc1e7b86
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/Makefile
@@ -0,0 +1 @@
+include $(ONL)/make/pkg.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/Makefile b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/Makefile
new file mode 100644
index 00000000..dc1e7b86
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/Makefile
@@ -0,0 +1 @@
+include $(ONL)/make/pkg.mk
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/PKG.yml b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/PKG.yml
new file mode 100644
index 00000000..34cdbabf
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/PKG.yml
@@ -0,0 +1 @@
+!include $ONL_TEMPLATES/platform-config-platform.yml ARCH=amd64 VENDOR=mellanox BASENAME=x86-64-mlnx-msn3700c REVISION=r0
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/src/lib/x86-64-mlnx-msn3700c-r0.yml b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/src/lib/x86-64-mlnx-msn3700c-r0.yml
new file mode 100755
index 00000000..cdf6d225
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/src/lib/x86-64-mlnx-msn3700c-r0.yml
@@ -0,0 +1,36 @@
+---
+
+######################################################################
+#
+# platform-config for Mellanox 3700C
+#
+######################################################################
+
+x86-64-mlnx-msn3700c-r0:
+
+ grub:
+
+ serial: >-
+ --unit=0
+ --speed=115200
+ --word=8
+ --parity=0
+ --stop=1
+
+ kernel:
+ <<: *kernel-4-9
+
+ args: >-
+ nopat
+ console=ttyS0,115200n8
+ rd_NO_MD
+ rd_NO_LUKS
+ acpi_enforce_resources=lax
+ acpi=noirq
+ i2c-ismt.enable=0
+
+ ##network
+ ## interfaces:
+ ## ma1:
+ ## name: ~
+ ## syspath: pci0000:00/0000:00:14.0
diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/src/python/x86_64_mlnx_msn3700c_r0/__init__.py b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/src/python/x86_64_mlnx_msn3700c_r0/__init__.py
new file mode 100644
index 00000000..a26cd025
--- /dev/null
+++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn3700c/platform-config/r0/src/python/x86_64_mlnx_msn3700c_r0/__init__.py
@@ -0,0 +1,17 @@
+from onl.platform.base import *
+from onl.platform.mellanox import *
+
+class OnlPlatform_x86_64_mlnx_msn3700c_r0(OnlPlatformMellanox,
+ OnlPlatformPortConfig_32x40):
+ PLATFORM='x86-64-mlnx-msn3700c-r0'
+ MODEL="MSN3700C"
+ SYS_OBJECT_ID=".3700.2"
+
+ def baseconfig(self):
+ # load modules
+ import os
+ # necessary if there are issues with the install
+ # os.system("/usr/bin/apt-get install")
+ os.system("/etc/mlnx/mlnx-hw-management start")
+ self.syseeprom_export();
+ return True