From 4e9bb102a23e4fe38fd2c3a7037885b2a7d7f647 Mon Sep 17 00:00:00 2001 From: Zi Zhou Date: Wed, 15 Mar 2017 16:38:14 -0700 Subject: [PATCH] merge onlp_sfp_dom_read() into onlp_sfp_eeprom_read() --- .../src/onlp/module/inc/onlp/platformi/sfpi.h | 11 +---- .../any/onlp/src/onlp/module/inc/onlp/sfp.h | 21 +++------ .../any/onlp/src/onlp/module/src/onlp_main.c | 2 +- .../base/any/onlp/src/onlp/module/src/sfp.c | 25 ++-------- .../onlp_platform_defaults/module/src/sfpi.c | 3 +- .../any/onlp/src/onlpie/module/src/sfpi.c | 2 +- .../any/oom-shim/src/module/src/oom_shim.c | 4 +- .../src/arm_accton_as4610/module/src/sfpi.c | 25 ++++------ .../onlp/builds/src/module/src/sfpi.c | 19 ++------ .../onlp/builds/src/module/src/sfpi.c | 14 ++---- .../onlp/builds/src/module/src/sfpi.c | 40 +++++----------- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 25 ++++------ .../onlp/builds/src/module/src/sfpi.c | 25 ++++------ .../onlp/builds/src/module/src/sfpi.c | 25 ++++------ .../onlp/builds/src/module/src/sfpi.c | 25 ++++------ .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 25 ++++------ .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 16 ++++--- .../module/src/x86_64_cel_redstone_xp_int.h | 2 - .../src/x86_64_kvm_x86_64/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 2 +- .../arm64_nxp_ls2080ardb/module/src/sfpi.c | 2 +- .../src/arm_qemu_armv7a/module/src/sfpi.c | 2 +- .../onlp/builds/src/module/src/sfpi.c | 15 +++--- .../onlp/builds/src/module/src/sfpi.c | 16 +++---- .../module/src/sfpi.c | 17 +++---- .../module/src/sfpi.c | 17 +++---- .../module/src/sfpi.c | 47 +++++++++---------- 35 files changed, 165 insertions(+), 280 deletions(-) diff --git a/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/sfpi.h b/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/sfpi.h index 3053b896..6387eaf9 100644 --- a/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/sfpi.h +++ b/packages/base/any/onlp/src/onlp/module/inc/onlp/platformi/sfpi.h @@ -67,9 +67,10 @@ int onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst); /** * @brief Read the SFP EEPROM. * @param port The port number. + * @param dev_addr EEPROM device address. * @param data Receives the SFP data. */ -int onlp_sfpi_eeprom_read(int port, uint8_t data[256]); +int onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]); /** * @brief Read a byte from an address on the given SFP port's bus. @@ -98,14 +99,6 @@ int onlp_sfpi_dev_readw(int port, uint8_t devaddr, uint8_t addr); */ int onlp_sfpi_dev_writew(int port, uint8_t devaddr, uint8_t addr, uint16_t value); - -/** - * @brief Read the SFP DOM EEPROM. - * @param port The port number. - * @param data Receives the SFP data. - */ -int onlp_sfpi_dom_read(int port, uint8_t data[256]); - /** * @brief Perform any actions required after an SFP is inserted. * @param port The port number. diff --git a/packages/base/any/onlp/src/onlp/module/inc/onlp/sfp.h b/packages/base/any/onlp/src/onlp/module/inc/onlp/sfp.h index 173a38ae..47bc1f43 100644 --- a/packages/base/any/onlp/src/onlp/module/inc/onlp/sfp.h +++ b/packages/base/any/onlp/src/onlp/module/inc/onlp/sfp.h @@ -31,6 +31,9 @@ #include #include +#define SFP_IDPROM_ADDR 0x50 +#define SFP_DOM_ADDR 0x51 + /* */ /** onlp_sfp_control */ typedef enum onlp_sfp_control_e { @@ -108,27 +111,15 @@ int onlp_sfp_is_present(int port); int onlp_sfp_presence_bitmap_get(onlp_sfp_bitmap_t* dst); /** - * @brief Read IEEE standard EEPROM data from the given port. + * @brief Read SFP EEPROM data from the given port. * @param port The SFP Port + * @param dev_addr EEPROM device address * @param rv Receives a buffer containing the EEPROM data. * @notes The buffer must be freed after use. * @returns The size of the eeprom data, if successful * @returns -1 on error. */ -int onlp_sfp_eeprom_read(int port, uint8_t** rv); - - -/** - * @brief Read the DOM data from the given port. - * @param port The SFP Port - * @param rv Receives a buffer containing the DOM data. - * @notes The buffer must be freed after use. - * @returns The size of the eeprom data, if successful - * @returns -1 on error. - * @note This should only be called if the SFP - * has advertised DOM support. - */ -int onlp_sfp_dom_read(int port, uint8_t** rv); +int onlp_sfp_eeprom_read(int port, int dev_addr, uint8_t** rv); /** * @brief Deinitialize the SFP subsystem. diff --git a/packages/base/any/onlp/src/onlp/module/src/onlp_main.c b/packages/base/any/onlp/src/onlp/module/src/onlp_main.c index 6dd5ccfe..2fa3cff0 100644 --- a/packages/base/any/onlp/src/onlp/module/src/onlp_main.c +++ b/packages/base/any/onlp/src/onlp/module/src/onlp_main.c @@ -75,7 +75,7 @@ show_inventory__(aim_pvs_t* pvs, int database) continue; } - rv = onlp_sfp_eeprom_read(port, &data); + rv = onlp_sfp_eeprom_read(port, SFP_IDPROM_ADDR, &data); if(rv < 0) { aim_printf(pvs, "%4d Error %{onlp_status}\n", port, rv); diff --git a/packages/base/any/onlp/src/onlp/module/src/sfp.c b/packages/base/any/onlp/src/onlp/module/src/sfp.c index de7c64ff..62b738b0 100644 --- a/packages/base/any/onlp/src/onlp/module/src/sfp.c +++ b/packages/base/any/onlp/src/onlp/module/src/sfp.c @@ -139,38 +139,21 @@ onlp_sfp_port_valid(int port) } static int -onlp_sfp_eeprom_read_locked__(int port, uint8_t** datap) +onlp_sfp_eeprom_read_locked__(int port, int dev_addr, uint8_t** datap) { int rv; uint8_t* data; ONLP_SFP_PORT_VALIDATE_AND_MAP(port); data = aim_zmalloc(256); - if((rv = onlp_sfpi_eeprom_read(port, data)) < 0) { + if((rv = onlp_sfpi_eeprom_read(port, dev_addr, data)) < 0) { aim_free(data); data = NULL; } *datap = data; return rv; } -ONLP_LOCKED_API2(onlp_sfp_eeprom_read, int, port, uint8_t**, rv); - -static int -onlp_sfp_dom_read_locked__(int port, uint8_t** datap) -{ - int rv; - uint8_t* data; - ONLP_SFP_PORT_VALIDATE_AND_MAP(port); - - data = aim_zmalloc(256); - if((rv = onlp_sfpi_dom_read(port, data)) < 0) { - aim_free(data); - data = NULL; - } - *datap = data; - return rv; -} -ONLP_LOCKED_API2(onlp_sfp_dom_read, int, port, uint8_t**, rv); +ONLP_LOCKED_API3(onlp_sfp_eeprom_read, int, port, int, dev_addr, uint8_t**, rv); void onlp_sfp_dump(aim_pvs_t* pvs) @@ -228,7 +211,7 @@ onlp_sfp_dump(aim_pvs_t* pvs) } if(rv == 1) { uint8_t* idprom = NULL; - rv = onlp_sfp_eeprom_read(p, &idprom); + rv = onlp_sfp_eeprom_read(p, SFP_IDPROM_ADDR, &idprom); if(rv < 0) { aim_printf(pvs, "Error reading eeprom: %{onlp_status}\n"); } diff --git a/packages/base/any/onlp/src/onlp_platform_defaults/module/src/sfpi.c b/packages/base/any/onlp/src/onlp_platform_defaults/module/src/sfpi.c index 97d569c6..07e41feb 100644 --- a/packages/base/any/onlp/src/onlp_platform_defaults/module/src/sfpi.c +++ b/packages/base/any/onlp/src/onlp_platform_defaults/module/src/sfpi.c @@ -30,8 +30,7 @@ __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_bitmap_get(onlp_sfp_bitmap_t* bmap)); __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_is_present(int port)); __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst)); __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst)); -__ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_eeprom_read(int port, uint8_t data[256])); -__ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_dom_read(int port, uint8_t data[256])); +__ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256])); __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_post_insert(int port, sff_info_t* sff_info)); __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_port_map(int port, int* rport)); __ONLP_DEFAULTI_IMPLEMENTATION(onlp_sfpi_denit(void)); diff --git a/packages/base/any/onlp/src/onlpie/module/src/sfpi.c b/packages/base/any/onlp/src/onlpie/module/src/sfpi.c index fec0378e..4486a6c8 100644 --- a/packages/base/any/onlp/src/onlpie/module/src/sfpi.c +++ b/packages/base/any/onlp/src/onlpie/module/src/sfpi.c @@ -101,7 +101,7 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) * in the data buffer provided. */ int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { if(port == 17 || port == 19) { /* These ports have SFPs inserted in this example */ diff --git a/packages/base/any/oom-shim/src/module/src/oom_shim.c b/packages/base/any/oom-shim/src/module/src/oom_shim.c index b2d5be61..a71fa364 100644 --- a/packages/base/any/oom-shim/src/module/src/oom_shim.c +++ b/packages/base/any/oom-shim/src/module/src/oom_shim.c @@ -101,9 +101,9 @@ int oom_get_memory_sff(oom_port_t* port, int address, int page, int offset, int **/ if (address == 0xa0) { - rv = onlp_sfp_eeprom_read(port_num, &idprom); + rv = onlp_sfp_eeprom_read(port_num, SFP_IDPROM_ADDR, &idprom); } else if (address == 0xa2) { - rv = onlp_sfp_dom_read(port_num, &idprom); + rv = onlp_sfp_eeprom_read(port_num, SFP_DOM_ADDR, &idprom); } else { aim_printf(&aim_pvs_stdout, "Error invalid address: 0x%02x\n", address); return -EINVAL; diff --git a/packages/platforms/accton/armel/arm-accton-as4610/src/arm_accton_as4610/module/src/sfpi.c b/packages/platforms/accton/armel/arm-accton-as4610/src/arm_accton_as4610/module/src/sfpi.c index 7199a31a..383e2261 100644 --- a/packages/platforms/accton/armel/arm-accton-as4610/src/arm_accton_as4610/module/src/sfpi.c +++ b/packages/platforms/accton/armel/arm-accton-as4610/src/arm_accton_as4610/module/src/sfpi.c @@ -210,9 +210,16 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - char* path = sfp_get_port_path(port, "sfp_eeprom"); + char* path; + + if (dev_addr == SFP_IDPROM_ADDR) { + path = sfp_get_port_path(port, "sfp_eeprom"); + } else if (dev_addr == SFP_DOM_ADDR) { + path = sfp_get_port_path_addr(port, 51, "sfp_eeprom"); + } else + return ONLP_STATUS_E_PARAM; /* * Read the SFP eeprom into data[] @@ -230,20 +237,6 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_OK; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - char* path = sfp_get_port_path_addr(port, 51, "sfp_eeprom"); - memset(data, 0, 256); - - if (deviceNodeReadBinary(path, (char*)data, 256, 256) != 0) { - AIM_LOG_INFO("Unable to read eeprom from port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - return ONLP_STATUS_OK; -} - int onlp_sfpi_control_set(int port, onlp_sfp_control_t control, int value) { diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/module/src/sfpi.c index 61ea9da8..5944663b 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/powerpc/powerpc-accton-as4600-54t/onlp/builds/src/module/src/sfpi.c @@ -47,9 +47,6 @@ #define CPLD_SFP_3_BIT_MASK 0x20 #define CPLD_SFP_4_BIT_MASK 0x10 -#define I2C_SLAVE_ADDRESS_SFP_EEPROM_50 0x50 -#define I2C_SLAVE_ADDRESS_SFP_EEPROM_51 0x51 - #define I2C_SLAVE_ADDR_PCA9548 0x70 #define PCA9548_PORT_0_BIT_MASK 0x01 @@ -206,20 +203,14 @@ onlp_sfpi_read_addr__(int port, int addr, unsigned char *data) } int -onlp_sfpi_eeprom_read(int port, unsigned char *data) +onlp_sfpi_eeprom_read(int port, int dev_addr, unsigned char *data) { - return onlp_sfpi_read_addr__(port, I2C_SLAVE_ADDRESS_SFP_EEPROM_50, - data); + if ((dev_addr == SFP_IDPROM_ADDR) || (dev_addr == SFP_DOM_ADDR)) { + return onlp_sfpi_read_addr__(port, dev_addr, data); + } + return ONLP_STATUS_E_PARAM; } -int -onlp_sfpi_dom_read(int port, unsigned char* data) -{ - return onlp_sfpi_read_addr__(port, I2C_SLAVE_ADDRESS_SFP_EEPROM_51, - data); -} - - /* * Manually enable or disable the given SFP. * diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/module/src/sfpi.c index 11573775..3725541d 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5610-52x/onlp/builds/src/module/src/sfpi.c @@ -693,18 +693,14 @@ sfpi_read_addr__(int port, int addr, uint8_t data[256]) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - return sfpi_read_addr__(port, SFP_IDPROM_ADDR, data); + if ((dev_addr == SFP_IDPROM_ADDR) || (dev_addr == SFP_DOM_ADDR)) { + return sfpi_read_addr__(port, dev_addr, data); + } + return ONLP_STATUS_E_PARAM; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - return sfpi_read_addr__(port, SFP_DOM_ADDR, data); -} - - int onlp_sfpi_enable_set(int port, int enable) { diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/module/src/sfpi.c index 0d320d4e..92d0056f 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/powerpc/powerpc-accton-as5710-54x/onlp/builds/src/module/src/sfpi.c @@ -280,8 +280,17 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { + char *eeprom_path; + + if (dev_addr == SFP_IDPROM_ADDR) { + eeprom_path = SFP_HWMON_NODE(sfp_eeprom); + } else if (dev_addr == SFP_DOM_ADDR) { + eeprom_path = SFP_HWMON_DOM_NODE(eeprom); + } else + return ONLP_STATUS_E_PARAM; + /* * Read the SFP eeprom into data[] * @@ -295,34 +304,7 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_E_INTERNAL; } - if (deviceNodeReadBinary(SFP_HWMON_NODE(sfp_eeprom), (char*)data, 256, 256) != 0) { - AIM_LOG_ERROR("Unable to read eeprom from port(%d)\r\n", port); - set_active_port(0); - return ONLP_STATUS_E_INTERNAL; - } - - set_active_port(0); - - return ONLP_STATUS_OK; -} - -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - /* - * Read the SFP DOM page into data[] - * - * Return MISSING if SFP is missing. - * Return OK if eeprom is read - */ - memset(data, 0, 256); - - if (set_active_port(port+1) != 0) { - AIM_LOG_ERROR("Unable to set active port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - if (deviceNodeReadBinary(SFP_HWMON_DOM_NODE(eeprom), (char*)data, 256, 256) != 0) { + if (deviceNodeReadBinary(eeprom_path, (char*)data, 256, 256) != 0) { AIM_LOG_ERROR("Unable to read eeprom from port(%d)\r\n", port); set_active_port(0); return ONLP_STATUS_E_INTERNAL; diff --git a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/module/src/sfpi.c index e5044f2d..140f6686 100644 --- a/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/powerpc/powerpc-accton-as6700-32x/onlp/builds/src/module/src/sfpi.c @@ -160,7 +160,7 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { /* * Read the SFP eeprom into data[] diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/module/src/sfpi.c index 141b8645..721dc3e9 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5512-54x/onlp/builds/src/module/src/sfpi.c @@ -220,9 +220,16 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - char* path = sfp_get_port_path(port, "sfp_eeprom"); + char* path; + + if (dev_addr == SFP_IDPROM_ADDR) { + path = sfp_get_port_path(port, "sfp_eeprom"); + } else if (dev_addr == SFP_DOM_ADDR) { + path = sfp_get_port_path_addr(port, 51, "sfp_eeprom"); + } else + return ONLP_STATUS_E_PARAM; /* * Read the SFP eeprom into data[] @@ -240,20 +247,6 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_OK; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - char* path = sfp_get_port_path_addr(port, 51, "sfp_eeprom"); - memset(data, 0, 256); - - if (deviceNodeReadBinary(path, (char*)data, 256, 256) != 0) { - AIM_LOG_INFO("Unable to read eeprom from port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - return ONLP_STATUS_OK; -} - int onlp_sfpi_control_set(int port, onlp_sfp_control_t control, int value) { diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/module/src/sfpi.c index 560f5762..f26c8a67 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5712-54x/onlp/builds/src/module/src/sfpi.c @@ -313,9 +313,16 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - char* path = as5712_54x_sfp_get_port_path(port, "sfp_eeprom"); + char* path; + + if (dev_addr == SFP_IDPROM_ADDR) { + path = as5712_54x_sfp_get_port_path(port, "sfp_eeprom"); + } else if (dev_addr == SFP_DOM_ADDR) { + path = as5712_54x_sfp_get_port_path_addr(port, 51, "sfp_eeprom"); + } else + return ONLP_STATUS_E_PARAM; /* * Read the SFP eeprom into data[] @@ -333,20 +340,6 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_OK; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - char* path = as5712_54x_sfp_get_port_path_addr(port, 51, "sfp_eeprom"); - memset(data, 0, 256); - - if (deviceNodeReadBinary(path, (char*)data, 256, 256) != 0) { - AIM_LOG_INFO("Unable to read eeprom from port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - return ONLP_STATUS_OK; -} - int onlp_sfpi_dev_readb(int port, uint8_t devaddr, uint8_t addr) { diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/module/src/sfpi.c index 8840ee26..54f980bd 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54t/onlp/builds/src/module/src/sfpi.c @@ -192,9 +192,16 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - char* path = as5812_54t_sfp_get_port_path(port, "sfp_eeprom"); + char* path; + + if (dev_addr == SFP_IDPROM_ADDR) { + path = as5812_54t_sfp_get_port_path(port, "sfp_eeprom"); + } else if (dev_addr == SFP_DOM_ADDR) { + path = as5812_54t_sfp_get_port_path_addr(port, 51, "sfp_eeprom"); + } else + return ONLP_STATUS_E_PARAM; /* * Read the SFP eeprom into data[] @@ -212,20 +219,6 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_OK; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - char* path = as5812_54t_sfp_get_port_path_addr(port, 51, "sfp_eeprom"); - memset(data, 0, 256); - - if (deviceNodeReadBinary(path, (char*)data, 256, 256) != 0) { - AIM_LOG_INFO("Unable to read eeprom from port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - return ONLP_STATUS_OK; -} - int onlp_sfpi_control_set(int port, onlp_sfp_control_t control, int value) { diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/module/src/sfpi.c index 6cfa29a9..42679c96 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as5812-54x/onlp/builds/src/module/src/sfpi.c @@ -313,9 +313,16 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - char* path = as5812_54x_sfp_get_port_path(port, "sfp_eeprom"); + char* path; + + if (dev_addr == SFP_IDPROM_ADDR) { + path = as5812_54x_sfp_get_port_path(port, "sfp_eeprom"); + } else if (dev_addr == SFP_DOM_ADDR) { + path = as5812_54x_sfp_get_port_path_addr(port, 51, "sfp_eeprom"); + } else + return ONLP_STATUS_E_PARAM; /* * Read the SFP eeprom into data[] @@ -333,20 +340,6 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_OK; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - char* path = as5812_54x_sfp_get_port_path_addr(port, 51, "sfp_eeprom"); - memset(data, 0, 256); - - if (deviceNodeReadBinary(path, (char*)data, 256, 256) != 0) { - AIM_LOG_INFO("Unable to read eeprom from port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - return ONLP_STATUS_OK; -} - int onlp_sfpi_dev_readb(int port, uint8_t devaddr, uint8_t addr) { diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/module/src/sfpi.c index 36f2b772..5dd99b6c 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as6712-32x/onlp/builds/src/module/src/sfpi.c @@ -161,7 +161,7 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = as6712_32x_sfp_get_port_path(port, "sfp_eeprom"); diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/module/src/sfpi.c index 10288992..9243d672 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as6812-32x/onlp/builds/src/module/src/sfpi.c @@ -151,7 +151,7 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = as6812_32x_sfp_get_port_path(port, "sfp_eeprom"); diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7312-54x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as7312-54x/onlp/builds/src/module/src/sfpi.c index 5f2ff1b9..10af25cf 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7312-54x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7312-54x/onlp/builds/src/module/src/sfpi.c @@ -195,9 +195,16 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { - char* path = sfp_get_port_path(port, "sfp_eeprom"); + char* path; + + if (dev_addr == SFP_IDPROM_ADDR) { + path = sfp_get_port_path(port, "sfp_eeprom"); + } else if (dev_addr == SFP_DOM_ADDR) { + path = sfp_get_port_path_addr(port, 51, "sfp_eeprom"); + } else + return ONLP_STATUS_E_PARAM; /* * Read the SFP eeprom into data[] @@ -215,20 +222,6 @@ onlp_sfpi_eeprom_read(int port, uint8_t data[256]) return ONLP_STATUS_OK; } -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - char* path = sfp_get_port_path_addr(port, 51, "sfp_eeprom"); - memset(data, 0, 256); - - if (onlp_file_read_binary(path, (char*)data, 256, 256) != 0) { - AIM_LOG_INFO("Unable to read eeprom from port(%d)\r\n", port); - return ONLP_STATUS_E_INTERNAL; - } - - return ONLP_STATUS_OK; -} - int onlp_sfpi_control_set(int port, onlp_sfp_control_t control, int value) { diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/module/src/sfpi.c index c478ecaa..50abfca9 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7512-32x/onlp/builds/src/module/src/sfpi.c @@ -161,7 +161,7 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = as7512_32x_sfp_get_port_path(port, "sfp_eeprom"); diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/module/src/sfpi.c index 6c7f381b..de16f319 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7712-32x/onlp/builds/src/module/src/sfpi.c @@ -165,7 +165,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = as7512_32x_sfp_get_port_path(port, "sfp_eeprom"); diff --git a/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/module/src/sfpi.c b/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/module/src/sfpi.c index b1fd2e53..93d2f26e 100644 --- a/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/accton/x86-64/x86-64-accton-as7716-32x/onlp/builds/src/module/src/sfpi.c @@ -171,7 +171,7 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = as7512_32x_sfp_get_port_path(port, "sfp_eeprom"); diff --git a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/sfpi.c b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/sfpi.c index f4764ed5..ffa33f71 100644 --- a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/sfpi.c @@ -116,9 +116,9 @@ _sfp_rx_los(int port) //return ONLP_STATUS_E_MISSING; if (port <= 48) { - _read_sfp(port, &byte, ALL_SFP_DIAG_I2C_ADDRESS, SFP_XFP_LOS_ADDR, SFP_XFP_LOS_SIZE); + _read_sfp(port, &byte, SFP_DOM_ADDR, SFP_XFP_LOS_ADDR, SFP_XFP_LOS_SIZE); } else if (port <= 54) { - _read_sfp(port, &byte, ALL_SFP_DIAG_I2C_ADDRESS, QSFP_LOS_ADDR, SFP_XFP_LOS_SIZE); + _read_sfp(port, &byte, SFP_DOM_ADDR, QSFP_LOS_ADDR, SFP_XFP_LOS_SIZE); } if (SFP_LOS_MASK == (byte & SFP_LOS_MASK)) @@ -143,9 +143,9 @@ _sfp_tx_fault(int port) return -1; if (port <= 48) { - _read_sfp(port, (uint8_t *)&option, ALL_SFP_DIAG_I2C_ADDRESS, SFP_OPTIONS_ADDR, SFP_OPTIONS_SIZE); + _read_sfp(port, (uint8_t *)&option, SFP_DOM_ADDR, SFP_OPTIONS_ADDR, SFP_OPTIONS_SIZE); } else if (port <= 54) { - _read_sfp(port, (uint8_t *)&option, ALL_SFP_DIAG_I2C_ADDRESS, QSFP_TX_FAULT_ADDR, SFP_OPTIONS_SIZE); + _read_sfp(port, (uint8_t *)&option, SFP_DOM_ADDR, QSFP_TX_FAULT_ADDR, SFP_OPTIONS_SIZE); } if (SFP_TX_FAULT_MASK & option) @@ -240,17 +240,21 @@ onlp_sfpi_port_map(int port, int* rport) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { if (port > CEL_REDSTONE_MAX_PORT) { return ONLP_STATUS_E_MISSING; } + if ((dev_addr != SFP_IDPROM_ADDR) && (dev_addr != SFP_DOM_ADDR)) { + return ONLP_STATUS_E_PARAM; + } + if (!_get_sfp_state(port)) return ONLP_STATUS_E_MISSING; memset(data, 0, 256); - if (_read_sfp(port, data, ALL_SFP_I2C_ADDRESS, 0, 256) == -1) + if (_read_sfp(port, data, dev_addr, 0, 256) == -1) return ONLP_STATUS_OK; return ONLP_STATUS_OK; diff --git a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/x86_64_cel_redstone_xp_int.h b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/x86_64_cel_redstone_xp_int.h index 27f57467..92199e6e 100644 --- a/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/x86_64_cel_redstone_xp_int.h +++ b/packages/platforms/celestica/x86-64/x86-64-cel-redstone-xp/onlp/builds/src/module/src/x86_64_cel_redstone_xp_int.h @@ -328,8 +328,6 @@ extern aim_map_si_t cpld5_reg_desc_map[]; /* */ #define CEL_REDSTONE_MAX_PORT 54 -#define ALL_SFP_I2C_ADDRESS (0xA0 >> 1) -#define ALL_SFP_DIAG_I2C_ADDRESS (0xA2 >> 1) #define SFP_XFP_LOS_ADDR 110 #define SFP_XFP_LOS_SIZE 1 #define QSFP_LOS_ADDR 3 diff --git a/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/module/src/sfpi.c b/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/module/src/sfpi.c index b752da0d..bb65a411 100644 --- a/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/module/src/sfpi.c +++ b/packages/platforms/kvm/x86-64/x86-64-kvm-x86-64/onlp/builds/src/x86_64_kvm_x86_64/module/src/sfpi.c @@ -61,7 +61,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) * in the data buffer provided. */ int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { return ONLP_STATUS_E_MISSING; } diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2100/onlp/builds/src/module/src/sfpi.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2100/onlp/builds/src/module/src/sfpi.c index 51fa0147..d92f3785 100644 --- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2100/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2100/onlp/builds/src/module/src/sfpi.c @@ -127,7 +127,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = msn2100_sfp_get_port_path(port, ""); diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2410/onlp/builds/src/module/src/sfpi.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2410/onlp/builds/src/module/src/sfpi.c index 7ee8262a..aedfe235 100644 --- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2410/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2410/onlp/builds/src/module/src/sfpi.c @@ -130,7 +130,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = msn2410_sfp_get_port_path(port, ""); diff --git a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2700/onlp/builds/src/module/src/sfpi.c b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2700/onlp/builds/src/module/src/sfpi.c index 4e9851f9..ef49ecc3 100644 --- a/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2700/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/mellanox/x86-64/x86-64-mlnx-msn2700/onlp/builds/src/module/src/sfpi.c @@ -130,7 +130,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { char* path = sn2700_sfp_get_port_path(port, ""); diff --git a/packages/platforms/nxp/arm64/arm64-nxp-ls2080ardb/onlp/builds/src/arm64_nxp_ls2080ardb/module/src/sfpi.c b/packages/platforms/nxp/arm64/arm64-nxp-ls2080ardb/onlp/builds/src/arm64_nxp_ls2080ardb/module/src/sfpi.c index 41a4e09f..609d3c35 100644 --- a/packages/platforms/nxp/arm64/arm64-nxp-ls2080ardb/onlp/builds/src/arm64_nxp_ls2080ardb/module/src/sfpi.c +++ b/packages/platforms/nxp/arm64/arm64-nxp-ls2080ardb/onlp/builds/src/arm64_nxp_ls2080ardb/module/src/sfpi.c @@ -61,7 +61,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) * in the data buffer provided. */ int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { return ONLP_STATUS_E_MISSING; } diff --git a/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/module/src/sfpi.c b/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/module/src/sfpi.c index b5e813d0..7d15862e 100644 --- a/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/module/src/sfpi.c +++ b/packages/platforms/qemu/arm/arm-qemu-armv7a/onlp/builds/src/arm_qemu_armv7a/module/src/sfpi.c @@ -61,7 +61,7 @@ onlp_sfpi_presence_bitmap_get(onlp_sfp_bitmap_t* dst) * in the data buffer provided. */ int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { return ONLP_STATUS_E_MISSING; } diff --git a/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/module/src/sfpi.c b/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/module/src/sfpi.c index aa277802..257a105a 100644 --- a/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/quanta/powerpc/powerpc-quanta-lb9/onlp/builds/src/module/src/sfpi.c @@ -137,15 +137,14 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); -} -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->dom, data); + if (dev_addr == SFP_IDPROM_ADDR) { + return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + } else if (dev_addr == SFP_DOM_ADDR) { + return onlplib_sfp_eeprom_read_file(sfp->dom, data); + } + return ONLP_STATUS_E_PARAM; } diff --git a/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/module/src/sfpi.c b/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/module/src/sfpi.c index 3127950c..bc9c3806 100644 --- a/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/module/src/sfpi.c +++ b/packages/platforms/quanta/powerpc/powerpc-quanta-ly2/onlp/builds/src/module/src/sfpi.c @@ -155,16 +155,14 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); -} -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->dom, data); + if (dev_addr == SFP_IDPROM_ADDR){ + return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + } else if (dev_addr == SFP_DOM_ADDR) { + return onlplib_sfp_eeprom_read_file(sfp->dom, data); + } + return ONLP_STATUS_E_PARAM; } - diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/module/src/sfpi.c b/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/module/src/sfpi.c index b2aa9dff..7d4a46c3 100755 --- a/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/module/src/sfpi.c +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly6-rangeley/onlp/builds/src/x86_64_quanta_ly6_rangeley/module/src/sfpi.c @@ -149,16 +149,13 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + if (dev_addr == SFP_IDPROM_ADDR) { + return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + } else if (dev_addr == SFP_DOM_ADDR) { + return onlplib_sfp_eeprom_read_file(sfp->dom, data); + } else + return ONLP_STATUS_E_PARAM; } - -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->dom, data); -} - diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/module/src/sfpi.c b/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/module/src/sfpi.c index 236f1f82..b1ec1a23 100755 --- a/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/module/src/sfpi.c +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly8-rangeley/onlp/builds/src/x86_64_quanta_ly8_rangeley/module/src/sfpi.c @@ -184,16 +184,13 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + if (dev_addr == SFP_IDPROM_ADDR){ + return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + } else if (dev_addr == SFP_DOM_ADDR) { + return onlplib_sfp_eeprom_read_file(sfp->dom, data); + } else + return ONLP_STATUS_E_PARAM; } - -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->dom, data); -} - diff --git a/packages/platforms/quanta/x86-64/x86-64-quanta-ly9-rangeley/onlp/builds/src/x86_64_quanta_ly9_rangeley/module/src/sfpi.c b/packages/platforms/quanta/x86-64/x86-64-quanta-ly9-rangeley/onlp/builds/src/x86_64_quanta_ly9_rangeley/module/src/sfpi.c index c22748c1..2258f968 100755 --- a/packages/platforms/quanta/x86-64/x86-64-quanta-ly9-rangeley/onlp/builds/src/x86_64_quanta_ly9_rangeley/module/src/sfpi.c +++ b/packages/platforms/quanta/x86-64/x86-64-quanta-ly9-rangeley/onlp/builds/src/x86_64_quanta_ly9_rangeley/module/src/sfpi.c @@ -157,31 +157,30 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) { + const char * path; - if(port > 52){ - qsfpmap_t* qsfp = QSFP_GET(port); - - return onlplib_sfp_eeprom_read_file(qsfp->eeprom, data); - } - else{ - sfpmap_t* sfp = SFP_GET(port); - - return onlplib_sfp_eeprom_read_file(sfp->eeprom, data); + if (dev_addr == SFP_IDPROM_ADDR) { + if(port > 52){ + qsfpmap_t* qsfp = QSFP_GET(port); + path = qsfp->eeprom; + } + else{ + sfpmap_t* sfp = SFP_GET(port); + path = sfp->eeprom; + } + } else if (dev_addr == SFP_DOM_ADDR) { + if(port > 52){ + qsfpmap_t* qsfp = QSFP_GET(port); + path = qsfp->dom; + } + else{ + sfpmap_t* sfp = SFP_GET(port); + path = sfp->dom; + } + } else { + return ONLP_STATUS_E_PARAM; } + return onlplib_sfp_eeprom_read_file(path, data); } - -int -onlp_sfpi_dom_read(int port, uint8_t data[256]) -{ - if(port > 52){ - qsfpmap_t* qsfp = QSFP_GET(port); - return onlplib_sfp_eeprom_read_file(qsfp->dom, data); - } - else{ - sfpmap_t* sfp = SFP_GET(port); - return onlplib_sfp_eeprom_read_file(sfp->dom, data); - } -} -