*BSD News Article 14621


Return to BSD News archive

Path: sserve!newshost.anu.edu.au!munnari.oz.au!network.ucsd.edu!usc!howland.reston.ans.net!gatech!usenet.ufl.edu!eng.ufl.edu!ukma!news1.gsfc.nasa.gov!nsisrv!nasahq!mnewell
From: mnewell@nhqvax.hq.nasa.gov
Newsgroups: comp.os.386bsd.questions
Subject: Re: Booting 386bsd from a 486dx2 machine
Message-ID: <1993Apr17.183457.351@nhqvax.hq.nasa.gov>
Date: 17 Apr 93 18:34:57 +0600
References: <1993Apr11.011315.342@nhqvax.hq.nasa.gov>
Organization: NASA Headquarters, Washington D. C.
Lines: 82

Goodness occurs - I got it to boot!!!

The problem was in the "probe" routine of "pccons".  It appears there is
some problem with sending commands to the KB contoller, then reading
them immediately back.  After sticking in a couple of hard loops
(ok, it's crude - but it worked!  Now I can debug it more fully...)
For those of you having the same problem, I munged the code as 
follows:

        /* Enable interrupts and keyboard controller */
        kbc_8042cmd(K_LDCMDBYTE);
        outb(KBOUTP, CMDBYTE);

        /* Start keyboard stuff RESET */
        kbd_cmd(KBC_RESET);
        while((c = inb(KBDATAP)) != KBR_ACK) {
                if ((c == KBR_RESEND) ||  (c == KBR_OVERRUN)) {
                        if(!again)printf("KEYBOARD disconnected: RECONNECT
\n");
                        kbd_cmd(KBC_RESET);
                        again = 1;
                }
                { int ii; for (ii=0; ii < 100000; ++ii); } /* MCN */
        }

        /* pick up keyboard reset return code */
        while((c = inb(KBDATAP)) != KBR_RSTDONE)
          { int ii; for (ii=0; ii < 100000; ++ii); } /* MCN */
        return 1;
}

The lines with "mcn" are the relevant changes.  As I said, crude but
it works...  On a 486/50 the 100K loop isn't really noticable [snicker].

Thanks to the people that helped steer me in the right direction.  I
now have XFree86 running on a DECENT platform!!  Now to get OpenView
working...

Mike Newell
NASA Science Internet


mnewell@nhqvax.hq.nasa.gov writes:
> I have been running 386bsd for a couple of weeks now on a 386/20 machine
> I bought back in '87.  This machine has developed the unfortunate habit
> of haltin periodically [anywhere from every few minutes to every few days]
> for no apparent reason [the problem is not bsd related!] so...
> 
> I trundled down to my neighborhood computer store and acquired a shiny
> new 486DX2-50 machine.  It has 8Mb memory, 256K cache, 245Mb IDE drive,
> and a Paradise SVGA board. The IDE drive is implemented on a combination
> board that provides an IDE controller, floppy controller, 2 com ports,
> 1 parallel port, and one game port.
> 
> The only problem is I can't get 386bsd (or Linux for that matter) to
> boot.  I have tried turning off all caching, all BIOS shadowing, etc.
> In fact, I even swapped all the boards from the old machine to the new
> one with no effect.  Symptoms are:
> 
> - When booting from floppy, the floppy does a few seeks, then dead
>   silence (with the select light on and the drive spinning.)  No
>   messages are printed on the console.  CTRL-ALT-DEL has no effect.
>   This happens with the original dist.fs, my kernel (which has the
>   fixes for the memory-reporting problem), and the dist.fs.pk-0.2
>   disk.
> 
> - When booting from the old disks (SCSI disks on an Adaptec 1542
>   board) a small theta symbol is displayed in the upper left hand
>   corner of the screen; otherwise symptoms are identical to the
>   floppy boot.
> 
> As I said I have tried various combinations of turning caching and
> shadowing off.  As far as I can tell there is no option for turning
> off parts of the bios a la the HP Vectra problem previously reported.
> 
> Any help would be appreciated!
> 
> Mike Newell
> mnewell@nsipo.nasa.gov
>  
> 
> Did try turning off the cache...