[RFC PATCH] ARM: add fixmap based earlycon support
robh at kernel.org
Mon Jun 1 16:26:14 PDT 2015
On Mon, Jun 1, 2015 at 3:26 AM, Ard Biesheuvel
<ard.biesheuvel at linaro.org> wrote:
> (thread is here: http://thread.gmane.org/gmane.linux.ports.arm.kernel/409329)
> On 2 May 2015 at 10:37, Ard Biesheuvel <ard.biesheuvel at linaro.org> wrote:
>> On 1 May 2015 at 18:18, Russell King - ARM Linux <linux at arm.linux.org.uk> wrote:
>>> On Wed, Apr 29, 2015 at 03:51:48PM +0200, Ard Biesheuvel wrote:
>>>> This adds support for fixmap based earlycon by moving the fixmap
>>>> initialization to an earlier stage and introducing the Kconfig symbol
>>>> that wires up the existing code.
>>> I don't see the patches for this fixmap based earlycon. What's the
>>> status of those, and how are they getting into mainline?
>> They are already /in/ mainline. This single patch is all that is
>> required to wire it up for ARM.
>> However, I did notice after sending this that another implementation
>> had been proposed already:
>> I am not sure which one is more correct, but the general idea is the
>> same, i.e., to allocate the fixmap PTEs from bss rather than the heap.
> Anyone else care to comment on this?
You need to re-write the page table entries because the pte and pmd
flags get adjusted during boot. For example SMP related flags get
configured. I believe Stefan's version (based on mine which was based
on Mark Salter's) did this. In fact, I'm surprised this works after
paging_init, but I may have missed something.
> DT based earlycon is a *really* useful thing to have if you are
> working on early kernel code.
> With many of the DTs now having been extended with a
> /chosen/stdout-path property, it really only takes a simple 'earlycon'
> command line parameter (without any arguments) to get console output
> as soon as the early DT scan is concluded. I suppose this is also a
> useful thing for multi platform kernels?
Certainly, that's the whole point. IMO, we should rip out most of
DEBUG_LL when this is merged.
More information about the linux-arm-kernel