LS1046A 10GB SFP+ Configuration on kernel 6.12

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

LS1046A 10GB SFP+ Configuration on kernel 6.12

279 Views
hugoacata
Contributor I

Hello, 

I have a custom board with the LS1046A, and I'm trying to use fm1-mac9 with a soldered SFP+ 10GB module. 

My RCW in SERDES 1 is 0x1040: 

hugoacata_0-1784298387879.png

So 10GB in fm1-mac9 is well covered from the RCW's perspective. Looking at the SFP power and laser everything seems healthy, but I can't seem to get it to talk/link with the sfp in front of it, so I suspect my DTB configuration is incorrect. 

This is my current configuration for that MAC: 

xfi10g: ethernet@f0000 {
  status = "okay";
  pcsphy-handle = <&pcsphy6>;
  pcs-handle = <&pcsphy6>;
  pcs-handle-names = "xfi";
  phy-connection-type = "10gbase-r";

  fixed-link {
    speed = <10000>;
    full-duplex;
  };
};

mdio@f1000 {
  status = "okay";

  pcsphy6: ethernet-phy@0{
    compatible = "fsl,lynx-pcs";
    reg = <0x0>;
  };
};

sfp_mac9: sfp {
  compatible = "sff,sfp";
  i2c-bus = <&i2c3>;
  status = "okay";
};

For reference, I'm running linux-qoriq kernel 6.12, and the SFP probes correctly during boot reading its EEPROM.

Do you have a proper example of running this type of connection in fm1-mac9? 

 

 

Tags (3)
0 Kudos
Reply
3 Replies

57 Views
June_Lu
NXP TechSupport
NXP TechSupport

How about changing per LS1046ARDB, as fm1-mac10 is SFP+, and the driver support the SFP+, too.

https://github.com/nxp-qoriq/linux/blob/lf-6.12.49-2.2.0/arch/arm64/boot/dts/freescale/fsl-ls1046a-r...

0 Kudos
Reply

219 Views
hugoacata
Contributor I

With a MAC configuration with managed = "in-band-status"; and without either phy-handle or fixed-link, I always get phy driver errors: 

[  384.094677] ------------[ cut here ]------------
[  384.094679] WARNING: CPU: 0 PID: 49 at /usr/src/kernel/drivers/net/phy/swphy.c:128 swphy_read_reg+0xac/0x188
[  384.094686] Modules linked in: cfg80211 rfkill fsl_jr_uio caam_jr ftdi_sio onboard_usb_dev usbserial caamkeyblob_desc crypto_engine pci_endpoint_test crct10dif_ce rtc_pcf2127 at24 lm90 ina2xx fsl_qdma rtc_fsl_ftm_alarm nvmem_layersca
pe_sfp caam layerscape_edac_mod
[  384.094709] CPU: 0 UID: 0 PID: 49 Comm: kworker/u16:1 Tainted: G        W          6.12.20-gdfaf2136deb2-dirty #1
[  384.094714] Tainted: [W]=WARN
[  384.094715] Hardware name: LS1046A FRWY Board (DT)
[  384.094717] Workqueue: events_power_efficient phy_state_machine
[  384.094722] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  384.094726] pc : swphy_read_reg+0xac/0x188
[  384.094730] lr : fixed_mdio_read+0xe0/0x120
[  384.094733] sp : ffff800082f0bc30
[  384.094735] x29: ffff800082f0bc70 x28: 0000000000000000 x27: 0000000000000000
[  384.094740] x26: ffff00080001c028 x25: 0000000000000000 x24: ffff000800020e05
[  384.094745] x23: ffff0008002a2200 x22: 0000000000000000 x21: 0000000000000000
[  384.094750] x20: ffff000801c8a000 x19: 0000000000000003 x18: ffff0008001f0280
[  384.094756] x17: 0000000000000fc4 x16: 0000061c0bd46400 x15: 0000000000000003
[  384.094761] x14: 00000000000000e5 x13: ffff0008002a2280 x12: 0000000000000000
[  384.094766] x11: ffff0008000e4480 x10: ffff00087bf969c0 x9 : ffff0008002a2280
[  384.094772] x8 : ffff800082f0bc28 x7 : ffff000801c8a498 x6 : ffff000801c8a498
[  384.094777] x5 : 0000000000000000 x4 : 0000000000000001 x3 : ffff00080170a0c0
[  384.094782] x2 : 0000000000000000 x1 : ffff800082f0bc54 x0 : 0000000000000000
[  384.094787] Call trace:
[  384.094789]  swphy_read_reg+0xac/0x188
[  384.094793]  mdiobus_read+0x40/0x80
[  384.094796]  genphy_read_status_fixed+0x24/0x6c
[  384.094802]  genphy_read_status+0xe0/0xe8
[  384.094805]  phy_check_link_status+0xf8/0x108
[  384.094809]  _phy_state_machine+0x98/0x2c8
[  384.094813]  phy_state_machine+0x2c/0x80
[  384.094817]  process_one_work+0x150/0x290
[  384.094823]  worker_thread+0x2d0/0x3e4
[  384.094828]  kthread+0x110/0x120
[  384.094832]  ret_from_fork+0x10/0x20
[  384.094836] ---[ end trace 0000000000000000 ]---

And that's with : 

ethernet@f0000 {
  status = "okay";

  pcsphy-handle = <&pcsphy6>;
  pcs-handle-names = "xfi";
  managed = "in-band-status";
  phys = <&serdes1 3>;
  phy-names = "serdes";
  sfp = <&sfp_mac9>;

  /delete-property/ phy-connection-type;
  /delete-property/ phy-handle;;
};

 

0 Kudos
Reply