Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / drivers / timer.h
diff --git a/qemu/roms/openbios/drivers/timer.h b/qemu/roms/openbios/drivers/timer.h
new file mode 100644 (file)
index 0000000..7e86db3
--- /dev/null
@@ -0,0 +1,62 @@
+/* Taken from Etherboot */
+/* Defines for routines to implement a low-overhead timer for drivers */
+
+ /*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2, or (at
+ * your option) any later version.
+ */
+
+#ifndef        TIMER_H
+#define TIMER_H
+
+/* Ports for the 8254 timer chip */
+#define        TIMER2_PORT     0x42
+#define        TIMER_MODE_PORT 0x43
+
+/* Meaning of the mode bits */
+#define        TIMER0_SEL      0x00
+#define        TIMER1_SEL      0x40
+#define        TIMER2_SEL      0x80
+#define        READBACK_SEL    0xC0
+
+#define        LATCH_COUNT     0x00
+#define        LOBYTE_ACCESS   0x10
+#define        HIBYTE_ACCESS   0x20
+#define        WORD_ACCESS     0x30
+
+#define        MODE0           0x00
+#define        MODE1           0x02
+#define        MODE2           0x04
+#define        MODE3           0x06
+#define        MODE4           0x08
+#define        MODE5           0x0A
+
+#define        BINARY_COUNT    0x00
+#define        BCD_COUNT       0x01
+
+/* Timers tick over at this rate */
+#define CLOCK_TICK_RATE        1193180U
+#define        TICKS_PER_MS    (CLOCK_TICK_RATE/1000)
+
+/* Parallel Peripheral Controller Port B */
+#define        PPC_PORTB       0x61
+
+/* Meaning of the port bits */
+#define        PPCB_T2OUT      0x20    /* Bit 5 */
+#define        PPCB_SPKR       0x02    /* Bit 1 */
+#define        PPCB_T2GATE     0x01    /* Bit 0 */
+
+extern void ndelay(unsigned int nsecs);
+extern void udelay(unsigned int usecs);
+extern void mdelay(unsigned int msecs);
+extern unsigned long currticks(void);
+extern unsigned long get_timer_freq(void);
+
+/* arch/ppc/timebase.S */
+void _wait_ticks(unsigned long nticks);
+
+#define TICKS_PER_SEC 1000
+
+#endif /* TIMER_H */