Thread: Re: [Etherboot-developers] Prism II (wireless) drivers
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: <ke...@us...> - 2002-04-10 03:41:51
|
>I am new to this list. I have written Etherboot drivers for the >Prism2/2.5 wireless (IEEE802.11b) chipsets. These work with the three >cards I have available: > > Netgear MA301/MA401 (PCMCIA wireless card with PLX-based PCI adaptor) > ActionTec HWP01170 (PCI wireless card, Prism2.5) > DLink DWL-520 (PCI wireless card, Prism2.5) > >To whom should I send the code? I've been using 5.0.6 - haven't tried >with 5.1 yet (5.1 crashed the first time I tried it, 5.0.6 worked so I >started developing with the one that worked). Drool... Post them on this list if not large, or a URL if large. I can also make you a project developer at Sourceforge, register as a user then tell me your ID. Thanks! |
|
From: <ke...@us...> - 2002-04-10 08:48:13
|
>> For now the 5.1 branch is dead. 5.0.6 is the correct version >> to be working against. > >What's the story behind this? I assumed 5.1 was meant to be the >development branch. Because of the relatively small number of developers at the moment, Etherboot can't really support two full development streams. So unlike the Linux kernel effort, the minor number means something slightly different; the odd numbered branch is used for testing occasional controversial or high-impact changes. I realise this causes some confusion when people try to fetch that branch. What I will do in future is remove the development release from the release area, when the production release supercedes it. The alternative is to have yet another convention for naming: e.g. 5.0.7pre2, which I'm not happy with. >BTW, I have an EPROM programmer and am willing to burn EPROMs for anyone >in the UK (for a small fee to cover costs). Marty and and I are discussing setting up a web page listing a grass-roots list of people who will burn EPROMs for cost plus. Stay tuned. |
|
From: Marty C. <md...@th...> - 2002-04-10 10:56:19
|
On 4/9/2002 8:53 PM Michael Brown mb...@fe... wrote:
>I am new to this list. I have written Etherboot drivers for the
>Prism2/2.5 wireless (IEEE802.11b) chipsets. These work with the three
>cards I have available:
> Netgear MA301/MA401 (PCMCIA wireless card with PLX-based PCI adaptor)
> ActionTec HWP01170 (PCI wireless card, Prism2.5)
> DLink DWL-520 (PCI wireless card, Prism2.5)
Great work! This is something that people at LinuxWorld Expos have been
asking about for for some time. Thanks ever so much for your time and
effort.
This may also make it easier to support some laptop wireless PCMCIA
adapters. The problem of initializing the PCI bridge chips in laptops
(much variation) still remains, but maybe we can do some of the common
cases. Once the bridge has been initialized and one can talk to the
adapter, driver writing becomes much easier.
Hmmmm, wireless Etherbooting....
You know of course that this means we'll have to cart *even more* demo
hardware to LinuxWorld Expo San Francisco in August.
Drat!! :) :) :)
Marty
---
Try: http://rom-o-matic.net/ to make Etherboot images instantly.
Name: Marty Connor
US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA
Voice: (617) 491-6935, Fax: (617) 491-7046
Email: md...@th...
Web: http://www.thinguin.org/
|
|
From: Markus G. <ma...@gu...> - 2002-04-14 13:18:58
|
Marty Connor wrote: > Hmmmm, wireless Etherbooting.... > You know of course that this means we'll have to cart *even more* demo > hardware to LinuxWorld Expo San Francisco in August. > Drat!! :) :) :) I might be able to help out with some of that. I have a DWL-650/550 (i.e. PCMCIA card and a PCI adapter card), a laptop running Linux, and a wireless access point. While I use all of these daily, I can probably do without them for the duration of the show. Since I am local, there is no need for you to ship all of this from Boston. Markus -- Markus Gutschke 3637 Fillmore Street #106 San Francisco, CA 94123-1600 +1-415-567-8449 ma...@gu... |
|
From: <ke...@us...> - 2002-04-10 13:55:28
|
>All now in CVS, including the multi-driver ROM stuff. All builds fine on >my system, if anyone hits compile errors with my code please let me know. > >I tagged the three imported linux-wlan-ng header files with >Imported_linux_wlan_ng_0_1_13. They are verbatim imports containing lots >and lots of constants. Lovely thanks. >I have discovered one minor bug: when I attempt to built a multi-driver >ROM containing three drivers (rtl8139, prism2_plx and prism2_pci) it has a >tendency to crash and reset the machine at random times. My best guess >is that I am running out of memory and this is causing the resets when the >code tries to tread on non-existent RAM. Any suggestions? That's probably the stack colliding with the code. There's not much you can do without a major rework of Etherboot to claim more than one 64kB segment. |
|
From: <ebi...@ln...> - 2002-04-10 16:56:12
|
ke...@us... writes: > >All now in CVS, including the multi-driver ROM stuff. All builds fine on > >my system, if anyone hits compile errors with my code please let me know. > > > >I tagged the three imported linux-wlan-ng header files with > >Imported_linux_wlan_ng_0_1_13. They are verbatim imports containing lots > >and lots of constants. > > Lovely thanks. > > >I have discovered one minor bug: when I attempt to built a multi-driver > >ROM containing three drivers (rtl8139, prism2_plx and prism2_pci) it has a > >tendency to crash and reset the machine at random times. My best guess > >is that I am running out of memory and this is causing the resets when the > >code tries to tread on non-existent RAM. Any suggestions? > > That's probably the stack colliding with the code. There's not much you > can do without a major rework of Etherboot to claim more than one 64kB > segment. Cleaning up etherboot so it can get out of the way of the booted image has been on my list for a while anyway. Plus we have have the DOC problem, which means in general we should keep etherboot lower in memory possibly as low in memory as we can. When I get a chance I will see about cleaning up/testing my work to get etherboot out of the way of a loaded image. Once we get that runtime size should not be a problem, and we should be able to statically claim any address we want. I keep thinking of giving the 32bit segments different base addresses but then etherboot would need to implement virt_to_bus (or pci_alloc_consistent), and the drivers would all need to be changed. Any solution for going beyond one 64K segment has the issue that anything interacting with 16bit code needs to be isolated and looked at. Plus I guess there are some small loader issues. Moving the decompressor into 32bit code might make things easier. On the kernel side I have most of the hard work done, but I'm taking a breather before I resubmit my patches. Eric |
|
From: Marty C. <md...@th...> - 2002-04-14 14:57:45
|
On 4/14/2002 9:18 AM Markus Gutschke ma...@gu... wrote:
>Marty Connor wrote:
>> Hmmmm, wireless Etherbooting....
>> You know of course that this means we'll have to cart *even more* demo
>> hardware to LinuxWorld Expo San Francisco in August.
>> Drat!! :) :) :)
>I might be able to help out with some of that. I have a DWL-650/550 (i.e.
>PCMCIA card and a PCI adapter card), a laptop running Linux, and a wireless
>access point. While I use all of these daily, I can probably do without
>them for
>the duration of the show. Since I am local, there is no need for you to
>ship all
>of this from Boston. Markus
Thanks for the offer, Markus! The last LinuxWorld in New York was great,
and I hope you can be in the booth in August again. Registration for the
.ORG Pavillion doesn't seem to have started yet, but I'll certainly try
to get us in as soon as it does.
I was mostly joking about bringing more equipment. I actually enjoy
seeing how much demo stuff we can bring in two large suitcases and fit
into the booth :) I'll probably be shipping a lot ahead to the hotel
this time, and then it's the matter of getting it to the Moscone.
We might even want two demo machines this show. One wireless and one
wired. I just happen to have gotten another case, and will get some
plexiglas to make another demo box for display.
If everything works out, it could be a really fun time. Maybe we can
even somehow tempt Ken and Eric into coming :)
Marty
---
Try: http://rom-o-matic.net/ to make Etherboot images instantly.
Name: Marty Connor
US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA
Voice: (617) 491-6935, Fax: (617) 491-7046
Email: md...@th...
Web: http://www.thinguin.org/
|
|
From: <ke...@us...> - 2002-04-16 16:25:28
|
>All now in CVS, including the multi-driver ROM stuff. All builds fine on >my system, if anyone hits compile errors with my code please let me know. Sorry Michael, I've redesigned the format of the NIC spec file so your diffs have not been propagated because I haven't thought up of a replacement syntax for your multi-driver build specs. Suggest something. Maybe a section like: multi name=driver1,driver2,driver3 PCI-IDs Comment You will find the revamped genrules.pl and NIC in CVS now. |
|
From: Michael B. <mb...@fe...> - 2002-04-16 16:49:55
|
On Wed, 17 Apr 2002, Ken Yap wrote: > >All now in CVS, including the multi-driver ROM stuff. All builds fine on > >my system, if anyone hits compile errors with my code please let me know. > Sorry Michael, I've redesigned the format of the NIC spec file so your > diffs have not been propagated because I haven't thought up of a > replacement syntax for your multi-driver build specs. Suggest something. > Maybe a section like: > multi > name=driver1,driver2,driver3 PCI-IDs Comment > You will find the revamped genrules.pl and NIC in CVS now. Will take a look and code something in (I like Perl). Michael |
|
From: Michael B. <mb...@fe...> - 2002-05-12 17:32:32
|
On Wed, 17 Apr 2002, Ken Yap wrote:
> >All now in CVS, including the multi-driver ROM stuff. All builds fine on
> >my system, if anyone hits compile errors with my code please let me know.
> Sorry Michael, I've redesigned the format of the NIC spec file so your
> diffs have not been propagated because I haven't thought up of a
> replacement syntax for your multi-driver build specs. Suggest something.
> Maybe a section like:
> multi
> name=driver1,driver2,driver3 PCI-IDs Comment
> You will find the revamped genrules.pl and NIC in CVS now.
OK, I finally got around to doing something about this.
I've taken a different approach: rather than having to list multi-driver
ROMs in the NIC file, I thought it would be more elegant if it were
possible to type, for example:
make bin32/dfe538--prism2_pci.rom
to generate a BootROM for the dfe538 card (RTL8139-based) that would
include both the RTL8139 and Prism2_PCI drivers.
I have modifed genrules.pl to produce pattern rules alongside the "normal"
rules. The upshot is that it is now possible to type
make bin32/PCI_NIC--ADDITIONAL_DRIVER.{rom,lzrom,etc.}
for any combination of PCI_NIC and ADDITIONAL_DRIVER. No multi-driver
ROMs will be built by default (i.e. "make" will produce only single-driver
ROMs).
I should probably document this somewhere - any suggestions for an
appropriate place?
For those interested: the build procedure for a multi-driver ROM is
identical to that of a single-driver ROM except that:
1) the config-*.o file must have -DINCLUDE_XXX defined for all the
required drivers, and must also have -DTRY_ALL_DEVICES defined
2) when generating the .img, .tmp or .elf file, the additional driver must
also be linked in
The current multi-driver solution is not particularly elegant in its
implementation and has three known bugs:
1) It only works with PCI Roms at the moment - I don't know enough about
the ISA build process to be confident of modifying it.
2) It only works for dual-driver Roms - there is no way of even specifying
three or more drivers. This is irritatingly inelegant but not likely
to cause practical problems; if you try to squeeze in three or more
drivers then Etherboot will die horribly through RAM starvation anyway.
It is probably possible to fix this using some of the more esoteric
features of make - patsubst, wildcard etc.
3) The Roms makefile is too long and could probably be shortened
considerably by judicious use of pattern rules.
This feature meshes nicely with the option-175 patch I put in yesterday:
the multi-driver NIC will send the currently-in-use driver as option 175
to the DHCP server and this means that the server can send back a
single-driver kernel - no need to maintain multi-driver kernels as well.
As always, if these changes break anything, please let me know.
Michael
|
|
From: Michael B. <mb...@fe...> - 2002-05-12 23:49:37
|
On Sun, 12 May 2002, Michael Brown wrote:
> I have modifed genrules.pl to produce pattern rules alongside the "normal"
> rules. The upshot is that it is now possible to type
> make bin32/PCI_NIC--ADDITIONAL_DRIVER.{rom,lzrom,etc.}
> for any combination of PCI_NIC and ADDITIONAL_DRIVER. No multi-driver
> ROMs will be built by default (i.e. "make" will produce only single-driver
> ROMs).
> <snip>
> The current multi-driver solution is not particularly elegant in its
> implementation and has three known bugs:
> <snip>
> 2) It only works for dual-driver Roms - there is no way of even specifying
> three or more drivers. This is irritatingly inelegant but not likely
> to cause practical problems; if you try to squeeze in three or more
> drivers then Etherboot will die horribly through RAM starvation anyway.
> It is probably possible to fix this using some of the more esoteric
> features of make - patsubst, wildcard etc.
This problem, at least, is fixed. You can now type, for example:
make bin32/dfe538--prism2_pci--tulip.rom
and it will happily generate a ROM with three drivers (rtl8139, prism2_pci
and tulip) with the dfe538's PCI IDs.
> 3) The Roms makefile is too long and could probably be shortened
> considerably by judicious use of pattern rules.
I'm less convinced of this now. I managed to reduce the config-*.o rule
down to a single pattern rule (which handles both PCI and ISA, single- and
multi-driver), but the others are problematic. The main issue is that
there doesn't seem to be any way to have the dependencies being a function
of the target (other than in the very simplistic pattern-rule style). As
an example:
rtl8139--%.img : bin32/rtl8139.o \
$(foreach driver,$(subst --, ,%),bin32/$(driver).o)
make rtl8139--prism2_pci--tulip.img
does NOT evaluate to the expected
rtl8139--prism2_pci--tulip.img : bin32/rtl8139.o \
bin32/prism2_pci.o bin32/tulip.o
because the function evaluation happens *before* the pattern matching on
the %. This means (I think) that any functions in the dependencies can
never know the contents of the "%".
As a workaround, I have made it so that building any multi-driver ROM is
dependent on all the *.o files (ugly).
If anyone knows a way to fix this, I'd really appreciate it.
Michael
|
|
From: Michael B. <mb...@fe...> - 2002-04-10 08:15:37
|
On Wed, 10 Apr 2002, Ken Yap wrote: > >I am new to this list. I have written Etherboot drivers for the > >Prism2/2.5 wireless (IEEE802.11b) chipsets. These work with the three > >cards I have available: > > Netgear MA301/MA401 (PCMCIA wireless card with PLX-based PCI adaptor) > > ActionTec HWP01170 (PCI wireless card, Prism2.5) > > DLink DWL-520 (PCI wireless card, Prism2.5) > >To whom should I send the code? I've been using 5.0.6 - haven't tried > >with 5.1 yet (5.1 crashed the first time I tried it, 5.0.6 worked so I > >started developing with the one that worked). > Drool... > Post them on this list if not large, or a URL if large. I can also make > you a project developer at Sourceforge, register as a user then tell me > your ID. My Sourceforge ID is mcb30. There's about 4,600 lines of code (3,700 of which is header files borrowed from the linux-wlan-ng project), so I'll check them in via CVS rather than posting to the list. Thanks, Michael |