[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)