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

Etrax Lock up



Hi,
 
I'm using the Etrax 100 LX MCM on the Axis 83 device server with Linux 2.4. I am trying to write a kernel device driver to read in information using the parallel port. I have noticed that when using long loops, the devboard crashes and needs to be reset. Could this be caused by a watchdog or something similar making a timeout in the kernel?
 
For example this crashes
 
/* global variable */
static volatile char data[10000];
 
for (i = 0; i < 10000; i ++) {
    data[i] = *R_PAR0_STATUS_DATA & 0xff;
}
 
But this does not (loop length has been reduced)
 
/* global variable */
static volatile char data[10000];
 
for (i = 0; i < 1000; i ++) {
    data[i] = *R_PAR0_STATUS_DATA & 0xff;
}
 
I am using the parallel port in manual mode. I am fairly sure that I have set up the R_GEN_CONFIG registers and R_PAR0_CONFIG etc registers correctly.
 
I would also like some information on using DMA transfers in manual mode. I have read through the mailing list and it appears no interrupts are available on the parallel port in manual mode. How can DMA be used? The device we are reading from can operate quite fast, > 10Mbytes/sec, so I would like the parallel port to run as fast as possible.
 
Cheers
 
Jeremy Turner