Re: [PATCH v1 3/3] arm64: dts: add Hi6220 mailbox node
From: Ard Biesheuvel
Date: Tue Aug 25 2015 - 10:51:31 EST
On 25 August 2015 at 16:24, Leif Lindholm <leif.lindholm@xxxxxxxxxx> wrote:
> On Tue, Aug 25, 2015 at 09:43:14PM +0800, Haojian Zhuang wrote:
>> Since we discussed a lot on this, let's make a conclusion on it.
>> 1. UEFI could append the reserved buffer in it's memory mapping.
> Yes. It needs to.
> (I will let Mark comment on points 2-4.)
>> 5. A patch is necessary in kernel. If efi stub feature is enabled,
>> arm kernel should not parse memory node or reserved memory buffer in
>> DT any more.
> This is already the case. The stub deletes any present memory nodes and
> reserved entries in drivers/firmware/efi/libstub/fdt.c:update_fdt().
> Then, during setup_arch(), arch/arm64/kernel/efi.c:efi_init() calls
> reserve_regions(), which adds only those memory regions available for
> use by Linux as RAM to memblock.
>> Arm kernel should either fetch memory information from
>> efi or DT.
>> Currently arm kernel fetch both efi memory information and
>> reserved buffer from DTB at the same time.
> No, it does not.
It should not, but it does. Due to an oversight, the stub removes
/memreserve/ entries but ignores the reserved-memory node completely.
This was reported here in fact
but there has not been a followup to this series.
I think it is fine to keep those memory reservations in the DT, but
you should simply understand that UEFI does not parse the DT, so you
need to tell it which memory it cannot touch. Otherwise, the firmware
itself or anything that executes under it (UEFI drivers, the UEFI
Shell, GRUB, the UEFI stub in the kernel) will think it is available
and may allocate it for its own use. This may include runtime services
regions that will remain reserved even after exiting boot services.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/