<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, 8 Oct 2018 at 13:03, Oliver Rath <<a href="mailto:oliver@greenunit.de">oliver@greenunit.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi list,<br>
<br>
Im trying to understand, how ipxe works and what the difference is<br>
between the undionly and a native driver.<br>
<br>
If I see right, undionly can be chainloaded from *every* (pxe-enabled)<br>
card and will be loaded an executed in x86-mode from the main processor<br>
in the memory of the host computer, not the hardware from the card. For<br>
this part exists an undionly-standard, how to control the basic<br>
functions of a card from from the host.<br>
<br>
If now we want a native driver, we have to know, how the andvanced<br>
features of the card can be controlled from the host machine, so every<br>
native driver is different and have to be programmed separatly. this<br>
driver can be burnt into the rom of the card.<br>
<br>
What I dont understand: If the native ipxe-driver is burnt on the card,<br>
who executes this code? The main processor of the computer? How can the<br>
computer get this code? If the rom blended into main memory?<br>
<br>
If the code is executed by the card, what assembler is used for this?<br>
<br>
What is right or false in my thoughts?<br>
<br>
Tfh!<br>
<br>
Oliver<br><br></blockquote><div><br></div><div>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Ā </div><div>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.</div><div><br></div><div>A ROM is just a place to store machine code which the main CPU executes.</div><div><br></div><div>From the perspective "where it runs" there is no difference at all between the different methods.</div><div><br></div><div>/Christian</div></div></div>