Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Feb 2000 23:32:21 +0000 (GMT)
From:      Andrew Gordon <arg@arg1.demon.co.uk>
To:        Hellmuth Michaelis <hm@kts.org>
Cc:        dfr@nlsystems.com, freebsd-isdn@freebsd.org
Subject:   Re: Big ATA problems
Message-ID:  <Pine.BSF.4.21.0002202319370.20564-100000@server.arg.sj.co.uk>
In-Reply-To: <20000220191947.A58381F17@bert.kts.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 20 Feb 2000, Hellmuth Michaelis wrote:
> Andrew Gordon wrote:
> > On Sun, 20 Feb 2000, Hellmuth Michaelis wrote:
> > > 
> > > A typical isic hardware has an ISAC and an HSCX chip onboard. The ISAC
> > > chip does the D-channel handling and uses offsets 0-0x2b and 0x30-0x3b,
> > > the HSCX (B-channels) uses offsets 0-0x3b and 0x40-0x73.
> > 
> > But in the case of the teles16.3, it does _not_ use offsets 0x00-0x3b in
> > the HSCX or ISAC: the ASIC on the card has 'folded' the address space so
> > that the fifo appears at an address 3 bytes after the last register (0x3e
> > with the current scheme - see tels0163_read_fifo()).
> 
> Oh yes, you are right! I was (and am still a bit) confused.
> 
> So it uses 0x20-0x3e for the ISAC and 0x20-0x3e and 0x60-0x7e for the HSCX
> and at least three bytes at its base address, right ?

Well, this depends where you measure the offsets from!  With the current
bus space allocations, ISAC/HSCX-A/HSCX-B all use offsets 0x20-0x3e
relative to the base addresses 0x160 etc.

When the bus allocations have been cut down to the right size, each will
use offsets 0x00-0x1e within a size 0x20 allocation at 0x180 etc.

I notice that in i4b/layer1/isa_isic.c (ie. OpenBSD/NetBSD) the
bus_space_map calls use the "correct" starting addresses (0x180, 0x580,
0x980, 0xd80) but still have the wrong sizes.  I haven't analysed how this
works.

Attached is a patch that _might_ do the right thing on FreeBSD.  I have
fiddled the offsets in tels0163_write_reg/tels0163_read_reg so that the
register numbers remain unchanged.  I am particularly unsure if I have
done the right thing with the allocation at 0xd80 - I copied the code from
elsewhere, but I don't understand NewBus well enough to know if this is
right.

> 
> This makes sense. Now the real question left is are this the only locations
> where the card is driving the bus ?

I will test this as soon as I can dismantle the machine with my 16.3 card
in it.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0002202319370.20564-100000>