[Barrelfish-users] Barrelfish-users Digest, Vol 12, Issue 2

Mats Brorsson matsbror at kth.se
Thu Feb 3 10:43:16 CET 2011

We are thinking of adding a Simics device of the network card supported in Barrelfish. Can you tell us about any adapter/card that you currently use and work on real hardware?


Mats Brorsson
Professor of computer architecture
From: barrelfish-users-request at lists.inf.ethz.ch [barrelfish-users-request at lists.inf.ethz.ch]
Sent: 28 January 2011 12:00
To: barrelfish-users at lists.inf.ethz.ch
Subject: Barrelfish-users Digest, Vol 12, Issue 2

Send Barrelfish-users mailing list submissions to
        barrelfish-users at lists.inf.ethz.ch

To subscribe or unsubscribe via the World Wide Web, visit
or, via email, send a message with subject or body 'help' to
        barrelfish-users-request at lists.inf.ethz.ch

You can reach the person managing the list at
        barrelfish-users-owner at lists.inf.ethz.ch

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Barrelfish-users digest..."

Today's Topics:

   1. Re: [Barrelfish] Barrelfish networking and        the     rtl8029 driver
      (Andrew Baumann)


Message: 1
Date: Thu, 27 Jan 2011 17:47:11 +0000
From: Andrew Baumann <Andrew.Baumann at microsoft.com>
Subject: Re: [Barrelfish-users] [Barrelfish] Barrelfish networking and
        the     rtl8029 driver
To: Georgios Varisteas <yorgos at kth.se>
Cc: "barrelfish-users at lists.inf.ethz.ch"
        <barrelfish-users at lists.inf.ethz.ch>
        <0BCCB4EE8EE68342833E0863DBB35A94063BD12E at TK5EX14MBXC102.redmond.corp.microsoft.com>

Content-Type: text/plain; charset="us-ascii"

Hi Georgios,

> All three virtualization options available
> to me (Qemu, Vmware and Virtualbox) emulate a single network chipset for
> which there is a driver included in my snapshot and that is rtl8029. However,
> trying to build the driver has resulted in compilation errors which I do not
> really know how I should treat. After going through the source of the driver
> I've come to the conclusion that it is incomplete as there are data types being
> used that are not defined anywhere else in Barrelfish; I've relied on grep to
> verify this though. I include the GCC output at the end. Is it possible to
> somehow acquire the full version of the driver?

The bad news is that the rtl8029 driver has bit-rotted and hasn't compiled in a long time, as you've discovered, and the e1000n driver doesn't work with the version of the e1000 which is emulated by Qemu. As a result, we don't currently have a version of Barrelfish which runs with networking inside a VM environment -- we test networking on real hardware with newer e1000 cards.

Fixing both drivers has been on our TODO list for some time, but not high enough that it's received anyone's attention. It's hard for me to guess how much work would be involved. In the case of the rtl and tulip drivers, these were written for a model where the driver ran linked together with the network stack and application. The e1000n driver now runs in a separate domain and communicates with its clients over IDC channels, so there is a moderate amount of refactoring work needed to separate the driver-independent IDC code from the actual hardware driver, moving that to a library that can be used by all NIC drivers, and then porting the rtl8029 (and tulip) drivers to the new API.

> What about the emulated
> e1000 chipsets: 82540EM, 82543GC and 82545EM? How easy would it be to
> extend the e1000n driver to support them?

In the case of e1000, it's mainly a matter of reading the hardware specs, understanding the differences, and implementing them, probably in the existing driver. This ought to be straightforward, but with hardware involved it's always hard to tell where the unforseen problems lie.

> Finally, it would really help to
> know what to expect to see as output when a supported adapter is found by
> the PCI module and how addressing works inside Barrelfish.

We don't yet automatically load drivers based on PCI discovery, but the e1000 driver will print out the MAC address if it successfully initialises the card. I'm not sure what you mean by "how addressing works inside Barrelfish".



Barrelfish-users mailing list
Barrelfish-users at lists.inf.ethz.ch

End of Barrelfish-users Digest, Vol 12, Issue 2

More information about the Barrelfish-users mailing list