Using IDMA1 ( or IDMA2 ) on 860

John Francis johnfrancsis at yahoo.com
Mon Aug 20 06:33:58 EST 2001


Hello Dan,

--- Dan Malek <dan at mvista.com> wrote:
> John Francis wrote:
>
>
> > ..... on hardware
> > side I do see the DREQ line going low and I have
> > verified that RCCR register for CPM is set
> correctly
> > to level trigger the interrupt.
> >
> > Any ideas on why IDMA1 interrupt handler is not
> > getting invoked?
>
> The DREQ has nothing to do with generating an
> interrupt, it
> is a data transfer handshake signal.  The
> configuration of
> this pin is determined by the system design,
> connection to
> the peripheral for data transfer and the
> configuration of
> the memory controller.
>
> The configuration of the IDMA channel, including the
> buffer
> descriptors, will determine how and when the CPM
> interrupt
> will occur.
>
> 	-- Dan

May be I should have been more specific, yes I have
setup the PC15 pin to have correct direction.

I have checked and rechecked the IDMA buffer
descriptors and they look "okay".

I have another question may be this is something
related.

I am working with chip whos configuration memory is
accessible and that memory is mapped to chip select 2
( BR2 ).

WHat I have seen is my kernel functions cause panic if
I use first version of GetChipAddress but second
version works?

I mean if I do something like
 *(unsigned long *)(GetChipAddress() + 0x02 ) =
0xABCD;

first version causes panic, second version doesn't.

/* version1 of  GetChipAddress this BREAKS why? */

GetChipAddress()
{

PDA *ppda = (PDA *)(GetIMMR() & IO_MAP_MASK);

return(ppda->memc_br2 & 0xFFFF8000);
}

/* version2 of GetChipAddress this WORKS why? */
unsigned long driver_fifobase;
GetChipAddress()
{
PDA *ppda = (PDA *)(GetIMMR() & IO_MAP_MASK);


if ( driver_fifobase == 0 )
       driver_fifobase =
    (unsigned long)ioremap_nocache( ( ppda->memc_br2
		& 0xffff0000),0x4000 );

return driver_fifobase;

}

Thanks.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





More information about the Linuxppc-embedded mailing list