From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.106.55; helo=cam-smtp0.cambridge.arm.com; envelope-from=sami.mujawar@arm.com; receiver=edk2-devel@lists.01.org Received: from cam-smtp0.cambridge.arm.com (unknown [217.140.106.55]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 5A12B21959CB2 for ; Fri, 21 Dec 2018 09:40:37 -0800 (PST) Received: from E107187.Arm.com (e107187.arm.com [10.1.195.55]) by cam-smtp0.cambridge.arm.com (8.13.8/8.13.8) with ESMTP id wBLH0RVA019020; Fri, 21 Dec 2018 17:01:03 GMT From: Sami Mujawar To: edk2-devel@lists.01.org Cc: Arvind Chauhan , Daniil Egranov , Thomas Panakamattam Abraham , ard.biesheuvel@linaro.org, leif.lindholm@linaro.org, michael.d.kinney@intel.com, alexei.fedorov@arm.com, Matteo.Carlini@arm.com, Stephanie.Hughes-Fitt@arm.com, nd@arm.com Date: Fri, 21 Dec 2018 17:00:17 +0000 Message-Id: <20181221170021.145024-3-sami.mujawar@arm.com> X-Mailer: git-send-email 2.11.0.windows.3 In-Reply-To: <20181221170021.145024-1-sami.mujawar@arm.com> References: <20181221170021.145024-1-sami.mujawar@arm.com> Subject: [PATCH edk2-platforms v1 2/6] Platform/ARM: Dynamic Tables support for Juno X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 X-List-Received-Date: Fri, 21 Dec 2018 17:40:37 -0000 The dynamic tables framework uses the platform hardware information described by the configuration manager to generate ACPI tables. This support is configurable and can be enabled using the DYNAMIC_TABLES_FRAMEWORK build option. When DYNAMIC_TABLES_FRAMEWORK is defined, ACPI tables are generated and installed by the dynamic table framework. Therefore, installation of ACPI tables from the Firmware Volume (FV) is disabled by this option. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar --- Platform/ARM/JunoPkg/ArmJuno.dsc | 12 +++++++++++- Platform/ARM/JunoPkg/ArmJuno.fdf | 12 ++++++++++++ Platform/ARM/JunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c | 9 +++++++-- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/Platform/ARM/JunoPkg/ArmJuno.dsc b/Platform/ARM/JunoPkg/ArmJuno.dsc index 3edde5b65be47fe14988940ce2ef31a60f38dd31..a355c1e1d983339b3b461eddbf60e4a31888a361 100644 --- a/Platform/ARM/JunoPkg/ArmJuno.dsc +++ b/Platform/ARM/JunoPkg/ArmJuno.dsc @@ -33,6 +33,11 @@ [Defines] # On RTSM, most peripherals are VExpress Motherboard peripherals !include Platform/ARM/VExpressPkg/ArmVExpress.dsc.inc +!ifdef DYNAMIC_TABLES_FRAMEWORK +!include DynamicTablesPkg/DynamicTables.dsc.inc +!include Platform/ARM/JunoPkg/ConfigurationManager/ConfigurationManager.dsc.inc +!endif + [LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf @@ -79,6 +84,10 @@ [LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, Libr [BuildOptions] GCC:*_*_ARM_PLATFORM_FLAGS = -march=armv8-a +!ifdef DYNAMIC_TABLES_FRAMEWORK + *_*_*_PLATFORM_FLAGS = -DDYNAMIC_TABLES_FRAMEWORK +!endif + ################################################################################ # # Pcd Section - list of all EDK II PCD Entries defined by this Platform @@ -266,8 +275,9 @@ [Components.common] # ACPI Support # MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf +!ifndef DYNAMIC_TABLES_FRAMEWORK Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf - +!endif MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf ArmPkg/Drivers/ArmGic/ArmGicDxe.inf diff --git a/Platform/ARM/JunoPkg/ArmJuno.fdf b/Platform/ARM/JunoPkg/ArmJuno.fdf index 0a8b636d0ebd10a7bceb3cbe6ca1bed8688da1a6..b1295a579b094db1433898589a282702ec854bfb 100644 --- a/Platform/ARM/JunoPkg/ArmJuno.fdf +++ b/Platform/ARM/JunoPkg/ArmJuno.fdf @@ -114,7 +114,17 @@ [FV.FvMain] # ACPI Support # INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf +!ifndef DYNAMIC_TABLES_FRAMEWORK INF RuleOverride=ACPITABLE Platform/ARM/JunoPkg/AcpiTables/AcpiTables.inf +!else + # Configuration Manager + INF Platform/ARM/JunoPkg/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerDxe.inf + + # + # Dynamic Table fdf + # + !include DynamicTablesPkg/DynamicTables.fdf.inc +!endif INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf @@ -378,8 +388,10 @@ [Rule.Common.UEFI_APPLICATION.BINARY] VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) } +!ifndef DYNAMIC_TABLES_FRAMEWORK [Rule.Common.USER_DEFINED.ACPITABLE] FILE FREEFORM = $(NAMED_GUID) { RAW ACPI |.acpi RAW ASL |.aml } +!endif diff --git a/Platform/ARM/JunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c b/Platform/ARM/JunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c index 18491c7378523f365644658c270de95e711c5ac1..0a42d21d4e9b60824f1d313a4d5ad9e4bc6db3aa 100644 --- a/Platform/ARM/JunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c +++ b/Platform/ARM/JunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.c @@ -1,6 +1,6 @@ /** @file * -* Copyright (c) 2013-2015, ARM Limited. All rights reserved. +* Copyright (c) 2013-2017, ARM Limited. All rights reserved. * * This program and the accompanying materials * are licensed and made available under the terms and conditions of the BSD License @@ -33,9 +33,10 @@ #include #include - +#ifndef DYNAMIC_TABLES_FRAMEWORK // This GUID must match the FILE_GUID in ArmPlatformPkg/ArmJunoPkg/AcpiTables/AcpiTables.inf STATIC CONST EFI_GUID mJunoAcpiTableFile = { 0xa1dd808e, 0x1e95, 0x4399, { 0xab, 0xc0, 0x65, 0x3c, 0x82, 0xe8, 0x53, 0x0c } }; +#endif typedef struct { ACPI_HID_DEVICE_PATH AcpiDevicePath; @@ -487,11 +488,13 @@ ArmJunoEntryPoint ( GetJunoRevision(JunoRevision); +#ifndef DYNAMIC_TABLES_FRAMEWORK // // Try to install the ACPI Tables // Status = LocateAndInstallAcpiFromFv (&mJunoAcpiTableFile); ASSERT_EFI_ERROR (Status); +#endif // // Setup R1/R2 options if not already done. @@ -516,6 +519,7 @@ ArmJunoEntryPoint ( &EndOfDxeEvent ); +#ifndef DYNAMIC_TABLES_FRAMEWORK // Declare the related ACPI Tables EfiCreateProtocolNotifyEvent ( &gEfiAcpiTableProtocolGuid, @@ -524,6 +528,7 @@ ArmJunoEntryPoint ( NULL, &mAcpiRegistration ); +#endif } // -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'