]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmRealViewEbPkg/Include/ArmEb/ArmEbTimer.h
Remove ArmEbPkg and replace with ArmRealViewEbPkg. Ported ArmRealViewEbPkg to have...
[mirror_edk2.git] / ArmRealViewEbPkg / Include / ArmEb / ArmEbTimer.h
diff --git a/ArmRealViewEbPkg/Include/ArmEb/ArmEbTimer.h b/ArmRealViewEbPkg/Include/ArmEb/ArmEbTimer.h
new file mode 100755 (executable)
index 0000000..008a6be
--- /dev/null
@@ -0,0 +1,78 @@
+/*++\r
+\r
+Copyright (c) 2009, Hewlett-Packard Company. All rights reserved.<BR>\r
+This program and the accompanying materials                          \r
+are licensed and made available under the terms and conditions of the BSD License         \r
+which accompanies this distribution.  The full text of the license may be found at        \r
+http://opensource.org/licenses/bsd-license.php                                            \r
+                                                                                          \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.  \r
+\r
+Module Name:\r
+\r
+  Timer.h\r
+\r
+Abstract:\r
+\r
+  Driver implementing the EFI 2.0 timer protocol using the ARM SP804 timer.\r
+\r
+--*/\r
+\r
+#ifndef _TIMER_SP804_H__\r
+#define _TIMER_SP804_H__\r
+\r
+\r
+\r
+// EB board constants\r
+#define EB_SP810_CTRL_BASE            0x10001000\r
+#define EB_SP804_TIMER0_BASE          0x10011000\r
+#define EB_SP804_TIMER1_BASE          0x10011020\r
+#define EB_SP804_TIMER2_BASE          0x10012000\r
+#define EB_SP804_TIMER3_BASE          0x10012020\r
+\r
+#define EB_TIMER01_INTERRUPT_NUM      36\r
+#define EB_TIMER23_INTERRUPT_NUM      37\r
+\r
+// SP804 Timer constants\r
+#define SP804_TIMER_LOAD_REG          0x00\r
+#define SP804_TIMER_CURRENT_REG       0x04\r
+#define SP804_TIMER_CONTROL_REG       0x08\r
+#define SP804_TIMER_INT_CLR_REG       0x0C\r
+#define SP804_TIMER_RAW_INT_STS_REG   0x10\r
+#define SP804_TIMER_MSK_INT_STS_REG   0x14\r
+#define SP804_TIMER_BG_LOAD_REG       0x18\r
+\r
+// Timer control register bit definitions\r
+#define SP804_TIMER_CTRL_ONESHOT        BIT0\r
+#define SP804_TIMER_CTRL_32BIT          BIT1\r
+#define SP804_TIMER_CTRL_PRESCALE_MASK  (BIT3|BIT2)\r
+#define SP804_PRESCALE_DIV_1            0\r
+#define SP804_PRESCALE_DIV_16           BIT2\r
+#define SP804_PRESCALE_DIV_256          BIT3\r
+#define SP804_TIMER_CTRL_INT_ENABLE     BIT5\r
+#define SP804_TIMER_CTRL_PERIODIC       BIT6\r
+#define SP804_TIMER_CTRL_ENABLE         BIT7\r
+\r
+// SP810 System Controller constants\r
+#define SP810_SYS_CTRL_REG              0x00\r
+#define SP810_SYS_CTRL_TIMER0_TIMCLK    BIT15 // 0=REFCLK, 1=TIMCLK\r
+#define SP810_SYS_CTRL_TIMER0_EN        BIT16\r
+#define SP810_SYS_CTRL_TIMER1_TIMCLK    BIT17 // 0=REFCLK, 1=TIMCLK\r
+#define SP810_SYS_CTRL_TIMER1_EN        BIT18\r
+#define SP810_SYS_CTRL_TIMER2_TIMCLK    BIT19 // 0=REFCLK, 1=TIMCLK\r
+#define SP810_SYS_CTRL_TIMER2_EN        BIT20\r
+#define SP810_SYS_CTRL_TIMER3_TIMCLK    BIT21 // 0=REFCLK, 1=TIMCLK\r
+#define SP810_SYS_CTRL_TIMER3_EN        BIT22\r
+\r
+// default timer tick period - 1ms, or 10000 units of 100ns\r
+//#define TIMER_DEFAULT_PERIOD            10000\r
+\r
+// default timer tick period - 50ms, or 500000 units of 100ns\r
+#define TIMER_DEFAULT_PERIOD            500000\r
+\r
+// default timer tick period - 500ms, or 5000000 units of 100ns\r
+//#define TIMER_DEFAULT_PERIOD            5000000\r
+\r
+#endif\r
+\r