tsc crap :/
[seabios.git] / src / clock.c
index e8a48a13c1733bdd20b3f176dc829eeaabc1a6df..d88515c45c482153144365c90b099c465b5076e8 100644 (file)
@@ -81,6 +81,7 @@ calibrate_tsc(void)
     }
 
     // Setup "timer2"
+#if 0
     u8 orig = inb(PORT_PS2_CTRLB);
     outb((orig & ~PPCB_SPKR) | PPCB_T2GATE, PORT_PS2_CTRLB);
     /* binary, mode 0, LSB/MSB, Ch 2 */
@@ -104,6 +105,10 @@ calibrate_tsc(void)
             , (u32)start, (u32)end, (u32)diff);
     u32 hz = diff * PIT_TICK_RATE / CALIBRATE_COUNT;
     SET_GLOBAL(cpu_khz, hz / 1000);
+#else
+       u32 hz = 800 * 1000000;
+    SET_GLOBAL(cpu_khz, hz / 1000);
+#endif
 
     dprintf(1, "CPU Mhz=%u\n", hz / 1000000);
 }
@@ -252,20 +257,34 @@ void
 timer_setup(void)
 {
     dprintf(3, "init timer\n");
+#if 1
     calibrate_tsc();
+#endif
+    dprintf(3, "init timer: 01\n");
     pit_setup();
+    dprintf(3, "init timer: 02\n");
 
     init_rtc();
+    dprintf(3, "init timer: 03\n");
     rtc_updating();
+    dprintf(3, "init timer: 04\n");
     u32 seconds = bcd2bin(inb_cmos(CMOS_RTC_SECONDS));
+    dprintf(3, "init timer: 05\n");
     u32 minutes = bcd2bin(inb_cmos(CMOS_RTC_MINUTES));
+    dprintf(3, "init timer: 06\n");
     u32 hours = bcd2bin(inb_cmos(CMOS_RTC_HOURS));
+    dprintf(3, "init timer: 07\n");
     u32 ticks = (hours * 60 + minutes) * 60 + seconds;
+    dprintf(3, "init timer: 08\n");
     ticks = ((u64)ticks * PIT_TICK_RATE) / PIT_TICK_INTERVAL;
+    dprintf(3, "init timer: 09\n");
     SET_BDA(timer_counter, ticks);
+    dprintf(3, "init timer: 10\n");
 
     enable_hwirq(0, FUNC16(entry_08));
+    dprintf(3, "init timer: 11\n");
     enable_hwirq(8, FUNC16(entry_70));
+    dprintf(3, "init timer: 12\n");
 }