RFDC driver not working right after upgrade to Petalinux 2020.1
I recently upgraded a ZCU111 Vivado project from 2019.2 to 2020.1 which required an upgrade of the usp_rf_data_converter IP core from 2.2 to 2.3. Our homegrown rfdc-control utility, which is just a command-line wrapper utility that calls functions in the xrfdc driver (version 6.0), continued to work just fine as long as I used a .dtb generated by Petalinux 2019.2 using the following script:
petalinux-create -t project -s [path/to]/xilinx-zcu111-v2019.2-final.bsp
# Generate an XSA file
echo "open_project [path/to/project].xpr" > xsagen.do
echo "write_hw_platform -fixed -force -file [project_name].xsa" >> xsagen.do
vivado -mode batch -nolog -nojournal -source xsagen.do
# Copy in some customizations -- none have anything to do with the RFDC as far as I know
petalinux-config --silentconfig --get-hw-description
After upgrading to Petalinux 2020.1, however, and using the above script (with the bsp changed to xilinx-zcu111-v2020.1-final.bsp) to create a new .dtb, the xrfdc driver now provides garbage data for sample rates, mixer settings, etc. I thought this might be related to our using an old libmetal and the old xrfdc driver, so I cloned libmetal xilinx-v2020.1 and embeddedsw release-2020.1, which of course upgrades the xrfdc driver to version 8.0. This did not solve the problem, however; it correctly reports my ADCs but now shows that I have no DACs enabled at all. The homegrown rfdc-control utility I'm using to pull this information is simply doing the following:
This should report in our case that Tile 1 is enabled and has four blocks enabled; instead it reports that Tile 1 is enabled but with zero blocks. If I revert back to version 6.0 only the function XRFdc_IsDACBlockEnabled() (which is used by XRFdc_CfgInitialize() above to determine the number returned by XRFdc_GetNoOfDACBlock()), I get the correct number of enabled blocks, but again get garbage data for mixer settings when I call XRFdc_GetMixerSettings().
So I'm at 2020.1 across the board--all my tools, bitstream, hardware description, libraries, drivers, etc., but I can't get back good data about the RFDC device any more. Anyone know what I'm doing wrong here?