From: "Jeremy Linton" <jeremy.linton@arm.com>
To: Leif Lindholm <quic_llindhol@quicinc.com>,
Ard Biesheuvel <ardb+git@google.com>
Cc: devel@edk2.groups.io, Ard Biesheuvel <ardb@kernel.org>
Subject: Re: [edk2-devel] [PATCH edk2-platforms 5/5] Platform/RaspberryPi: Drop platform specific EfiResetSystemLib
Date: Thu, 25 Jul 2024 15:21:20 -0500 [thread overview]
Message-ID: <7d3a04a4-f33a-4095-8390-bc77229caf5e@arm.com> (raw)
In-Reply-To: <ZqI5QgDEXLks33pJ@qc-i7.hemma.eciton.net>
Hi,
On 7/25/24 06:38, Leif Lindholm wrote:
> On Thu, Jul 25, 2024 at 12:43:30 +0200, Ard Biesheuvel wrote:
>> From: Ard Biesheuvel <ardb@kernel.org>
>>
>> Drop the now unused EfiResetSystemLib implementation, which has been
>> superseded by the generic one from EDK2.
>>
>> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
>> ---
>> Platform/RaspberryPi/RaspberryPi.dec | 1 -
>> Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf | 1 -
>> Platform/RaspberryPi/Library/ResetLib/ResetLib.inf | 45 ------
>> Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c | 11 --
>> Platform/RaspberryPi/Library/ResetLib/ResetLib.c | 151 --------------------
>> 5 files changed, 209 deletions(-)
>>
>> diff --git a/Platform/RaspberryPi/RaspberryPi.dec b/Platform/RaspberryPi/RaspberryPi.dec
>> index 6bd16a5ae9fd..a5fa1fb00c48 100644
>> --- a/Platform/RaspberryPi/RaspberryPi.dec
>> +++ b/Platform/RaspberryPi/RaspberryPi.dec
>> @@ -24,7 +24,6 @@ [Protocols]
>>
>> [Guids]
>> gRaspberryPiTokenSpaceGuid = {0xCD7CC258, 0x31DB, 0x11E6, {0x9F, 0xD3, 0x63, 0xB0, 0xB8, 0xEE, 0xD6, 0xB5}}
>> - gRaspberryPiEventResetGuid = {0xCD7CC258, 0x31DB, 0x11E6, {0x9F, 0xD3, 0x63, 0xB4, 0xB4, 0xE4, 0xD4, 0xB4}}
>> gConfigDxeFormSetGuid = {0xCD7CC258, 0x31DB, 0x22E6, {0x9F, 0x22, 0x63, 0xB0, 0xB8, 0xEE, 0xD6, 0xB5}}
>
> *loud sigh at looking those "GUIDs"*
> But that's not this set's fault.
The first couple are DCE time/mac UUIDs with the MAC address fuzzed, no?
Initially I assumed this coudn't be the case because I would have
expected the timestamp (2016-06-13 21:57:59, which looks almost
reasonable) to vary, but i'm guessing they were generated, and then
someone didn't want their mac in the pubic so they fuzzed it a couple
times rather than generating completely new IDs. Some of the others
though, maybe a BE/LE UUID/GUID manual conversion (or not) problem...
Anyway, I will spin it up in a day or two on real hardware, but right
now its all torn down in boxes because i've moved.
>
> For the series:
> Reviewed-by: Leif Lindholm <quic_llindhol@quicinc.com>
> Thanks!
>
> /
> Leif
>
>> [PcdsFixedAtBuild.common]
>> diff --git a/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf b/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf
>> index 6456153fd3ab..53391466a77b 100644
>> --- a/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf
>> +++ b/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.inf
>> @@ -52,7 +52,6 @@ [LibraryClasses]
>>
>> [Guids]
>> gEfiEventVirtualAddressChangeGuid
>> - gRaspberryPiEventResetGuid
>> gEfiEventReadyToBootGuid
>>
>> [Protocols]
>> diff --git a/Platform/RaspberryPi/Library/ResetLib/ResetLib.inf b/Platform/RaspberryPi/Library/ResetLib/ResetLib.inf
>> deleted file mode 100644
>> index 9bdb94a52ebf..000000000000
>> --- a/Platform/RaspberryPi/Library/ResetLib/ResetLib.inf
>> +++ /dev/null
>> @@ -1,45 +0,0 @@
>> -#/** @file
>> -#
>> -# Reset System lib using PSCI hypervisor or secure monitor calls.
>> -# Signals the gRaspberryPiEventResetGuid event group on reset.
>> -#
>> -# Copyright (c) 2018, Andrei Warkentin <andrey.warkentin@gmail.com>
>> -# Copyright (c) 2014, Linaro Ltd. All rights reserved.
>> -# Copyright (c) 2014, ARM Ltd. All rights reserved.
>> -# Copyright (c) 2008, Apple Inc. All rights reserved.
>> -#
>> -# SPDX-License-Identifier: BSD-2-Clause-Patent
>> -#
>> -#**/
>> -
>> -[Defines]
>> - INF_VERSION = 0x0001001A
>> - BASE_NAME = ResetLib
>> - FILE_GUID = B9F59B69-A105-41C7-8F5A-2C60DD7FD7AB
>> - MODULE_TYPE = BASE
>> - VERSION_STRING = 1.0
>> - LIBRARY_CLASS = EfiResetSystemLib
>> -
>> -[Sources]
>> - ResetLib.c
>> -
>> -[Packages]
>> - ArmPkg/ArmPkg.dec
>> - MdePkg/MdePkg.dec
>> - EmbeddedPkg/EmbeddedPkg.dec
>> - Platform/RaspberryPi/RaspberryPi.dec
>> -
>> -[LibraryClasses]
>> - DebugLib
>> - BaseLib
>> - ArmSmcLib
>> - PcdLib
>> - TimerLib
>> - UefiLib
>> - UefiRuntimeLib
>> -
>> -[Guids]
>> - gRaspberryPiEventResetGuid
>> -
>> -[Pcd]
>> - gRaspberryPiTokenSpaceGuid.PcdPlatformResetDelay ## CONSUMES
>> diff --git a/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c b/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c
>> index 81dfb95e323c..04414b142c7e 100644
>> --- a/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c
>> +++ b/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockServiceDxe.c
>> @@ -262,20 +262,9 @@ InstallDumpVarEventHandlers (
>> )
>> {
>> EFI_STATUS Status;
>> - EFI_EVENT ResetEvent;
>> EFI_EVENT ReadyToBootEvent;
>> EFI_RESET_NOTIFICATION_PROTOCOL *ResetNotify;
>>
>> - Status = gBS->CreateEventEx (
>> - EVT_NOTIFY_SIGNAL,
>> - TPL_CALLBACK,
>> - DumpVarsOnEvent,
>> - NULL,
>> - &gRaspberryPiEventResetGuid,
>> - &ResetEvent
>> - );
>> - ASSERT_EFI_ERROR (Status);
>> -
>> Status = gBS->CreateEventEx (
>> EVT_NOTIFY_SIGNAL,
>> TPL_CALLBACK,
>> diff --git a/Platform/RaspberryPi/Library/ResetLib/ResetLib.c b/Platform/RaspberryPi/Library/ResetLib/ResetLib.c
>> deleted file mode 100644
>> index 2bcef8d4db2b..000000000000
>> --- a/Platform/RaspberryPi/Library/ResetLib/ResetLib.c
>> +++ /dev/null
>> @@ -1,151 +0,0 @@
>> -/** @file
>> - *
>> - * Support ResetSystem Runtime call using PSCI calls.
>> - * Signals the gRaspberryPiEventResetGuid event group on reset.
>> - *
>> - * Copyright (c) 2018, Andrei Warkentin <andrey.warkentin@gmail.com>
>> - * Copyright (c) 2014, Linaro Ltd. All rights reserved.
>> - * Copyright (c) 2013-2015, ARM Ltd. All rights reserved.
>> - * Copyright (c) 2008-2009, Apple Inc. All rights reserved.
>> - *
>> - * SPDX-License-Identifier: BSD-2-Clause-Patent
>> - *
>> - **/
>> -
>> -#include <PiDxe.h>
>> -
>> -#include <Library/BaseLib.h>
>> -#include <Library/DebugLib.h>
>> -#include <Library/TimerLib.h>
>> -#include <Library/EfiResetSystemLib.h>
>> -#include <Library/ArmSmcLib.h>
>> -#include <Library/UefiBootServicesTableLib.h>
>> -#include <Library/UefiLib.h>
>> -#include <Library/UefiRuntimeLib.h>
>> -
>> -#include <IndustryStandard/ArmStdSmc.h>
>> -
>> -
>> -/**
>> - Disconnect everything.
>> - Modified from the UEFI 2.3 spec (May 2009 version)
>> -
>> -**/
>> -STATIC
>> -VOID
>> -DisconnectAll (
>> - VOID
>> - )
>> -{
>> - EFI_STATUS Status;
>> - UINTN HandleCount;
>> - EFI_HANDLE *HandleBuffer;
>> - UINTN HandleIndex;
>> -
>> - /*
>> - * Retrieve the list of all handles from the handle database
>> - */
>> - Status = gBS->LocateHandleBuffer (
>> - AllHandles,
>> - NULL,
>> - NULL,
>> - &HandleCount,
>> - &HandleBuffer
>> - );
>> - if (EFI_ERROR (Status)) {
>> - return;
>> - }
>> -
>> - for (HandleIndex = 0; HandleIndex < HandleCount; HandleIndex++) {
>> - gBS->DisconnectController (HandleBuffer[HandleIndex], NULL, NULL);
>> - }
>> -
>> - gBS->FreePool(HandleBuffer);
>> -}
>> -
>> -
>> -/**
>> - Resets the entire platform.
>> -
>> - @param ResetType The type of reset to perform.
>> - @param ResetStatus The status code for the reset.
>> - @param DataSize The size, in bytes, of WatchdogData.
>> - @param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
>> - EfiResetShutdown the data buffer starts with a Null-terminated
>> - Unicode string, optionally followed by additional binary data.
>> -
>> -**/
>> -EFI_STATUS
>> -EFIAPI
>> -LibResetSystem (
>> - IN EFI_RESET_TYPE ResetType,
>> - IN EFI_STATUS ResetStatus,
>> - IN UINTN DataSize,
>> - IN CHAR16 *ResetData OPTIONAL
>> - )
>> -{
>> - ARM_SMC_ARGS ArmSmcArgs;
>> - UINT32 Delay;
>> -
>> - if (!EfiAtRuntime ()) {
>> - /*
>> - * Only if still in UEFI.
>> - */
>> - EfiEventGroupSignal (&gRaspberryPiEventResetGuid);
>> -
>> - DisconnectAll ();
>> -
>> - Delay = PcdGet32 (PcdPlatformResetDelay);
>> - if (Delay != 0) {
>> - DEBUG ((DEBUG_INFO, "Platform will be reset in %d.%d seconds...\n",
>> - Delay / 1000000, (Delay % 1000000) / 100000));
>> - MicroSecondDelay (Delay);
>> - }
>> - }
>> - DEBUG ((DEBUG_INFO, "Platform %a.\n",
>> - (ResetType == EfiResetShutdown) ? "shutdown" : "reset"));
>> -
>> - switch (ResetType) {
>> - case EfiResetPlatformSpecific:
>> - // Map the platform specific reset as reboot
>> - case EfiResetWarm:
>> - // Map a warm reset into a cold reset
>> - case EfiResetCold:
>> - // Send a PSCI 0.2 SYSTEM_RESET command
>> - ArmSmcArgs.Arg0 = ARM_SMC_ID_PSCI_SYSTEM_RESET;
>> - break;
>> - case EfiResetShutdown:
>> - // Send a PSCI 0.2 SYSTEM_OFF command
>> - ArmSmcArgs.Arg0 = ARM_SMC_ID_PSCI_SYSTEM_OFF;
>> - break;
>> - default:
>> - ASSERT (FALSE);
>> - return EFI_UNSUPPORTED;
>> - }
>> -
>> - ArmCallSmc (&ArmSmcArgs);
>> -
>> - // We should never be here
>> - DEBUG ((DEBUG_ERROR, "%a: PSCI Reset failed\n", __FUNCTION__));
>> - CpuDeadLoop ();
>> - return EFI_UNSUPPORTED;
>> -}
>> -
>> -/**
>> - Initialize any infrastructure required for LibResetSystem () to function.
>> -
>> - @param ImageHandle The firmware allocated handle for the EFI image.
>> - @param SystemTable A pointer to the EFI System Table.
>> -
>> - @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
>> -
>> -**/
>> -EFI_STATUS
>> -EFIAPI
>> -LibInitializeResetSystem (
>> - IN EFI_HANDLE ImageHandle,
>> - IN EFI_SYSTEM_TABLE *SystemTable
>> - )
>> -{
>> - return EFI_SUCCESS;
>> -}
>> --
>> 2.46.0.rc1.232.g9752f9e123-goog
>>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120042): https://edk2.groups.io/g/devel/message/120042
Mute This Topic: https://groups.io/mt/107540912/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2024-07-25 20:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-25 10:43 [edk2-devel] [PATCH edk2-platforms 0/5] RPi: Drop EmbeddedPkg reset runtime Ard Biesheuvel via groups.io
2024-07-25 10:43 ` [edk2-devel] [PATCH edk2-platforms 1/5] Platform/RaspberryPi/VarBlockServiceDxe: Refactor DumpVars event handler Ard Biesheuvel via groups.io
2024-07-25 10:43 ` [edk2-devel] [PATCH edk2-platforms 2/5] Platform/RaspberryPi/VarBlockServiceDxe: Register for reset notification Ard Biesheuvel via groups.io
2024-07-25 10:43 ` [edk2-devel] [PATCH edk2-platforms 3/5] Platform/RaspberryPi/PlatformBootManagerLib: Reimplement reset hook Ard Biesheuvel via groups.io
2024-07-25 10:43 ` [edk2-devel] [PATCH edk2-platforms 4/5] Platform/RaspberryPi: Switch to generic reset runtime Ard Biesheuvel via groups.io
2024-07-25 10:43 ` [edk2-devel] [PATCH edk2-platforms 5/5] Platform/RaspberryPi: Drop platform specific EfiResetSystemLib Ard Biesheuvel via groups.io
2024-07-25 11:38 ` Leif Lindholm
2024-07-25 12:12 ` Alexander D
2024-07-25 12:13 ` Ard Biesheuvel
2024-07-25 20:21 ` Jeremy Linton [this message]
2024-07-25 21:23 ` Ard Biesheuvel
2024-07-28 19:35 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7d3a04a4-f33a-4095-8390-bc77229caf5e@arm.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox