Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 May 1998 11:32:22 -0500
From:      Jonathan Lemon <jlemon@americantv.com>
To:        Mike Smith <mike@smith.net.au>
Cc:        Chuck Robey <chuckr@Glue.umd.edu>, Luigi Rizzo <luigi@labinfo.iet.unipi.it>, Nicolas.Souchu@prism.uvsq.fr, freebsd-hackers@FreeBSD.ORG
Subject:   Re: ISA PnP / snd PnP developments?
Message-ID:  <19980506113222.38033@right.PCS>
In-Reply-To: <199805050024.RAA01550@antipodes.cdrom.com>; from Mike Smith on May 05, 1998 at 05:24:07PM -0700
References:  <19980503143127.54179@right.PCS> <199805050024.RAA01550@antipodes.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On May 05, 1998 at 05:24:07PM -0700, Mike Smith wrote:
> > I'm sitting on code that will allow 16-bit BIOS calls from the kernel,
> > these could conceivably be used to get the various PnP events.
> 
> I have actually used this code to talk to the PnP BIOS, and this is the 
> right way to go.  Jonathan - have you managed to sort out the issues 
> related to supporting both 16-bit and 32-bit PM BIOS calls?  What if 
> you had more descriptors available, would it be easier then?

No, the showstopper I ran into at this point has to do with stack
handling for the 16-bit BIOS.  Consider:

	- the stack must be located in the first 64K following %ss, 
	  (the stack base address) since the BIOS often throws away
	  the upper 16-bits.  eg: push %esp, pop %sp

	- %ss is also used to handle kernel interrupts.

	- trap.c takes a stack-relative address and tries to use this
	  as an absolute address, which normally works, since the stack
	  base is normally at 0.  This breaks if we change the stack base
	  location in order to make the BIOS happy.

So, I either play some tricks to move the stack into page 0, so that 
absolute addressing works as well as base:offset addressing, or I need
to come up with some form of switching stacks when the kernel is entered.

The latter would probably impact fastintr handlers as well, and (IMHO) 
generate an unacceptable performance impact.  The former is probably 
feasable, but finals here have prevented me from looking at it in more
detail.
--
Jonathan

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980506113222.38033>