Subject: Re: boot problems on VIA Eden i586 board
To: Dan LaBell <dan4l-nospam@verizon.net>
From: David Laight <david@l8s.co.uk>
List: port-i386
Date: 03/10/2005 21:48:27
> I also tried stepping thru via dos debug, which didn't work,

It is unlikely that dos-debug is capable of stepping through the code
that changes from 16bit to 32bit mode!

> then for some reason I tried a reboot from dos via int 19. int 19 is boot 
> failure, boots rom basic on org. PC's, on some pc's it breaks into cmos 
> menu, in others reboots again after try again prompt, etc.

Hum - the netbsd code uses int 0x18 for much the same thing!
(read http://www.ctyme.com/rbrown.htm)

> and I got 2 error messages on the screen with my hang, instead
> of just messedup  display with a hang:
> 
> Boot-failed (errno 5): Can't open /boot

That is a 'normal' error message - it happens if the code in the
first 8k of the partition fails to find /boot (which is the
interactive boot code) in the root filesystem.
Getting that far does rather indicate that whatever is wrong
is something trivial that is hard to find!

> And also:
> 
> RPL-ROM-ERR : DE48 ; RPL Halted

Did that follow the previous message?  If so it is what that
bios does when entered by int 0x18.
(see code in sys/arch/i386/stand/bootxx/bootxx.S)

My thoughts have always been that there is a problem in the
code that flips between real (16bit) and protected (32bit) modes.
I'd guessed at invalid register values when returning to the BIOS
but maybe the problem is the opposite - and it is junk in the
top bits of the registers on entry that is causing grief.

I wonder if just adding:
	andl	$0xffff,%esp
at the start of real_to_prot (in stand/lib/realprot.S)
is what is needed?

	David

-- 
David Laight: david@l8s.co.uk