On Thursday, December 25, 2014 at 8:52 PM, Jason Stevens wrote:
> I had installed NetBSD 1.2 a while back.. I documented the steps here..
> 
> http://gunkies.org/wiki/Installing_NetBSD_1.2_on_the_SIMH_MicroVAX_II
> >
> When NetBSD re-introduced support for the VAX I belive it was mostly the
> 730/750 and then the MicroVAX II.  The first bianry distribution I could find
> was 1.2 although it was incredibly unstable in SIMH and I had to use some
> parts of 1.3 to get it installed.


Hmmm...  That example is not installing on a MicroVAX II, but on the simh VAX 
simulator which simulates the MicroVAX 3900.  

Observe:

          The ini file contains:
                    set cpu 32M
          The MicroVAX II only supported 16MB of RAM.

          The boot log says:
                VAX simulator V3.8-1
                Loading boot code from ka655x.bin
                
                ←[c
                KA655-B V5.3, VMB 2.7
                Performing normal system tests.
                40..39..38..37..36..35..34..33..32..31..30..29..28..27..26..25..
                24..23..22..21..20..19..18..17..16..15..14..13..12..11..10..09..
                08..07..06..05..04..03..
                Tests completed.

          A MicroVAX II boot should look something like:

                MicroVAX II (KA630) simulator V4.0-0 Beta        git commit id: 
1d530cc4
                sim> b
                Loading boot code from ka630.bin
                
                ←[c
                
                KA630-A.V1.3
                
                Performing normal system tests.
                
                  5..4..3..
                
                Tests completed.
                
                >>> 

It isn't surprising that some instabilities under the VAX simulator were noted 
since there may have been some new functionality in the 3900 which the NetBSD 
1.2 code didn't yet include... 

It would be interesting to explore how that version behaved with the MicroVAX 
II simulator.

Apart from running under the MicroVAX II or MicroVAX 3900 simulators, Devin 
specifically asked about running on the VAX780 simulator.  

As it turns out, there were issues with booting and basic installing of NetBSD 
on the older VAX systems.  Much of NetBSD evolved after the relatively low cost 
MicroVAX systems were very common.  It seems that although some folks with 
older VAX hardware (VAX750, VAX780, VAX730 and VAX8600) may have been running 
NetBSD, they didn't install it from CD media, but merely upgraded existing 
older BSD operating system installs.

Sometime after Matt Burke implemented the simh simulators for these older VAX 
systems and they were included in the simh codebase at github, a few folks 
tried to install NetBSD on one of these older systems.  It seemed that although 
all of these simulators had no problem booting any 'supported' version of VMS 
and Ultrix, booting from the NetBSD install CD's didn’t work.  On older 
systems, Ultrix (and old versions of various BSD operating systems) boot with a 
'Boot Block' boot.  A 'Boot Block' boot reads sector 0 of the disk into memory 
and starts execution at offset 2 of the buffer which had been read.  For the 
older systems, a Boot Block boot was requested by setting bit 3 of R5 when VMB 
was started (i.e. BOOT dev /R5:8).  Boot block booting works just find for 
Ultrix on these older platforms, but NetBSD's CD distribution media no longer 
booted, even though those same CD images would boot just fine on the MicroVAX 
3900 simulator (as well as the MicroVAX II).

Some digging showed that the NetBSD disks had a sector 0 which was almost 
completely 0s (i.e. it didn't have a secondary bootstrap program in sector 0), 
while the sector 0 of Ultrix disks certainly had a secondary bootstrap program 
in sector 0.  The question was: "Why did these CD images boot on a MicroVAX II 
and MicroVAX 3900?".  Well, the difference here is the fact that the all of the 
MicroVAX systems boot with a version of VMB which is part of the console ROM.  
It seems that VMB was extended as it was migrated to the ROMs and several 
enhancements were made:
1) Boot Block Boots were attempted automatically if the boot device did not 
contain an ODS2 disk structure.
2) Boot Block Boot logic was merged with the PROM boot support that the ROMs 
also supported.  The PROM boot support allowed booting from a Qbus ROM which 
had a particular signature at the beginning of the ROM.  When VMB attempted a 
Boot Block boot, it read in sector 0 and if the contents of the data written 
had the ROM boot signature, then the same logic which initiated booting from 
ROM was performed.  The ROM signature contains the 'address' of a secondary 
bootstrap program.  The address is specified as Offset, Size and Starting 
address.  Since VMB already has a driver which can read the disk it merely 
reads the data at the offset and size indicated and then starts execution at 
the specified starting address.  The ROM based VMB logic will first try this 
ROM based boot, but if the signature doesn't match, then it will merely start 
execution at offset 2 of the sector 0 data, and thus automatically perform the 
legacy Boot Block behavior.

It seems that since the only active development and installation testing for 
NetBSD was being done on systems with ROM based VMB someone changed the boot 
sector setup process to only put the ROM signature in sector 0 and no one ever 
tested on the old hardware.

After this issue was discovered, I created a patched version of VMB.EXE for 
simh which also implemented the above logic that already existed in the ROM 
based VMB systems.  The latest code at github includes VMB.EXE which will run 
as needed.

Once this issue was understood by the NetBSD folks someone went back and fixed 
the pieces which populate sector 0 on boot disks to both contain the ROM based 
signature information AND the legacy boot sector code which had gone missing... 
 Someone may have also gone back and changed the boot sector data on the 
available CD images.  This would have allowed booting of those images with any 
version of VMB.EXE (possibly with /R5=8), however the program which populates 
the boot sector of a newly formatted disk for all of these older installations 
also would need to change in order to boot from a disk which was installed from 
one of those CD images.

Johnny Billquist was the person who first encountered this problem while 
working with the VAX8600 simulator.  He was instrumental in engaging and 
interacting with the right NetBSD folks to understand what had been broken and 
to ultimately fix the current NetBSD VAX code.

As an answer to Devin's original question, I don't think that the generic 
NetBSD recipes which exist for installing on the MicroVAX 3900 simulator are 
substantially different when using a VAX780 simulator beyond using the latest 
simh code from github.

Devin mentioned: http://www.netbsd.org/ports/vax/emulator-howto.html

The instructions there have a configuration file for the MicroVAX 3900 
simulator which contains:

        load -r /usr/pkg/share/simh/ka655x.bin
        set cpu 64m
        set rq0 ra92
        at rq0 netbsd.dsk
        set rq1 cdrom
        at rq1 /path/to/vaxcd.iso
        at xq0 name-of-network-interface-on-host
        boot cpu

For a VAX 780 the following should be equivalently useful:

        set cpu 64m
        set rq0 ra92
        at rq0 netbsd.dsk
        set rq1 cdrom
        at rq1 /path/to/vaxcd.iso
        set xu0 enable
        at xu0 name-of-network-interface-on-host
        boot rq1

    
- Mark

_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to