LS1043A FMan-RGMII-PHY Interface Issue

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

LS1043A FMan-RGMII-PHY Interface Issue

Contributor II

Hi Experts.

We have a custom LS1043A rev1.1 custom board which has RGMII1 connected to a Marvell PHY (88e1512). The PHY 25MHZ clock is generated by a dedicated oscillator. u-boot on this board is based on LSDK1806. The interface is not working. ping always fails. I replaced the PHY driver with SDK2.0 driver and now ping works but tftp tranfer hangs with timeout error. There is another Ethernet chip connected to PCIe but it is not used for now so don't care. 

Has anyone experienced such a behaviour?



U-Boot 2018.03 (Sep 19 2018 - 16:22:55 +0200)

SoC:  LS1043A Rev1.1 (0x87920311)
Clock Configuration:
       CPU0(A53):1200 MHz  CPU1(A53):1200 MHz  CPU2(A53):1200 MHz
       CPU3(A53):1200 MHz
       Bus:      300  MHz  DDR:      1300 MT/s  FMAN:     500  MHz
Reset Configuration Word (RCW):
       00000000: 060d000c 0a000000 00000000 00000000
       00000010: 35580002 00008012 40044000 c1002400
       00000020: 00000000 11100101 00000000 00038ffd
       00000030: 20004500 04261000 00000096 00000001
Model: XXXXX
Board: XXXXX , boot from QSPI
I2C:   ready
DRAM:  Initialzing DDR using fixed setting
Configuring DDR for 1300 MT/s data rate
1.9 GiB (DDR4, 32-bit, CL=10, ECC off)
Using SERDES1 Protocol: 13656 (0x3558)
PPA Firmware: Version LSDK-18.06
SEC Firmware: 'loadables' present in config
loadables: 'trustedOS@1'
ERROR:   [0x0] TEE-CORE:tee_otp_get_hw_unique_key:195:
H/W Unique key is not fetched from the platform.
Loading Environment from SPI Flash... SF: Detected s25fl128s_64k with page size 256 Bytes, erase size 64 KiB, total 16 MiB
In:    serial
Out:   serial
Err:   serial
SCSI:  PCIe0: pcie@3400000 Root Complex: no link
PCIe1: pcie@3500000 Root Complex: x1 gen1
PCIe2: pcie@3600000 disabled
Error: SCSI Controller(s) 1B4B:9170 not found
Net:   SF: Detected s25fl128s_64k with page size 256 Bytes, erase size 64 KiB, total 16 MiB
Fman1: Uploading microcode version 108.4.9
e1000: e1000#0: ERROR: EEPROM checksum is incorrect!
e1000: e1000#0: ERROR:   ...register was 0x0000, calculated 0xbaba
Error: FM1@DTSEC9 address not set.

Hit any key to stop autoboot:  0
=> mdio list
0 - Marvell 88E1510 <--> FM1@DTSEC3
=> tftp a0000000 Image.itb
Using FM1@DTSEC3 device
TFTP from server; our IP address is
Filename 'Image.itb'.
Load address: 0xa0000000
Loading: #############T T #############T ############T #############T T T T ############T T
Retry count exceeded; starting again
=> ping
Using FM1@DTSEC3 device
host is alive

Labels (1)
0 Kudos
5 Replies

NXP TechSupport
NXP TechSupport

Hello j_wallace,

Linux Kernel in LSDK 1806 has already provided driver for Marvell PHY 88e1510, you could boot the target board to go to Linux to do more verification. If the networking interface works normally, please modify PHY driver in u-boot according to Linux Kernel source code drivers/net/phy/marvell.c.

Please configure CONFIG_MARVELL_PHY in Linux Kernel configuration file, in the dts file, please modify the dts file as the following.


               phy-handle = <&rgmii_phy1>;

               phy-connection-type = "rgmii-txid";


mido@fc000 {

                rgmii_phy1: ethernet-phy@1 {

                                reg = <0x0>;


        ... ...


Have a great day,

Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos

Contributor II

Hi, thank for your response

1) The RGMII interface is not working at Linux level too. It looks like the problem is at RX side. If I ping my worstation I can see in Wireshark that the workstation is responding but my LS1043A board is not seeing the reply. Also I saw that the RGMII interface is taking the I210 MAC address while I set another one in the device tree. I tried to change "phy-connection-type" to "rgmii-id" but it does not work better.

&fman0 {    

    ethernet@e4000 {
        phy-handle = <&rgmii_phy1>;
        phy-connection-type = "rgmii-txid";
        local-mac-address = [00 04 9F 04 03 CA];

    mdio@fc000 {
        rgmii_phy1: ethernet-phy@0 {
            reg = <0x0>;

~ # dmesg | grep eth
[    2.319213] fsl_mac 1ae4000.ethernet: FMan MEMAC
[    2.323850] fsl_mac 1ae4000.ethernet: FMan MAC address: 00:10:5f:10:01:50
[    2.330916] fsl_mac dpaa-ethernet.0: __devm_request_mem_region(mac) failed
[    2.337812] fsl_mac: probe of dpaa-ethernet.0 failed with error -16
[    2.344174] fsl_mac 1af0000.ethernet: of_get_mac_address(/soc/fman@1a00000/ethernet@f0000) failed
[    2.358471] fsl_mac: probe of 1af0000.ethernet failed with error -22
[    2.364871] fsl_mac dpaa-ethernet.0: __devm_request_mem_region(mac) failed
[    2.371762] fsl_mac: probe of dpaa-ethernet.0 failed with error -16
[    2.389092] fsl_dpa dpaa-ethernet.0 eth0: Probed interface eth0
[    2.681096] igb 0001:01:00.0: added PHC on eth1
[    2.692520] igb 0001:01:00.0: eth1: (PCIe:2.5Gb/s:Width x1) 00:10:5f:10:01:50
[    2.699708] igb 0001:01:00.0: eth1: PBA No: 000300-000
[    2.813146] usbcore: registered new interface driver cdc_ether
[    3.455376] smsc95xx 1-1:1.0 eth2: register 'smsc95xx' at, smsc95xx USB 2.0 Ethernet, 00:1e:c0:e0:dc:77
~ # ifconfig eth0
~ # ping
PING ( 56 data bytes
--- ping statistics ---
11 packets transmitted, 0 packets received, 100% packet loss

2) So far, the LSDK1806 Linux kernel hangs on our custom board so I'am running a one:

pub/scm/linux/kernel/git/leo/linux - Git at Google

I have already set CONFIG_MARVELL_PHY

3) FM1@DTSEC9 is not used on our board. Should I explicitly disable It in u-boot?

Best regards

0 Kudos

Contributor II

I managed the LSDK1806 Linux kernel to boot on my custom LS1043A board but same behaviour. ping fails though the request successfully reaches the remote host. 

0 Kudos

Contributor III

We are facing similar issue with our card.  have u able to resolve the issue. Kindly help.

Tags (1)
0 Kudos

NXP TechSupport
NXP TechSupport

Hello j_wallace,

Please configure MAC addresses in u-boot environment as the following.


Please use mdio command under u-boot to read PHY register Rx status information.

mdio read <phydev> [<devad>.]<reg> - read PHY's register at <devad>.<reg>

Have a great day,

Note: If this post answers your question, please click the Correct Answer button. Thank you!

0 Kudos