[ipxe-devel] undionly vs. native driver question

Christian Nilsson nikize at gmail.com
Mon Oct 8 11:27:24 UTC 2018

On Mon, 8 Oct 2018 at 13:03, Oliver Rath <oliver at greenunit.de> wrote:

> Hi list,
> Im trying to understand, how ipxe works and what the difference is
> between the undionly and a native driver.
> If I see right, undionly can be chainloaded from *every* (pxe-enabled)
> card and will be loaded an executed in x86-mode from the main processor
> in the memory of the host computer, not the hardware from the card. For
> this part exists an undionly-standard, how to control the basic
> functions of a card from from the host.
> If now we want a native driver, we have to know, how the andvanced
> features of the card can be controlled from the host machine, so every
> native driver is different and have to be programmed separatly. this
> driver can be burnt into the rom of the card.
> What I dont understand: If the native ipxe-driver is burnt on the card,
> who executes this code? The main processor of the computer? How can the
> computer get this code? If the rom blended into main memory?
> If the code is executed by the card, what assembler is used for this?
> What is right or false in my thoughts?
> Tfh!
> Oliver
iPXE only provides a driver for the NIC, in the case of undi it uses a undi
driver which then the undi stack translates to actual calls to the NIC
These drivers works in the same way in iPXE as any driver for a NIC used in
Linux or any other OS - meaning that they are all executed on the main CPU
of the machine.

A ROM is just a place to store machine code which the main CPU executes.

>From the perspective "where it runs" there is no difference at all between
the different methods.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20181008/3f1fc889/attachment.htm>

More information about the ipxe-devel mailing list