1
0
mirror of https://github.com/wfjm/w11.git synced 2026-01-20 18:27:20 +00:00
wfjm.w11/doc/INSTALL_quickstart.md

159 lines
5.3 KiB
Markdown

# Quick start Guide
This _quick start guide_ describes the fastest possible path to a running
operating system on a w11 on current Series-7 based boards. It leaves out
legacy Spartan-3 and Spartan-6 designs, verification, test benches, test
designs, and many other aspects, for all this consult the full
[INSTALL](INSTALL.md) and the READMEs in [doc](.). This write-up
focuses on the steps _[prepare](#user-content-prepare)_,
_[build](#user-content-build)_ and _[boot](#user-content-boot)_,
and gives one [concrete example](#user-content-tested).
### <a id="prepare">Prepare</a>
First all required software must be installed
- clone the w11 project, essentially
git clone https://github.com/wfjm/w11
for details see [INSTALL#download](INSTALL.md#user-content-download).
- ensure the packages required for the backend software are installed,
see [INSTALL#sysreq](INSTALL.md#user-content-sysreq), and that
Xilinx Vivado is installed.
- setup the shell environment,
see [INSTALL#envvar](INSTALL.md#user-content-envvar),
export RETROBASE=<install-dir>
export PATH=$PATH:$RETROBASE/tools/bin:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RETROBASE/tools/lib
export TCLINC=/usr/include/tcl8.6
export TCLLIBNAME=tcl8.6
export XTWV_PATH=<install-path-of-vivado>
setup the TCL environment,
see [INSTALL#build-tcl](INSTALL.md#user-content-build-tcl)
cd $HOME
ln -s $RETROBASE/tools/tcl/.tclshrc .
ln -s $RETROBASE/tools/tcl/.wishrc .
and ensure that USB `udev` rules for access and latency are setup,
see [tools/sys/README](../tools/sys/README.md).
- compile the backend software tools
cd $RETROBASE/tools/src
time make -j 4
cd $RETROBASE/tools/tcl
setup_packages
see [INSTALL#build-tools](INSTALL.md#user-content-build-tools).
### <a id="build">Build: generate bit file and configure FPGA</a>
All details of the Vivado implementation flow are encapsulated by the
[build system](README_buildsystem_Vivado.md) in a simple `make` command
cd $RETROBASE/rtl/sys_gen/w11a/<board>
time make sys_w11a_<btype>.bit
with the currently supported combinations
board btype memory Comment
cmoda7 c7 672 kB Digilent Cmod A7 board
arty_bram br_arty 176 kB Digilent Arty A7-35 board
basys3 b3 176 kB Digilent Basys3 board
nexys4d_bram br_n4d 512 kB Digilent Nexys4 board (DDR RAM)
nexys4 n4 3840 kB Digilent Nexys4 board (cellular RAM)
The FPGA is configured via the vivado hardware server with
make sys_w11a_<btype>.vconfig
### <a id="boot">Boot an operating system</a>
A variety of _oskits_ is provided under [tools/oskit](../tools/oskit).
The quick start guide describes only how to boot plain 2.11BSD. The
full featured [211bsd_rp](../tools/oskit/211bsd_rp/README.md) can be
used when more than 1024 kB memory is available, for systems with 512 to
1024 kB memory use the pruned down
[211bsd_rpmin](../tools/oskit/211bsd_rpmin/README.md).
For 2.11BSD with Ethernet, other OS and more details consult
[w11a_os_guide](w11a_os_guide.md).
Key steps are
- consult the README in the oskit directory and download the disk image files,
typically with a `wget` and `tar` command
- setup `vt100` emulator windows
cd $RETROBASE/tools/oskit/<oskit-name>
console_starter -d DL0 &
console_starter -d DL1 &
- configure the board switches _(important!!)_ and start the backend software
with the options as described in
[w11a_os_guide#rlink](w11a_os_guide.md#user-content-rlink), typically
cd $RETROBASE/tools/oskit/<oskit-name>
ti_w11 <options> @<oskit-name>_boot.tcl
Hit `<ENTER>` in the `DL0vt100` console window to connect, than follow
the expected startup sequence on the console `DL0vt100` is described in the
README in the oskit directory.
### <a id="tested">Concrete test run</a>
The recipe was tested
- system environment
- Kubuntu 16.04 LTS
- Vivado 2017.1
- on 2018-08-04
- after commit [6ee3ed6](https://github.com/wfjm/w11/commit/6ee3ed6)
cd $RETROBASE/tools/src
time make -j 4
# real 2m58.501s user 5m4.244s sys 0m35.600s
- for design `nexys4`
cd $RETROBASE/rtl/sys_gen/w11a/nexys4
time make sys_w11a_n4.bit
# real 10m48.274s user 0m55.660s sys 0m3.160s
time make sys_w11a_n4.vconfig
# real 0m32.747s user 0m15.996s sys 0m0.736s
- for oskit `211bsd_rp`
- in linux terminal
cd $RETROBASE/tools/oskit/211bsd_rp
wget http://www.retro11.de/data/oc_w11/oskits/211bsd_rpset.tgz
tar -xzf 211bsd_rpset.tgz
console_starter -d DL0 &
console_starter -d DL1 &
# set board switches to SWI = 00000000 00101000
ti_w11 -tuD,12M,break,cts @211bsd_rp_boot.tcl
- in window `DL1vt100` hit `<ENTER>` to connect to backend, than see output and do required inputs as written in [README](../tools/oskit/211bsd_rp/README.md):
70Boot from xp(0,0,0) at 0176700
: {<CR>}
: xp(0,0,0)unix
Boot: bootdev=05000 bootcsr=0176700
...
# ^D
...
login: {root}
- when done with exploring 2.11BSD do proper system shutdown
- in 211bsd session type `shutdown`
- in ti_w11 session wait for `CPU attention` and `H:cpu0` prompt,
than exit with `^D`.