Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 2997ae38739756ecba9b0de19e86032ebc689ef9
      
https://github.com/tianocore/edk2/commit/2997ae38739756ecba9b0de19e86032ebc689ef9
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirt.dsc.inc

  Log Message:
  -----------
  ArmVirtPkg: make EFI_LOADER_DATA non-executable

When the memory protections were implemented and enabled on ArmVirtQemu
5+ years ago, we had to work around the fact that GRUB at the time
expected EFI_LOADER_DATA to be executable, as that is the memory type it
allocates when loading its modules.

This has been fixed in GRUB in August 2017, so by now, we should be able
to tighten this, and remove execute permissions from EFI_LOADER_DATA
allocations.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: 9ca2dc7bec4dc8672953ae644a32749ad1516640
      
https://github.com/tianocore/edk2/commit/9ca2dc7bec4dc8672953ae644a32749ad1516640
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirtQemu.dsc

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: wire up timeout PCD to Timeout variable

Use the appropriate PCD definition in the ArmVirtQemu DSC so that the
boot timeout is taken from the Timeout variable automatically, which is
what Linux tools such as efibootmgr expect.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: 2eff4ddc77874b8e5088b08c52f2e94491f745f2
      
https://github.com/tianocore/edk2/commit/2eff4ddc77874b8e5088b08c52f2e94491f745f2
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    A ArmVirtPkg/Library/ArmPlatformLibQemu/AArch64/ArmPlatformHelper.S
    A ArmVirtPkg/Library/ArmPlatformLibQemu/ArmPlatformLibQemu.c
    A ArmVirtPkg/Library/ArmPlatformLibQemu/ArmPlatformLibQemu.inf
    A ArmVirtPkg/Library/ArmPlatformLibQemu/IdMap.S

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: implement ArmPlatformLib with static ID map

To substantially reduce the amount of processing that takes place with
the MMU and caches off, implement a version of ArmPlatformLib specific
for QEMU/mach-virt in AArch64 mode that carries a statically allocated
and populated ID map that covers the NOR flash and device region, and
128 MiB of DRAM at the base of memory (0x4000_0000).

Note that 128 MiB has always been the minimum amount of DRAM we support
for this configuration, and the existing code already ASSERT()s in DEBUG
mode when booting with less.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: a26050f74dfe865fb4e7bd39d412250d6eabb8e8
      
https://github.com/tianocore/edk2/commit/a26050f74dfe865fb4e7bd39d412250d6eabb8e8
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    A ArmVirtPkg/MemoryInitPei/MemoryInitPeim.c
    A ArmVirtPkg/MemoryInitPei/MemoryInitPeim.inf

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: use first 128 MiB as permanent PEI memory

In order to allow booting with the MMU and caches enabled really early,
we need to ensure that the code that populates the page tables can
access those page tables with the statically defined ID map active.

So let's put the permanent PEI RAM in the first 128 MiB of memory, which
we will cover with this initial ID map (as it is the minimum supported
DRAM size for ArmVirtQemu).

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: 07be1d34d95460a238fcd0f6693efb747c28b329
      
https://github.com/tianocore/edk2/commit/07be1d34d95460a238fcd0f6693efb747c28b329
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirtQemu.dsc
    M ArmVirtPkg/ArmVirtQemu.fdf

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: enable initial ID map at early boot

Now that we have all the pieces in place, switch the AArch64 version of
ArmVirtQemu to a mode where the first thing it does out of reset is
enable a preliminary ID map that covers the NOR flash and sufficient
DRAM to create the UEFI page tables as usual.

The advantage of this is that no manipulation of memory occurs any
longer before the MMU is enabled, which removes the need for explicit
coherency management, which is cumbersome and bad for performance.

It also means we no longer need to build all components that may execute
with the MMU off (including BASE libraries) with strict alignment.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: 75d2be4a37955b2fe164e89524e9d6d2d61a4eac
      
https://github.com/tianocore/edk2/commit/75d2be4a37955b2fe164e89524e9d6d2d61a4eac
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirtQemu.dsc
    M ArmVirtPkg/ArmVirtQemu.fdf

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: Drop unused variable PEIM

The variable PEIM is included in the build but its runtime prerequisites
are absent so it is never dispatched. Just drop it.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: fead469a3b3174fbf9ec2df97f54f3ebcc786ca5
      
https://github.com/tianocore/edk2/commit/fead469a3b3174fbf9ec2df97f54f3ebcc786ca5
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirtQemu.dsc

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: avoid shadowing PEIMs unless necessary

Some PEIMs register for shadow execution explicitly, but others exist
that don't care and can happily execute in place. Since the emulated NOR
flash is just RAM, shadowing has no performance benefits so let's only
do this if needed.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: 7136d5491e225c57f1d73e4a1b7ac27ed656ff72
      
https://github.com/tianocore/edk2/commit/7136d5491e225c57f1d73e4a1b7ac27ed656ff72
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirtPkg.dec
    M ArmVirtPkg/ArmVirtQemu.dsc
    M ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.c
    M ArmVirtPkg/Library/ArmVirtMemoryInitPeiLib/ArmVirtMemoryInitPeiLib.inf
    M ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.c
    M ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoLib.inf
    M ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
    M ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLibConstructor.c

  Log Message:
  -----------
  ArmVirtPkg/QemuVirtMemInfoLib: use HOB not PCD to record the memory size

Due to the way we inherited the formerly fixed PCDs to describe the
system memory base and size from ArmPlatformPkg, we ended up with a
MemoryInit PEIM that relies on dynamic PCDs to communicate the size of
system memory between the constructor of one of its library dependencies
and the core module. This is unnecessary, and forces us to incorporate
the PCD PEIM as well, for no good reason. So instead, let's use a HOB.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


  Commit: b6efc505e4d6eb2055a39afd0a1ee67846a1e5f9
      
https://github.com/tianocore/edk2/commit/b6efc505e4d6eb2055a39afd0a1ee67846a1e5f9
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M ArmVirtPkg/ArmVirtQemu.dsc
    M ArmVirtPkg/ArmVirtQemu.fdf

  Log Message:
  -----------
  ArmVirtPkg/ArmVirtQemu: omit PCD PEIM unless TPM support is enabled

The TPM discovery code relies on a dynamic PCD to communicate the TPM
base address to other components. But no other code relies on dynamic
PCDs in the PEI phase so let's drop the PCD PEIM when TPM support is not
enabled.

Signed-off-by: Ard Biesheuvel <a...@kernel.org>


Compare: https://github.com/tianocore/edk2/compare/9e2c88b16ed3...b6efc505e4d6


_______________________________________________
edk2-commits mailing list
edk2-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to