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>