| To: | hli@quicklogic.com |
|---|---|
| Subject: | Re: IDE DMA mode in Big endian for mips |
| From: | Atsushi Nemoto <nemoto@toshiba-tops.co.jp> |
| Date: | Wed, 17 Oct 2001 11:38:42 +0900 (JST) |
| Cc: | linux-mips@oss.sgi.com |
| In-reply-to: | <APEOLACBIPNAFKJDDFIIEECJCBAA.hli@quicklogic.com> |
| Organization: | TOSHIBA Personal Computer System Corporation |
| References: | <20011012225433.A10523@lucon.org> <APEOLACBIPNAFKJDDFIIEECJCBAA.hli@quicklogic.com> |
| Sender: | owner-linux-mips@oss.sgi.com |
>>>>> On Tue, 16 Oct 2001 10:28:56 -0400, "Hanks Li" <hli@quicklogic.com> said:
hli> We are working on the IDE/ATAPI for mips. When I changed to Big
hli> endian mode, the following information appared, and the program
hli> hang.
When I tried PCI-IDE in BigEndian (with 2.4.6 kernel), this patch
solved my problem.
--- linux/drivers/ide/ide-dma.c:1.1.1.1 Fri Jul 6 11:24:54 2001
+++ linux/drivers/ide/ide-dma.c Fri Aug 17 20:17:30 2001
@@ -492,7 +492,11 @@
SELECT_READ_WRITE(hwif,drive,func);
if (!(count = ide_build_dmatable(drive, func)))
return 1; /* try PIO instead of DMA */
+#if defined(__mips__) && defined(__BIG_ENDIAN) /* XXX mips only? */
+ outl(cpu_to_le32(hwif->dmatable_dma), dma_base + 4); /*
PRD table */
+#else
outl(hwif->dmatable_dma, dma_base + 4); /* PRD table */
+#endif
outb(reading, dma_base); /*
specify r/w */
outb(inb(dma_base+2)|6, dma_base+2); /*
clear INTR & ERROR flags */
drive->waiting_for_dma = 1;
---
Atsushi Nemoto
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Worm bombardment., Ralf Baechle |
|---|---|
| Next by Date: | The Linux binutils 2.11.92.0.7 is released., H . J . Lu |
| Previous by Thread: | Re: IDE DMA mode in Big endian for mips, Jun Sun |
| Next by Thread: | Re: IDE DMA mode in Big endian for mips, Geert Uytterhoeven |
| Indexes: | [Date] [Thread] [Top] [All Lists] |