open-simh/simh

MicroVAX II Boot Order

mike632t opened this issue · 5 comments

I'm not sure if the following reference applies to the version of the MicroVAX II processor emulated by simh, but from memory (and it was a long time ago) I believe that the both MicroVAX II systems I used to look after behaved as described in Section 2.2.2 of the MicroVAX II 630QB Technical Manual (dated Nov 85) which says:

When VMB determines that a controller is present, it searches in order of increas-
ing unit number for a bootable unit with a removable volume. If it finds none, it
will repeat the search for a nonremovable volume.

The following configuration script configures a MicroVAX II to have 16MB and and three disks DUA0 (RD54), DUA1 (RD53) and DUA3 (RRD40).

attach nvr ultrix01$nvram_ultrix44.bin
set rl disable
set rq enable
set rq rqdx3
set rq0 enable
set rq0 rd54
attach rq0 ultrix01$disk_system_ultrix44.dsk
set rq1 enable
set rq1 rd53
attach rq1 ultrix01$disk_user_ultrix44.dsk
set rq3 enable
set rq3 cdrom
attach rq3 vax$ultrix44.iso
set tq enable
set tq tk50
set tq0 enable
set xq enable
set xq mac=AA-00-04-00-26-40
attach xq tap:tap1
set cpu simhalt 
set console wru=10
set cpu noautoboot 
set cpu idle=vms
set cpu 16m
set cpu model=microvax
$ 

Starting simh confirms that the disks are attached correctly.

$ ./microvax2 ultrix01\$boot_ultrix44

MicroVAX II (KA630) simulator Open SIMH V4.1-0 Current        simh git commit id: c077c22d
/home/system/usr/etc/usr/simh-c077c22/BIN/ultrix01$boot_ultrix44-7> attach rq0 ultrix01$disk_system_ultrix44.dsk
%SIM-INFO: RQ0: 'ultrix01$disk_system_ultrix44.dsk' Contains Ultrix partitions
%SIM-INFO: Partition with highest sector: c, Sectors On Disk: 311200
/home/system/usr/etc/usr/simh-c077c22/BIN/ultrix01$boot_ultrix44-10> attach rq1 ultrix01$disk_user_ultrix44.dsk
%SIM-INFO: RQ1: 'ultrix01$disk_user_ultrix44.dsk' Contains Ultrix partitions
%SIM-INFO: Partition with highest sector: c, Sectors On Disk: 138672
/home/system/usr/etc/usr/simh-c077c22/BIN/ultrix01$boot_ultrix44-13> attach rq3 vax$ultrix44.iso
%SIM-INFO: RQ3: Unit is read only
%SIM-INFO: RQ3: 'vax$ultrix44.iso' Contains Ultrix partitions
%SIM-INFO: Partition with highest sector: f, Sectors On Disk: 1299174
/home/system/usr/etc/usr/simh-c077c22/BIN/ultrix01$boot_ultrix44-19> attach xq tap:tap1
%SIM-INFO: Eth: opened OS device tap1
sim> 

The output of the 'show version' and 'show config' commands is as follows:

sim> sh ver
MicroVAX II (KA630) simulator Open SIMH V4.1-0 Current
    Simulator Framework Capabilities:
        64b data
        64b addresses
        Threaded Ethernet Packet transports:PCAP:TAP:NAT:UDP
        Idle/Throttling support is available
        Virtual Hard Disk (VHD) support
        RAW disk and CD/DVD ROM support
        Asynchronous I/O support (Lock free asynchronous event queue)
        Asynchronous Clock support
        FrontPanel API Version 12
    Host Platform:
        Compiler: GCC 8.3.0
        Simulator Compiled as C arch: x64 (Release Build) on Jan  6 2024 at 22:29:48
        Build Tool: simh-makefile
        Memory Access: Little Endian
        Memory Pointer Size: 64 bits
        Large File (>2GB) support
        SDL Video support: SDL Version 2.0.9, PNG Version 1.6.36, zlib: 1.2.11
        PCRE RegEx (Version 8.39 2016-06-14) support for EXPECT commands
        OS clock resolution: 1ms
        Time taken by msleep(1): 1ms
        Ethernet packet info: libpcap version 1.8.1
        OS: Linux unknown 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
        Processor Name: Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz
        tar tool: tar (GNU tar) 1.30
        simh git commit id: c077c22d
        simh git commit time: 2023-12-18T14:33:06-05:00
