Fixes for compatibility with QEMU:

- Route PCI interrupt for NIC
- Make "no mapping" warning more user-friendly: add device name and mention
    that it's IRQ mapping
- Do not overlap ICUs' IO window with PCI devices' IO windows by starting
    IO rman at offset 0x100
This commit is contained in:
Oleksandr Tymoshenko 2013-08-27 01:40:13 +00:00
parent 1ca79c111c
commit e6353b0005
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=254946

View File

@ -266,8 +266,12 @@ gt_pci_attach(device_t dev)
sc->sc_io = MIPS_PHYS_TO_KSEG1(MALTA_PCI0_IO_BASE);
sc->sc_io_rman.rm_type = RMAN_ARRAY;
sc->sc_io_rman.rm_descr = "GT64120 PCI I/O Ports";
/*
* First 256 bytes are ISA's registers: e.g. i8259's
* So do not use them for general purpose PCI I/O window
*/
if (rman_init(&sc->sc_io_rman) != 0 ||
rman_manage_region(&sc->sc_io_rman, 0, 0xffff) != 0) {
rman_manage_region(&sc->sc_io_rman, 0x100, 0xffff) != 0) {
panic("gt_pci_attach: failed to set up I/O rman");
}
@ -568,8 +572,10 @@ gt_pci_route_interrupt(device_t pcib, device_t dev, int pin)
* PIIX4 IDE adapter. HW IRQ0
*/
return 0;
case 11: /* Ethernet */
return 10;
default:
printf("No mapping for %d/%d/%d/%d\n", bus, device, func, pin);
device_printf(pcib, "no IRQ mapping for %d/%d/%d/%d\n", bus, device, func, pin);
}
return (0);