Erlebnisbericht: Space Invaders auf Olimex GateMateA1-EVB von OpenBSD aus

dettus

Bicycle User
Juchu!
Endlich kann ich FPGA basteln von OpenBSD aus machen.

Genauer gesagt habe ich es geschafft, mit geringem Aufwand dieses Projekt hier zum Laufen zu bringen:


Auf dem hier:



Dazu musste ich mir fuenf Git-Projekte runterladen und kompilieren:

1. yosys https://github.com/yosyshq/yosys (Die Version in den ports ist leider zu alt :( )
2. Project Peppercorn https://github.com/YosysHQ/prjpeppercorn
3. NextPNR https://github.com/YosysHQ/nextpnr
4. openFPGAloader https://github.com/trabucayre/openFPGALoader
5. spaceinvaders-fpga https://gitlab.com/x653/spaceinvaders-fpga

ICH WEISS NICHT MEHR GENAU, WIE DAS NOCH WAR, ich glaube ich habe noch die libftdi,eigen3 und boost lib installieren muessen.


Als erstes habe ich nextpnr compiliert. Mit project Peppercorn als abhaengigkeit:
Code:
cd nextpnr
mkdir build
cd build
cmake .. -DARCH="himbaechel" -DHIMBAECHEL_UARCH="gatemate" -DHIMBAECHEL_PEPPERCORN_PATH=../../prjpeppercorn
make
doas make install

Danach in Project Peppercorn nochmal die libgm
Code:
cd prjpeppercorn/libgm
mkdir build
cd build
cmake ..
make
doas make install


Der openFPGAloader braucht ein wenig Patches
Code:
cd openFPGALoader
vi src/xvc_server.cpp

Da fehlt das include <sys/socket.h>

Code:
#include "xvc_server.hpp"

#include <arpa/inet.h>
#include <sys/socket.h>
#include <errno.h>
#include <netinet/tcp.h>
#include <unistd.h>

#include <cstring>
#include <stdexcept>

Dann :x! und

Code:
mkdir build
cd build
cmake ..
make
doas make install

Als letztes noch yosys. Das ist auch etwas pretitioes.

Code:
cd yosys
git submodule update --init
gmake
doas git config --global --add safe.directory `pwd`
doas git submodule update --init
doas gmake install


Aber dann gehts los:

Code:
cd spaceinvaders-fpga
vi Makefile

Da muss die Zeile mit dem TOOLCHAIN auskommentiert werden:

Code:
#TOOLCHAIN = /opt/oss-cad-suite/bin/
OFL       = $(TOOLCHAIN)openFPGALoader
NEXTPNR   = $(TOOLCHAIN)nextpnr-himbaechel
YOSYS     = $(TOOLCHAIN)yosys
GMPACK    = $(TOOLCHAIN)gmpack

dann synthetisieren und compilieren
Code:
make code.bin
make build
make upload

VGA-Monitor anschliessen, PS/2 Tastatur anschliessen, USB-C Kabel anschliessen, hochladen mit

Code:
doas make upload

und losballern.
 
NACHTRAG: Ich hatte Schwierigkeiten mit dem OpenFPGA.
Da kam immer die Fehlermeldung

Code:
fail to read data usb bulk read failed
JTAG init failed with: low level FTDI init failed

Die Loesung war auf jeden Fall die, dass ich uftdi* im Kernel deaktiviert habe:

Code:
config -e -f -o /bsd.test /bsd
disable uftdi*
disable uftdi0
disable uftdi1
quit

Dann habe ich den /bsd.test Kernel gebootet.
 
Zurück
Oben