[OpenBIOS] [PATCH 1/2] PPC: Fix PCI configuration space address access

Hervé Poussineau hpoussin at reactos.org
Sat Aug 31 23:36:16 CEST 2013


Mark Cave-Ayland a écrit :
> This patch corrects two long-standing bugs with PPC PCI configuration space
> access. Firstly fix the calculation of PCI configuration space addresses by
> the PCI_ADDR macro; this was incorrectly using arch->cfg_base which is the
> mapped address and has nothing to do with the PCI configuration space
> address. Instead just set bit 31 to initiate a configuration cycle as per the
> PCI specification.
> 
> Secondly, fix pci_config_read32() and pci_config_write16() which were
> incorrectly adding the register offset to the PCI IO dataport address causing
> them to write into unknown address space for registers > 0. It appears that
> this only worked purely by coincidence with QEMU due to the way in which the
> configuration address was calculated for an oversized PCI configuration IO
> dataport MemoryRegion.
> 
> Reported-by: Hervé Poussineau <hpoussin at reactos.org>
> CC: Hervé Poussineau <hpoussin at reactos.org>
> CC: Andreas Färber <afaerber at suse.de>
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland at ilande.co.uk>
> ---

Tested-by: Hervé Poussineau <hpoussin at reactos.org>

However, note the typo in the commit message, where the wrong function 
is pci_config_write32, not pci_config_write16

Hervé



More information about the OpenBIOS mailing list