Subject: Re: About this MOP business..
To: Andreas Fredriksson <dep@canit.se>
From: Mats O Jansson <maja@celsiustech.se>
List: port-vax
Date: 04/22/1997 14:26:25
On Tue, 22 Apr 1997, Andreas Fredriksson wrote:

> 
> Hello all.
> 
> I'm sitting here with a uVAX 3600, RA82, RA70, 32M ram, Ethernet card.
> 
> Why doesn't any of the mop images found in any distribution work on this
> machine? Has anyone successfully mop'd a 3600? In that case I'd love a
> copy of the image you sent over, just to see if the hardware is ok. =:)
>
I have seen better problem reports :-) What does not work? Do you get an
error message?

Still I think I know what your problem is. When I was playing with a MV3300
some weeks ago I found that old bootblock worked but new didn't. I caused a
SBC2INT when executing. After some debugging I found that it crashed when
it was trying to do console io.

I think before the post 1.2 code appeared in NetBSD-current, KA650 used
the mtpr routines in arch/vax/boot/consio like KA630. But in current it
uses some rom routines.

The reason for changing is obvious, there is some versions of these machines
that have a graphical subsystem. In that case the mtpr routines can't be 
used, since they only works at serial console.

As it is now consio expects that there is two routines in rom. One to 
read a character and one to write a character. The problem with the KA650 
series is that the don't have a routine to write a character. They have a 
routine to write a string. So a routine must exists that converts a 
character to a string descriptor before calling the rom routine.

/*
 * int rom_outmsg (int c)       ==> putchar() using ROM-routines
 */
asm("
        .globl _rom_outmsg
        _rom_outmsg:
                .word 0x04              # save-mask: R2
                movzbl  4(ap),-(sp)     # save character on stack
                movl    sp,-(sp)        # add pointer to character
                pushl   $1              # and complete string descriptor
                movl    sp,r0           # setup argument for outmsg
                jsb     *_rom_putc      # write it
                movl    $1,r0           # assume success
                ret                     # that's all
");

But I think even the getchar routine must be replace with another to get 
things to work. But I was in the middle of all this when I got occupied 
with thing of a higher priority... But I think I had problems with getc
when I put it aside.

The adresses in rom for putmsg is 0x2004000c and getc is 0x20040008.
 
> One other thing, don't know if this is done already; why not transfer a
> small filesystem (miniroot), and a kernel in mop'able format and install
> from there (kernel mounts ramdisk and has some binaries there), much like
> the various install disks for Linux, FreeBSD and so on.
> 
> ---
> Andreas Fredriksson :: Dep/Stellar :: dep@canit.se :: www.canit.se/~dep
> 
> 

-moj

------------------------------------------------------------------------------
Mats O Jansson, CelsiusTech Systems, Jaerfaella, Sweden
email: maja@celsiustech.se (or moj@stacken.kth.se)