Re: Problems related to DMA or DDR memory on Intel 845 chipset?

From: Krzysztof Halasa (khc@pm.waw.pl)
Date: Mon Jul 28 2003 - 18:14:04 EST


"Kathy Frazier" <kfrazier@mdc-dayton.com> writes:

> Sorry for the confusion! My driver sets up our device for a DMA (address
> and length) and then gives the command
> for the DMA to start. Once the device has completed the transfer, it
> asserts its interrupt, the driver clears it and proceeds to set up the next
> data transfer. It runs for awhile, but then eventually hangs (I don't get
> interrupts and neither does anything else - keyboard, ethernet, etc). I
> simply added debug to do_IRQ in the kernel to track the desired IRQ. I also
> added a routine to read the 8259 Interrupt Controller Registers when
> requested. Then I had a user app and driver which simply called this new
> new routine in the kernel to return the status of the 8259 and the debug
> counters I added to do_IRQ. Once the system failed, this debug information
> showed that not only was Linux NOT receiving the interrupt, but neither was
> the 8259. When I changed my driver to poll the device for DMA completion
> instead of rely on an interrupt, it still locked up.

I understand this is your device doing DMA (= access) - i.e. your
PCI card is transfering to/from system RAM? This has nothing to do with
any UDMA and it works with any Linux kernel and system hardware which
support PCI.

Are you using some standard PCI bridge by chance? Are you sure it isn't
a hardware (design or manufacturing) problem with the device (bridge)?
How do you check interrupt request state?

-- 
Krzysztof Halasa
Network Administrator
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jul 31 2003 - 22:00:40 EST