]> git.hungrycats.org Git - linux/commitdiff
[ARM PATCH] 2117/1: Fix ATU config on IQ80331 to prevent master aborts, replace 2099/1
authorDave Jiang <dave.jiang@com.rmk.(none)>
Sun, 3 Oct 2004 23:28:36 +0000 (00:28 +0100)
committerRussell King <rmk@flint.arm.linux.org.uk>
Sun, 3 Oct 2004 23:28:36 +0000 (00:28 +0100)
Patch from Dave Jiang

Latest IQ80331 redboot changed value of ATU registers and is causing master aborts on the plugged in card. Changing value back to previous sane state for Linux.

Signed-off-by: Dave Jiang (dave.jiang@gmail.com)
Patch in replacement of 2099/1 due to formatting problems.

arch/arm/mach-iop3xx/iop331-pci.c

index cf1e633d5bc4e080e5044748e585cffd80edf0c5..f6118dd10fa017e73ac5adc4e9ce52ecec624148 100644 (file)
@@ -208,12 +208,10 @@ void iop331_init(void)
        DBG("\tATU: IOP331_IABAR2=0x%08x IOP331_IALR2=0x%08x IOP331_IATVR2=%08x\n", *IOP331_IABAR2, *IOP331_IALR2, *IOP331_IATVR2);
        DBG("\tATU: IOP331_IABAR3=0x%08x IOP331_IALR3=0x%08x IOP331_IATVR3=%08x\n", *IOP331_IABAR3, *IOP331_IALR3, *IOP331_IATVR3);
 
-#if 0
-       hook_fault_code(4, iop331_pci_abort, SIGBUS, "external abort on linefetch");
-       hook_fault_code(6, iop331_pci_abort, SIGBUS, "external abort on linefetch");
-       hook_fault_code(8, iop331_pci_abort, SIGBUS, "external abort on non-linefetch");
-       hook_fault_code(10, iop331_pci_abort, SIGBUS, "external abort on non-linefetch");
-#endif
+       /* redboot changed, reset IABAR0 to something sane */
+       /* fixes master aborts in plugged in cards */
+       /* will clean up later and work nicely with redboot */
+       *IOP331_IABAR0 = 0x00000004;
        hook_fault_code(16+6, iop331_pci_abort, SIGBUS, "imprecise external abort");
 }