[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: AS255: UW SCSI, sound, video, kernel



On Tue, 22 Jun 1999, Alex Winbow wrote:

> 	I said *kernel* code. Since I thought that the kernel drivers were
> written on top of a CPU-specific abstraction layer (the raw assembly.)  
> I'm aware that most code isn't 64-bit clean, or is little-endian dependant
> (notably XFree86, since it's all raw-hardware based.) 
> 	Isn't "good" code portable, including linux kernel drivers?

No, not at all.  In fact, I found this out first-hand with an aha1542 and
my SX.  Granted, it's an ISA board that uses DMA, but the driver's
presence in the kernel tree definitely did not mean it worked :-(  It
turns out that, according to a few sources, getting it to work would be
much harder than just buying a new SCSI host adapter.  The problem lied
with the DMA facilities of the board itself not being able to map
addresses properly (if I understood the explanation correctly) onto the
Alpha's > 2G addresses.  Alot of older hardware will probably not work
with Alphas (not to mention others), but PCI cards generally work in my
experience if they follow the PCI 2.1 spec.

On the other hand, my 3c509 ISA ethernet board works fine in my SX (as do
two other ISA NICs).  It really depends on how they map themselves into
memory.

FYI, alot of the current kernel drivers assume x86-ish things (such as
memory mapping or BIOS recognition) which cannot be easily accomplished or
emulated on other hosts.  On Alpha, we have almost a "virtual bios32"
system that runs in the kernel when initialising and talking to devices,
but it's not perfect nor can it catch every instance.  Since Alphas are
ALOT closer to x86 motherboard architecture, many boards work on Alpha
that also work on x86, but I'm sure that other hosts (MIPS, m68k, etc)
differ more greatly and the chance of finding non-working drivers on those
platforms increases.

C


Reply to: