From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [ARM:PATCH v3 1/1] Pass the timer clock-frequency to DOM0 xen/arm: Pass the timer "clock-frequency" to DOM0 in make_timer_node() Date: Tue, 15 Apr 2014 20:30:18 +0100 Message-ID: <534D88CA.4060103@linaro.org> References: <1397463240-24829-1-git-send-email-suriyan.r@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1397463240-24829-1-git-send-email-suriyan.r@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Suriyan Ramasami Cc: xen-devel@lists.xen.org, tim@xen.org, Ian.Campbell@citrix.com, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Hello Suriyan, Thank you for the patch. On 04/14/2014 09:14 AM, Suriyan Ramasami wrote: > If the DT representing the ARM generic timer mentions a clock-frequency, > propragate it to the DT that is built for DOM0. > > This is necessary as a workaround for boards (Odroid-XU) where CNTFRQ is > not set or returns a wrong value. > > Ideally CNTFRQ should be set by the boot loader. The bootloader should > respect the ARM ARM (see B.8.1.1): > "The CNTFRQ register is UNKNOWN at reset, and therefore the counter > frequency must written to CNTFRQ as part of the system boot process." > > For the Odroid-XU the SPL BL2 code is entered in NS HYP mode which > prevents the execution of the mcr call to set CNTFRQ. > > Signed-off-by: Suriyan Ramasami > > --- > Changed since v2: > * Gather all changes in one place. > * Added additional comments > > Changed since v1: > * Fix typo for quotes around clock-frequency. > --- > xen/arch/arm/domain_build.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c > index 502db84..a86d756 100644 > --- a/xen/arch/arm/domain_build.c > +++ b/xen/arch/arm/domain_build.c > @@ -622,6 +622,8 @@ static int make_timer_node(const struct domain *d, void *fdt, > int res; > const struct dt_irq *irq; > gic_interrupt_t intrs[3]; > + u32 clock_frequency; > + bool_t clock_valid; > > DPRINT("Create timer node\n"); > > @@ -663,6 +665,15 @@ static int make_timer_node(const struct domain *d, void *fdt, > if ( res ) > return res; > > + clock_valid = dt_property_read_u32(dev, "clock-frequency", > + &clock_frequency); > + if (clock_valid) On Xen, the coding style request if to be: if ( clock_valid ) With this change: Reviewed-by: Julien Grall Regards, -- Julien Grall