Hello,
In out custom board we are using s32g3 and bsp44. here pfe1 we interfaced with external dp83tc812 100base T1 Phy. in kernel dts configuration i am using managed=in-band-status arm trusted firmware side i am not using manged= in-band-status. just in hwconfig an=1 i set but when i did this bellow error i am facing how to fix this issue please let me.
Error:
arch/arm/mach-s32/s32-cc/hwconfig_fixups.c:1124-set_xpcs_config_sgmii() Failed to configure XPCS1_1
arch/arm/mach-s32/s32-cc/hwconfig_fixups.c:1198-apply_hwconfig_fixups() Failed to update XPCS1 for SerDes1
Regards,
Raghavendra
hi,uiv12187
Thank you for contacting us.
Could you provide more log in uboot and Kernel?
How about the function of PFE1 in uboot? Can do the PFE1 connect the PHY?
Do you only use the A core?
BR
Joey
Hello,
here i am using external dp83tc812 100base T1 Phy this phy supports 100M i configured dts properly it is connected s32g3 pfe1: serdes1 xpcs1 lane 1 to dp83tc812 100base T1 Phy if we use fixed link or manged=in-band-status it automatically set speed 1G Thats Why i removed fixed link and managed=in-band-status i configured an=1 to pfe1 because i am using external phy if i use an=0 it inject fixed link and detach driver. now linux side driver is attahed but u-boot side i am facing this issue when i set an=1 but i want to set an=1 then only my driver will work how to fix this issue bellow i added boot log for u-boot please refer and help me to resolve this issue as soon as possible
=> setenv hwconfig "serdes0:mode=pcie&xpcs0,clock=int,fmhz=100;pcie0:mode=rc;xpcs0_0:speed=1G,an=0;serdes1:mode=xpcs0&xpcs1,clock=int,fmhz=125;xpcs1_0:speed=1G,an=0;xpcs1_1:speed=100M"
=> save
Saving Environment to MMC... Writing to MMC(0)... OK
=> reset
resetting ...
NOTICE: Reset status: Destructive Reset (RUN)
NOTICE: BL2: v2.10.14(release):bsp44.0-2.10.14-dirty
NOTICE: BL2: Built : 08:13:32, May 13 2025
NOTICE: BL2: Booting BL31
U-Boot 2022.04+g9a00323278+p0 (May 13 2025 - 06:57:56 +0000)
SoC: NXP S32G399A rev. 1.1
CPU: ARM Cortex-A53 r0p4 @ max 1300 MHz
Model: NXP S32G399A-RDB3
DRAM: 3.5 GiB
Core: 298 devices, 24 uclasses, devicetree: board
MMC: FSL_SDHC: 0
Loading Environment from MMC... OK
arch/arm/mach-s32/s32-cc/hwconfig_fixups.c:1124-set_xpcs_config_sgmii() Failed to configure XPCS1_1
arch/arm/mach-s32/s32-cc/hwconfig_fixups.c:1198-apply_hwconfig_fixups() Failed to update XPCS1 for SerDes1
drivers/phy/nxp/s32cc-serdes.c:1013- init_serdes() s32cc_serdes_phy serdes@40480000: Using mode 1 for SerDes subsystem
Serdes@40480000 PCIE_PHY_GEN_CTRL = 0x10c00
Serdes@40480000 PCIE_PHY_GEN_CTRL = 0x10c00
drivers/pci/pci_s32cc.c:824-s32cc_pcie_init_controller() pci_s32cc pcie@40400000: Configuring as RootComplex
drivers/pci/pci_s32cc.c:845-s32cc_pcie_config_host() pci_s32cc pcie@40400000: Failed to get link up
In: serial@401c8000
Out: serial@401c8000
Err: serial@401c8000
Board revision: RDB3
PCIe: BusDevFun VendorId DeviceId Device Class Sub-Class
__________________________________________________________________________
pcie@40400000 RootComplex
| `-- 01:00.00 0x1957 0x4300 Bridge device 0x04
Net: drivers/phy/nxp/s32cc-serdes.c:495-xpcs_check_rx_stable() s32cc_serdes_phy serdes@40480000: Stable RX detected on XPCS0 after 0 µs
eth0: ethernet@4033c000drivers/net/nxp_pfeng/pfe_hw.c:814-pfe_hw_detect_version()
Found PFE version 0x0101 (S32G3)
drivers/net/nxp_pfeng/pfe_hw_pe.c:418-pfe_hw_pe_init_class() pfeng pfeng-base: Uploading CLASS firmware
drivers/net/nxp_pfeng/pfe_hw_emac.c:284- pfe_hw_emac_init() pfeng pfeng-base: EMAC0 block was initialized
drivers/net/nxp_pfeng/pfe_hw_emac.c:284- pfe_hw_emac_init() pfeng pfeng-base: EMAC1 block was initialized
drivers/net/nxp_pfeng/pfe_hw.c:684- pfe_hw_init() pfeng pfeng-base: EMAC2 not used, skipped
drivers/net/nxp_pfeng/pfe_hw.c:723- pfe_hw_init() pfeng pfeng-base: Enabling the CLASS block
drivers/net/nxp_pfeng/pfe_hw.c:739- pfe_hw_init() pfeng pfeng-base: PFE Platform started successfully (mask: 3)
drivers/phy/nxp/s32cc-serdes.c:1013- init_serdes() s32cc_serdes_phy serdes@44180000: Using mode 3 for SerDes subsystem
drivers/phy/nxp/s32cc-serdes.c:495-xpcs_check_rx_stable() s32cc_serdes_phy serdes@44180000: Stable RX detected on XPCS0 after 0 µs
, eth1: pfe0drivers/phy/nxp/s32cc-serdes.c:495-xpcs_check_rx_stable() s32cc_serdes_phy serdes@44180000: Stable RX detected on XPCS1 after 0 µs
, eth2: pfe1
hi,uiv12187
Thank you for your reply and detail information.
You configuration of Serdes is not successful, so you can use the PFE1.
you need to set the xpcs1_1 of Serdes1 when you use the PFE1.
Could you try to set the parameter an=0?
setenv hwconfig "...;xpcs1_1:speed=100M,an=0"
save
And set the PFE1 function in Kernel mode to fixed link.
fixed-link {
speed = <100>;
full-duplex;
}
BR
Joey