David Woodhouse wrote:
>
> 2.4.10-pre3 and later fail to boot on my Compaq XL box. It claims that PCI
> isn't supported. This board doesn't use the PCI BIOS because the entry
> point is in high memory.
>
> 'cvs up -r v2_4_10-pre2 arch/i386/boot/pci-pc.c' fixes it.
>
> A happy boot with the old pci-pc.c:
> PCI: BIOS32 entry (0xc00fa000) in high memory, cannot use.
> PCI: Using configuration type 2
> PCI: Probing PCI hardware
>
> An unhappy boot with the new one:
> PCI: BIOS32 entry (0xc00fa000) in high memory, cannot use.
> PCI: System does not support PCI
Patch attached that fixes typecasting problems with PCI Type 2 accesses.
--Brian Gerst --------------B8122056FB5B8AEA2B0FE8D5 Content-Type: text/plain; charset=us-ascii; name="diff-pcipc" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="diff-pcipc"
diff -urN linux-2.4.10-pre10/arch/i386/kernel/pci-pc.c linux/arch/i386/kernel/pci-pc.c --- linux-2.4.10-pre10/arch/i386/kernel/pci-pc.c Mon Sep 17 13:20:14 2001 +++ linux/arch/i386/kernel/pci-pc.c Wed Sep 19 08:07:29 2001 @@ -261,18 +261,14 @@ u32 data; result = pci_conf2_read(0, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, 2, &data); - *value = (u8)data; + *value = (u16)data; return result; } static int pci_conf2_read_config_dword(struct pci_dev *dev, int where, u32 *value) { - int result; - u32 data; - result = pci_conf2_read(0, dev->bus->number, PCI_SLOT(dev->devfn), - PCI_FUNC(dev->devfn), where, 4, &data); - *value = (u8)data; - return result; + return pci_conf2_read(0, dev->bus->number, PCI_SLOT(dev->devfn), + PCI_FUNC(dev->devfn), where, 4, value); } static int pci_conf2_write_config_byte(struct pci_dev *dev, int where, u8 value)
--------------B8122056FB5B8AEA2B0FE8D5--
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/