Hello @XD,
Thanks for the detailed description of your problem. My understanding is that you want to achieve the following configuration [page 2760, S32G3 Reference Manual, Rev. 4, 02/2024]:
alejandro_e_1-1729797658783.png
alejandro_e_2-1729797694150.png
Which will output GMAC0, PFE_EMAC0 and PFE_EMAC1.
As you mentioned, the table 7 in the BSP41 manual only mentions Serdes 1 in mode 1, this might be an error in the documentation, Since in the next subsection 7.2.2.1 Example configurations [page 50 and 51, Linux BSP 41.0 User Manual for S32G3 platforms] you can see mode one is also configured for SerDes 0:
alejandro_e_3-1729797981062.png
I will have to confirm with the internal team if it is an error.
and you can also see SerDes 1 in mode 3:
alejandro_e_6-1729799155478.png
Following these two examples the correct configuration is:
serdes0:mode=pcie&xpcs0,clock=ext,fmhz=100;pcie0:mode=rc;xpcs0_0:speed=1G,an=0;serdes1:mode=xpcs0&xpcs1,clock=ext,fmhz=125;xpcs1_0:speed=1G,an=0;xpcs1_1:speed=1G
As you can see, with this configuration you get Serdes 0 (serdes@40480000) in mode 1 and Serdes 1 (serdes@44180000) in mode 3:
U-Boot 2022.04+g4744d0e2c8+p0 (May 27 2024 - 09:33:20 +0000)
SoC: NXP S32G399A rev. 1.1
CPU: ARM Cortex-A53 r0p4 @ max 1300 MHz
Model: NXP S32G399A-RDB3
DRAM: 3.5 GiB
Core: 306 devices, 25 uclasses, devicetree: board
MMC: FSL_SDHC: 0
Loading Environment from MMC... OK
s32cc_serdes_phy serdes@40480000: Using mode 1 for SerDes subsystem
s32cc_serdes_phy serdes@40480000: Unstable RX detected on XPCS0
pci_s32cc pcie@40400000: Configuring as RootComplex
pci_s32cc pcie@40400000: Failed to get link up
In: serial@401c8000
Out: serial@401c8000
Err: serial@401c8000
Board revision: RDB3 Revision F
PCIe: BusDevFun VendorId DeviceId Device Class Sub-Class
__________________________________________________________________________
pcie@40400000 RootComplex
| `-- 01:00.00 0x1957 0x4300 Bridge device 0x04
Net: eth0: ethernet@4033c000
Found PFE version 0x0101 (S32G3)
pfeng pfeng-base: Uploading CLASS firmware
pfeng pfeng-base: EMAC0 block was initialized
pfeng pfeng-base: EMAC1 block was initialized
pfeng pfeng-base: EMAC2 block was initialized
pfeng pfeng-base: Enabling the CLASS block
pfeng pfeng-base: PFE Platform started successfully (mask: 7)
s32cc_serdes_phy serdes@44180000: Using mode 3 for SerDes subsystem
s32cc_serdes_phy serdes@44180000: Unstable RX detected on XPCS1
s32cc_serdes_phy serdes@44180000: Unstable RX detected on XPCS0
, eth1: pfe0, eth2: pfe1, eth3: pfe2
Hit any key to stop autoboot: 0
=>
=> printenv hwconfig
hwconfig=serdes0:mode=pcie&xpcs0,clock=ext,fmhz=100;pcie0:mode=rc;xpcs0_0:speed=1G,an=0;serdes1:mode=xpcs0&xpcs1,clock=ext,fmhz=125;xpcs1_0:speed=1G,an=0;xpcs1_1:speed=1G
=> xpcs list
Registered XPCS instances:
| ID | SerDes instance | XPCS |
| 0 | serdes@40480000 | 0 |
| 1 | serdes@44180000 | 1 |
| 2 | serdes@44180000 | 0 |
=>
In the mentioned section you will also see how to configure the switch 17 and switch 8 to obtain the desired result in your RDB3.
For more details about the switches configuration you can check the RDB3 schematics [S32G-VNP-RDB3-DESIGN-FILES] in page 6:
alejandro_e_4-1729798705278.png
alejandro_e_5-1729798716435.png
As you are probably aware for this configuration you will need to reconfigure the SJA110, for which you need the SJA1110 SDK and it requires to sign an NDA. For this I can recommend contacting your FAE/DFAE/NXP representative so he/she may help you enabling this product in you account.
Let me know if this information solved your question.