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 6387eaf9..3053b896 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,10 +67,9 @@ 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, int dev_addr, uint8_t data[256]); +int onlp_sfpi_eeprom_read(int port, uint8_t data[256]); /** * @brief Read a byte from an address on the given SFP port's bus. @@ -99,6 +98,14 @@ 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 47bc1f43..173a38ae 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,9 +31,6 @@ #include #include -#define SFP_IDPROM_ADDR 0x50 -#define SFP_DOM_ADDR 0x51 - /* */ /** onlp_sfp_control */ typedef enum onlp_sfp_control_e { @@ -111,15 +108,27 @@ int onlp_sfp_is_present(int port); int onlp_sfp_presence_bitmap_get(onlp_sfp_bitmap_t* dst); /** - * @brief Read SFP EEPROM data from the given port. + * @brief Read IEEE standard 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, int dev_addr, uint8_t** rv); +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); /** * @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 2fa3cff0..6dd5ccfe 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, SFP_IDPROM_ADDR, &data); + rv = onlp_sfp_eeprom_read(port, &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 62b738b0..de7c64ff 100644 --- a/packages/base/any/onlp/src/onlp/module/src/sfp.c +++ b/packages/base/any/onlp/src/onlp/module/src/sfp.c @@ -139,21 +139,38 @@ onlp_sfp_port_valid(int port) } static int -onlp_sfp_eeprom_read_locked__(int port, int dev_addr, uint8_t** datap) +onlp_sfp_eeprom_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_eeprom_read(port, dev_addr, data)) < 0) { + if((rv = onlp_sfpi_eeprom_read(port, data)) < 0) { aim_free(data); data = NULL; } *datap = data; return rv; } -ONLP_LOCKED_API3(onlp_sfp_eeprom_read, int, port, int, dev_addr, uint8_t**, 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); void onlp_sfp_dump(aim_pvs_t* pvs) @@ -211,7 +228,7 @@ onlp_sfp_dump(aim_pvs_t* pvs) } if(rv == 1) { uint8_t* idprom = NULL; - rv = onlp_sfp_eeprom_read(p, SFP_IDPROM_ADDR, &idprom); + rv = onlp_sfp_eeprom_read(p, &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 07e41feb..97d569c6 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,7 +30,8 @@ __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, int dev_addr, uint8_t data[256])); +__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_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 4486a6c8..fec0378e 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 a71fa364..b2d5be61 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, SFP_IDPROM_ADDR, &idprom); + rv = onlp_sfp_eeprom_read(port_num, &idprom); } else if (address == 0xa2) { - rv = onlp_sfp_eeprom_read(port_num, SFP_DOM_ADDR, &idprom); + rv = onlp_sfp_dom_read(port_num, &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 383e2261..7199a31a 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,16 +210,9 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - 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; + char* path = sfp_get_port_path(port, "sfp_eeprom"); /* * Read the SFP eeprom into data[] @@ -237,6 +230,20 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, 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 5944663b..61ea9da8 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,6 +47,9 @@ #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 @@ -203,14 +206,20 @@ onlp_sfpi_read_addr__(int port, int addr, unsigned char *data) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, unsigned char *data) +onlp_sfpi_eeprom_read(int port, unsigned char *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; + return onlp_sfpi_read_addr__(port, I2C_SLAVE_ADDRESS_SFP_EEPROM_50, + data); } +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 3725541d..11573775 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,14 +693,18 @@ sfpi_read_addr__(int port, int addr, uint8_t data[256]) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - if ((dev_addr == SFP_IDPROM_ADDR) || (dev_addr == SFP_DOM_ADDR)) { - return sfpi_read_addr__(port, dev_addr, data); - } - return ONLP_STATUS_E_PARAM; + return sfpi_read_addr__(port, SFP_IDPROM_ADDR, data); } +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 92d0056f..0d320d4e 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,17 +280,8 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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[] * @@ -304,7 +295,34 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) return ONLP_STATUS_E_INTERNAL; } - if (deviceNodeReadBinary(eeprom_path, (char*)data, 256, 256) != 0) { + 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) { 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 140f6686..e5044f2d 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 721dc3e9..141b8645 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,16 +220,9 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - 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; + char* path = sfp_get_port_path(port, "sfp_eeprom"); /* * Read the SFP eeprom into data[] @@ -247,6 +240,20 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, 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 f26c8a67..560f5762 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,16 +313,9 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - 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; + char* path = as5712_54x_sfp_get_port_path(port, "sfp_eeprom"); /* * Read the SFP eeprom into data[] @@ -340,6 +333,20 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, 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 54f980bd..8840ee26 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,16 +192,9 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - 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; + char* path = as5812_54t_sfp_get_port_path(port, "sfp_eeprom"); /* * Read the SFP eeprom into data[] @@ -219,6 +212,20 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, 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 42679c96..6cfa29a9 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,16 +313,9 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - 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; + char* path = as5812_54x_sfp_get_port_path(port, "sfp_eeprom"); /* * Read the SFP eeprom into data[] @@ -340,6 +333,20 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, 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 5dd99b6c..36f2b772 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 9243d672..10288992 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 10af25cf..5f2ff1b9 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,16 +195,9 @@ onlp_sfpi_rx_los_bitmap_get(onlp_sfp_bitmap_t* dst) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - 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; + char* path = sfp_get_port_path(port, "sfp_eeprom"); /* * Read the SFP eeprom into data[] @@ -222,6 +215,20 @@ onlp_sfpi_eeprom_read(int port, int dev_addr, 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 50abfca9..c478ecaa 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 de16f319..6c7f381b 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 93d2f26e..b1fd2e53 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 ffa33f71..f4764ed5 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, SFP_DOM_ADDR, SFP_XFP_LOS_ADDR, SFP_XFP_LOS_SIZE); + _read_sfp(port, &byte, ALL_SFP_DIAG_I2C_ADDRESS, SFP_XFP_LOS_ADDR, SFP_XFP_LOS_SIZE); } else if (port <= 54) { - _read_sfp(port, &byte, SFP_DOM_ADDR, QSFP_LOS_ADDR, SFP_XFP_LOS_SIZE); + _read_sfp(port, &byte, ALL_SFP_DIAG_I2C_ADDRESS, 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, SFP_DOM_ADDR, SFP_OPTIONS_ADDR, SFP_OPTIONS_SIZE); + _read_sfp(port, (uint8_t *)&option, ALL_SFP_DIAG_I2C_ADDRESS, SFP_OPTIONS_ADDR, SFP_OPTIONS_SIZE); } else if (port <= 54) { - _read_sfp(port, (uint8_t *)&option, SFP_DOM_ADDR, QSFP_TX_FAULT_ADDR, SFP_OPTIONS_SIZE); + _read_sfp(port, (uint8_t *)&option, ALL_SFP_DIAG_I2C_ADDRESS, QSFP_TX_FAULT_ADDR, SFP_OPTIONS_SIZE); } if (SFP_TX_FAULT_MASK & option) @@ -240,21 +240,17 @@ onlp_sfpi_port_map(int port, int* rport) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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, dev_addr, 0, 256) == -1) + if (_read_sfp(port, data, ALL_SFP_I2C_ADDRESS, 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 92199e6e..27f57467 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,6 +328,8 @@ 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 bb65a411..b752da0d 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 d92f3785..51fa0147 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 aedfe235..7ee8262a 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 ef49ecc3..4e9851f9 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 609d3c35..41a4e09f 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 7d15862e..b5e813d0 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, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, 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 257a105a..aa277802 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,14 +137,15 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - - 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; + 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); } 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 bc9c3806..3127950c 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,14 +155,16 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - - 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; + 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); +} + 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 7d4a46c3..b2aa9dff 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,13 +149,16 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - 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; + 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); +} + 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 b1ec1a23..236f1f82 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,13 +184,16 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { sfpmap_t* sfp = SFP_GET(port); - 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; + 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); +} + 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 2258f968..c22748c1 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,30 +157,31 @@ onlp_sfpi_is_present(int port) } int -onlp_sfpi_eeprom_read(int port, int dev_addr, uint8_t data[256]) +onlp_sfpi_eeprom_read(int port, uint8_t data[256]) { - const char * path; - 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; + 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); } - 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); + } +} +