MicroPhase / antsdr-fw-patch

Repository of antsdr firmware make
51 stars 21 forks source link

Upstreaming Maia SDR #12

Open daniestevez opened 10 months ago

daniestevez commented 10 months 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 10 months ago

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

daniestevez commented 9 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