Always to get wrong transceiver's eeprom when plug-in two or more transceivers

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Always to get wrong transceiver's eeprom when plug-in two or more transceivers

630 Views
yaotienhuang
Contributor II

Hi all,
Currently, we would like to sfputil to get transceiver's eeprom. Our hardware design as below.
MCP2221------PCA-9548x(0x70)
                  |                 |---eeprom(channel 0, 0x50)
                  |                 |---eeprom(channel 1, 0x50)
                  |                 |---.......
                  |                 |---eeprom(channel 7, 0x50)
                  |
                  |----PCA-9548x(0x71)
                  |                 |---eeprom(channel 0, 0x50)
                  |                 |---eeprom(channel 1, 0x50)
                  |                 |---.......
                  |                 |---eeprom(channel 7, 0x50) 
                  |
                  |----PCA-9548x(0x72)
                                    |---eeprom(channel 0, 0x50)
                                    |---eeprom(channel 1, 0x50)
                                    |---......
                                    |---eeprom(channel 7, 0x50)

I can create device nod for each transceiver. The commands as below
        # add for mux
        echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-1/new_device

                    --> i2c-2, i2c-3, i2c-4, i2c-5, i2c-6, i2c-7, i2c-8, i2c-9
        echo pca9548 0x71 > /sys/bus/i2c/devices/i2c-1/new_device

                    --> i2c-10, i2c-11, i2c-12, i2c-13, i2c-14, i2c-15, i2c-16, i2c-17
        echo pca9548 0x72 > /sys/bus/i2c/devices/i2c-1/new_device

                    --> i2c-18, i2c-19, i2c-20, i2c-21, i2c-22, i2c-23, i2c-24, i2c-25

        # add for eeprom
        echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-2/new_device --> 2-0050
        echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-3/new_device --> 3-0050
        ...
        echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-24/new_device --> 24-0050
        echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-25/new_device --> 25-0050

        # get transceiver information
        hexdump -C /sys/bus/i2c/devices/17-0050/eeprom

Acctuly, we can get information from eeprom. However, if we plug-in two or more transceivers, we always get wrong data.
Did you saw this problem?
Could you give me some hint to fix this issue?
Thanks a lot.

0 Kudos
0 Replies