8250 IDMA TX Problems

Penn, John jpenn at magisnetworks.com
Sat Mar 1 03:17:11 EST 2003


Hi,

After searching the archives I still have a few basic questions.
I am using an 8250 Hip 4 Rev A.  Linux kernel 2.4.19 with a few patches.

I am trying to get IDMA working to transfer data between the 60x system
memory and a device on the local bus.  I am using DREQ and nDACK for TX,
RX will come later.

When I send a start command for IDMA3 to the CPM my serial port locks
up.
I have Initialized all the IDMA registers and loaded up 1 buffer
descriptor
with the LAST and WRAP bits set.

Using a BDI 2000 debugger I can access the 60x bus and it seems to be
working.
The error registers of the CPM also don't show any info.

The nDACK signal never asserts either and data does not seem to be
written into
the DPM transfer buffer.  I checked DREQ and it is asserting though I am
usually
locked up before this event.

Some info:
   RCCR = 		DR3M - DREQ 3 is level sensitive
			DR3QP - DREQ has lowest priority
					than the comm. controllers

   DCM = 		FB - Dual address mode
   			DMA_WRAP - size of IDMA 3
					transfer buffer = 2048 bytes
			SINC - source addr increment
			ERM - External Request Mode
					CP responds to DREQ
			S/D - Read from memory, write to peripheral


1.	Has anyone used IDMA on an 8250?  The 8250 and the 8260 are
supposedly
	the same die so this functionality should be there, so I was
told.

2.	Has anyone managed to get IDMA working between 60x memory and a
	peripheral on the Local Bus using DPM for :
	a. BDs ?
	b. IDMAx Parameter Ram ?

3.	Should I switch to local bus ram for BDs?

4.	Should I use local bus ram for the data buffers?

5.	For a write transaction I am using the following values :
	SS_MAX = 2048-32;
	STS = 2048-32;
	DTS = 4;			// The peripheral port is 32
bits.

	2048 is the largest packet I will ever transfer.

	Do these values look ok?


Thanks for the help,

John Penn

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





More information about the Linuxppc-embedded mailing list