[HN Gopher] Learning about PCI-e: Driver and DMA
___________________________________________________________________
Learning about PCI-e: Driver and DMA
Author : todsacerdoti
Score : 140 points
Date : 2024-07-27 10:55 UTC (12 hours ago)
(HTM) web link (blog.davidv.dev)
(TXT) w3m dump (blog.davidv.dev)
| deivid wrote:
| The end goal in this series is to use an FPGA to build a display
| adapter, I've gotten a Tang Mega 138k [0] to start the process
| but there is not a lot of documentation, so it is taking a while
|
| If you got recommendations for other (cheap) FPGA boards with
| PCI-e hard IP, do let me know.
|
| [0]: https://wiki.sipeed.com/hardware/en/tang/tang-
| mega-138k/mega...
| kvemkon wrote:
| Screamer PCIe Squirrel for 159 Euro (w/o tax) using Xilinx
| Artix XC7A35T (according photo). But it has only one high-speed
| external interface: USB 3.1 Gen 1.
|
| https://shop.lambdaconcept.com/home/50-screamer-pcie-squirre...
|
| Litefury, Xilinx Artix FPGA kit in "NVMe SSD" form factor (2280
| Key M) for 102 Euro using Xilinx XC7A100T. It has only few
| external high-speed LVDS I/O.
|
| https://rhsresearch.com/collections/rhs-public/products/lite...
| deivid wrote:
| The screamer looks interesting, using Displayport Alt mode
| could work!
| nereye wrote:
| The ULX4M boards are not available yet but seem to support
| both PCIe as well as digital video:
|
| https://kitspace.org/boards/github.com/intergalaktik/ulx4m/
|
| Done by the same team who did the ULX3S.
| namibj wrote:
| Actually not, it's wired via a FT601. However, that's not
| saying it can't be useful.
|
| E.g. you could make it behave like a UVC-type USB3 webcam
| for the video output.
| mng2 wrote:
| The Litefury/Nitefury/Acorn design has enough I/O for an HDMI
| output. I've designed a little board with a buffer:
|
| https://github.com/mng2/AcornHDMI
|
| Even with the fastest speed grade Artix, 1080p output is
| technically out of spec, but it seems to work OK.
|
| As you might guess I had/have my own ambitions of making a
| video card. The software side has been a source of dread for
| me, but with OP's tutorials I may have enough guidance to get
| back to it.
| kvemkon wrote:
| Now I'm recalling, there are also cheap ready PCIe FPGA based
| products but for video recording:
|
| - Spartan 6
| https://www.blackmagicdesign.com/products/decklink/techspecs...
|
| - Artix
| https://www.blackmagicdesign.com/products/decklink/techspecs...
|
| - Artix
| https://www.blackmagicdesign.com/products/decklink/techspecs...
|
| - Artix
| https://www.blackmagicdesign.com/products/decklink/techspecs...
| KeplerBoy wrote:
| These seem to be ready made products opposed to devkits. Can
| the FPGAs be easily reprogrammed?
| tadfisher wrote:
| FPGAs usually need their bitstream (analogous to firmware)
| loaded after power-on, so either there is a flash chip on
| the device that contains it, or it is loaded over the PCI
| bus from the host machine via a software driver. Either way
| you'll likely need to reverse-engineer and modify the
| firmware and host-side device driver. There are often
| better choices, such as dev boards, to play around with
| FPGAs.
| 15155 wrote:
| I would definitely use Xilinx over anything else here - Vivado
| isn't "great" by any pro-SWE's standard of tooling, but is
| absolutely best-in-class for FPGA development and
| implementation.
|
| The Xilinx PCIe device path is pretty well-trodden.
| deivid wrote:
| Any dev kit you can buy in the low hundreds? I thought the
| UltraScale was in the low _thousands_
| loeg wrote:
| This seems like a great intro to Linux PCIe device drivers. I've
| never worked with Linux device drivers but have worked with
| multiple PCIe drivers on a different operating system years ago,
| and the concepts look very familiar. Love to see more of this
| type of content in the world.
| tptacek wrote:
| I really, really like the way these articles flow, with just
| enough code to illustrate their point, and a gradual build. This
| is good stuff. I have never in my life wanted to make a new PCI
| device, but now I kind of do, which is like the acid test for
| good technical writing, right?
___________________________________________________________________
(page generated 2024-07-27 23:03 UTC)