Re: Hook INT18 for IBM servers?

Itay Gazit <[email protected]>
Newsgroups gmane.network.etherboot.user
Message-ID <[email protected]>
Does anyone know, how to save the INT18 vector and restore it back after
gPXE executed?

On Wed, Aug 26, 2009 at 2:04 AM, Jarrod Johnson
<[email protected]>wrote:

> IBM BIOS can rehook INT19 to prevent gPXE from jumping in front, but
> without hooking anything, I don't see a way to make gPXE actually boot
> (i.e. the BEV never gets called by IBM BIOS).  If I make gPXE hook
> INT18, then it certainly does proceed in the expected order, but I
> can't get past the gPXE boot device without looping to the first
> network interface (if storing and calling the original INT18 vector)
> or hanging (various attempts to ret/iret out of the INT18 handler).
> Glenn Brown at Myricom managed to get Etherboot to work like this, but
> I can't figure it out for gPXE (maybe I'm not ensuring the stack is
> restored or some register value is right when I iret, or maybe I just
> am out of my depth generally).
>
> My understanding of how IBM BIOS works:
> -It executes the PCI option rom
> -If option rom hooks int18, it saves that int18 vector and reinstates its
> own
> -When 'network boot' option is reached, it invokes its INT18 handler
> -That handler then, in order, invokes each INT18 handler
> -If an INT18 handler wants to yield to the next device, it achieves it
> in IBM BIOS by iret to get back in the correct place to IBM INT18
> handler.  Presumably, the stack and possibly other registers are
> expected to be put back the way they were when the option rom started
> execution.
>
> I'm a little outside my general scope (firmware development is
> something I personally lack experience in), but I'll do what I can to
> help as possible.
>
> On Tue, Aug 25, 2009 at 1:23 PM, Michael Brown<[email protected]>
> wrote:
> > On Monday 24 August 2009 19:13:43 Jarrod Johnson wrote:
> >> In short, the GIT change did allow gPXE to detect PnP capability, but
> >> INT19 is still detected/used, and I'm pretty sure that is an accurate
> >> assessment of IBM BIOS capabilities (PnP, but not BBS compliant).
> >
> > Thanks for testing this.  I was waiting for an opportunity to get hold of
> an
> > IBM to test against.
> >
> > I believe that most IBM BIOSes usually have some form of "recapture INT
> 19"
> > option.  If you use this, you should find that the BIOS overwrites the
> INT 19
> > value written by gPXE, which will prevent gPXE interfering with the boot
> > process.  You *should* then be able to select gPXE via whatever
> > non-BBS-compliant boot device selection mechanism the BIOS provides.
> >
> > This is based only partly on memory; I may be wrong on some of the
> details.
> >
> > Michael
> >
>

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july

_______________________________________________
Etherboot-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/etherboot-discuss
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.