Slides: https://github.com/pdp7/talks/blob/master/lpc-bof-fpga.pdf
Links also in:
https://linuxplumbersconf.org/event/7/contributions/705/
Here are the links:
[1] https://github.com/enjoy-digital/litex
[2] https://github.com/litex-hub/linux/commits/litex-vexriscv-rebase/drivers
[3] https://github.com/enjoy-digital/litex
[4] https://lkml.org/lkml/2020/6/4/303
[5] https://groups.google.com/d/msg/linux-litex/fJLlcsuBibY/3vP8_7nGAwAJ
[6] https://gitlab.freedesktop.org/mupuf/litedip/
[7] https://mupuf.org/blog/2020/06/09/FPGA-why-so-few-drivers/
Martin:
- we need to find a way to describe the hardware
- device tree works for something that is not discoverable
- device tree overlay could handle plugable modules
- alternative to DT: LiteDIP describes the hardware in a different way
- when we design SoC, Linux will be able to discover what IP is present and load the correct driver for that IP
jic (Jonathan Cameron):
- some devices like a power control chip will have various peripherals instantiate after it comes up
- this how MFD (multi-function device) works
- regmap should handle this use case
- the linux-litex thread said the overhead for regmap was 2 indirect calls
- jic and martin believe this is not a problem - there should be real data that shows there is a performance problem
- regmap can indicate le or be
jamie lokier:
- if regmap performance is bad, run time patching could be used
Martin Peres:
- I am interested in hotplugging for LiteX perihperals that is available of USB or PCIe
- issue with USB and PCIe, vendor and product id... would need new ID for each verison of LiteX device?
- use the buses
Jason Sidebottom:
- there is a project that provides VID/PID for open source projects
jic:
- the non-discoverable children could be under a MFD, depends on your discoveribliity
Jason Sidebottom:
- we need to avoid having many different driver versions for similar IP, like a UART
Martin:
- every hardware IP block would have a version number
- but CSR are not "free" in terms of hw resources
- 32-bit should be enough
jic:
- create git repo to track LiteX module version numbers
- TODO: Drew should bring this idea to Flourent who created LiteX
Rich Persaud
- Is there a requirement for such devices to be accessible to virtual machines, e.g. via virtio?
- (Drew: here was discussion of this on litex github issues and linux-litex mailing list)