Line 1... |
Line 1... |
# $Id: w11a_os_guide.txt 511 2013-04-27 13:51:46Z mueller $
|
# $Id: w11a_os_guide.txt 518 2013-05-12 16:45:02Z mueller $
|
|
|
Guide to run operating system images on w11a systems
|
Guide to run operating system images on w11a systems
|
|
|
Table of content:
|
Table of content:
|
|
|
1. I/O emulation setup
|
1. I/O emulation setup
|
2. FPGA Board setup
|
2. FPGA Board setup
|
3. Unix V5 system
|
3. Rlink and Backend Server setup
|
4. 2.11BSD system
|
4. simh simulator setup
|
|
5. oskits
|
|
a. Unix systems
|
|
b. DEC operating systems
|
|
|
1. I/O emulation setup ----------------------------------------------------
|
1. I/O emulation setup ----------------------------------------------------
|
|
|
All UNIBUS peripherals which exchange data (currently DL11, LP11, PC11, RK11)
|
All UNIBUS peripherals which exchange data (currently DL11, LP11, PC11, RK11)
|
are currently emulated via a backend process. The communication between
|
are currently emulated via a backend process. The communication between
|
FPGA board and backend server can be via
|
FPGA board and backend server can be via
|
|
|
|
- Direct USB connection using a Cypress FX2 USB controller
|
|
- is supported on the nexys2 and nexys3 FPGA boards
|
|
- much faster than serial port connections (see below)
|
|
- also allows to configure the FPGA over the same USB connection
|
|
|
- Serial port
|
- Serial port
|
- via direct (/dev/ttySx) or via a USB-RS232 adapter. A direct connection
|
- via direct (/dev/ttySx) or via a USB-RS232 adapter. A direct connection
|
is limited to 115k Baud on most PCs, while a connection via a USB-RS232
|
is limited to 115k Baud on most PCs, while a connection via a USB-RS232
|
adapter was tested up to 460k Baud. A USB-RS232 adapter is thus highly
|
adapter was tested up to 460k Baud. A USB-RS232 adapter is thus highly
|
recommended
|
recommended
|
- via integrated USB-RS232 adapter, like on nexys3 board. This is much
|
- via integrated USB-RS232 adapter, like on nexys3 board. This is much
|
faster, allows bitrates up to 2 M Baud.
|
faster, allows bitrates up to 2 M Baud.
|
|
|
Notes: - A USB-RS232 cable with a Prolific Technology PL2303 chip simply
|
Notes: - A USB-RS232 cable with a FTDI FT232R chip, like the cable offered
|
|
by FTDI as US232R-100 works fine.
|
|
- A USB-RS232 cable with a Prolific Technology PL2303 chip simply
|
never gave reliable connections for higher Baud rates.
|
never gave reliable connections for higher Baud rates.
|
- A USB-RS232 cable with a FTDI FT232R chip, like the cable offered
|
|
by FTDI as US232R-100 worked fine.
|
|
- On older linux kernels (prior 2.6.32) it is essential to set the
|
|
latency timer for the FTDI USB-RS232 cable to 1 ms (from the
|
|
power up default of 16 ms), e.g. with
|
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
|
For linux kernel 2.6.32 or newer the default is 1 ms already.
|
|
- The rest assumes that a USB-RS232 cable with FTDI chip is used
|
- The rest assumes that a USB-RS232 cable with FTDI chip is used
|
- A 460k Baud connection gives in practice a disk throughput of
|
- A 460k Baud connection gives in practice a disk throughput of
|
about 20 kB/s. This allows to test the system but is a bit slow
|
about 20 kB/s. This allows to test the system but is a bit slow
|
to real usage. In an OS with good disk caching like 2.11BSD the
|
to real usage. In an OS with good disk caching like 2.11BSD the
|
impact of such a 'slow disk' is actually smaller than the bare
|
impact of such a 'slow disk' is actually smaller than the bare
|
numbers suggest.
|
numbers suggest.
|
|
- On older linux kernels (prior 2.6.32) it is essential to set the
|
- Direct USB connection using a Cypress FX2 USB controller
|
latency timer for the FTDI USB-RS232 cable to 1 ms (from the
|
- is supported on the nexys2 and nexys3 FPGA boards
|
power up default of 16 ms), e.g. with
|
- clearly much faster than serial port connections
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
- also allows to configure the FPGA over the same USB connection
|
For linux kernel 2.6.32 or newer the default is 1 ms already.
|
|
|
2. FPGA Board setup -------------------------------------------------------
|
2. FPGA Board setup -------------------------------------------------------
|
|
|
- Using serial port
|
- Using Cypress FX2 USB controller for configuration and rlink communication
|
|
- for nexys2
|
|
- connect USB cable to mini-USB connector (between RS232 and PS/2 port)
|
|
- for nexys3
|
|
- connect USB cable to micro-USB connector labeled 'USB PROG'
|
|
|
|
- Using serial port for rlink communication
|
- for s3board and nexys2
|
- for s3board and nexys2
|
- connect the USB-RS232 cable to the RS232 port of the s3board or nexys2
|
- connect the USB-RS232 cable to the RS232 port
|
- for kernel < 2.6.32: set the latency timer of the USB-RS232, e.g. with
|
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
|
- ensure that all 8 switches are in the indicated positions (SWI=...)
|
|
- load the w11a design into the FPGA, e.g. via impact
|
|
- for nexys3
|
- for nexys3
|
- connect USB cable to the 'usb uart' port (next to the 5 buttons)
|
- connect USB cable to the micro-USB connector 'UART'
|
- ensure that all 8 switches are in the indicated positions (SWI=...)
|
(next to the 5 buttons)
|
- load the w11a design into the FPGA, e.g. via impact
|
- connect a JTAG programmer (e.g. Xilinx USB Cable II) to JTAG pins
|
|
|
- Using Cypress FX2 USB controller
|
- Configure the FPGA
|
- for nexys2
|
- if Cypress FX2 port is connected load design with
|
- connect USB cable to mini-USB connector (between RS232 and PS/2 port)
|
make .jconfig
|
! Must be connected to a USB port able to deliver 500 mA !
|
- otherwise use impact with
|
|
make .iconfig
|
|
|
3. Unix V5 system ---------------------------------------------------------
|
3. Rlink and Backend Server setup -----------------------------------------
|
|
|
- A disk set is available from
|
All examples below use the same basic setup
|
http://www.retro11.de/data/oc_w11/unix_v5_rkset.tgz
|
|
Download, unpack and copy the disk images (*.dsk) to
|
|
$RETROBASE/rtl/sys_gen/w11a/tb
|
|
|
|
- Using old (pi_rri) backend server (serial port only)
|
- setup vt100 emulator windows
|
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
cd $RETROBASE/tools/oskit/
|
telnet_starter -d DL0 &
|
telnet_starter -d DL0 &
|
|
telnet_starter -d DL1 &
|
|
|
[for s3,n2:]
|
- setup rlink connection using ti_rri backend server via the ti_w11
|
SWI = 00000010
|
quick start wrapper script. Ensure that all 8 switches on the board
|
dorri -u0,460,1,2 @uv5_boot.pcmd
|
are in the indicated positions (SWI=...). The concrete boot script
|
[for n3:]
|
name is given in the following sections
|
SWI = 00000010
|
|
dorri -u0,2000,1,2 @uv5_boot.pcmd
|
|
|
|
- Using new (ti_rri) backend server (serial and fx2 supported)
|
|
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
[for n2,n3 over fx2:]
|
telnet_starter -d DL0 &
|
SWI = 00000100
|
|
ti_w11 -u @_boot.tcl
|
|
|
[for s3,n2 over serial:]
|
[for s3,n2 over serial:]
|
SWI = 00000010
|
SWI = 00000010
|
torri -tu0,460k,break,xon @uv5_boot.tcl
|
ti_w11 -tu0,460k,break,xon @_boot.tcl
|
[for n3 over serial:]
|
[for n3 over serial:]
|
SWI = 00000010
|
SWI = 00000010
|
torri -tu0,2M,break,xon @uv5_boot.tcl
|
ti_w11 -tu0,2M,break,xon @_boot.tcl
|
|
|
[for n2,n3 over fx2:]
|
4. simh simulator setup ---------------------------------------------------
|
SWI = 00000100
|
|
torri -u @uv5_boot.tcl
|
|
|
|
- the boot dialog in the console xterm window will look like
|
Sometimes it is good to compare the w11a behaviour with the PDP-11 software
|
(required input is in {..}, with {} denoting a carriage return:
|
emulator from the simh project (see http://simh.trailing-edge.com/).
|
|
|
@{unix}
|
Under $RETROBASE/tools/simh two setup files are provided with configure
|
|
simh to reflect the w11a setup as close as possible:
|
|
- setup_w11a_min.scmd
|
|
Very close the current w11a state when it runs on an S3BOARD
|
|
- processor: 11/70, no FPP, 1 Mbyte
|
|
- periphery: 2 DL11, LP11, RK11, PC11
|
|
- setup_w11a_max.scmd
|
|
Planned configuration for the w11a, in addition
|
|
- processor: 4 Mbyte memory (as on Nexys2, Nexys3,...)
|
|
- periphery: DZ11, RL11/RL02, RK70/RP06, TM11/TU10
|
|
|
login: {root}
|
Startup scripts are provided with each oskit. They call the w11a_max
|
|
configuration, so will show in the emulator what w11a can do when
|
|
finished.
|
|
|
Now you are at the shell prompt and can excercise the system, e.g.
|
All examples below use the same basic setup
|
|
|
# {ls -al}
|
|
total 62
|
|
drwxr-xr-x 9 bin 160 Jan 29 16:14 .
|
|
drwxr-xr-x 9 bin 160 Jan 29 16:14 ..
|
|
drwxr-xr-x 2 bin 944 Nov 26 18:13 bin
|
|
drwxr-xr-x 2 bin 80 Nov 26 18:13 dev
|
|
drwxr-xr-x 2 bin 240 Mar 21 12:07 etc
|
|
drwxr-xr-x 2 bin 224 Nov 26 18:13 lib
|
|
drwxr-xr-x 2 bin 32 Nov 26 18:13 mnt
|
|
drwxrwxrwx 2 bin 32 Nov 26 18:13 tmp
|
|
-rwxrwxrwx 1 bin 25802 Mar 21 12:07 unix
|
|
drwxr-xr-x 14 bin 224 Nov 26 18:13 usr
|
|
|
|
There is no 'halt' or 'shutdown' command, just ^D out of the server
|
|
session. The disks aren't cached, so no need to sync either.
|
|
|
|
4. 2.11BSD system ---------------------------------------------------------
|
|
- A disk set is available from
|
|
http://www.retro11.de/data/oc_w11/211bsd_rkset.tgz
|
|
Download, unpack and copy the disk images (*.dsk) to
|
|
$RETROBASE/rtl/sys_gen/w11a/tb
|
|
|
|
- Using old (pi_rri) backend server (serial port only)
|
- setup vt100 emulator window for 2nd DL11
|
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
cd $RETROBASE/tools/oskit/
|
sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
|
telnet_starter -d -s DL1 &
|
telnet_starter -d DL0 &
|
|
telnet_starter -d DL1 &
|
|
|
|
[for s3,n2:]
|
{Note: the -s ensures that the port numbers used by simh are taken!}
|
SWI = 00000010
|
|
dorri -u0,460,1,2 @211bsd_rk_boot.pcmd
|
|
[for n3:]
|
|
SWI = 00000010
|
|
dorri -u0,2000,1,2 @211bsd_rk_boot.pcmd
|
|
|
|
- Using new (ti_rri) backend server (serial and fx2 supported)
|
- start the simulator
|
|
|
cd $RETROBASE/rtl/sys_gen/w11a/tb
|
pdp11 _boot.scmd
|
telnet_starter -d DL0 &
|
|
|
|
[for s3,n2 over serial:]
|
5. oskits -----------------------------------------------------------------
|
SWI = 00000010
|
|
torri -tu0,460k,break,xon @211bsd_rk_boot.tcl
|
|
[for n3 over serial:]
|
|
SWI = 00000010
|
|
torri -tu0,2M,break,xon @211bsd_rk_boot.tcl
|
|
|
|
[for n2,n3 over fx2:]
|
Ready to be used 'oskits' are provided under
|
SWI = 00000100
|
$RETROBASE/tools/oskit/
|
torri -u @211bsd_rk_boot.tcl
|
|
|
The tarballs with the disk images are provided from a web server
|
|
and have to be installed separately.
|
|
|
|
5a. Unix systems -----------------------------------------------------
|
|
|
|
Legal and license issues:
|
|
|
|
Ancient UNIX systems for the PDP-11 can now be freely used under the
|
|
'Caldera license'. 2.11BSD was released 1992 under the 4 clause BSD
|
|
license. Taken together
|
|
|
|
- Unix V1 to V7
|
|
- all BSD Unix versions for PDP-11
|
|
|
|
can be freely distributed and used for non-commercial purposes.
|
|
|
|
Two oskits are currently provided:
|
|
|
|
- unix-v5_rk: Unix V5 System on RK05
|
|
- 211bsd_rk: 2.11BSD system on RK05
|
|
|
|
For further details consult the README_set.txt file in the
|
|
oskit directory.
|
|
|
|
5b. DEC operating systems --------------------------------------------
|
|
|
|
Legal and license issues:
|
|
|
|
Unfortunately there is no general hobbyist license for DEC operating
|
|
systems for PDP-11 computers. The 'Mentec license' commonly understood
|
|
to cover the some older versions of DEC operating systems, for example
|
|
- RT-11 V5.3 or prior
|
|
- RSX-11M V4.3 or prior
|
|
- RSX-11M PLUS V3.0 or prior
|
|
on software simulators, most notably on the 'simh' suite.
|
|
|
|
HOWEVER: THIS LICENSE DOES NOT COVER THE USAGE OF THESE HISTORIC DEC
|
|
OPERATING SYSTEMS ON ANY 'REAL HARDWARE' IMPLEMENTATION OF A
|
|
PDP-11. SO USAGE ON THE W11 IS *NOT* COVERED BY THE
|
|
'Mentec-license'.
|
|
|
|
Some oskits are provided with systems sysgen'ed to run on a configuration
|
|
like the w11a.
|
|
|
|
- Feel free to explore them with the simh simulator.
|
|
The boot scripts for simh are included ( .simh )
|
|
|
|
- In case you happen to have a valid license feel free to try them
|
|
out the W11A and let the author know whether is works as it should.
|
|
For convenience the boot scripts are also included ( .tcl ).
|
|
|
- the boot dialog in the console xterm window will look like
|
Three oskits are currently provided
|
(required input is in {..}, with {} denoting a carriage return:
|
|
|
|
70Boot from rk(0,0,0) at 0177404
|
- rsx11m-31_rk: RSX-11M V3.1 on RK05
|
: {}
|
- rsx11m-40_rk: RSX-11M V4.0 on RK05
|
: rk(0,0,0)unix
|
- rt11-40_rk: RT-11 V4.0 on RK05
|
Boot: bootdev=03000 bootcsr=0177404
|
|
|
|
2.11 BSD UNIX #26: Thu Jan 1 19:49:13 PST 2009
|
|
root@curly.2bsd.com:/usr/src/sys/RETRONFPRK
|
|
|
|
phys mem = 3932160
|
|
avail mem = 3577856
|
|
user mem = 307200
|
|
|
|
January 4 16:45:33 init: configure system
|
|
|
|
dz ? csr 160100 vector 310 skipped: No CSR.
|
|
lp 0 csr 177514 vector 200 attached
|
|
rk ? csr 177400 vector 220 didn't interrupt.
|
|
rl ? csr 174400 vector 160 skipped: No CSR.
|
|
tm ? csr 172520 vector 224 skipped: No CSR.
|
|
xp ? csr 176700 vector 254 skipped: No CSR.
|
|
cn 1 csr 176500 vector 300 attached
|
|
erase, kill ^U, intr ^C
|
|
|
|
In first '#' prompt the system is in single-user mode. Just enter a ^D
|
|
to continue the system startup to multi-user mode:
|
|
|
|
#^D
|
|
checking quotas: done.
|
|
Assuming non-networking system ...
|
|
checking for core dump...
|
|
preserving editor files
|
|
clearing /tmp
|
|
standard daemons: update cron accounting.
|
|
starting lpd
|
|
starting local daemons:Sun Jan 4 16:46:37 PST 2009
|
|
January 4 16:46:37 init: kernel security level changed from 0 to 1
|
|
January 4 16:46:40 getty: /dev/tty01: Device not configured
|
|
...
|
|
|
|
2.11 BSD UNIX (curly.2bsd.com) (console)
|
|
|
|
login: {root}
|
|
erase, kill ^U, intr ^C
|
|
|
|
Now the system is in multi-user mode, daemons runnng. You can explore
|
|
the system, e.g. with a 'pstat -T' or a 'mount' command. At end is
|
|
important to shutdown properly with a 'halt':
|
|
|
|
# {pstat -T}
|
|
7/186 files
|
|
39/208 inodes
|
|
11/150 processes
|
|
6/ 46 texts active, 28 used
|
|
2/135 swapmap entries, 366 kB used, 2069 kB free, 2063 kB max
|
|
33/150 coremap entries, 2960 kB free, 2867 kB max
|
|
1/ 10 ub_map entries, 10 free, 10 max
|
|
# {mount}
|
|
/dev/rk0h on /
|
|
/dev/rk2h on /tmp
|
|
/dev/rk3h on /bin
|
|
/dev/rk4h on /usr
|
|
# {halt}
|
|
syncing disks... done
|
|
halting
|
|
|
|
Now the server process can be stopped with ^D.
|
For further details consult the README_set.txt file in the
|
|
oskit directory.
|