Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 555bbc6643eaef7192f948391e5d16fae439a8c2
      
https://github.com/tianocore/edk2/commit/555bbc6643eaef7192f948391e5d16fae439a8c2
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/ArmPkg.dec
    M ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    M ArmPkg/Drivers/ArmGic/ArmGicLib.c
    M ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    M ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c

  Log Message:
  -----------
  ArmPkg/ArmGic: Drop GICv2 legacy support

Support for GICv2 legacy mode was introduced to accommodate secure world
firmware that was lagging behind in terms of development, and was
running the GIC in v2 mode on the secure side for lack of a GICv3
driver.

As per the GIC architecture, the non-secure world can only run the GIC
in v3 mode if the secure world does so too.

At this point, there is no longer a need to for this fallback: GICv2
support it still needed for platforms such as Raspberry Pi 4 that do not
implement GICv3 at all. But on platforms that do implement it, falling
back to GICv2 is unnecessary.

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


  Commit: ec5bb8f95334de73c872a4d071a9800d688efb83
      
https://github.com/tianocore/edk2/commit/ec5bb8f95334de73c872a4d071a9800d688efb83
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicLib.c
    M ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: drop ArmGicEnableInterruptInterface from ArmGicLib

The ArmGicLib API exposes ArmGicEnableInterruptInterface () and
ArmGicDisableInterruptInterface (), but only the former is actually
used, and only from the GICv2 driver. So drop the API entirely, and
invoke the v2 version of the underlying interface directly.

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


  Commit: aad4dd9aac345e3e971c6b1bd548ac6e09a4183f
      
https://github.com/tianocore/edk2/commit/aad4dd9aac345e3e971c6b1bd548ac6e09a4183f
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicLib.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Remove ArmGicSendSgiTo () API

ArmGicSendSgiTo () is never used, and is fundamentally tied to multi-CPU
operation which is no longer supported. So drop the implementation.

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


  Commit: a4928a0cfc269d268f6832111e2c4435fde366b8
      
https://github.com/tianocore/edk2/commit/a4928a0cfc269d268f6832111e2c4435fde366b8
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicLib.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Remove ArmGicEndOfInterrupt () API

ArmGicEndOfInterrupt () is never used: the v2 and v3 versions of the
driver call respective specific versions directly, and so this API can
be removed.

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


  Commit: 4e874fcf09e3c8cede327e2209f488b944cbe0fe
      
https://github.com/tianocore/edk2/commit/4e874fcf09e3c8cede327e2209f488b944cbe0fe
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicLib.c
    M ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
    R ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2NonSecLib.c
    M ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Disentangle v2 and v3 versions of IRQ en/disable APIs

ArmGicLib is agnostic about the difference between v2 and v3, but its
APIs are only called from code that is either v2-specific or
v3-specific. That makes the generic interface kind of pointless, and we
can just merge this code into the callers.

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


  Commit: 2ab362f313248a87c050ebbc02f1b2e08f35d53c
      
https://github.com/tianocore/edk2/commit/2ab362f313248a87c050ebbc02f1b2e08f35d53c
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    R ArmPkg/Drivers/ArmGic/ArmGicNonSecLib.c
    M ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
    M ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Disentangle ArmGicEnableDistributor () versions

Split ArmGicEnableDistributor () into GICv2 and v3 specific versions,
and move them into their single respective callers, so that the original
can be dropped from ArmGicLib altogether.

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


  Commit: 298d8c436a24d386c2f8ff2c117a755abe90ee6d
      
https://github.com/tianocore/edk2/commit/298d8c436a24d386c2f8ff2c117a755abe90ee6d
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Drop declarations for non-existent functions

Drop some ArmGicLib declarations that don't actually exist in the code.

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


  Commit: 337a99af10693bb682e4ba79f393146f21930d4f
      
