OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.74/] [doc/] [w11a_os_guide.txt] - Rev 20

Go to most recent revision | Compare with Previous | Blame | View Log

# $Id: w11a_os_guide.txt 511 2013-04-27 13:51:46Z mueller $

Guide to run operating system images on w11a systems

  Table of content:

    1. I/O emulation setup
    2. FPGA Board setup
    3. Unix V5 system
    4. 2.11BSD system


1. I/O emulation setup ----------------------------------------------------

   All UNIBUS peripherals which exchange data (currently DL11, LP11, PC11, RK11)
   are currently emulated via a backend process. The communication between 
   FPGA board and backend server can be via

   - Serial port
     - 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 
       adapter was tested up to 460k Baud. A USB-RS232 adapter is thus highly 
       recommended
     - via integrated USB-RS232 adapter, like on nexys3 board. This is much 
       faster, allows bitrates up to 2 M Baud.
    
     Notes: - A USB-RS232 cable with a Prolific Technology PL2303 chip simply
              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
            - 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 
              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 
              numbers suggest.

   - Direct USB connection using a Cypress FX2 USB controller
     - is supported on the nexys2 and nexys3 FPGA boards
     - clearly much faster than serial port connections
     - also allows to configure the FPGA over the same USB connection

2. FPGA Board setup -------------------------------------------------------

   - Using serial port
     - for s3board and nexys2
       - connect the USB-RS232 cable to the RS232 port of the s3board or nexys2
       - 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
       - connect USB cable to the 'usb uart' port (next to the 5 buttons)
       - ensure that all 8 switches are in the indicated positions (SWI=...)
       - load the w11a design into the FPGA, e.g. via impact

   - Using Cypress FX2 USB controller
     - for nexys2
       - connect USB cable to mini-USB connector (between RS232 and PS/2 port)
         ! Must be connected to a USB port able to deliver 500 mA !

3. Unix V5 system ---------------------------------------------------------

   - A disk set is available from
       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)

       cd $RETROBASE/rtl/sys_gen/w11a/tb
       telnet_starter -d DL0 &

     [for s3,n2:]
       SWI = 00000010
       dorri -u0,460,1,2   @uv5_boot.pcmd
     [for n3:]
       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
       telnet_starter -d DL0 &

     [for s3,n2 over serial:]
       SWI = 00000010
       torri -tu0,460k,break,xon   @uv5_boot.tcl
     [for n3 over serial:]
       SWI = 00000010
       torri -tu0,2M,break,xon     @uv5_boot.tcl

     [for n2,n3 over fx2:]
       SWI = 00000100
       torri -u     @uv5_boot.tcl

   - the boot dialog in the console xterm window will look like
     (required input is in {..}, with {<CR>} denoting a carriage return:

       @{unix}
       
       login: {root}

     Now you are at the shell prompt and can excercise the system, e.g.

       # {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)

       cd $RETROBASE/rtl/sys_gen/w11a/tb
       sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1
       telnet_starter -d DL0 &
       telnet_starter -d DL1 &

     [for s3,n2:]
       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)

       cd $RETROBASE/rtl/sys_gen/w11a/tb
       telnet_starter -d DL0 &

     [for s3,n2 over serial:]
       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:]
       SWI = 00000100
       torri -u     @211bsd_rk_boot.tcl

   - the boot dialog in the console xterm window will look like
     (required input is in {..}, with {<CR>} denoting a carriage return:

       70Boot from rk(0,0,0) at 0177404
       : {<CR>}
       : rk(0,0,0)unix
       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.

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.