On Fri, Mar 17, 2017 at 09:47:25PM +0100, Laszlo Ersek wrote: > The presence of this protocol in the DXE protocol database implies that > the platform provides the operating system with a Device Tree-based > hardware description. This is not necessarily mutually exclusive with an > ACPI-based hardware description. A platform driver is supposed to produce > a single instance of the protocol (with NULL contents), if appropriate. > > The decision to produce the protocol is platform specific; for example, it > could depend on an HII checkbox / underlying non-volatile UEFI variable. > > The protocol is meant to be consumed by the same or another platform > driver that owns the Device Tree description of the hardware, and is > responsible for installing it as a system configuration table. Said > FDT-owner driver can wait for the protocol via DEPEX or protocol notify. > > Because this protocol is not standard, it is prefixed with EDKII / Edkii, > as seen elsewhere in MdeModulePkg and SecurityPkg, for example. (ARM / Arm > doesn't look future-proof enough; future UEFI platforms could face the > same issue.)
Same comment as previous patch, with the exception that if this isn't a good fit for MdeModulePkg, I'd rather take it in EmbeddedPkg than ArmPkg. Regards, Leif > Cc: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Leif Lindholm <leif.lindh...@linaro.org> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Laszlo Ersek <ler...@redhat.com> > --- > ArmPkg/ArmPkg.dec | 2 ++ > ArmPkg/Include/Protocol/PlatformHasDeviceTree.h | 33 ++++++++++++++++++++ > 2 files changed, 35 insertions(+) > > diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec > index 0e49360a386a..1e5cee8d7393 100644 > --- a/ArmPkg/ArmPkg.dec > +++ b/ArmPkg/ArmPkg.dec > @@ -55,6 +55,8 @@ [Ppis] > [Protocols] > ## Include/Protocol/PlatformHasAcpi.h > gEdkiiPlatformHasAcpiProtocolGuid = { 0xf0966b41, 0xc23f, 0x41b9, { > 0x96, 0x04, 0x0f, 0xf7, 0xe1, 0x11, 0x96, 0x5a } } > + ## Include/Protocol/PlatformHasDeviceTree.h > + gEdkiiPlatformHasDeviceTreeProtocolGuid = { 0x7ebb920d, 0x1aaf, 0x46d9, { > 0xb2, 0xaf, 0x54, 0x1e, 0x1d, 0xce, 0x14, 0x8b } } > > [PcdsFeatureFlag.common] > gArmTokenSpaceGuid.PcdCpuDxeProduceDebugSupport|FALSE|BOOLEAN|0x00000001 > diff --git a/ArmPkg/Include/Protocol/PlatformHasDeviceTree.h > b/ArmPkg/Include/Protocol/PlatformHasDeviceTree.h > new file mode 100644 > index 000000000000..a1e588c547e6 > --- /dev/null > +++ b/ArmPkg/Include/Protocol/PlatformHasDeviceTree.h > @@ -0,0 +1,33 @@ > +/** @file > + EDKII Platform Has Device Tree Protocol > + > + The presence of this protocol in the DXE protocol database implies that the > + platform provides the operating system with a Device Tree-based hardware > + description. Note that this is not necessarily mutually exclusive with an > + ACPI-based hardware description. A platform driver is supposed to produce a > + single instance of the protocol (with NULL contents), if appropriate. > + > + Copyright (C) 2017, Red Hat, Inc. > + > + This program and the accompanying materials are licensed and made available > + under the terms and conditions of the BSD License that accompanies this > + distribution. The full text of the license may be found at > + http://opensource.org/licenses/bsd-license.php. > + > + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, > WITHOUT > + WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. > +**/ > + > + > +#ifndef __EDKII_PLATFORM_HAS_DEVICE_TREE_PROTOCOL_H__ > +#define __EDKII_PLATFORM_HAS_DEVICE_TREE_PROTOCOL_H__ > + > +#define EDKII_PLATFORM_HAS_DEVICE_TREE_PROTOCOL_GUID \ > + { \ > + 0x7ebb920d, 0x1aaf, 0x46d9, \ > + { 0xb2, 0xaf, 0x54, 0x1e, 0x1d, 0xce, 0x14, 0x8b } \ > + } > + > +extern EFI_GUID gEdkiiPlatformHasDeviceTreeProtocolGuid; > + > +#endif > -- > 2.9.3 > > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel