My customer is trying to connect both LM15851EVM and DAC38J82EVM to XEVMK2LX simultaneously. They use LFMSHD = 22210 mode. They created their own driver (USE-CASE-CUSTOM) based on the existed.
USE-CASE-CUSTOM:
{ "dfeConfig": { "afeConnected": [ 1, 1 ], "cfrRate": 184.32, "configFile": "/usr/share/radio/dfe/Lamarr_DFE_2x2_1xLTE20_SC_JESD3b_SD.tgtcfg", "dfeClock": 368.64, "dpdRate": 368.64, "feedbackMask": 1, "feedbackRate": 368.64, "jesdConfig": { "rxLane": [ { "enabled": 1, "lid": 0, "linkAssigned": 0, "loopback": 0 }, { "enabled": 1, "lid": 1, "linkAssigned": 0, "loopback": 0 }, { "enabled": 0, "lid": 2, "linkAssigned": 0, "loopback": 0 }, { "enabled": 0, "lid": 3, "linkAssigned": 0, "loopback": 0 } ], "rxLink": [ { "cf": 0, "f_m1": 1, "k_m1": 22, "l_m1": 1, "loopback": 0, "m_m1": 1, "n_m1": 14, "nprime_m1": 15, "s_m1": 0 }, { "cf": 0, "f_m1": 1, "k_m1": 22, "l_m1": 1, "loopback": 0, "m_m1": 1, "n_m1": 14, "nprime_m1": 15, "s_m1": 0 } ], "txLane": [ { "enabled": 0, "lid": 0, "linkAssigned": 0, "loopback": 0 }, { "enabled": 0, "lid": 1, "linkAssigned": 0, "loopback": 0 }, { "enabled": 1, "lid": 2, "linkAssigned": 0, "loopback": 0 }, { "enabled": 1, "lid": 3, "linkAssigned": 0, "loopback": 0 } ], "txLink": [ { "cf": 0, "f_m1": 1, "k_m1": 22, "l_m1": 1, "loopback": 0, "m_m1": 1, "n_m1": 14, "nprime_m1": 15, "s_m1": 0 }, { "cf": 0, "f_m1": 1, "k_m1": 22, "l_m1": 1, "loopback": 0, "m_m1": 1, "n_m1": 14, "nprime_m1": 15, "s_m1": 0 } ] }, "jesdSettings": { "DL_jesd_F": 4, "DL_jesd_K": 32, "UL_jesd_K": 16, "jesdRate": "RFSDK_JESD_368P64" }, "rx": [ { "channel": 1, "ct": 3, "dduc": 3, "sampleRate": "RFSDK_SAMPLE_RATE_30P72MHZ", "type": "RFSDK_CARRIER_LTE20", "valid": 1 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 } ], "rxDducRate": 61.44, "rxMask": 1, "rxRate": 61.44, "streamMask": 3, "tx": [ { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 }, { "channel": 0, "ct": 0, "dduc": 0, "sampleRate": "RFSDK_SAMPLE_RATE_NOT_CONFIGURED", "type": "RFSDK_CARRIER_NOT_CONFIGURED", "valid": 0 } ], "txDducRate": 61.44, "txMask": 1, "txRate": 122.88 }, "playback": { "info": 2684354560, "program": "/usr/share/radio/dsp/lamarr-marconi/Playback_2x2-1xLTE20.out", "rx": [ 2789605376, 2800664576, 2811723776, 2822782976, 2833842176, 2844901376, 2855960576, 2867019776 ], "tx": [ 2701131776, 2712190976, 2723250176, 2734309376, 2745368576, 2756427776, 2767486976, 2778546176 ] }, "tdd": 0 }
They also set an appropriate mode for ADC (Decimation Factor = 8, DDR, P54) and DAC (Number of SerDes Lanes = 2, Interpolation = 2). They set DAC Data Input Rate suitable for JesdRate.
When they run the driver, the error (AFE_INVALID_JESD_PARAMETER) will appear. They have been changing the sets, but it doesn't help.