orinoco driver and arm

David Gibson david at gibson.dropbear.id.au
Fri Oct 5 10:46:32 EST 2001


On Thu, Oct 04, 2001 at 01:46:23PM +0200, Brauel, Bjoern wrote:
> Hi everyone,
> 
> I wanted to raise the issue with the orinoco driver on arm processors
> (probably again, as Davids readme already says something about it).
> It is true that the driver in its current form cannot work on arm machines
> (I have an IPaq) due to whe misalignment of the dldwd_frame_hdr
> structure. In fact it is the hermes_frame_desc_t struct that causes the
> problem. The hermes_frame_desc_t is normally exactly 14 bytes in size,
> but the gcc on arm will always align it to 16 bytes. I actually don't
> believe this is a bug ! The arm processors always want to have 4-byte
> aligned adresses, so the 14 bytes struct indeed has to be aligned.
> -mstructure-size-boundary=8 doesn't fix that problem !

Hmm.. well at least one person reported that somehow-or-other it
worked using -mstructure-size-boundary=8.

> What I'd like to know is how to proceed from here. I changed the orinoco.c
> in order to use a plain dldwd_frame_hdr struct not referencing
> any other structs. Some other changes were needed to make this working but
> now I can use the orinoco driver on my ipaq and it seems
> to work just fine. But I am really not sure if having a plain struct is a
> good idea, cause it will "duplicate" the structs from other headers
> (hermes_drame_desc_t and ethhdr in particular) cause when they change , the
> orinoco code is broken. But will eg. ethhdr ever change ?
> So what do you guys think about how to proceed. Should the handhelds cvs
> adopt the plain struct, or will there be a solution within orinoco ?

In the longer term I plan to change to driver not to rely so much on
packed structures for parsing everything, but instead to use explicit
offsets wherever its sensible.  That's a pretty big change though, so
it's unlikely to happen soon.  Can you send me your patch to the
driver and I'll see whether all or part of it can sensibly be merged.

-- 
David Gibson			| For every complex problem there is a
david at gibson.dropbear.id.au	| solution which is simple, neat and
				| wrong.  -- H.L. Mencken
http://www.ozlabs.org/people/dgibson





More information about the wireless mailing list