1 |
20 |
wfjm |
# $Id: w11a_os_guide.txt 511 2013-04-27 13:51:46Z mueller $
|
2 |
4 |
wfjm |
|
3 |
5 |
wfjm |
Guide to run operating system images on w11a systems
|
4 |
|
|
|
5 |
|
|
Table of content:
|
6 |
|
|
|
7 |
|
|
1. I/O emulation setup
|
8 |
|
|
2. FPGA Board setup
|
9 |
|
|
3. Unix V5 system
|
10 |
|
|
4. 2.11BSD system
|
11 |
|
|
|
12 |
|
|
|
13 |
4 |
wfjm |
1. I/O emulation setup ----------------------------------------------------
|
14 |
|
|
|
15 |
|
|
All UNIBUS peripherals which exchange data (currently DL11, LP11, PC11, RK11)
|
16 |
20 |
wfjm |
are currently emulated via a backend process. The communication between
|
17 |
|
|
FPGA board and backend server can be via
|
18 |
4 |
wfjm |
|
19 |
20 |
wfjm |
- Serial port
|
20 |
|
|
- via direct (/dev/ttySx) or via a USB-RS232 adapter. A direct connection
|
21 |
|
|
is limited to 115k Baud on most PCs, while a connection via a USB-RS232
|
22 |
|
|
adapter was tested up to 460k Baud. A USB-RS232 adapter is thus highly
|
23 |
|
|
recommended
|
24 |
|
|
- via integrated USB-RS232 adapter, like on nexys3 board. This is much
|
25 |
|
|
faster, allows bitrates up to 2 M Baud.
|
26 |
|
|
|
27 |
|
|
Notes: - A USB-RS232 cable with a Prolific Technology PL2303 chip simply
|
28 |
|
|
never gave reliable connections for higher Baud rates.
|
29 |
|
|
- A USB-RS232 cable with a FTDI FT232R chip, like the cable offered
|
30 |
|
|
by FTDI as US232R-100 worked fine.
|
31 |
|
|
- On older linux kernels (prior 2.6.32) it is essential to set the
|
32 |
|
|
latency timer for the FTDI USB-RS232 cable to 1 ms (from the
|
33 |
|
|
power up default of 16 ms), e.g. with
|
34 |
|
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
35 |
|
|
For linux kernel 2.6.32 or newer the default is 1 ms already.
|
36 |
|
|
- The rest assumes that a USB-RS232 cable with FTDI chip is used
|
37 |
|
|
- A 460k Baud connection gives in practice a disk throughput of
|
38 |
|
|
about 20 kB/s. This allows to test the system but is a bit slow
|
39 |
|
|
to real usage. In an OS with good disk caching like 2.11BSD the
|
40 |
|
|
impact of such a 'slow disk' is actually smaller than the bare
|
41 |
|
|
numbers suggest.
|
42 |
4 |
wfjm |
|
43 |
20 |
wfjm |
- Direct USB connection using a Cypress FX2 USB controller
|
44 |
|
|
- is supported on the nexys2 and nexys3 FPGA boards
|
45 |
|
|
- clearly much faster than serial port connections
|
46 |
|
|
- also allows to configure the FPGA over the same USB connection
|
47 |
4 |
wfjm |
|
48 |
|
|
2. FPGA Board setup -------------------------------------------------------
|
49 |
|
|
|
50 |
20 |
wfjm |
- Using serial port
|
51 |
|
|
- for s3board and nexys2
|
52 |
|
|
- connect the USB-RS232 cable to the RS232 port of the s3board or nexys2
|
53 |
|
|
- for kernel < 2.6.32: set the latency timer of the USB-RS232, e.g. with
|
54 |
|
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
55 |
|
|
- ensure that all 8 switches are in the indicated positions (SWI=...)
|
56 |
|
|
- load the w11a design into the FPGA, e.g. via impact
|
57 |
|
|
- for nexys3
|
58 |
|
|
- connect USB cable to the 'usb uart' port (next to the 5 buttons)
|
59 |
|
|
- ensure that all 8 switches are in the indicated positions (SWI=...)
|
60 |
|
|
- load the w11a design into the FPGA, e.g. via impact
|
61 |
4 |
wfjm |
|
62 |
20 |
wfjm |
- Using Cypress FX2 USB controller
|
63 |
|
|
- for nexys2
|
64 |
|
|
- connect USB cable to mini-USB connector (between RS232 and PS/2 port)
|
65 |
|
|
! Must be connected to a USB port able to deliver 500 mA !
|
66 |
15 |
wfjm |
|
67 |
4 |
wfjm |
3. Unix V5 system ---------------------------------------------------------
|
68 |
|
|
|
69 |
|
|
- A disk set is available from
|
70 |
18 |
wfjm |
http://www.retro11.de/data/oc_w11/unix_v5_rkset.tgz
|
71 |
4 |
wfjm |
Download, unpack and copy the disk images (*.dsk) to
|
72 |
|
|
$RETROBASE/rtl/sys_gen/w11a/tb
|
73 |
|
|
|
74 |
20 |
wfjm |
- Using old (pi_rri) backend server (serial port only)
|
75 |
4 |
wfjm |
|
76 |
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
77 |
|
|
telnet_starter -d DL0 &
|
78 |
20 |
wfjm |
|
79 |
16 |
wfjm |
[for s3,n2:]
|
80 |
|
|
SWI = 00000010
|
81 |
|
|
dorri -u0,460,1,2 @uv5_boot.pcmd
|
82 |
|
|
[for n3:]
|
83 |
|
|
SWI = 00000010
|
84 |
|
|
dorri -u0,2000,1,2 @uv5_boot.pcmd
|
85 |
4 |
wfjm |
|
86 |
20 |
wfjm |
- Using new (ti_rri) backend server (serial and fx2 supported)
|
87 |
|
|
|
88 |
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
89 |
|
|
telnet_starter -d DL0 &
|
90 |
|
|
|
91 |
|
|
[for s3,n2 over serial:]
|
92 |
|
|
SWI = 00000010
|
93 |
|
|
torri -tu0,460k,break,xon @uv5_boot.tcl
|
94 |
|
|
[for n3 over serial:]
|
95 |
|
|
SWI = 00000010
|
96 |
|
|
torri -tu0,2M,break,xon @uv5_boot.tcl
|
97 |
|
|
|
98 |
|
|
[for n2,n3 over fx2:]
|
99 |
|
|
SWI = 00000100
|
100 |
|
|
torri -u @uv5_boot.tcl
|
101 |
|
|
|
102 |
4 |
wfjm |
- the boot dialog in the console xterm window will look like
|
103 |
|
|
(required input is in {..}, with {} denoting a carriage return:
|
104 |
|
|
|
105 |
|
|
@{unix}
|
106 |
|
|
|
107 |
|
|
login: {root}
|
108 |
|
|
|
109 |
|
|
Now you are at the shell prompt and can excercise the system, e.g.
|
110 |
|
|
|
111 |
|
|
# {ls -al}
|
112 |
|
|
total 62
|
113 |
|
|
drwxr-xr-x 9 bin 160 Jan 29 16:14 .
|
114 |
|
|
drwxr-xr-x 9 bin 160 Jan 29 16:14 ..
|
115 |
|
|
drwxr-xr-x 2 bin 944 Nov 26 18:13 bin
|
116 |
|
|
drwxr-xr-x 2 bin 80 Nov 26 18:13 dev
|
117 |
|
|
drwxr-xr-x 2 bin 240 Mar 21 12:07 etc
|
118 |
|
|
drwxr-xr-x 2 bin 224 Nov 26 18:13 lib
|
119 |
|
|
drwxr-xr-x 2 bin 32 Nov 26 18:13 mnt
|
120 |
|
|
drwxrwxrwx 2 bin 32 Nov 26 18:13 tmp
|
121 |
|
|
-rwxrwxrwx 1 bin 25802 Mar 21 12:07 unix
|
122 |
|
|
drwxr-xr-x 14 bin 224 Nov 26 18:13 usr
|
123 |
|
|
|
124 |
|
|
There is no 'halt' or 'shutdown' command, just ^D out of the server
|
125 |
|
|
session. The disks aren't cached, so no need to sync either.
|
126 |
|
|
|
127 |
|
|
4. 2.11BSD system ---------------------------------------------------------
|
128 |
|
|
- A disk set is available from
|
129 |
18 |
wfjm |
http://www.retro11.de/data/oc_w11/211bsd_rkset.tgz
|
130 |
4 |
wfjm |
Download, unpack and copy the disk images (*.dsk) to
|
131 |
|
|
$RETROBASE/rtl/sys_gen/w11a/tb
|
132 |
|
|
|
133 |
20 |
wfjm |
- Using old (pi_rri) backend server (serial port only)
|
134 |
4 |
wfjm |
|
135 |
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
136 |
|
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
137 |
|
|
telnet_starter -d DL0 &
|
138 |
|
|
telnet_starter -d DL1 &
|
139 |
20 |
wfjm |
|
140 |
16 |
wfjm |
[for s3,n2:]
|
141 |
|
|
SWI = 00000010
|
142 |
|
|
dorri -u0,460,1,2 @211bsd_rk_boot.pcmd
|
143 |
|
|
[for n3:]
|
144 |
|
|
SWI = 00000010
|
145 |
|
|
dorri -u0,2000,1,2 @211bsd_rk_boot.pcmd
|
146 |
4 |
wfjm |
|
147 |
20 |
wfjm |
- Using new (ti_rri) backend server (serial and fx2 supported)
|
148 |
|
|
|
149 |
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
150 |
|
|
telnet_starter -d DL0 &
|
151 |
|
|
|
152 |
|
|
[for s3,n2 over serial:]
|
153 |
|
|
SWI = 00000010
|
154 |
|
|
torri -tu0,460k,break,xon @211bsd_rk_boot.tcl
|
155 |
|
|
[for n3 over serial:]
|
156 |
|
|
SWI = 00000010
|
157 |
|
|
torri -tu0,2M,break,xon @211bsd_rk_boot.tcl
|
158 |
|
|
|
159 |
|
|
[for n2,n3 over fx2:]
|
160 |
|
|
SWI = 00000100
|
161 |
|
|
torri -u @211bsd_rk_boot.tcl
|
162 |
|
|
|
163 |
4 |
wfjm |
- the boot dialog in the console xterm window will look like
|
164 |
|
|
(required input is in {..}, with {} denoting a carriage return:
|
165 |
|
|
|
166 |
|
|
70Boot from rk(0,0,0) at 0177404
|
167 |
|
|
: {}
|
168 |
|
|
: rk(0,0,0)unix
|
169 |
|
|
Boot: bootdev=03000 bootcsr=0177404
|
170 |
|
|
|
171 |
|
|
2.11 BSD UNIX #26: Thu Jan 1 19:49:13 PST 2009
|
172 |
|
|
root@curly.2bsd.com:/usr/src/sys/RETRONFPRK
|
173 |
|
|
|
174 |
|
|
phys mem = 3932160
|
175 |
|
|
avail mem = 3577856
|
176 |
|
|
user mem = 307200
|
177 |
|
|
|
178 |
|
|
January 4 16:45:33 init: configure system
|
179 |
|
|
|
180 |
|
|
dz ? csr 160100 vector 310 skipped: No CSR.
|
181 |
|
|
lp 0 csr 177514 vector 200 attached
|
182 |
|
|
rk ? csr 177400 vector 220 didn't interrupt.
|
183 |
|
|
rl ? csr 174400 vector 160 skipped: No CSR.
|
184 |
|
|
tm ? csr 172520 vector 224 skipped: No CSR.
|
185 |
|
|
xp ? csr 176700 vector 254 skipped: No CSR.
|
186 |
|
|
cn 1 csr 176500 vector 300 attached
|
187 |
|
|
erase, kill ^U, intr ^C
|
188 |
|
|
|
189 |
|
|
In first '#' prompt the system is in single-user mode. Just enter a ^D
|
190 |
|
|
to continue the system startup to multi-user mode:
|
191 |
|
|
|
192 |
|
|
#^D
|
193 |
|
|
checking quotas: done.
|
194 |
|
|
Assuming non-networking system ...
|
195 |
|
|
checking for core dump...
|
196 |
|
|
preserving editor files
|
197 |
|
|
clearing /tmp
|
198 |
|
|
standard daemons: update cron accounting.
|
199 |
|
|
starting lpd
|
200 |
|
|
starting local daemons:Sun Jan 4 16:46:37 PST 2009
|
201 |
|
|
January 4 16:46:37 init: kernel security level changed from 0 to 1
|
202 |
|
|
January 4 16:46:40 getty: /dev/tty01: Device not configured
|
203 |
20 |
wfjm |
...
|
204 |
4 |
wfjm |
|
205 |
|
|
2.11 BSD UNIX (curly.2bsd.com) (console)
|
206 |
|
|
|
207 |
|
|
login: {root}
|
208 |
|
|
erase, kill ^U, intr ^C
|
209 |
|
|
|
210 |
|
|
Now the system is in multi-user mode, daemons runnng. You can explore
|
211 |
|
|
the system, e.g. with a 'pstat -T' or a 'mount' command. At end is
|
212 |
|
|
important to shutdown properly with a 'halt':
|
213 |
|
|
|
214 |
|
|
# {pstat -T}
|
215 |
|
|
7/186 files
|
216 |
|
|
39/208 inodes
|
217 |
|
|
11/150 processes
|
218 |
|
|
6/ 46 texts active, 28 used
|
219 |
|
|
2/135 swapmap entries, 366 kB used, 2069 kB free, 2063 kB max
|
220 |
|
|
33/150 coremap entries, 2960 kB free, 2867 kB max
|
221 |
|
|
1/ 10 ub_map entries, 10 free, 10 max
|
222 |
|
|
# {mount}
|
223 |
|
|
/dev/rk0h on /
|
224 |
|
|
/dev/rk2h on /tmp
|
225 |
|
|
/dev/rk3h on /bin
|
226 |
|
|
/dev/rk4h on /usr
|
227 |
|
|
# {halt}
|
228 |
|
|
syncing disks... done
|
229 |
|
|
halting
|
230 |
|
|
|
231 |
20 |
wfjm |
Now the server process can be stopped with ^D.
|