diff --git a/doc/docker.md b/doc/docker.md deleted file mode 100644 index c277336..0000000 --- a/doc/docker.md +++ /dev/null @@ -1,130 +0,0 @@ -Upsilon docker development environment setup. - -# Dockerfile style guide - -Dockerfiles should be simple. The Dockerfiles should be readable to a -beginner. - -# Setup steps - -Do all of the following in the `build` folder. - -## Installing OpenFPGALoader - -Install [openFPGALoader][1]. If this program is not in your repositories, -run `make openFPGALoader` to fetch and build the program. This will install -openFPGALoader locally. - -Even if you install openFPGALoader locally, there are some files (udev rules) -that must be installed with administrative privleges. Check the documentation -for openFPGALoader. - -[1]: https://trabucayre.github.io/openFPGALoader/index.html - -## Setup Rootless Docker - -Docker allows you to run programs in containers, which are isolated -environments. Build environments can be set up automatically, and re-setup -whenever needed. - -If you have issues with docker, try adding to `~/.config/docker/daemon.json` - - { - "storage-driver": "fuse-overlayfs" - } - - -## Download and Install Python3 - -Install `python3` and `python3-pip`. - -## Clone External Repositories - -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 - -For `NAME` in `hardware`, `opensbi`, `buildroot`: - -1. Run `make $NAME-container` to build the container. You usually only need - to do this once. -2. If the container already exists, do `docker container start upsilon-$NAME`. -3. Run `make $NAME-copy` to copy Upsilon's code into the container. -4. Run `make $NAME-execute` to build the data. -5. Run `make $NAME-get` to retrieve the build artefacts. - -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`. - -## Launch TFTP Server - -Install py3tftp (`pip3 install --user py3tftp`). Then run `make tftp` to -launch the TFTP server. Keep this terminal open. - -## Flash FPGA - -Plug in your FPGA into the USB slot. If you have installed openFPGALoader -by your package manager, run `make OPENFPGALOADER=openfpgaloader flash`. -If you installed it using `make openFPGALoader`, then just run `make flash`. - -In a second you should see messages in the TFTP terminal. This means your -controller is sucessfully connected to your computer. - -## SSH Access - -Add the following to your SSH config: - - Host upsilon - HostName 192.168.1.50 - StrictHostKeyChecking no - UserKnownHostsFile /dev/null - IdentityFile upsilon_key - User root - LogLevel QUIET - -Then copy the file `build/upsilon_key` to `$HOME/.ssh`. - -When the FPGA is connected you can access it with `ssh upsilon` (password -`upsilon`). - -Wait about a minute for Linux to boot. - -## Launch FPGA Shell (Optional) - -If you cannot access the FPGA through SSH, you can launch a shell through -UART. - -You will need to install [LiteX](https://github.com/enjoy-digital/litex). -Download and run `litex_setup.py`. - -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 (username `root` password `upsilon`). - -## Copy Library - -Run `make copy` to copy the Micropython Upsilon library to the FPGA. After -this the modules `comm` and `mmio` are available when running scripts in -`/root`.