[Pkg-electronics-devel] Bug#1028137: nextpnr: Support for more FPGA architectures (esp. ECP5)

Jonathan Neuschäfer j.neuschaefer at gmx.net
Sat Jun 24 11:35:12 BST 2023


[ Dropping the Debian mailing lists / bugtracker for now ]

On Tue, Jun 20, 2023 at 02:24:11PM +0200, Daniel Gröber wrote:
> Hi Jonathan,
>
> On Mon, Jun 19, 2023 at 08:12:04PM +0200, Jonathan Neuschäfer wrote:
> > > In the meantime I'm having a look at prjtrellis too, but since I don't have
> > > any testing hardware I was wondering if you'd be able to do testing once I
> > > finish packaging?
> >
> > Yes, I have a board, and I can do testing if I don't forget about it.
> > Feel free to ping me when the package is ready.
>
> Great. I've uploaded the packages to my testing archive you should be able
> to install nextpnr=0.6-2~dxld1 on unstable using this sources.list entry:
>
>     deb [signed-by=/etc/apt/dxld.asc] https://dxld.at/localdebs sid/
>
> You can get my gpg key from keyring.debian.org using
>
>     $ gpg --keyserver keyring.debian.org --recv-keys 57A1BF15B4F6F99B89EDB29FD39481AE1E79ACF7
>     $ gpg --export -a 57A1BF15B4F6F99B89EDB29FD39481AE1E79ACF7 | sudo tee /etc/apt/dxld.asc
>
> or from my website at
>
>     $ wget https://dxld.at/localdebs/dxld-localdebs.gpg -O- | sudo tee /etc/\
> apt/dxld.asc
>
> DSCs are also there if you prefer building from source. You'd need to build
> the following:
>
>     apycula_0.8.1+dfsg-1.dsc
>     prjtrellis_1.4-1.dsc
>     nextpnr_0.6-2~dxld1.dsc
>
> Thanks,
> --Daniel

Some notes:

prjtrellis:

- I tried to build it from source (using the tarballs, with dpkg-buildpackage),
  but it failed because it can't find version.cpp. After a dirty hack to ensure
  that version.cpp is present and usable, and unpacking the orig-database
  tarball to the right location, the package builds for me.


apycula:

- I think the source package name should rather be apicula (with 'i',
  not 'y'), which matches the upstream repo and readme.md. Apycula is
  the python binding, AFAIUI.
- The debian orig tarball contains a few GW1N*.pickle files (in the
  apycula subdirectory), that don't appear in the upstream git repo.
  They seem to be generated, and are later used in the nextpnr build, but it's
  unclear to me where they come from, where the source is.


nextpnr:

- debian/upstream/metadata: Some of the authors have updated names that
  should be used instead of the old names. As far as I can gather:
   - Myrtle Shah[1] (a.k.a. gatecat)
   - Claire Xenia Wolf[2] (a.k.a. Claire Xen)
- Because I removed the GWIN*.pickle files of unknown origin, I skipped the
  gowin targets.
- Building multiple times in the same source directory fails, override_dh_auto_clean needs a
  "rm -rf debian/nextpnr-*-qt-chipdb/usr/share/nextpnr/chipdb-*.bin" or similar.
  Or maybe upstream "make clean" needs to be fixed.
- Somehow the chipdb files are installed to /usr/share/nextpnr/chipdb-*.bin
  directly, while nextpnr expects them in per-arch subdirectories. As a quick
  work-around I'm symlinked the expected subdirectories to .


After all this, I've built a simple test design for ECP5 (OrangeCrab), and it worked!

Thanks for your work! I hope my comments help to improve it further :)


Best regards,
jn


[0]: Error message:
> CMake Error at CMakeLists.txt:136 (add_executable):
>   Cannot find source file:
>
>     /home/jn/dev/debian/nextpnr/prjtrellis-1.4/debian/build-x86_64-linux-gnu/generated/version.cpp
>
>   Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
>   .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
[1]: https://github.com/gatecat/
[2]: https://github.com/clairexen



More information about the Pkg-electronics-devel mailing list