[Barrelfish-users] Undefined address space 'pageX'

Georgios Varisteas yorgos at kth.se
Fri Jul 6 11:06:19 CEST 2012

Hi Mothy,

Am I mistaken that Lance is mostly an optimized/evolved version of NE2000, the basic specification behind the RTL NIC? I think it is sometimes referred to as NE2100. I am not saying that the cards are identical, rather their differences are minimal for basic functionality.


From: Timothy Roscoe [troscoe at inf.ethz.ch]
Sent: Friday, July 06, 2012 10:21
To: Patrik Eklöf
Cc: barrelfish-users at lists.inf.ethz.ch
Subject: Re: [Barrelfish-users] Undefined address space 'pageX'

Hi Patrik,

You should not need to modify rtl8029as.dev at all - its functionality
hasn't changed since it was written originally (it's not a complex
card), and reverting it will most likely break the existing driver.

The file has changed because Mackerel acquired new constructs which
made it much simpler to express things like arrays of registers, and
non-standard address spaces, both of which the RTL uses.

The best source of material for understanding the .dev file is the
Mackerel manual (available on the web site and in the source code as a
technical note), but as I said, you shouldn't need to modify this
file, only the driver.

Do you have a citation for the AM79C973 ever working?  I don't think we
have one here, and if I remember correctly the AM79C973 is compatible
with the LANCE, rather than the RTL8029, and we don't have a LANCE

 -- Mothy

At Thu, 5 Jul 2012 16:44:55 +0000, Patrik Eklöf <peklof at kth.se> wrote:
> Hi all,
> I'm told the AM79C973 NIC worked with BF before (well, just adding it in and using the RTL driver doesn't work in the latest anyway), so I'm trying to "hack" BF to work with it again by changing the rtl8029as.dev file.
> (Scream at me if I'm doing this the wrong way :p)
> Anyway, I have a diff from a bf version from 2010 which I'm trying to patch in.
> Now, I am not so versed in Mackarel, so I'm trying to understand how this works.
> I have these lines here in the diff file:
> -  regarray par rw page1( 0x1 )[6] "Physical Address" type(uint8);
> +  register par0 rw also io ( base, 0x1 ) "Physical Address Field 0" type(uint8);
> +  register par1 rw also io ( base, 0x2 ) "Physical Address Field 1" type(uint8);
> +  register par2 rw also io ( base, 0x3 ) "Physical Address Field 2" type(uint8);
> +  register par3 rw also io ( base, 0x4 ) "Physical Address Field 3" type(uint8);
> +  register par4 rw also io ( base, 0x5 ) "Physical Address Field 4" type(uint8);
> +  register par5 rw also io ( base, 0x6 ) "Physical Address Field 5" type(uint8);
> Since the current drive seems to work with arrays, I added back the first line with par1 since they seem to be based on the same address and equal number of bytes.
> But when I compile this, I get
> ../source/devices/rtl8029as.dev:276:12: Undefined address space 'page1'
> I can see a line
> -  space page1(addr) bytewise "NE2000 compatible page 1";
> at the beginning of the files (that's removed), but is this really necessary? Am I not understanding what a page is? Can someone explain, or elaborate a little perhaps, on how these retrofit these changes or how pages and arrays work?
> Thanks.
> Regards,
> Patrik Eklöf
> Student at ICT, Master of Science in Engineering Education, IT Programme, KTH, Kista

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

More information about the Barrelfish-users mailing list