https://github.com/tianocore/edk2/commit/337a99af10693bb682e4ba79f393146f21930d4f
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicCommonDxe.c
    M ArmPkg/Drivers/ArmGic/ArmGicDxe.h
    R ArmPkg/Drivers/ArmGic/ArmGicLib.c
    M ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Move remaining shared code into ArmGicDxe

Move the remaining ArmGicLib code that is shared between the v2 and v3
GIC DXE drivers into ArmGicCommonDxe.c

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


  Commit: 84eed1ef2a84c6716582809b1d1270f5388f8f0d
      
https://github.com/tianocore/edk2/commit/84eed1ef2a84c6716582809b1d1270f5388f8f0d
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    M ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
    R ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Move GICv2 specific EOI/ACK routines into v2 driver

ArmGicDxe is the only remaining user of ArmGicLib, and so there is no
need for the abstraction, which is drawn at an arbitrary boundary
anyway. So remove the remaining V2 specific code into the DXE driver.

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


  Commit: 8edd5fd6d3dfb21fe077427029f1e705cfbcb7a1
      
https://github.com/tianocore/edk2/commit/8edd5fd6d3dfb21fe077427029f1e705cfbcb7a1
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicDxe.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Move GICv3 sysreg check into ArmGicDxe

ArmGicArchLib implements a check on the accessibility of the GIC system
register interface, which is a prerequisite for using the GIC in v3
mode. It might be possible to use GICv2 compatibility mode on poorly
configured platforms where the GIC is v3 capable but not accessible, but
in most cases, the GIC is driven in its native mode.

This check is now only carried out in a single place, and there is not
really any reason to keep this in a separate library. Even though
ArmVirtPkg implements its own version, the basic check (and enablement
of the sysreg interface) is still needed.

So move this check into the DXE driver itself, and drop the dependency
on ArmGicArchLib. This allows it to be retired in a subsequent patch.

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


  Commit: e663b79f74e406d13ca4d6344afad7c04cf31aea
      
https://github.com/tianocore/edk2/commit/e663b79f74e406d13ca4d6344afad7c04cf31aea
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmVirtPkg/ArmVirt.dsc.inc
    M ArmVirtPkg/ArmVirtCloudHv.dsc
    M ArmVirtPkg/ArmVirtKvmTool.dsc
    M ArmVirtPkg/ArmVirtQemu.dsc
    M ArmVirtPkg/ArmVirtQemuKernel.dsc
    M ArmVirtPkg/ArmVirtXen.dsc
    M ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.c
    M ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf

  Log Message:
  -----------
  ArmVirtPkg: Convert ArmVirtGicArchLib to NULL class library

Before retiring ArmGicArchLib entirely, convert the existing
implementation in ArmVirtPkg into a NULL class library and inject it
into ArmGicDxe on all ARM virtual platforms. This ensures that the PCDs
describing the GIC are intialized correctly before ArmGicDxe is
dispatched.

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


  Commit: 9bf20991b40b51468880bd7451000ec9cbe25652
      
https://github.com/tianocore/edk2/commit/9bf20991b40b51468880bd7451000ec9cbe25652
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Move some GIC defines into ArmGicLib.h

Before getting rid of ArmGicArchLib entirely, preserve some GIC
architecture related preprocessor defines by moving them into
ArmGicLib.h instead.

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


  Commit: 34ab9197a51f7e158c49875992c2392346f1ac7f
      
https://github.com/tianocore/edk2/commit/34ab9197a51f7e158c49875992c2392346f1ac7f
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M 
DynamicTablesPkg/Library/Common/SsdtSerialPortFixupLib/SsdtSerialPortFixupLib.c

  Log Message:
  -----------
  DynamicTablesPkg/SsdtSerialPortFixupLib: Switch to ArmGicLib.h

ArmGicArchLib is going away, and preprocessor defines related to the GIC
have been moved into ArmGicLib.h instead.

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


  Commit: eaa60a6b10ecef8499e16da5acbca77f0d8c8e14
      
