Tool/software:
Hello,
We are trying to have both PCIe ports of the J784S4 EVM working in 4x, but unfortunately we can't atm.
Here the setup :
- 2 J784S4XEVM :
- First one (EVM #A) has the two PCIe ports configured in RC.
- Second one (EVM #B) has the two PCIe ports configured in EP.
- One wiring harness between EVM #A Port 1 connected to EVM #B Port 0.
- SW11 set to 10000010.
- SW7 set to 00000000.

- SW2 set to 100001101. (Both PCIe ports in RC).

- Linux SDK version : 10.01.00.05.
Hardware modifications on EVM #A to avoid using USB but rather have the 2x PCIe lanes :
- Populated components :
- C696, C697.
- C683, C684.
- R891, R892.
- R876, R877.
- R168, R169.
- C125, C129.
- Unpopulated components :
- C694, C695.
- C679, C680.
- R885, R886.
- R867, R868.
- R170, R171.
- R152, R155.
Software modifications :
- k3-j784s4-evm.dts :
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
index 56a037532..dd92863be 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-evm.dts
@@ -13,7 +13,7 @@
/ {
compatible = "ti,j784s4-evm", "ti,j784s4";
- model = "Texas Instruments J784S4 EVM";
+ model = "Texas Instruments J784S4 EVM (PCIe1 4X)";
chosen {
stdout-path = "serial2:115200n8";
@@ -458,13 +458,6 @@ J784S4_IOPAD(0x010, PIN_INPUT_PULLUP, 8) /* (AH33) MCAN13_RX.I2C4_SDA */
>;
};
- main_usbss0_pins_default: main-usbss0-default-pins {
- bootph-all;
- pinctrl-single,pins = <
- J784S4_IOPAD(0x0ec, PIN_OUTPUT, 6) /* (AN37) TIMER_IO1.USB0_DRVVBUS */
- >;
- };
-
main_mcan4_pins_default: main-mcan4-default-pins {
pinctrl-single,pins = <
J784S4_IOPAD(0x088, PIN_INPUT, 0) /* (AF36) MCAN4_RX */
@@ -1372,40 +1365,6 @@ &dss {
<&k3_clks 218 22>;
};
-&serdes0 {
- status = "okay";
-
- serdes0_usb_link: phy@3 {
- reg = <3>;
- cdns,num-lanes = <1>;
- #phy-cells = <0>;
- cdns,phy-type = <PHY_TYPE_USB3>;
- resets = <&serdes_wiz0 4>;
- };
-};
-
-&serdes_wiz0 {
- status = "okay";
-};
-
-&usb_serdes_mux {
- idle-states = <0>; /* USB0 to SERDES lane 3 */
-};
-
-&usbss0 {
- status = "okay";
- pinctrl-0 = <&main_usbss0_pins_default>;
- pinctrl-names = "default";
- ti,vbus-divider;
-};
-
-&usb0 {
- dr_mode = "otg";
- maximum-speed = "super-speed";
- phys = <&serdes0_usb_link>;
- phy-names = "cdns3,usb3-phy";
-};
-
&serdes_wiz4 {
status = "okay";
};
- k3-j784s4-main.dtsi :
diff --git a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
index 105a8fd39..69e7e5a6d 100644
--- a/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
+++ b/arch/arm64/boot/dts/ti/k3-j784s4-main.dtsi
@@ -159,8 +159,8 @@ serdes_ln_ctrl: mux-controller@4080 {
<0x28 0x3>, <0x2c 0x3>; /* SERDES2 lane2/3 select */
idle-states = <J784S4_SERDES0_LANE0_PCIE1_LANE0>,
<J784S4_SERDES0_LANE1_PCIE1_LANE1>,
- <J784S4_SERDES0_LANE2_IP3_UNUSED>,
- <J784S4_SERDES0_LANE3_USB>,
+ <J784S4_SERDES0_LANE2_PCIE1_LANE2>,
+ <J784S4_SERDES0_LANE3_PCIE1_LANE3>,
<J784S4_SERDES1_LANE0_PCIE0_LANE0>,
<J784S4_SERDES1_LANE1_PCIE0_LANE1>,
<J784S4_SERDES1_LANE2_PCIE0_LANE2>,
Here is what we got after we enumareted the EVM #B:

And the link caps & status :

What are we missing?


