[PATCH v3 0/5] Add pmem node for preserving distro ISO's
Ilias Apalodimas
ilias.apalodimas at linaro.org
Fri Jan 24 12:39:45 CET 2025
Heinrich, Tobias
There's a slight problem that I forgot when commenting v2.
Heinrich's idea of plugging this into blkmap is eventually the right
thing to do.
However, when I started coding this I only added the pmem memory as
'reserved' in the DT hoping that would work.
Unfortunately, this depends on a kernel config option. I've managed to
track down the problem here[0], but I haven't found time to test it
properly and send it upstream.
So for this feature to work reliably we *need* to remove the memory
map we hand over to the OS.
Since using EFI memmap function into the blkmap code makes no sense,
can we perhaps merge v2 (or a variant of it), which only targets EFI,
with an explanation of *why* while I try to sort out the kernel issue?
[0] https://git.linaro.org/people/ilias.apalodimas/net-next.git/commit/?h=main
Thanks
/Ilias
On Mon, 20 Jan 2025 at 12:51, Sughosh Ganu <sughosh.ganu at linaro.org> wrote:
>
>
> When installing a distro via EFI HTTP boot some OS installers expect
> the .iso image to be preserved and treat it as a "CDROM" to install
> packages.
>
> This is problematic in EFI, since U-Boot mounts the image, starts the
> installer, and eventually calls ExitBootServices. At that point the
> image U-Boot mounted disappears. Some distros don't care and download
> the missing packages from a web archive, while others halt the
> installation complaining they can't find certain packages.
>
> If the firmware uses ACPI, this is supported by using NFIT which
> provides NVDIMM ramdisks to the OS and preserves the image.
> We don't have anything in place for Device Trees though. Since DT
> supports persistent memory nodes (pmem) use those and preserve the
> .iso for installers.
>
> The issue can be reproduced by attempting an EFI HTTP boot with Ubuntu
> live server ISO, or a Rocky Linux ISO. The installation would fail
> with the failure to locate certain packages.
>
> The earlier version had aligned the addition of pmem nodes with the
> EFI HTTP boot feature. This has been changed, based on a review
> comment from Heinrich to instead be done by looping through the memory
> based blkmamp devices.
>
> Changes since V2:
> * Fix a checkpatch error for putting a blank line after a function
> * Use blkmap device based scanning for adding the pmem nodes
>
>
>
> Ilias Apalodimas (2):
> efi_loader: add a function to remove memory from the EFI map
> efi_loader: preserve installer images in pmem
>
> Masahisa Kojima (1):
> fdt: add support for adding pmem nodes
>
> Sughosh Ganu (2):
> blkmap: store type of blkmap device in corresponding structure
> blkmap: add pmem nodes for blkmap mem mapping devices
>
> boot/fdt_support.c | 40 ++++++++++++-
> boot/image-fdt.c | 9 +++
> cmd/blkmap.c | 16 ++++--
> drivers/block/blkmap.c | 90 +++--------------------------
> drivers/block/blkmap_helper.c | 47 +++++++++++++++-
> include/blkmap.h | 103 +++++++++++++++++++++++++++++++++-
> include/efi_loader.h | 11 ++--
> include/fdt_support.h | 13 +++++
> lib/efi_loader/efi_bootmgr.c | 22 ++++++--
> lib/efi_loader/efi_memory.c | 51 ++++++++++++-----
> lib/lmb.c | 4 +-
> test/dm/blkmap.c | 16 +++---
> 12 files changed, 302 insertions(+), 120 deletions(-)
>
> --
> 2.34.1
>
>
More information about the U-Boot
mailing list