https://github.com/tianocore/edk2/commit/eaa60a6b10ecef8499e16da5acbca77f0d8c8e14
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/ArmPkg.dec
    M ArmPkg/ArmPkg.dsc
    M ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    R ArmPkg/Include/Library/ArmGicArchLib.h
    R ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.c
    R ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
    R ArmPkg/Library/ArmGicArchSecLib/ArmGicArchLib.c
    R ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
    M ArmPlatformPkg/ArmPlatformPkg.dsc

  Log Message:
  -----------
  ArmPkg/ArmGic: Retire ArmGicArchLib

ArmGicArchLib is no longer use so remove all remaining references and
implementations.

Continuous-integration-options: PatchCheck.ignore-multi-package

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


  Commit: c9e38d1afbb53f37541730c485398cc23e441b5f
      
https://github.com/tianocore/edk2/commit/c9e38d1afbb53f37541730c485398cc23e441b5f
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGic/ArmGicDxe.h
    M ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGic: Incorporate v3 code from ArmGicLib

Move the remaining code in ArmGicLib into ArmGicDxe, its only user, and
drop the dependency on ArmGicLib. Note that ArmGicDxe has an undeclared
dependency on ArmLib, so declare that instead.

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


  Commit: 0bb40c79becc1f3442fc79b89dfd7f2624a63e92
      
https://github.com/tianocore/edk2/commit/0bb40c79becc1f3442fc79b89dfd7f2624a63e92
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/ArmPkg.dsc
    R ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    M ArmPlatformPkg/ArmPlatformPkg.dsc
    M ArmVirtPkg/ArmVirt.dsc.inc
    M ArmVirtPkg/Library/ArmVirtGicArchLib/ArmVirtGicArchLib.inf
    M EmbeddedPkg/EmbeddedPkg.dsc

  Log Message:
  -----------
  ArmPkg: Retire ArmGicLib implementations

Retire all implementations of the ArmGicLib library class, which are no
longer used. For now, retain the library header and library class
declaration: the header file only contains pre-processor defines derived
from the GIC architecture spec, and so this code should probably move
into MdePkg at a later moment.

Continuous-integration-options: PatchCheck.ignore-multi-package

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


  Commit: 86119ff79e023cbc358898ba4d267480e63aca1f
      
https://github.com/tianocore/edk2/commit/86119ff79e023cbc358898ba4d267480e63aca1f
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/ArmPkg.dsc
    A ArmPkg/Drivers/ArmGic/ArmGicV2Dxe.inf

  Log Message:
  -----------
  ArmPkg/ArmGic: Implement GICv2-only version of GIC driver

Most platforms do not require the flexibility of the ordinary GIC
driver, which supports both GICv2 and GICv3+, and decides at runtime
which version to use.

So expose a GICv2 only version, which only supports a GICv2.

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


  Commit: 9d1a9b426ed109fce87e487878b1865713cf4d3e
      
https://github.com/tianocore/edk2/commit/9d1a9b426ed109fce87e487878b1865713cf4d3e
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/ArmPkg.dsc
    A ArmPkg/Drivers/ArmGic/ArmGicV3Dxe.inf
    M ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c

  Log Message:
  -----------
  ArmPkg/ArmGic: Implement GICv3+ version of GIC driver

Most platforms do not require the flexibility of the ordinary GIC
driver, which supports both GICv2 and GICv3+, and decides at runtime
which version to use.

So expose a GICv3+ version, which only supports a GICv3 or newer.

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


  Commit: 81e2cd329efc0ed240234f475426cb81bf5d9c84
      
