From owner-svn-src-head@FreeBSD.ORG Sun Jun 30 19:52:41 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id F02E52D8; Sun, 30 Jun 2013 19:52:41 +0000 (UTC) (envelope-from ray@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id C72C819D3; Sun, 30 Jun 2013 19:52:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r5UJqfv3010874; Sun, 30 Jun 2013 19:52:41 GMT (envelope-from ray@svn.freebsd.org) Received: (from ray@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r5UJqfwf010873; Sun, 30 Jun 2013 19:52:41 GMT (envelope-from ray@svn.freebsd.org) Message-Id: <201306301952.r5UJqfwf010873@svn.freebsd.org> From: Aleksandr Rybalko Date: Sun, 30 Jun 2013 19:52:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r252425 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Jun 2013 19:52:42 -0000 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 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;