Subject: PCI Config access doesn't return correct data...

From: ashish anand <[email-masked]>
Date: Thu, 19 Jul 2001 11:59:43 +0530

Hi all,
I found a strange behaviour of pci config access on my board.
my host bridge is MPC107(address map b)
indirect pci config access method with config_addr and config_data ports
at 0xfec00000 and 0xfee00000.

I am using sandpoint+750 board and Bluecat Linux.
I have a case of pci config not returning devid and vendorid correctly
sometime 0x00000000 , hence the cards put in slot are not even detected ,
in following conditions.
(card not behaving correctly are scsi aha 294xxx and 3c905b n/w card
but surprisingly INTEL 82559 always behaves correctly)

1> when you boot through osloader

2> when you put your scsi or 3com card in OUTER slot only

but when i put mb() in definition of pcibios_xxxx_config_xxxx in file indirect_pci.c
before and after the reading and writing the pci_config_addr and pci_config_data ports
everything behaves correctly.

it is clear that it was a reordering problem.
i want a further comment on this ,why it should happen?
noteworthy point is that it only happens when you ,

boot through osloader + with scsi and 3com cards not intel one +  only when cards are put
in OUTER slots.

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/