kernel-fxtec-pro1x/arch/mips/pci
Alexander Bigga 32136568a9 [MIPS] Fix for pci config_access on alchemy au1x000
I've encountered a serious problem with PCI config space access on Au1x000
platforms with recent 2.6.x-kernel. With 2.4.31 the same hardware works fine.
So I was looking for the differences:

Symptoms:
- no PCI-device is seen on bootup though two or three cards are present
- lspci output is empty
- OR: lspci shows 20 times the same device
(- OR: in some slot-configurations it worked anyhow)

System(s):
1. platform with Au1500 and three PCI-devices (actually a mycable XXS1500
    with backplane for three PCI-devices)
2. platform with Au1550 and two PCI-devices (custom board)

Debugging:
I digged down to the config_access() of the au1xxx-processors in
arch/mips/pci/ops-au1000.c and switched on DEBUG.

The code of config_access() seems to be almost the same as of the
2.4.x-kernel. But the "pci_cfg_vm->addr" returned by get_vm_area(0x2000, 0)
once on booting is different. That's of course not forbidden. But the
alignment seems to be wrong. In my case, I received:

2.4.31: pci_cfg_vm->addr = c0000000
2.6.18-rc5: pci_cfg_vm->addr = c0101000

To make it short: With 2.6.x it fails on the first config-access with:
"PCI ERR detected: status 83a00356".

Fixup:
My fix is now, to use the VM_IOREMAP-flag in the get_vm_area call. This flag
seems to be introduced in mm/vmalloc.c a long time ago (in 2.6.7-bk13, I
found in gitweb).
Now, the returned address is pci_cfg_vm->addr = c0104000 and everything works
fine.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2006-09-27 13:37:38 +01:00
..
fixup-atlas.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fixup-au1000.c Moved irq_tab_alchemy to the board specific irqmap.c files. 2005-10-29 19:30:48 +01:00
fixup-capcella.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
fixup-cobalt.c [MIPS] Fix Cobalt PCI cache line sizes 2006-02-07 13:30:24 +00:00
fixup-ddb5477.c [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
fixup-emma2rh.c [MIPS] Don't include obsolete <linux/config.h>. 2006-07-13 21:25:58 +01:00
fixup-ev64120.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-ev96100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-excite.c [MIPS] Support for the RM9000-based Basler eXcite smart camera platform. 2006-06-19 17:39:26 +01:00
fixup-ip32.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-ite8172g.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-ivr.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-jaguar.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-jmr3927.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-malta.c [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
fixup-mpc30x.c [MIPS] vr41xx: Move IRQ numbers to asm-mips/vr41xx/irq.h 2006-07-13 21:26:19 +01:00
fixup-ocelot-c.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-ocelot-g.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-ocelot.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-ocelot3.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-pnx8550.c Philips PNX8550 support: MIPS32-like core with 2 Trimedias on it. 2005-10-29 19:31:54 +01:00
fixup-rbtx4927.c [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
fixup-sb1250.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
fixup-sni.c [PATCH] mips: nuke trailing whitespace 2005-09-05 00:06:07 -07:00
fixup-tb0219.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
fixup-tb0226.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
fixup-tb0287.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
fixup-tx4938.c Support for Toshiba's RBHMA4500 eval board for the TX4938. 2005-10-29 19:31:57 +01:00
fixup-vr4133.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fixup-wrppmc.c [MIPS] Wind River 4KC PPMC Eval Board Support 2006-06-19 17:39:18 +01:00
fixup-yosemite.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
Makefile [MIPS] Fix EV64120 PCI fixup in Makefile 2006-09-27 13:37:33 +01:00
ops-au1000.c [MIPS] Fix for pci config_access on alchemy au1x000 2006-09-27 13:37:38 +01:00
ops-bonito64.c Fixes for system controllers for Atlas/Malta core cards. 2005-10-29 19:30:20 +01:00
ops-bridge.c [MIPS] IP27: Extract pci_ops into separate file. 2006-06-19 17:39:23 +01:00
ops-ddb5477.c [MIPS] War on whitespace: cleanup initial spaces followed by tabs. 2006-03-21 13:27:47 +00:00
ops-emma2rh.c [MIPS] Don't include obsolete <linux/config.h>. 2006-07-13 21:25:58 +01:00
ops-gt64111.c [MIPS] Rename include/asm-mips/cobalt to include/asm-mips/mach-cobalt. 2006-02-07 13:30:22 +00:00
ops-gt64120.c Fixes for system controllers for Atlas/Malta core cards. 2005-10-29 19:30:20 +01:00
ops-gt96100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ops-it8172.c [MIPS] C99-ify struct resource initialization. 2006-06-19 17:39:20 +01:00
ops-mace.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ops-marvell.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ops-msc.c Fixes for system controllers for Atlas/Malta core cards. 2005-10-29 19:30:20 +01:00
ops-nile4.c Convert the remaining SPIN_LOCK_UNLOCKED instances to DEFINE_SPINLOCK. 2005-10-29 19:32:35 +01:00
ops-pnx8550.c Philips PNX8550 support: MIPS32-like core with 2 Trimedias on it. 2005-10-29 19:31:54 +01:00
ops-sni.c [MIPS] Support SNI RM200C SNI in big endian mode and R5000 processors. 2006-06-19 17:39:24 +01:00
ops-titan-ht.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ops-titan.c [MIPS] Support for the RM9000-based Basler eXcite smart camera platform. 2006-06-19 17:39:26 +01:00
ops-tx3927.c [MIPS] TX3927: Try to glue the PCI code. 2005-11-17 16:23:56 +00:00
ops-tx4927.c [MIPS] Remove BSD and Sys V compat data types. 2006-06-29 21:10:54 +01:00
ops-tx4938.c [MIPS] Remove BSD and Sys V compat data types. 2006-06-29 21:10:54 +01:00
ops-vr41xx.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
pci-bcm1480.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci-bcm1480ht.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci-ddb5477.c [MIPS] C99-ify struct resource initialization. 2006-06-19 17:39:20 +01:00
pci-emma2rh.c [MIPS] Don't include obsolete <linux/config.h>. 2006-07-13 21:25:58 +01:00
pci-ev96100.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-excite.c [MIPS] Support for the RM9000-based Basler eXcite smart camera platform. 2006-06-19 17:39:26 +01:00
pci-ip27.c [MIPS] IP27: Extract pci_ops into separate file. 2006-06-19 17:39:23 +01:00
pci-ip32.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci-jmr3927.c [MIPS] C99-ify struct resource initialization. 2006-06-19 17:39:20 +01:00
pci-lasat.c Brian Murphy says: 2005-10-29 19:31:36 +01:00
pci-ocelot-c.c [MIPS] Momentum: Resurrect after things were moved around a while ago. 2006-03-09 18:05:09 +00:00
pci-ocelot-g.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci-ocelot.c [MIPS] C99-ify struct resource initialization. 2006-06-19 17:39:20 +01:00
pci-sb1250.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
pci-vr41xx.c Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
pci-vr41xx.h Update Yoichi Yuasa's email address. 2006-01-10 13:39:07 +00:00
pci-yosemite.c [MIPS] C99-ify struct resource initialization. 2006-06-19 17:39:20 +01:00
pci.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00