Hello,
I'm looking for info/help on how restool/MC-utils determines the number of dpmac devices that are available, and how I can modify this. Does it have it's own SERDES lookup table somewhere?
For example on the lx2160a:
If I boot with SD1=8, I see 8 dpmac devices corresponding the 8xUSXGMII lanes.
If I boot with SD1=17, I see 4 dpmac corresponding the the 4x25GE (and none for PCIe lanes).
If I boot with SD1=17 (modified to have 4x25G+4xUSGMII) I only get 4 dpmac.
Modifying the DPL file to declare more dpmac lanes is discarded/ignored by restool.
Modifying the SERDES definition in u-boot SERDES table is discarded/ignored by restool.
Trying to manually add more dpmac via restool results in :
> restool dpmac create --mac-id=7 #create dpmac.7
MC error: Invalid state (status 0xc)
> restool --mc-version
MC firmware version 10.28.1
My SFP modules are detected during kernel boot in the USXGMII lanes, but I cannot create dpni objects as I lack dpmac for them. I can use the 25G dpmac however.
I have modified my SERDES (following Application Note #AN13022) to have 4x25G+4xUSXGMII, but I cannot determine what in LSDK21.08 is blocking MC-utils from creating dpmac for these interfaces.
Is there any documentation / help on this?
Please refer to section "26.1.4 SerDes options" in LX2160ARM.pdf, dpmac number is determined by SerDes 1 protocol(RCW[SRDS_PRTCL_S1]), you cannot add more dpmac lanes.
If configuring SerDes 1 as protocol 31, you only can get 4xUSXGMII lanes, you only can get 4 DPMACs for these interfaces. It is still impossible to add more dpmacs manually.
Given that recent DPAA2 MC firmware support changing the DPMAC lane speeds (see DPAA2 user manual for 10.36.x, section 15.2.21 DPMAC_SET_PROTOCOL ) would it be possible to change the protocol from 25G to 10G?
Hmm. I have been provided with a validated pbi override that performs the above for SERDES, but it seems I need a new (different) behavior for the MC complex, as I understand from you that 31 is a fixed profile that does not match my needs. It's unfortunate that the MC does not read the serdes configuration directly, and instead operates off it's own table, making it the point of failure in this scenario.