On Tue, 21 Jul 1998, Harald Koerfgen wrote:
> 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.
As they do mention. :-)
> 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).
It's still unclear to me how address space is assigned, to me it
seems machine dependant for example looking at the TURBOchannel System
Parameters (EK-TCAAB-SP-006): the 5k/200 has 12 Mb (4 Mb each) for its
on-board pheripherals and the 5k/100 has 64 Mb (not mentioned each)
for it.
> To make a long story short:
>
> #include <asm/dec/tc.h>
>
> lance_base = system_base + 3 * 0x00040000;
>
> system_base is declared and filled with the right value in drivers/tc/tc.c.
This short story is a bit longer... First I altered system base to
system_base = slot0addr + slot_size * (max_tcslot + 2);
Letting the 5k/xx having 4 slots... In NetBSD it appears that the
framebuffer occupies slot 3 and secondly I gave the esar an offset
of 0x80000, which I also traced down the NetBSD code (see seperate
posting), according to the Ethernet Module documentation it should
reside at lance_base + 0xc0000, this all resulted that the kernel showed
me.... the correct ethernet hardware address YES!
> I guess the time is right for defining a few constants like LANCE_IOASIC_SLOT
> and so on :-).
Indeed it is, while having a BBQ? :-)
Regards,
Richard
|