[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1306312430.31249.7.camel@e102109-lin.cambridge.arm.com>
Date: Wed, 25 May 2011 09:33:50 +0100
From: Catalin Marinas <catalin.marinas@....com>
To: David Brown <davidb@...eaurora.org>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
Russell King - ARM Linux <linux@....linux.org.uk>,
Marc Zyngier <Marc.Zyngier@....com>
Subject: Re: [PATCH v6 00/18] ARM: Add support for the Large Physical
Address Extensions
On Wed, 2011-05-25 at 00:56 +0100, David Brown wrote:
> On Tue, May 24 2011, Catalin Marinas wrote:
>
> > This set of patches adds support for the Large Physical Extensions on
> > the ARM architecture (available with the Cortex-A15 processor). LPAE
> > comes with a 3-level page table format (compared to 2-level for the
> > classic one), allowing up to 40-bit physical address space.
>
> Do you expect non LPAE targets to be able to boot with these changes
> applied (and LPAE enabled)? I am able to build this tree for the
> MSM8660 (with a minor patch below), but it fails to boot with LPAE
> enabled. It seems to work fine with LPAE not enabled.
As Nicolas replied already, we can't run an LPAE kernel on non-LPAE
hardware. We could add some checks in head.S and branch to __error_p but
it only works if you have CONFIG_DEBUG_LL enabled.
> I did have to fix the msm timer code to get the branch you mentioned to
> compile. The return type of the function changed back to 'void' without
> changing the returns:
I cc'ed Marc since he's maintaining the timer patches.
> ---
> arch/arm/mach-msm/timer.c | 5 +++--
> 1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
> index 50cc0bc..6e659e4 100644
> --- a/arch/arm/mach-msm/timer.c
> +++ b/arch/arm/mach-msm/timer.c
> @@ -268,7 +268,7 @@ static void __cpuinit msm_local_timer_setup(struct clock_event_device *evt)
>
> /* Use existing clock_event for cpu 0 */
> if (!smp_processor_id())
> - return 0;
> + return;
>
> writel(DGT_CLK_CTL_DIV_4, MSM_TMR_BASE + DGT_CLK_CTL);
>
> @@ -296,7 +296,8 @@ static void __cpuinit msm_local_timer_setup(struct clock_event_device *evt)
> if (res) {
> pr_err("local_timer_setup: request_irq failed for %s\n",
> clock->clockevent.name);
> - return res;
> + /* TODO: How to handle this error. */
> + return;
> }
>
> clockevents_register_device(evt);
Thanks.
--
Catalin
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists