MicroPhase / antsdr-fw-patch

Repository of antsdr firmware make
53 stars 20 forks source link

Upstreaming Maia SDR #12

Open daniestevez opened 1 year ago

daniestevez commented 1 year ago

I have been adding Maia SDR to the v0.35 AntSDR image in this branch. In contrast to the Pluto, where all the ADI DMAs are removed to make room on the FPGA, in the AntSDR it is possible to place the Maia SDR IP core alongside all the ADI blocks, so it is possible to use Maia SDR and the AntSDR as an IIO device at the same time. Because of this, I don't see any real drawbacks to including Maia SDR in the official AntSDR firmware images. The only major difference is that with Maia SDR there are 400 MiB of DDR which are reserved by the IQ recorder. This should not be a problem for most users, because they aren't using that DDR space anyway. For users that need it, it is easy to delete the reserved memory in the device tree (and not use the Maia SDR IQ recorder).

I was wondering what are your thoughts about upstreaming the changes I have done and incorporating them in the official MicroPhase images.

At the moment I have SD card images working for the E310 and E200. The only issue I have found with these is that ssh doesn't work correctly. This issue is unrelated to Maia SDR, and is also present in the v0.35 base image. I have reported this in #11. I haven't tested the QSPI images yet, but will do so to ensure that they work as they should.

Another important comment is that I'm using the maia-sdr-devel Docker image to build these images. This contains Vivado 2021.2 and Vitis 2021.2 (which is used as the gcc toolchain). Using the same docker image and Vivado version to build all the firmware images of the SDRs supported by Maia SDR simplifies things (specially since Vivado installations are pretty large). This is the reason why I have taken the v0.35 AntSDR firmware as a starting point instead of v0.34, since the Vivado version it requires is closer to what I'm using for the other SDRs.

It is important to point out that the Maia SDR Pluto and Pluto+ firmwares are based on the v0.37 version of the ADI firmware. This is based on Vivado 2021.2 and uses the builtin buildroot toolchain with uclibc. Two days ago, version v0.38 of the ADI firmware came out. This is now based on Vivado 2022.2. I am going to move the Maia SDR images for Pluto and Pluto+ to this base version. I think it would be strategic for you to update the AntSDR firmware to version v0.38 as well. That would simplify things and possibly solve the ssh bug I found.

lone-boy commented 1 year ago

OK, we will make a v0.38 version of pluto firmware as soon as possible.

daniestevez commented 11 months ago

I have released a new Maia SDR firmware based on the v0.38 branch. https://github.com/maia-sdr/antsdr-fw-patch/releases/tag/v0.38-maia-sdr-beta

This is pending more beta testing by the community, but during my initial tests I haven't found any issues. Everything seems to work.

This seems a suitable version to upstream. The only thing that would be needed to upstream this is to bring in this commit https://github.com/maia-sdr/antsdr-fw-patch/commit/410ddf373067722b05fa5a8cec041b2e59c4293b

ohault commented 2 days ago

Hello, what is the current status update since last year?

daniestevez commented 2 days ago

The only news from my side is that on October 15, analogdevicesinc/plutosdr-fw released a new version v0.39 that uses Vivado 2023.2 instead of 2022. The latest maia-sdr/plutosdr-fw, maia-sdr-v0.8.0, which was released yesterday is now based on this v0.39 and requires Vivado 2023.2. Therefore, the work I did for antsdr-fw-patch based on v0.38 (and the v0.38 branch of antsdr-fw-patch) is now outdated.

This is all I can say, since I haven't received any feedback from @MicroPhase regarding upstreaming this, and no one from the community has volunteered to maintain a Maia SDR firmware for the AntSDR independently of MicroPhase, so the maia-sdr/antsdr-fw-patch is currently unmaintained and hasn't been updated to newer Maia SDR releases.