Subject: Re: TC bba audio problem on DEC3000/300
To: Gregory McGarry <g.mcgarry@ieee.org>
From: Jason R Thorpe <thorpej@zembu.com>
List: port-alpha
Date: 07/16/2000 20:11:28
On Sun, Jul 16, 2000 at 08:03:24PM -0700, Jason R Thorpe wrote:

 > On Mon, Jul 17, 2000 at 08:21:33AM +1000, Gregory McGarry wrote:
 > 
 >  > 2) Another issue is that IOASIC DMA is in 4KB blocks.  On the pmax, this
 >  > is a cpu page.  Do all alphas have an 8KB page?  Would it be more
 >  > technically correct not to refer to PAGE_SIZE, when really we mean 4KB?
 > 
 > And looked at it again, and yes, this is also a problem.  I've made the
 > changes to handle this, but then noticed that the bus_dma implementations
 > don't handle the case of maxsegsz being less than PAGE_SIZE.  This is a
 > pretty trivial fix, tho.

ACTUALLY....

I just double-checked the manual, to be extra sure, and it says,
in section 9.5.2.9:

	If an ISDN transmit DMA pointer crosses a page boundary,
	the transmit buffer pointer is loaded into the transmit
	pointer, and an interrupt is set.  This directs software
	to reload the buffer pointer.  If the buffer pointer is
	empty, the DMA is turned off because an invalid address
	was loaded into the pointer, and another interrupt is
	set siognaling overflow.  A buffer pointer may be empty
	because it was never written to or has not been written
	to since the last page crossing.

Note, "page size".  I suspect the IOASIC detects page size by how it's
wired to the bus.

-- 
        -- Jason R. Thorpe <thorpej@zembu.com>