Skip to content

Update the E31x platform to allow for general usage

James requested to merge (removed):develop into develop

The E31X OSP contains a number of configurations which are largely depreciated, and using the most up-to-date version of the OSP (DRC, CSTS) is complicated by three minor omissions:

  1. The slave assembly of drc_e31x_csts.rcc includes a non-optional CIC resampler and tuner that are not required for most general applications (and also convert the interfaces away from the CSTS protocols at the output of the DRC assembly)
  2. The slave assembly of drc_e31x_csts.rcc does not include a connection between the on_off0 ports of tx_qdac0 and data_sink_qdac_csts_ad9361_sub which is required to allow the flush opcode to turn the E31X transmitter off at the end of a transmission. Due to the high TX LO leakage of the E31X, this is almost always a required feature in real-world usage of the OSP.
  3. There are no platform configurations making use of the e31x_mimo_xcvr_scdcd_csts card, so all devices and sub-devices must be defined in the container.

What this MR does / why we need it:

This merge request addresses the first two issues by adding two parameters to the drc_e31x_csts proxy, and using the new conditional slaves feature to optionally remove the resampler, and add in the on_off0 connection. The default values of these parameters are set to include the resampler, and to not include the on_off0 connection. This means that existing applications will be unaffected (and hopefully means this patch can be back ported in to v2.4.3).

Two additional configurations are also added to the E31X platform to allow for the most up-to-date usage of the e31x_mimo_xcvr_scdcd_csts card. Note that there appears to be a bug in OpenCPI which means that if a device is defined in a platform configuration, you can not connect together two device ports in the container (ocpigen segfault), however if the device is defined in the container, you can make a device to device connection. This is a reason for the two configurations: cfg_1rx_1tx_mode_2_cmos_csts.xml is the main configuration that contains all the devices, and then cfg_1rx_1tx_mode_2_cmos_csts_tx_disable_on_flush.xml is a workaround to the bug, and effectively the base config, but with the timing constraints file defined (then the user will just need to copy all the devices from cfg_1rx_1tx_mode_2_cmos_csts in to their container and add the on_off0 connection.

Steps to complete before submitting MR:

  • I have read Contribution guidelines

  • I have ensured I have a changelog written in the imperative form that is meaningful and accurately summarizes the work done

  • I have added the release notes label if applicable (more information below)

  • I have ensured the workflow labels are up to date and will continue to do so up until this work is merged into develop

  • I have added a category, type, and target release label along with all other labels as need be

  • My branch is up to date with develop. If it is not, then I have ensured my work does not conflict with other work

  • I agree my bugfix MR does not include new features/enhancements

  • I represent that bugfixes have been locally tested against the most recent major.minor release in which the bug exists

  • (REVIEWER ONLY) I have thoroughly gone through the above steps to ensure that they have been followed

Changelog

  • enh(osp): converted drc_e31x_csts to use conditional slaves
  • enh(osp): added additional configurations for when using the e31x_mimo_xcvr_scdcd_csts card

Which issue(s) this MR closes

N/A Community submission.

Edited by Marisol Burell

Merge request reports