diff --git a/kernel/pci/ata/ata.c b/kernel/pci/ata/ata.c index a7a19be..0e443d1 100644 --- a/kernel/pci/ata/ata.c +++ b/kernel/pci/ata/ata.c @@ -41,12 +41,14 @@ void pci_ata_init(void) { iobase = (bar0 & 0xFFFFFFFC) + ATA_PRIM_IO * (!bar0); ctrlbase = (bar1 & 0xFFFFFFFC) + ATA_PRIM_CTRL * (!bar1); LOG("pci", "ATA CHANNEL PRIM: iobase=0x%x, ctrlbase=0x%x\n", iobase, ctrlbase); + if (!bar0 || !bar1) LOG("pci", "falling back to ISA\n"); ATA_PROBE("atasd0m", iobase, ctrlbase, ATA_MASTER); ATA_PROBE("atasd0s", iobase, ctrlbase, ATA_SLAVE); iobase = (bar2 & 0xFFFFFFFC) + ATA_SCND_IO * (!bar2); ctrlbase = (bar3 & 0xFFFFFFFC) + ATA_SCND_CTRL * (!bar3); LOG("pci", "ATA CHANNEL SCND: iobase=0x%x, ctrlbase=0x%x\n", iobase, ctrlbase); + if (!bar2 || !bar3) LOG("pci", "falling back to ISA\n"); ATA_PROBE("atasd1m", iobase, ctrlbase, ATA_MASTER); ATA_PROBE("atasd2s", iobase, ctrlbase, ATA_SLAVE); }