I'm still at home (hacking), but will be away towmorrow :-).
On 19-Jul-98 Richard van den Berg wrote:
> Hello everybody,
> Florian, I'm curious how you handled the base address stuff for the scsi
> driver. Let me explain why:
> And as far as my DS5000/25 concerns I have only the NetBSD output -
> which I attached at the end - and that shows regretably only relative
> base addresses. In other words any programming documentation about the
> KN02CA system module is very welcome.
Yes, it is. Unfortunately all we have is indirect information. The DEC AXP
Models System Programmer's Manual will be of help. The DEC AXP Models are Alpha
based TURBOchannel machines with the same IOASIC as the DECstation 5000/240 (or
the 5000/260). You might want to read Chapter 7 of the above mentioned manual
available at http://decstation.unix-ag.org.
Another source of information are the Mach sources. As far as I can tell, the
*BSD people have gleaned a lot of stuff from Mach.
Anyway. The IOASIC resides where the (MAXSLOT +1) TURBOchannel slot would be if
it existed. The address range of the IOASIC is divided into 16 chunks with a
size of 256 KB and each onboard device has its own chunk. The LANCE chip
resides in chunk 3 on all IOASIC machines (5k/1xx, 5k/xx and 5k/2x0).
To make a long story short:
lance_base = system_base + 3 * 0x00040000;
system_base is declared and filled with the right value in drivers/tc/tc.c.
I guess the time is right for defining a few constants like LANCE_IOASIC_SLOT
and so on :-).