[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: DMA Channel Sharing


You are correct that ser2 has to be disabled to use
the parallel port 0 DMA. I suggest that you move 
kernel debug, console and serial port login to 
serial port 0.

1. Disable serial port 2 in kernel config 
2. Change debug port to serial port 0 in kernel config
3. Set /dev/console to /dev/ttyS0 in the Makefile under 
4. Modify or remove agetty in files/etc/inittab

In R_GEN_CONFIG you must assign the parallel port
to the pins and the DMA to the parallel port. In
head.S this would look like this:

	or.d	  IO_STATE (R_GEN_CONFIG, dma3, par0)	\
		| IO_STATE (R_GEN_CONFIG, dma2, par0)	\
		| IO_STATE (R_GEN_CONFIG, par0, select),r0

In most cases this can be done in the driver instead
but if other DMAs are running when changing GEN_CONFIG
you may run into trouble.


-----Original Message-----
From: owner-dev-etrax@xxxxxxx.com]On">mailto:owner-dev-etrax@xxxxxxx.com]On
Behalf Of Greg Cannon
Sent: Tuesday, October 30, 2001 12:18 AM
To: dev-etrax
Subject: DMA Channel Sharing


I am trying to figure out how to get a parallel port DMA driver working.  I
understand that the DMA channel for the parallel port 0 is multiplexed with
the Asynchronous Serial Port 2 (along with the ATA and SCSI-8) interface.  I
believe that in order to get the parallel port working with DMA, I will have
to disable the serial port 2, and configure the R_GEN_CONFIG register to
properly control the mux into the DMA channel.

As configured, the developer board utilizes the serial port 2, and has
allocated the DMA IRQ and resources for the serial driver for tty2.  I used
make xconfig to turn off serial port #2, but when I flashed the new
configuration, the board never came out of "programming" mode.  I was able
to return the board to original condition by turning the serial port #2 on
and reflashing.  Is there a known procedure for disabling the serial port
#2?  What more would I need to do to allow my parallel port driver to gain
access to its DMA channel?