On 6/25/20 1:19 PM, Ard Biesheuvel wrote: > On 6/25/20 10:45 AM, Philippe Mathieu-Daudé via groups.io wrote: >> Hi Sami, >> >> On 6/24/20 3:34 PM, Sami Mujawar wrote: >>> Kvmtool places the base address of the CFI flash in >>> the device tree it passes to UEFI. This library >>> parses the kvmtool device tree to read the CFI base >>> address and initialise the PCDs use by the NOR flash >>> driver and the variable storage. >>> >>> UEFI takes ownership of the CFI flash hardware, and >>> exposes its functionality through the UEFI Runtime >>> Variable Service. Therefore, disable the device tree >>> node for the CFI flash used for storing the UEFI >>> variables, to prevent the OS from attaching its device >>> driver as well. >>> >>> Signed-off-by: Sami Mujawar <sami.muja...@arm.com> >>> Acked-by: Laszlo Ersek <ler...@redhat.com> >>> --- >>> >>> Notes: >>> v3: >>> - ASSERT is sufficient to test Locating [Ard] >>> gFdtClientProtocolGuid as DEPEX ensures that this is >>> guaranteed to succeed. >>> - Removed additional error handling based on review >>> [Sami] >>> feedback. >>> - Fix confusion caused by use of macro MAX_FLASH_BANKS. >>> [Philippe] >>> - Renamed MAX_FLASH_BANKS to MAX_FLASH_DEVICES. >>> [Sami] >>> - Use macro to define block size for flash. >>> [Philippe] >>> - Defined macro KVMTOOL_NOR_BLOCK_SIZE and also configured >>> [Sami] >>> to reflect the correct block size 64KB. >>> - Disable the DT flash node used for UEFI variable storage >>> [Sami] >>> as UEFI takes ownership of the flash device. >>> Ref: https://edk2.groups.io/g/devel/topic/74200914#60341 >>> v2: >>> - Library to read CFI flash base address from DT and >>> initialise [Sami] >>> PCDs used for NOR flash variables. >>> >>> ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtool.c | 330 >>> ++++++++++++++++++++ >>> ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtoolLib.inf | 49 +++ >>> 2 files changed, 379 insertions(+) >>> >>> diff --git a/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtool.c >>> b/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtool.c >>> new file mode 100644 >>> index >>> 0000000000000000000000000000000000000000..8e9dcf31691b4b12b9c7bac1ad4ba8d3a534a1d8 >>> >>> --- /dev/null >>> +++ b/ArmVirtPkg/Library/NorFlashKvmtoolLib/NorFlashKvmtool.c >>> @@ -0,0 +1,330 @@ >>> +/** @file >>> + An instance of the NorFlashPlatformLib for Kvmtool platform. >>> + >>> + Copyright (c) 2020, ARM Ltd. All rights reserved.<BR> >>> + >>> + SPDX-License-Identifier: BSD-2-Clause-Patent >>> + >>> + **/ >>> + >>> +#include <Library/BaseLib.h> >>> +#include <Library/DebugLib.h> >>> +#include <Library/NorFlashPlatformLib.h> >>> +#include <Library/UefiBootServicesTableLib.h> >>> +#include <Protocol/FdtClient.h> >>> + >>> +/** Macro defining the NOR block size configured in Kvmtool. >>> +*/ >>> +#define KVMTOOL_NOR_BLOCK_SIZE SIZE_64KB >>> + >>> +/** Macro defining the maximum number of Flash devices. >>> +*/ >>> +#define MAX_FLASH_DEVICES 4 >> >> I am sorry but I am still confused... >> >> This is about the QEMU Virt machine, right? >> >> This machine was supposed to have 1 single flash, see QEMU commit >> f5fdcd6e58 ("hw/arm: Add 'virt' platform") from Nov 2013: >> >> /* Addresses and sizes of our components. >> * 0..128MB is space for a flash device so we can run bootrom code >> such as UEFI. >> ... >> >> Due to limitations in the QEMU cfi-flash model, instead of using >> a single flash device (with proper sector/bank protection), two >> devices were added in QEMU commit acf82361c6 ("hw/arm/virt: Provide >> flash devices for boot ROMs") Sep 2014: >> >> Add two flash devices to the virt board, so that it can be used for >> running guests which want a bootrom image such as UEFI. We provide >> two flash devices to make it more convenient to provide both a >> read-only UEFI image and a read-write place to store guest-set >> UEFI config variables. The '-bios' command line option is set up >> to provide an image for the first of the two flash devices. >> >> What do you declare maximum 4 devices? >> > > Kvmtool != QEMU, so whatever QEMU does is irrelevant for this series. >
Ah, I feel relieved, thanks :) -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#61716): https://edk2.groups.io/g/devel/message/61716 Mute This Topic: https://groups.io/mt/75081477/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-