1. That is what I'm writing.
2. iPXE can load a linux kernel in 'DOS-like' mode, but if it is compiled
as an efi executable (e.g. the environment doesn't have INT13 and stuff),
it can't load a kernel.
3. I do that.
4. The "IPXE Download Protocol" is a new thing, it's a UEFI protocol that
attaches to the same device handle as PxeBaseCode.  While Mtftp just does
tftp, this provides full http and other protocol support.  It also
functions differently.  Mtftp takes a pointer to some memory space and
plops it down in one shot (from elilo perspective).  iPXE protocol instead
requests a pointer to a function to call to deliver each piece of the file
(as a buffer with length and offset into the file).  *Here* is where things
get wonky.  When elilo calls into uefi, uefi_call_wrapper makes life nice
and happy and performs the register swaps required to act like microsoft.
In this case, an elilo provided function is faced with the naked calling
convention of UEFI (RCX, RDX, R8,R9, stack with shadowing magic), but in
the C code expects  sysv abi (RDI, RSI, RDX, RCX, R8,R9, stack).

I was looking for the gnu-efi list, which I'm now convinced is the right
place.  I couldn't find it.  As far as I can tell, I 'need' a converse for
uefi_call_wrapper if it exists, otherwise I'll just have a big comment
block to explain why the source code calling my function doesn't match the
source code being called.



From:   jfly <[email protected]>
To:     Jarrod B Johnson/Raleigh/IBM@IBMUS
Cc:     [email protected]
Date:   08/16/2011 03:00 PM
Subject:        Re: [elilo-discuss] EFI callback workings...



Hi Jarrod,

I'm confused about your post here wrt elilo.
The reasons are;
1. elilo has no specific iPXE support

2. iPXE has its own bootloader capability and can boot linux
   "Although its basic role was to implement a PXE stack, iPXE can be
   used as a full-featured network bootloader. It can fetch files from
   multiple network protocols, such as TFTP, HTTP or,
   and can boot PXE, ELF, Linux, FreeBSD, multiboot, EFI and Windows CE
   images. In addition, it is scriptable and can load COMBOOT and COM32
   SYSLINUX extensions. This allows for instance to build a graphical
   menu for network boot."

3. you can chainload ipxe via pxe.
http://www.google.com/url?sa=t&source=web&cd=2&sqi=2&ved=0CB4QFjAB&url=http%3A%2F%2Fipxe.org%2Fhowto%2Fchainloading&rct=j&q=pxe%20vs%20ipxe&ei=27hKTvXmE-WGsgKnme3mCA&usg=AFQjCNE2JxoK98OhfwLD7zlVMAHL75vnOw&cad=rja


4. ALL UEFI callbacks are provided by gnu-efi. elilo simply calls into
them and does no reordering of the PXE data that I saw and anyway
the data types and order would be established by gnu-efi according
to the protocol handle that was passed in to UEFI of which elilo
only uses
./fs/netfs.c:            netfs_start(EFI_PXE_BASE_CODE *pxe)
./fs/netfs.c:            status = uefi_call_wrapper(BS->HandleProtocol, 3,
dev, &PxeBaseCodeProtocol, (VOID **)&pxe);.

Perhaps your query needs to go to the gnu-efi or ipxe project lists.
Hopefully this was helpful anyway.

Regards,
-jason

On Tue, 2011-08-16 at 13:49 -0400, Jarrod B Johnson wrote:
> So I'm working on implementing support in netfs for IPXE download
> protocol, if available.
>
> The thing I'm hitting is that when iPXE goes to invoke the callback,
> the argument list seems reversed. I know how to kind of brute force
> this scenario, but was wondering if there was some more sane looking
> way to cope.
>
> For example, assume:
> iPXE calls data callback with:
> *context, *buffer, length, offset
> 0xaddf, 0xcdde, 1024, 0
>
> And if I have elilo print out the arguments in order, I get:
> 0, 1024, 0xcdde, 0xaddf
>
> I see quite a bit of dancing in gnu-efi to have code call into uefi
> provided functions, but wasn't clear on the converse...
>
>
------------------------------------------------------------------------------

> uberSVN's rich system and user administration capabilities and model
> configuration take the hassle out of deploying and managing Subversion
and
> the tools developers use with it. Learn more about uberSVN and get a free

> download at:  http://p.sf.net/sfu/wandisco-dev2dev
> _______________________________________________
> elilo-discuss mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/elilo-discuss


<<inline: graycol.gif>>

------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2
_______________________________________________
elilo-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/elilo-discuss

Reply via email to