diff options
-rw-r--r-- | sys/i386/i386/mp_clock.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/sys/i386/i386/mp_clock.c b/sys/i386/i386/mp_clock.c index 4654e63..54b5ed5 100644 --- a/sys/i386/i386/mp_clock.c +++ b/sys/i386/i386/mp_clock.c @@ -101,12 +101,11 @@ piix_probe (device_t dev) switch (pci_get_devid(dev)) { case 0x71138086: d = pci_read_config(dev, 0x4, 2); - if (!(d & 1)) - return 0; /* IO space not mapped */ - d = pci_read_config(dev, 0x40, 4); - piix_timecounter_address = (d & 0xffc0) + 8; - piix_timecounter.tc_frequency = piix_freq; - tc_init(&piix_timecounter); + if (d & 1) + return (0); + printf("PIIX I/O space not mapped\n"); + return (ENXIO); + default: return (ENXIO); }; return (ENXIO); @@ -115,8 +114,13 @@ piix_probe (device_t dev) static int piix_attach (device_t dev) { - - return 0; + u_int32_t d; + + d = pci_read_config(dev, 0x40, 4); + piix_timecounter_address = (d & 0xffc0) + 8; + piix_timecounter.tc_frequency = piix_freq; + tc_init(&piix_timecounter); + return (0); } static device_method_t piix_methods[] = { |