How can SOM communicate with PCIe cards connected onto PCA9548A (8-channel I2C-bus switch with reset) with PCIe switch in between

I have connected SOM (NX) module (via I2C) with PCIe switch then connected to PCA9548A (8-channel I2C-bus switch with reset). Then four PCIe endpoints are connected with PCA9548A via I2C.

( SOM <–i2c–> PCIe Switch <–i2c–> PCA9548A <<— -->> Four PCIe endpoint )

(image is attached for better understanding).

My question is,

  1. How SOM can read/write data of PCIe endpoints (e.g PCIe cards connected) connected to PCA9548A?

  2. How can SOM communicate with PCA9548A , as PCIe switch is between both of them ?

  3. Do we have I2C driver for SOM to communicate with PCIe switch or it can communicate by deafult.

I would request @WayneWWW @Trumany @ShaneCCC and other respected members to please guide me.

What kind of effect does the PCIe switch have on I2C lanes? Is it just acting like a passive passthrough device, or does it have an active component w.r.t I2C lanes? If the PCIe switch has active I2C component, then, I think we may need a corresponding I2C expander driver for it running on SOM. And, another such I2C expander driver is required for PCA9548A too (FWIW, I see a driver in the kernel source directory that may work for it …drivers/i2c/muxes/i2c-mux-pca954x.c )

Usually i2c expender connect to SOM i2c bus like reference tca9548 on e3333(tegra194-camera-e3333-a00.dtsi) camera board design.
It think the i2c communicate should be independent with PCIE communication. Like the i2c for low speed communication for some control command and PCIE interface for high speed data transfer.

Hello @vidyas @ShaneCCC

Thank you for feedback…
Do you mean that…

  1. We have to write a driver (i2c) to communicate with PCIe switch , And a seperate driver (i2c , as already present i2c-mux-pca954x.c) to communicate with I2C MUX.

So does it mean that Nvidia SOM will bypass PCIe switch and communicate directly to I2C mux PCA9548A by using this driver i2c-mux-pca954x.c.

And if above assumption is wrong , then HOW SOM WILL FETCH DATA of I2C MUX via PCIe switch .

Please help me with the flow.

Hello @ShaneCCC
I appreciate your quick response…

Do you mean that PCIe switch has no role to play in between SOM and I2C MUX. And SOM can directly communicate with I2C MUX by it driver (i2c-mux-pca954x.c) irrespective of PCIE switch placement in between.

Please correct me if i am wrong.

Yes, I2C and PCIE interface are working independently.

Hello @ShaneCCC ,

I would like to add that… Here we are not using PCIe interface , rather we are using I2C interface of PCIe switch.
( SOM <–i2c–> PCIe Switch <–i2c–> PCA9548A <<— -->> Four PCIe endpoint )
Now how can SOM communication with the endpoints (PCIe cards) connected to PCA9548A.
i belive here driver ( …drivers/i2c/muxes/i2c-mux-pca954x.c) will not work for us , because I2C MUX is not directly connected to SOM.

Hello @vidyas ,
I belive here driver ( …drivers/i2c/muxes/i2c-mux-pca954x.c) will not work for us , because (PCA9548A ) I2C MUX is not directly connected to SOM.As I2C interface of PCIe switch is in between both of them

I think i2c and PCIE is two independent system. Should be like below.

( SOM –>i2c–> PCA9548A → i2c → Four PCIe endpoint )
( SOM <<-pcie interface ->> PCIe Switch <<— -->> Four PCIe endpoint )

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.