Index: sys/kern/kern_tc.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_tc.c,v retrieving revision 1.148 diff -u -r1.148 kern_tc.c --- sys/kern/kern_tc.c 18 Mar 2003 08:45:23 -0000 1.148 +++ sys/kern/kern_tc.c 6 Apr 2003 18:06:38 -0000 @@ -295,7 +295,8 @@ printf("\n"); (void)tc->tc_get_timecount(tc); (void)tc->tc_get_timecount(tc); - timecounter = tc; + if (timecounter == &dummy_timecounter) + timecounter = tc; } /* Report the frequency of the current timecounter. */ Index: sys/i386/i386/mp_clock.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/mp_clock.c,v retrieving revision 1.11 diff -u -r1.11 mp_clock.c --- sys/i386/i386/mp_clock.c 13 Nov 2002 17:50:59 -0000 1.11 +++ sys/i386/i386/mp_clock.c 6 Apr 2003 17:41:44 -0000 @@ -101,12 +101,11 @@ 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 @@ 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[] = {