Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Introduce OpenFPGALoader programming tool #2240

Merged
merged 2 commits into from
Nov 3, 2021

Conversation

lpawelcz
Copy link
Contributor

@lpawelcz lpawelcz commented Aug 6, 2021

This PR introduces a new FPGA programming tool - OpenFPGALoader
It is addressing issue #2237
We are adding a note in the docs with a plan to add a full support for this tool in the future.

Signed-off-by: Paweł Czarnecki pczarnecki@antmicro.com

@probot-autolabeler probot-autolabeler bot added the type-docs Issue is related to documentation. label Aug 6, 2021
@lpawelcz
Copy link
Contributor Author

lpawelcz commented Aug 6, 2021

Hi @mithro!
I prepared some notes about the OpenFPGALoader (introduction, installation and usage guide) to the getting-started section of the docs. Please, have a look at this

@mithro
Copy link
Contributor

mithro commented Aug 6, 2021

Can you provide some feedback @umarcor ?

@mithro
Copy link
Contributor

mithro commented Aug 6, 2021

@acomodi - Any thoughts?

@mithro
Copy link
Contributor

mithro commented Aug 6, 2021

@kgugala - Any thoughts on if we can have programming tested using GitHub self hosted runners in the future?

@umarcor
Copy link
Contributor

umarcor commented Aug 7, 2021

Overall, I think that writing some docs about OpenFPGALoader is a good proposal. However, I'm unsure about writing that content in this repo/place. It took me some effort to find that it's going to be served in https://symbiflow.readthedocs.io/projects/arch-defs/en/latest/getting-started.html. The "About" in the sidebar points to https://symbiflow.github.io/, the first paragraph in the readme points to https://github.com/SymbiFlow/symbiflow-examples. It's only the shield/badge the one pointing to the arch-defs docs. Furthermore, this is no exclusive about "developers who want to contribute to architecture definitions" but for "any user or developer of symbiflow who needs to program/configure a board/device". Therefore, I recommend to have this content written in https://github.com/SymbiFlow/symbiflow-examples instead. It's ok to then cross-reference from here.

@@ -94,7 +94,93 @@ or for ``Ninja``:

.. note::

Loading the bitstream into an FPGA can be done outside of the Symbiflow with tools that support the target architecture, such as for example `Vivado` or `xc3sprog` for Xilinx 7-Series FPGAs or ``iceprog`` for Lattice iCE40.
Loading the bitstream into an FPGA can be done outside of the Symbiflow with tools that support the target architecture. A good example is `openFPGALoader` or others such as `Vivado` and `xc3sprog` for Xilinx 7-Series FPGAs or ``iceprog`` for Lattice iCE40.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend not to add references to other programming tools OR to do it "properly". With proper I mean something such as:

There are multiple tools for loading bitstreams into FPGA development boards. Typically, each tool supports an specific target family or the lines of products of a vendor. Some of the most known are the following:

  • Xilinx/Digilent's iMPACT, ChipScope, EDK, Hardware Manager, xc3sprog, etc.
  • Lattice's Standalone Programmer.
  • OpenOCD.
  • dfu-util.
  • Icestorm's iceprog.
  • IceSugar's icesprog.
  • Greg Davill's ecpprog.
  • fujprog for ULX2/ULX3.

Fortunately, since 2019, a universal utility named openFPGALoader is being developed, which aims to provide a replacement for most of those. It supports many different boards with FPGAs based on the architectures including xc7, ECP5, iCE40 and many more. It can utilize a variety of the programming adapters based on JTAG, DAP interface, ORBTrace, DFU and FTDI chips.

Moreover, that list might be contributed in https://github.com/hdl/constraints or as a section/tag in https://github.com/hdl/awesome, so that it could be just referenced from here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Installing OpenFPGALoader
*************************

The most reliable way of getting OpenFPGALoader installed on your computer is to
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think the most reliable way is building a tool from sources. openFPGALoader is available in several packaging solutions (such as containers or MSYS2, see https://github.com/hdl/packages; also hdl/conda-prog#22), and CI generates "nightly" packages (https://github.com/trabucayre/openFPGALoader/releases/tag/nightly). Therefore, I believe the docs in symbiflow should recommend using one of those pre-built solutions, if suitable.

Moreover, instructions about how to build and install openFPGALoader are better contributed in the openFPGALoader repo (https://github.com/trabucayre/openFPGALoader/blob/master/INSTALL.md), since that knowledge is not specific about SymbiFlow. It's ok to explain if some specific setting or variable needs to be used in the context of SymbiFLow.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mithro
Copy link
Contributor

mithro commented Aug 7, 2021

I would say from a SymbiFlow perspective the two programming tools we want to support are;
(a) OpenOCD
(b) OpenFPGALoader

I think all the other tools can be ignored and features added to (a) and (b) to cover anything missing.

Signed-off-by: Paweł Czarnecki <pczarnecki@antmicro.com>
Signed-off-by: Paweł Czarnecki <pczarnecki@antmicro.com>
@trabucayre
Copy link
Contributor

LGTM.
It make sense to refer to official doc for details and target here general usage and/or specificities.
Thanks

Copy link
Contributor

@mithro mithro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@mithro
Copy link
Contributor

mithro commented Oct 17, 2021

@kgugla - Can you check this and merge if you also think it looks good?

@mithro mithro requested a review from kgugala October 17, 2021 01:32
Copy link
Contributor

@kgugala kgugala left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type-docs Issue is related to documentation.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants