[comp.os.minix] shoelace and PS/2 30

csc239@central1.lancaster.ac.uk (A. S. Lunn) (08/31/90)

Over the last couple of days I've installed shoelace with minix 1.3
system on a PS2 model 30 so that it boots off /dev/hd2 and takes a ram
image from /dev/hd3. The fs has been modified to load the ram disk from
/dev/hd3 without looking at the floppy first. I've run into two
problems, one major and the another minor.

I went through all the stages of using a floppy before actualy  writing
to the boot block of the hard disk and the minix partition and had no
trouble. I then setup everthing on the hard disk and I now can boot
into MS-DOS in partition 1 or Minix in 2. The problem is that on a boot
into minix, the floppy drive doesn't work. When accessing the device
the motor starts, nothing happens for a couple of seconds, the motor
stops and then an errror is printed. eg when I try to mount a file
system I get 

Unrecoverable disk error on device 2/0, block 1 

and the mount fails with in invalid file system error. Also some times
its gives an unexpected interrupt or trap on vector 2. 

If I cat the first couple of blocks of /dev/hd0 onto a floppy and boot that
the floppy drive works fine. 

If I boot into MS-DOS using winiboot the floppy  giving sector
not found error. 

My guess is that its something to do with the parameter table or
initialising the floppy. The man page of Bootlace says that the floppy
parameter table vector is pointed to an internal table if the boot
device is a floppy. When booting from hard disk this isn't done. Also
when booting from floppy the ROM bootstrap may initialse the floppy after
determinig theres a disk in the drive. When there is not a disk it
might not bother and so the floppy drive never gets initialsed. 

The other minor problem is when rebooting from minix with CTRL-ALT-DEL
winiboot prints the partition table, waits for about half a second and
then boot the default partition. With a cold boot it waits the fifteen
seconds before booting the default partition. It also does not check is
there is a bootable floppy in the drive. CTRL-ALT_DEL from MS-DOS works
properly.
 
Since nobody else has reported this bug, I suspect its something to do
with the PS2 model 30.

I'd don't know enough about the rom bootstap to investigate my gueses
and I've got four weeks to get this working before the second year
undergrads start to use the machines and I'm on holiday for the next two
weeks.  All help would be appreciated.

	Thanks

	Andrew Lunn
	csc239@uk.ac.lancaster.central1   	JANET
						University of lancaster
						England.

cechew@bruce.cs.monash.OZ.AU (Earl Chew) (09/01/90)

csc239@central1.lancaster.ac.uk (A. S. Lunn) writes:

>Over the last couple of days I've installed shoelace with minix 1.3
>system on a PS2 model 30 so that it boots off /dev/hd2 and takes a ram
>image from /dev/hd3. The fs has been modified to load the ram disk from
>/dev/hd3 without looking at the floppy first. I've run into two
>problems, one major and the another minor.

Sigh! It looks like it's time to work on ShoeLace again. To date I've only had
one major bug report to do with certain XT hard disk controllers and their
associated roms. Apparently they forget the hard disk parameters. There is a
fix but:

1. the person who did the fix didn't send it to me
2. I haven't got around to replicating it.

Regarding the problems with PS2/30s. I don't have access to one of these
beasts, so in some sense you're on your own. Remote debugging from the other
side of the planet is too painful.

Now grasping at straws:

1. Did the floppy drive work properly *before* the change to fs?

To summarise:

1. Using a hard disk boot floppy with winiboot works without a hitch.

2. Using winiboot directly off the hard disk works for MSDOS:
	a) Sector not found errors

   for Minix:
	a) floppy problems:
	      On mount:
		    Unrecoverable disk error on device 2/0, block 1 
	      Unexpected interrupt to vector 2
	b) CTL_ALT_DEL problems

>If I cat the first couple of blocks of /dev/hd0 onto a floppy and boot that
>the floppy drive works fine. 

This would suggest that something in the floppy isn't being initialised.

>If I boot into MS-DOS using winiboot the floppy  giving sector
>not found error. 

This is mystifying since the partition table boot code (winiboot or the
original) doesn't (to my knowledge) muck around with the floppy. Try
disassembling the original partition table boot code to see how it differs from
winiboot.

>My guess is that its something to do with the parameter table or

This does not seem likely since once Minix gets control, all floppy accesses
are done by the floppy driver the floppy parameter table is only used by the
BIOS.

>The other minor problem is when rebooting from minix with CTRL-ALT-DEL
>winiboot prints the partition table, waits for about half a second and
>then boot the default partition. With a cold boot it waits the fifteen
>seconds before booting the default partition. It also does not check is
>there is a bootable floppy in the drive. CTRL-ALT_DEL from MS-DOS works
>properly.

Which is the `it'? winiboot was not designed to check for the existence of a
bootable floppy. Sounds to me like there is something amiss with the warm boot
code in the BIOS. Hmmm... I think that this might have something to do with the
clock tick rate when rebooting from Minix. Perhaps the BIOS is not resetting
the clock frequency. I don't think that winiboot should be expected to fix
that! You might consider hacking the reboot code in keyboard.c to reset the
clock frequency.

I hope this helps a bit.

Earl
-- 
Earl Chew, Dept of Computer Science, Monash University, Australia 3168
EMAIL: cechew@bruce.cs.monash.edu.au PHONE: 03 5655447 FAX: 03 5655146
----------------------------------------------------------------------