Re: [Etherboot-developers] changes checked into CVS
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: <ebi...@ln...> - 2002-07-04 06:36:46
|
ke...@us... writes:
> I have checked into CVS:
>=20
> For 5.0.7 and 5.1.2 candidates:
>=20
> Changes to NIC identification scheme from variable length string to
> fixed binary structure. Added ISA IDs to drivers.
O.k. Looking at this there is a bug in how the ISAPNP id's are
encoded. You have been using the pci vendor id's instead of the=20
EISA/PNP vendor id's.
The 32-bit Vendor ID is an EISA Product Identifier (ID). This ID consists =
of:
=B7 bits[15:0] - three character compressed ASCII EISA ID.
Compressed ASCII is defined as 5 bits per character, "00001" =3D "A" ... "=
11010" =3D "Z". This field is assigned to each manufacturer by the EISA adm=
inistrative agent.
=B7 bits[31:16] - manufacturer specific product number and
revision. It is the responsibility of each vendor to select
unique values for this field.=20
For the crystal lan the partnumber is CSC0007 (For the CSC8900 rev B)
Cyrus Logic has a good set of data sheets online for it.
In any event these are the macro the linux kernel uses to deal with
these numbers internal. The isa-pnp spec has more information.
#define ISAPNP_VENDOR(a,b,c) (((((a)-'A'+1)&0x1f)<<2)|\
((((b)-'A'+1)&0x18)>>3)|((((b)-'A'+1)&7)<<13)|\
((((c)-'A'+1)&0x1f)<<8))
#define ISAPNP_DEVICE(x) ((((x)&0xf000)>>8)|\
(((x)&0x0f00)>>8)|\
(((x)&0x00f0)<<8)|\
(((x)&0x000f)<<8))
The endian issues with the EISA part number drive me crazy. I think
the data is normally stored big endian. But I am confused. For
purposes of synching with modules.isapnpmap from the linux kernel=20
these values produced by the macros are the values we need.=20=20
Using these in etherboot we should be able to have readable ISA part
numbers as well as fitting everything snuggly into 32 bits.
The linux kernel 3c509.c driver is a good one to work against as it
actually implements the discovery via the isapnp id's.
If we are going to fix the interface to the id's in 5.0.7 we need to
be certain we get this correct.
Eric
|