Subject: SMC91cxx h/w info and bus space queries
To: None <tech-kern@netbsd.org>
From: Allen Briggs <briggs@ninthwonder.com>
List: tech-kern
Date: 07/26/2000 10:38:27
I have received a couple of AsanteFAST nubus adapters
(10/100 ethernet). These are based on the SMC 91C100
chip. This is almost recognized by the smc91cxx driver,
but not quite. Does anyone have any softcopy docs for
this chip? I found smsc.com on-line, but the 91C100 is
discontinued and they don't have archived information
on-line.
FWIW, I currently have:
sm0 at nubus0 slot d: AsanteFAST 10/100 NB^A
sm0: invalid BSR 0x0035
sm0: unknown chip id 3, revision 5
sm0: MAC address 00:00:94:77:e8:08, default media UTP
The chip id and revision are almost certainly wrong because...
The smc91cxx driver seems to assume that bus_space_read_2 will
return data LSB-first. The nubus machines that I'm aware of are
both m68k and therefore will be using memory-mapped I/O and reading
16-bit data MSB-first. So, how should this be handled?
* Should the driver do a le16toh() or htole16() in
conjunction with its current code? That wouldn't
seem right for systems that automatically byte-swap
for the bus accesses.
* Should the mac68k bus_space implementation be
expanded to carry flag(s) (in the bus_handle_t)
that drivers can set? One of these flags would
be for byte swapping (there is some need also
for a way to specify that byte registers are on
longword boundaries, etc.).
I'm thinking that the second is the way to go, but since
it's more work and will have some negative impact on performance
(on a machine with little performance to spare ;-), I'd like
to hear what others think about this.
-allen