Skip to contentSkip to conversation

i/o and memory space enable bits in PCI-PCI bridge

PATCH Pavel Kiryukhin 2 participants 2 messages Dec 7, 2004 MIPS

lore
Share & tools
lore
#0 lore raw

Hi!
Can somebody give me a hint: - what part of 2.6 (mips) code is responsible for setting i/o and memory space enable bits in PCI-PCI bridge config. space command register? On my board those bits are not set after bridge is configured.
Currently I'm using the following change in "pcibios_enable_resources" to work with devices behind the bridge.

mips/pci/pci.c 2004-12-06 18:21:22.000000000 +0300 renamed from mips/pci/pci.c_org 2004-12-06 18:20:50.000000000 +0300 +1 -1
@@ -164,7 +164,7 @@
 
   pci_read_config_word(dev, PCI_COMMAND, &cmd);
   old_cmd = cmd;
-    for(idx=0; idx<6; idx++) {
+    for(idx=0; idx<=PCI_BRIDGE_RESOURCES; idx++) {
       /* Only set up the requested stuff */
       if (!(mask & (1<<idx)))
           continue;

but I think there should be some legal way I missed. --
Thank you,
Pavel Kiryukhin.

#1 lore raw
Quoted 18 lines · Pavel Kiryukhin

Can somebody give me a hint: - what part of 2.6 (mips) code is responsible for setting i/o and memory space enable bits in PCI-PCI bridge config. space command register?
On my board those bits are not set after bridge is configured. Currently I'm using the following change in "pcibios_enable_resources" to work with devices behind the bridge.

mips/pci/pci.c 2004-12-06 18:21:22.000000000 +0300 renamed from mips/pci/pci.c_org 2004-12-06 18:20:50.000000000 +0300 +1 -1
@@ -164,7 +164,7 @@
 
   pci_read_config_word(dev, PCI_COMMAND, &cmd);
   old_cmd = cmd;
-    for(idx=0; idx<6; idx++) {
+    for(idx=0; idx<=PCI_BRIDGE_RESOURCES; idx++) {
       /* Only set up the requested stuff */
       if (!(mask & (1<<idx)))
           continue;
Quoted 1 line

but I think there should be some legal way I missed.

We had a discussion a while ago where somebody did suggest an afair identical patch a while ago. The problem with this patch is it fixes things for a few platforms and breaks things for a few others.

Ralf