Author: ray
Date: Sun Jun 30 19:52:41 2013
New Revision: 252425
URL: http://svnweb.freebsd.org/changeset/base/252425

Log:
  Decrypt magic numbers - define names for fields of Generic Timer's CNTKCTL 
reg.
  
  Submitted by: Ruslan Bukin <b...@bsdpad.com>

Modified:
  head/sys/arm/arm/generic_timer.c

Modified: head/sys/arm/arm/generic_timer.c
==============================================================================
--- head/sys/arm/arm/generic_timer.c    Sun Jun 30 19:36:17 2013        
(r252424)
+++ head/sys/arm/arm/generic_timer.c    Sun Jun 30 19:52:41 2013        
(r252425)
@@ -66,7 +66,22 @@ __FBSDID("$FreeBSD$");
 #define        GENERIC_TIMER_REG_CTRL          0
 #define        GENERIC_TIMER_REG_TVAL          1
 
-#define        CNTPSIRQ        29
+#define        GENERIC_TIMER_CNTKCTL_PL0PTEN   (1 << 9) /* Physical timer 
registers
+                                                   access from PL0 */
+#define        GENERIC_TIMER_CNTKCTL_PL0VTEN   (1 << 8) /* Virtual timer 
registers
+                                                   access from PL0 */
+#define        GENERIC_TIMER_CNTKCTL_EVNTI     (1 << 4) /* Virtual counter
+                                                   event bits */
+#define        GENERIC_TIMER_CNTKCTL_EVNTDIR   (1 << 3) /* Virtual counter
+                                                   event transition */
+#define        GENERIC_TIMER_CNTKCTL_EVNTEN    (1 << 2) /* Enables events from
+                                                   the virtual counter */
+#define        GENERIC_TIMER_CNTKCTL_PL0VCTEN  (1 << 1) /* CNTVCT and CNTFRQ
+                                                   access from PL0 */
+#define        GENERIC_TIMER_CNTKCTL_PL0PCTEN  (1 << 0) /* CNTPCT and CNTFRQ
+                                                   access from PL0 */
+
+#define        GENERIC_TIMER_CNTPSIRQ  29
 
 struct arm_tmr_softc {
        struct resource         *irq_res;
@@ -167,7 +182,11 @@ disable_user_access(void)
        uint32_t cntkctl;
 
        __asm volatile("mrc p15, 0, %0, c14, c1, 0" : "=r" (cntkctl));
-       cntkctl &= ~((3 << 8) | (7 << 0));
+       cntkctl &= ~(GENERIC_TIMER_CNTKCTL_PL0PTEN |
+               GENERIC_TIMER_CNTKCTL_PL0VTEN |
+               GENERIC_TIMER_CNTKCTL_EVNTEN |
+               GENERIC_TIMER_CNTKCTL_PL0VCTEN |
+               GENERIC_TIMER_CNTKCTL_PL0PCTEN);
        __asm volatile("mcr p15, 0, %0, c14, c1, 0" : : "r" (cntkctl));
        isb();
 }
@@ -270,7 +289,8 @@ arm_tmr_attach(device_t dev)
 
        rid = 0;
        sc->irq_res = bus_alloc_resource(dev, SYS_RES_IRQ, &rid,
-           CNTPSIRQ, CNTPSIRQ, 1, RF_SHAREABLE | RF_ACTIVE);
+           GENERIC_TIMER_CNTPSIRQ, GENERIC_TIMER_CNTPSIRQ,
+           1, RF_SHAREABLE | RF_ACTIVE);
 
        arm_tmr_sc = sc;
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to