From: Catalin Marinas <catalin.marinas@arm.com> To: "Suzuki K. Poulose" <Suzuki.Poulose@arm.com> Cc: Steve Capper <steve.capper@linaro.org>, "kvm@vger.kernel.org" <kvm@vger.kernel.org>, Marc Zyngier <Marc.Zyngier@arm.com>, Will Deacon <Will.Deacon@arm.com>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>, "linux-arm-kernel@lists.infradead.org" <linux-arm-kernel@lists.infradead.org> Subject: Re: [PATCH 12/14] arm64: Check for selected granule support Date: Thu, 13 Aug 2015 18:29:47 +0100 [thread overview] Message-ID: <20150813172946.GD4602@e104818-lin.cambridge.arm.com> (raw) In-Reply-To: <55CCAD73.7080702@arm.com> On Thu, Aug 13, 2015 at 03:45:07PM +0100, Suzuki K. Poulose wrote: > On 13/08/15 13:28, Steve Capper wrote: > >On 13 August 2015 at 12:34, Suzuki K. Poulose <suzuki.poulose@arm.com> wrote: > >> __enable_mmu: > >>+ mrs x1, ID_AA64MMFR0_EL1 > >>+ ubfx x2, x1, #ID_AA64MMFR0_TGran_SHIFT, 4 > >>+ cmp x2, #ID_AA64MMFR0_TGran_ENABLED > >>+ b.ne __no_granule_support > >> ldr x5, =vectors > >> msr vbar_el1, x5 > >> msr ttbr0_el1, x25 // load TTBR0 > >>@@ -626,3 +643,8 @@ __enable_mmu: > >> isb > >> br x27 > >> ENDPROC(__enable_mmu) > >>+ > >>+__no_granule_support: > >>+ wfe > >>+ b __no_granule_support > >>+ENDPROC(__no_granule_support) > >>-- > >>1.7.9.5 > >> > > > >Is is possible to tell the user that the kernel has failed to boot due > >to the kernel granule being unsupported? > > We don't have anything up at this time. The "looping address" is actually a clue > to the (expert) user. Not sure we can do something, until we get something like DEBUG_LL(?) No. > Or we should let it continue and end in a panic(?). The current situation can boot a > multi-cluster system with boot cluster having the Tgran support(which doesn't make a > strong use case though). I will try out some options and get back to you. If the boot CPU does not support 16KB pages, in general there isn't much we can do since the console printing is done after we enabled the MMU. Even mapping the UART address requires fixmap support and the PAGE_SIZE is hard-coded in the kernel image. The DT is also mapped at run-time. While in theory it's possible to fall back to a 4KB page size just enough to load the DT and figure out the early console, I suggest we just live with the "looping address" clue. -- Catalin
WARNING: multiple messages have this Message-ID (diff)
From: catalin.marinas@arm.com (Catalin Marinas) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 12/14] arm64: Check for selected granule support Date: Thu, 13 Aug 2015 18:29:47 +0100 [thread overview] Message-ID: <20150813172946.GD4602@e104818-lin.cambridge.arm.com> (raw) In-Reply-To: <55CCAD73.7080702@arm.com> On Thu, Aug 13, 2015 at 03:45:07PM +0100, Suzuki K. Poulose wrote: > On 13/08/15 13:28, Steve Capper wrote: > >On 13 August 2015 at 12:34, Suzuki K. Poulose <suzuki.poulose@arm.com> wrote: > >> __enable_mmu: > >>+ mrs x1, ID_AA64MMFR0_EL1 > >>+ ubfx x2, x1, #ID_AA64MMFR0_TGran_SHIFT, 4 > >>+ cmp x2, #ID_AA64MMFR0_TGran_ENABLED > >>+ b.ne __no_granule_support > >> ldr x5, =vectors > >> msr vbar_el1, x5 > >> msr ttbr0_el1, x25 // load TTBR0 > >>@@ -626,3 +643,8 @@ __enable_mmu: > >> isb > >> br x27 > >> ENDPROC(__enable_mmu) > >>+ > >>+__no_granule_support: > >>+ wfe > >>+ b __no_granule_support > >>+ENDPROC(__no_granule_support) > >>-- > >>1.7.9.5 > >> > > > >Is is possible to tell the user that the kernel has failed to boot due > >to the kernel granule being unsupported? > > We don't have anything up at this time. The "looping address" is actually a clue > to the (expert) user. Not sure we can do something, until we get something like DEBUG_LL(?) No. > Or we should let it continue and end in a panic(?). The current situation can boot a > multi-cluster system with boot cluster having the Tgran support(which doesn't make a > strong use case though). I will try out some options and get back to you. If the boot CPU does not support 16KB pages, in general there isn't much we can do since the console printing is done after we enabled the MMU. Even mapping the UART address requires fixmap support and the PAGE_SIZE is hard-coded in the kernel image. The DT is also mapped at run-time. While in theory it's possible to fall back to a 4KB page size just enough to load the DT and figure out the early console, I suggest we just live with the "looping address" clue. -- Catalin
next prev parent reply other threads:[~2015-08-13 17:29 UTC|newest] Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-08-13 11:33 [PATCH 00/14] arm64: 16K translation granule support Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 01/14] arm64: Move swapper pagetable definitions Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 02/14] arm64: Handle section maps for swapper/idmap Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-09-02 9:38 ` Ard Biesheuvel 2015-09-02 9:38 ` Ard Biesheuvel 2015-09-02 9:38 ` Ard Biesheuvel 2015-09-02 9:42 ` Suzuki K. Poulose 2015-09-02 9:42 ` Suzuki K. Poulose 2015-09-02 9:42 ` Suzuki K. Poulose 2015-09-02 10:00 ` Ard Biesheuvel 2015-09-02 10:00 ` Ard Biesheuvel 2015-09-02 10:00 ` Ard Biesheuvel 2015-08-13 11:33 ` [PATCH 03/14] arm64: Introduce helpers for page table levels Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 04/14] arm64: Calculate size for idmap_pg_dir at compile time Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 05/14] arm64: Handle 4 level page table for swapper Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 06/14] arm64: Clean config usages for page size Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 07/14] arm64: Kconfig: Fix help text about AArch32 support with 64K pages Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 08/14] arm64: kvm: Fix {V}TCR_EL2_TG0 mask Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` [PATCH 09/14] arm64: Cleanup VTCR_EL2 computation Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:33 ` Suzuki K. Poulose 2015-08-13 11:34 ` [PATCH 10/14] arm: kvm: Move fake PGD handling to arch specific files Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` [PATCH 11/14] arm64: kvm: Rewrite fake pgd handling Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` [PATCH 12/14] arm64: Check for selected granule support Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 12:28 ` Steve Capper 2015-08-13 12:28 ` Steve Capper 2015-08-13 12:28 ` Steve Capper 2015-08-13 14:45 ` Suzuki K. Poulose 2015-08-13 14:45 ` Suzuki K. Poulose 2015-08-13 14:45 ` Suzuki K. Poulose 2015-08-13 17:29 ` Catalin Marinas [this message] 2015-08-13 17:29 ` Catalin Marinas 2015-08-13 17:29 ` Catalin Marinas 2015-09-02 9:48 ` Ard Biesheuvel 2015-09-02 9:48 ` Ard Biesheuvel 2015-09-02 9:48 ` Ard Biesheuvel 2015-09-02 10:19 ` Ard Biesheuvel 2015-09-02 10:19 ` Ard Biesheuvel 2015-09-02 10:19 ` Ard Biesheuvel 2015-09-04 13:58 ` Catalin Marinas 2015-09-04 13:58 ` Catalin Marinas 2015-09-04 13:58 ` Catalin Marinas 2015-08-13 11:34 ` [PATCH 13/14] arm64: Add 16K page size support Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-08-13 11:34 ` [PATCH 14/14] arm64: 36 bit VA Suzuki K. Poulose 2015-08-13 11:34 ` Suzuki K. Poulose 2015-09-02 9:55 ` [PATCH 00/14] arm64: 16K translation granule support Ard Biesheuvel 2015-09-02 9:55 ` Ard Biesheuvel 2015-09-02 9:55 ` Ard Biesheuvel 2015-09-02 10:11 ` Suzuki K. Poulose 2015-09-02 10:11 ` Suzuki K. Poulose 2015-09-02 10:11 ` Suzuki K. Poulose
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20150813172946.GD4602@e104818-lin.cambridge.arm.com \ --to=catalin.marinas@arm.com \ --cc=Marc.Zyngier@arm.com \ --cc=Suzuki.Poulose@arm.com \ --cc=Will.Deacon@arm.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=steve.capper@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.