sim> 
sim> sh conf
MicroVAX II (KA630) simulator configuration

CPU     idle=VMS, idle enabled, model=MicroVAX II, DIAG=min
        NOAUTOBOOT, leds=(ON,ON,ON,ON), Implementing: Base Instruction Group
	Emulating: Packed-Decimal-String-Group Extended-Accuracy-Group Emulated-Only-Group
        16MB, HALT to SIMH
TLB     2 units
  TLB0        8192W
  TLB1        8192W
ROM     address=0x20040000-0x2004ffff
        64KB, 1usec calibrated access
NVR     address=0x200b8000-0x200b803f
        64B, attached to ultrix01$nvram_ultrix44.bin
WTC     time=vms
SYSD    
QBA     autoconfiguration enabled
CLK     
TTI     vector=F8, BR4
        8b
TTO     vector=FC, BR4
        8b
TDC     disabled
DZ      address=20000040-2000005F*, vector=2C0-2DC*, BR4, lines=16
        not attached, 8b
VH      disabled
CR      disabled
LPT     address=20001F4C-20001F4F, vector=280, BR4
        not attached
QDSS    disabled
QVSS    disabled
LK      disabled
VS      disabled
RL      disabled
RQ      address=20001468-2000146B, no vector, BR4, RQDX3, 4 units
  RQ0         159MB, attached to ultrix01$disk_system_ultrix44.dsk, write enabled
        RD54, UNIT=0, autosize
        RAW format
  RQ1         71MB, attached to ultrix01$disk_user_ultrix44.dsk, write enabled
        RD53, UNIT=1, autosize
        RAW format
  RQ2         159MB, not attached, write enabled
        RD54, UNIT=2, autosize
        AUTO detect format
  RQ3         665MB, attached to vax$ultrix44.iso, read only, read only
        RRD40, UNIT=3, autosize
        RAW format
RQB     disabled
RQC     disabled
RQD     disabled
TS      address=20001550-20001553, vector=294, BR4
        not attached, write enabled, SIMH format
        unlimited capacity
TQ      TK50 (94MB), address=20001940-20001943, no vector, BR4, 4 units
  TQ0         not attached, write enabled, UNIT=0
        SIMH format, capacity=98MB
  TQ1         not attached, write enabled, UNIT=1
        SIMH format, capacity=98MB
  TQ2         not attached, write enabled, UNIT=2
        SIMH format, capacity=98MB
  TQ3         not attached, write enabled, UNIT=3
        SIMH format, capacity=98MB
XQ      address=20001920-2000192F, no vector, BR4, MAC=AA:00:04:00:26:40
        type=DELQA-T, mode=DELQA, polling=disabled, sanity=OFF
        throttle=disabled, DEQNALock=OFF, leds=(ON,ON,ON)
        attached to tap:tap1
XQB     disabled
DPV     disabled
sim> 

Actual and expected behaviour

Based on the Technical Manual I'd expect the VMB to attempt to boot from DUA0, DUA1 and then DUA3, however although I have already installed ULTRIX on DUA0 the system appears to ignore DUA0 and boots from DUA3 instead (which restarts the installation process).

sim> b cpu
%SIM-INFO: Loading boot code from internal ka630.bin




KA630-A.V1.3

Performing normal system tests.

  5..4..3..

Tests completed.


>>> b 

  2..1..0..


Ultrixboot - V4.4  Thu Jan 13 10:47:05 EST 1994

Loading (a)vmunix ...

Sizes:
text = 943316
data = 1290240
bss  = 757932
Starting at 0x5219

ULTRIX V4.4 (Rev. 69) System #1: Thu Jan 13 10:34:25 EST 1994
real mem  = 16769024
avail mem = 11547648
Buffer configuration adjusted to run with small system page table
using 240 buffers containing 1676288 bytes of memory
MicroVAX-II with an FPU
Q22 bus
uda0 at uba0
uq0 at uda0 csr 172150 vec 774, ipl 17
klesiu0 at uba0
uq16 at klesiu0 csr 174500 vec 770, ipl 17
zs0 at uba0 csr 172520 vec 224, ipl 17
ts0 at zs0 slave 0
ra1 at uq0 slave 1 (RD53)
ra2 at uq0 slave 2 (RD54)
ra3 at uq0 slave 3 (RRD40)
ra0 at uq0 slave 0 (RD54)
tms1 at uq16 slave 1 (TK50)
tms2 at uq16 slave 2 (TK50)
tms3 at uq16 slave 3 (TK50)
tms0 at uq16 slave 0 (TK50)
WARNING: clock lost 10 days -- CHECK AND RESET THE DATE!

*** STANDALONE ULTRIX ENVIRONMENT *** 

If you select the BASIC Installation option from the list that follows,
the installation software creates file systems on default partitions on
your system disk and loads the mandatory ULTRIX software subsets.

If you require additional installation choices, select the ADVANCED
Installation option.

Select one of the following options: 

        1) BASIC Installation
        2) ADVANCED Installation
        3) System management 

Enter your choice: 

If I specify the boot device from the console prompt then the system boots from DUA0 as expected.

sim> b cpu
%SIM-INFO: Loading boot code from internal ka630.bin




KA630-A.V1.3

Performing normal system tests.

  5..4..3..

Tests completed.


>>> b dua0

  2..1..0..


Ultrixboot - V4.4  Thu Jan 13 10:47:05 EST 1994

Loading (a)vmunix ...

Sizes:
text = 691268
data = 120320
bss  = 403980
Starting at 0x2c19

ULTRIX V4.4 (Rev. 69) System #1: Sun Dec 31 19:57:11 WET 1995
real mem  = 16769024
avail mem = 13082624
using 409 buffers containing 1676288 bytes of memory
MicroVAX-II with an FPU
Q22 bus
uda0 at uba0
uq0 at uda0 csr 172150 vec 774, ipl 17
klesiu0 at uba0
uq16 at klesiu0 csr 174500 vec 770, ipl 17
qe0 at uba0 csr 174440 vec 764, ipl 17
qe0: DEC DELQA Ethernet Interface DEQNA-lock Mode, hardware address aa:00:04:00:26:40
ra1 at uq0 slave 1 (RD53)
ra3 at uq0 slave 3 (RRD40)
ra0 at uq0 slave 0 (RD54)
tms0 at uq16 slave 0 (TK50)
`Sat Jan  6 22:54:21 WET 2024
Automatic reboot in progress...
/dev/ra0a: 578 files, 5697 used, 9710 free (182 frags, 1191 blocks, 1.2% fragmentation)
/dev/rra0g: 4271 files, 36002 used, 70949 free (869 frags, 8760 blocks, 0.8% fragmentation)
/dev/rra1c: 41 files, 174 used, 15169 free (89 frags, 1885 blocks, 0.6% fragmentation)
check quotas: done.
savecore: checking for dump...dump does not exist
local daemons: syslog rdate ntp ntpd sendmail.
Removing remnant Opser files
preserving editor files
clearing /tmp
standard daemons: update cron accounting network snmpd.
start errlog daemon - elcsd
Sat Jan  6 22:54:09 WET 2024


ULTRIX V4.4 (Rev. 69) (ultrix01)

login: 

Note your own reference information:

When VMB determines that a controller is present, it searches in order of increas-
ing unit number for a bootable unit with a removable volume. If it finds none, it
will repeat the search for a nonremovable volume.

An RRD40 has removable media (a CDROM), hence it is behaving precisely as described.

Thank you Mark - the VMB it is actually smarter than I thought it was. I had expected it to treat all DUA type devices as (fixed) disks. (I never had a CDROM on a a MicroVAX II IRL).

The removable attribute is a detail of the specific drive type that the MSCP protocol passes to the simulated host system. Other removable drives are the several floppy types.

Thank you Mark - the VMB it is actually smarter than I thought it was. I had expected it to treat all DUA type devices as (fixed) disks. (I never had a CDROM on a a MicroVAX II IRL).

As Mark explains, that would in fact be wrong. While the fixed media may be most familiar, there are in fact a bunch of MSCP devices with removable media. Floppies of course, and CDROM, but also the RA60 -- a removable disk pack drive whose packs look a lot like RM03 packs but are quite a lot higher density.