Subject: Re: TC bba audio problem on DEC3000/300
To: Jason R Thorpe <thorpej@zembu.com>
From: Gregory McGarry <g.mcgarry@ieee.org>
List: port-alpha
Date: 07/17/2000 14:04:49
Jason R Thorpe 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.

You will find the term "page size" referred to all over the document.
The only clue is sections 7.3.7 and 7.3.9.

	-- Gregory McGarry <g.mcgarry@ieee.org>