[ipxe-devel] vmxnet3 port

Christopher Barry christopher.barry at rackwareinc.com
Thu Jan 5 13:31:37 UTC 2012

On Thu, 2012-01-05 at 10:43 +0000, Michael Brown wrote:
> On Thursday 05 Jan 2012 05:22:56 Pete Holland wrote:
> > So I'm working on a port of the vmxnet3 driver to ipxe (mainly because
> > the default pxe client in ESX is not suitable for my needs).
> > One problem I've run into is that the vmxnet3 driver seems to require
> > far more memory (by default somewhere between 1-2 MB) from
> > the heap than ipxe normally has (128K) for setting up all of its DMA
> > structures.  I am currently hacking malloc.c to up the heap size
> > but I'm wondering if there is a 'correct' way of doing this in terms
> > of ipxe development (since, if I'm successful, I'd like to contribute
> > the
> > port to the project).
> > The second problem is that I am at the point where I have set up the
> > BARs correctly (as I can read/write the MAC address, link state is
> > readable,
> > and resetting the device seems to jigger some logs into vmware.log
> > indicating that it is successfully doing the reset), however
> > 'activating' the device fails (with no indication in vmware.log or
> > hostd.log as to why).
> > At this point, I'm about to go hat-in-hand to the vmware dev
> > responsible for the Linux vmxnet3 driver for some insight, but I
> > figured I'd ask if
> > anyone else here has tried this before, heard of anyone trying this,
> > or otherwise has a thought on the matter.
> I tried writing a vmxnet3 driver about a month ago.  Latest version is 
> attached.  This is a written-from-scratch iPXE driver rather than a Linux 
> port, and it doesn't use unusual amounts of memory.
> The driver basically works, but has an unusual problem: the (virtual) hardware 
> reports TX completions immediately but reports RX completions only after every 
> two packets.  Consequently, everything works fine only as long as there is 
> additional traffic on the interface (e.g. a flood ping from the host).
> If you can fix the RX completion problem, that would be fantastic!
> Michael

+/** Driver shared area magic */
+#define VMXNET3_SHARED_MAGIC 0xbabefee1

now THAT's magic...


More information about the ipxe-devel mailing list