https://github.com/tianocore/edk2/commit/81e2cd329efc0ed240234f475426cb81bf5d9c84
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/ArmPkg.dsc
    R ArmPkg/Drivers/ArmGic/ArmGicCommonDxe.c
    R ArmPkg/Drivers/ArmGic/ArmGicDxe.c
    R ArmPkg/Drivers/ArmGic/ArmGicDxe.h
    R ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    R ArmPkg/Drivers/ArmGic/ArmGicV2Dxe.inf
    R ArmPkg/Drivers/ArmGic/ArmGicV3Dxe.inf
    R ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
    R ArmPkg/Drivers/ArmGic/GicV3/AArch64/ArmGicV3.S
    R ArmPkg/Drivers/ArmGic/GicV3/Arm/ArmGicV3.S
    R ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
    A ArmPkg/Drivers/ArmGicDxe/ArmGicCommonDxe.c
    A ArmPkg/Drivers/ArmGicDxe/ArmGicDxe.c
    A ArmPkg/Drivers/ArmGicDxe/ArmGicDxe.h
    A ArmPkg/Drivers/ArmGicDxe/ArmGicDxe.inf
    A ArmPkg/Drivers/ArmGicDxe/ArmGicV2Dxe.inf
    A ArmPkg/Drivers/ArmGicDxe/ArmGicV3Dxe.inf
    A ArmPkg/Drivers/ArmGicDxe/GicV2/ArmGicV2Dxe.c
    A ArmPkg/Drivers/ArmGicDxe/GicV3/AArch64/ArmGicV3.S
    A ArmPkg/Drivers/ArmGicDxe/GicV3/Arm/ArmGicV3.S
    A ArmPkg/Drivers/ArmGicDxe/GicV3/ArmGicV3Dxe.c
    M ArmVirtPkg/ArmVirtCloudHv.dsc
    M ArmVirtPkg/ArmVirtCloudHv.fdf
    M ArmVirtPkg/ArmVirtKvmTool.dsc
    M ArmVirtPkg/ArmVirtKvmTool.fdf
    M ArmVirtPkg/ArmVirtQemu.dsc
    M ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc
    M ArmVirtPkg/ArmVirtQemuKernel.dsc
    M ArmVirtPkg/ArmVirtXen.dsc
    M ArmVirtPkg/ArmVirtXen.fdf

  Log Message:
  -----------
  ArmPkg/ArmGic: Rename directory to ArmGicDxe

Now that ArmPkg/Drivers/ArmGic no longer carries a combination of
libraries and DXE drivers, rename the directory to the more idiomatic
ArmPkg/Drivers/ArmGicDxe

Continuous-integration-options: PatchCheck.ignore-multi-package

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


  Commit: 2d2642f4832ebc45cb7d5ba9430b933d953b94f2
      
https://github.com/tianocore/edk2/commit/2d2642f4832ebc45cb7d5ba9430b933d953b94f2
  Author: Ard Biesheuvel <a...@kernel.org>
  Date:   2025-01-17 (Fri, 17 Jan 2025)

  Changed paths:
    M ArmPkg/Drivers/ArmGicDxe/ArmGicDxe.h
    M ArmPkg/Drivers/ArmGicDxe/GicV3/AArch64/ArmGicV3.S
    M ArmPkg/Drivers/ArmGicDxe/GicV3/Arm/ArmGicV3.S
    M ArmPkg/Drivers/ArmGicDxe/GicV3/ArmGicV3Dxe.c
    M ArmPkg/Include/Library/ArmGicLib.h

  Log Message:
  -----------
  ArmPkg/ArmGicDxe: Use EOImode 0x0 on GICv3

When re-entering EDK2 from a high level OS such as Linux, the GICv3 may
be configured to use split priority drop and deactivate (EOImode == 1),
whereas EDK2's GICv3 driver assumes the default setting of EOImode == 0.

So clear the EOImode bit explicitly when taking control of the GIC.

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


Compare: https://github.com/tianocore/edk2/compare/ea2f6c68ee92...2d2642f4832e

To unsubscribe from these emails, change your notification settings at 
https://github.com/tianocore/edk2/settings/notifications


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

Reply via email to