tftp
This commit is contained in:
parent
1447072d56
commit
ba9e146f91
5
Makefile
5
Makefile
|
@ -83,6 +83,11 @@ buildroot-clean:
|
|||
-docker container stop upsilon-buildroot
|
||||
-docker container rm upsilon-buildroot
|
||||
|
||||
###### TFTP
|
||||
|
||||
tftp:
|
||||
cd upsilon/boot && py3tftp --host 192.168.1.100 -p 6969 -v
|
||||
|
||||
###### External projects
|
||||
|
||||
clone: f4pga buildroot litex opensbi
|
||||
|
|
48
README.md
48
README.md
|
@ -1,5 +1,4 @@
|
|||
Upsilon docker development environment setup.
|
||||
Written by Peter McGoron.
|
||||
|
||||
# Setup steps
|
||||
|
||||
|
@ -38,18 +37,53 @@ Install `python3-venv` (or `python3-virtualenv`) and `python3-pip`.
|
|||
Run `make clone`. You may need to download the upsilon repositories
|
||||
and put them in the same folder as the Makefile.
|
||||
|
||||
## Setup Network
|
||||
|
||||
Plug in your router/switch to an ethernet port on your computer. If your
|
||||
computer is usually wired to the network, you will need another ethernet
|
||||
port (a PCI card is ideal, but a USB-Ethernet port works).
|
||||
|
||||
Set the ethernet port to static ip `192.168.1.100/24`, netmask 255.255.255.0,
|
||||
gateway `192.168.1.1`. Make sure this is not the default route. Make sure
|
||||
to adjust your firewall to allow traffic on the 192.168.1.0/24 range.
|
||||
|
||||
If your local network already uses the 192.168.1.0/24 range, then you must
|
||||
modify `upsilon/firmware/soc.py` to use different IPs. You must rebuild the
|
||||
SoC after doing this.
|
||||
|
||||
## Setup Images
|
||||
|
||||
Run `make images` to create all docker images.
|
||||
|
||||
## Setup and Run Containers
|
||||
|
||||
There are three containers: `hardware`, `buildroot`, and `opensbi`. For
|
||||
each of these:
|
||||
For `NAME` in `hardware`, `opensbi`, `buildroot`:
|
||||
|
||||
1. Run `make $NAME-container` to build the container.
|
||||
2. Run `make $NAME-container-copy` to copy Upsilon's code into the container.
|
||||
3. Run `make $NAME-container-execute` to build the data.
|
||||
4. Run `make $NAME-container-get` to retrieve the build artefacts.
|
||||
5. (Optionally) run `make $NAME-container-clean` to delete the container.
|
||||
2. Run `make $NAME-copy` to copy Upsilon's code into the container.
|
||||
3. Run `make $NAME-execute` to build the data.
|
||||
4. Run `make $NAME-get` to retrieve the build artefacts.
|
||||
5. (Optionally) run `make $NAME-clean` to delete the container.
|
||||
|
||||
If you do not delete the container you can run
|
||||
|
||||
make $NAME-copy $NAME-execute $NAME-get
|
||||
|
||||
when you need to rebuild. If you need shell access, run `make $NAME-shell`.
|
||||
|
||||
## Flash FPGA
|
||||
|
||||
Plug in your FPGA into the USB slot. Then run
|
||||
|
||||
openFPGALoader -c digilent upsilon/boot/digilent_arty.bit
|
||||
|
||||
## Launch TFTP Server
|
||||
|
||||
Install py3tftp (`pip3 install --user py3tftp`). Then run `make tftp` to
|
||||
launch the TFTP server. Keep this window open.
|
||||
|
||||
## Launch FPGA Shell
|
||||
|
||||
Run `litex_term /dev/ttyUSB1`. You should get messages in the window with
|
||||
the TFTP server that the FPGA has connected to the server. Eventually you
|
||||
will get a login prompt: you have sucessfully loaded Upsilon onto your FPGA.
|
||||
|
|
Reference in New Issue