Reviewed-by: Nate DeSimone <nathaniel.l.desim...@intel.com> > -----Original Message----- > From: Oram, Isaac W <isaac.w.o...@intel.com> > Sent: Monday, February 7, 2022 11:03 AM > To: devel@edk2.groups.io > Cc: Desimone, Nathaniel L <nathaniel.l.desim...@intel.com>; Chiu, Chasel > <chasel.c...@intel.com> > Subject: [edk2-devel][edk2-platforms][PATCH V1 7/8] > WhitleyOpenBoardPkg/WilsonCityRvp: Generate AML offset table > > Add PreBuild step to generate the AML offset table for the ACPI tables. > > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Chasel Chiu <chasel.c...@intel.com> > Signed-off-by: Isaac Oram <isaac.w.o...@intel.com> > --- > Platform/Intel/.gitignore | > 2 + > Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets.dsc | > 41 +++++++++++++ > > Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets/AmlOffset > s.inf | 26 ++++++++ > Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_board.py | > 63 ++++++++++++++++++++ > Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_config.cfg | > 15 +++++ > 5 files changed, 147 insertions(+) > > diff --git a/Platform/Intel/.gitignore b/Platform/Intel/.gitignore new file > mode 100644 index 0000000000..548fee5bea > --- /dev/null > +++ b/Platform/Intel/.gitignore > @@ -0,0 +1,2 @@ > +WhitleyOpenBoardPkg/Uba/UbaMain/StaticSkuDataDxe/AmlOffsetTable.c > +__init__.py > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets.dsc > b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets.dsc > new file mode 100644 > index 0000000000..2e5ebf432a > --- /dev/null > +++ b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets.dsc > @@ -0,0 +1,41 @@ > +## @file > +# Build file for generating AML offset table # # @copyright # Copyright > +(C) 2021 Intel Corporation. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent ## > + > +[Defines] > + PLATFORM_NAME = $(RP_PKG) > + PLATFORM_GUID = D7EAF54D-C9B9-4075-89F0-71943DBCFA61 > + PLATFORM_VERSION = 0.1 > + DSC_SPECIFICATION = 0x00010005 > + OUTPUT_DIRECTORY = Build/$(RP_PKG) > + SUPPORTED_ARCHITECTURES = IA32|X64 > + BUILD_TARGETS = DEBUG|RELEASE > + PLATFORM_SI_PACKAGE = ClientOneSiliconPkg > + DEFINE PLATFORM_SI_BIN_PACKAGE = WhitleySiliconBinPkg > + PEI_ARCH = IA32 > + DXE_ARCH = X64 > + > +!if $(CPUTARGET) == "CPX" > + DEFINE FSP_BIN_PKG = CedarIslandFspBinPkg > + DEFINE IIO_INSTANCE = Skx > +!elseif $(CPUTARGET) == "ICX" > + DEFINE FSP_BIN_PKG = WhitleyFspBinPkg > + DEFINE IIO_INSTANCE = Icx > +!else > + DEFINE IIO_INSTANCE = UnknownCpu > +!endif > + > + # > + # Platform On/Off features are defined here # !include > + $(RP_PKG)/PlatformPkgConfig.dsc > + > +[Components.X64] > + $(RP_PKG)/WilsonCityRvp/AmlOffsets/AmlOffsets.inf > + > +!include $(RP_PKG)/Include/Dsc/BuildOptions.dsc > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets/AmlOffs > ets.inf > b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets/AmlOffs > ets.inf > new file mode 100644 > index 0000000000..8945f372e3 > --- /dev/null > +++ > b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets/AmlOff > +++ sets.inf > @@ -0,0 +1,26 @@ > +## @file > +# Generate AML offset table EPRPPlatform10nm.offset.h via edk2 build # > +# @copyright # Copyright (C) 2022 Intel Corporation. > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent ## > + > +[Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = AmlOffsets > + FILE_GUID = d7641589-753a-44c5-91c2-bd09686205c6 > + MODULE_TYPE = USER_DEFINED > + VERSION_STRING = 1.0 > + > +[Sources] > + > +WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Dsdt/EPRPPlatform10nm > .asl > + > +[Packages] > + MdePkg/MdePkg.dec > + WhitleySiliconPkg/SiliconPkg.dec > + > +[BuildOptions] > + # add -vr and -so to generate offset.h > + *_*_*_ASL_FLAGS = -oi -vr -so > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_board.py > b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_board.py > index a0c31e4558..5f625f5f92 100644 > --- a/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_board.py > +++ b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_board.py > @@ -23,6 +23,7 @@ def pre_build_ex(config, functions): > :returns: nothing > """ > print("pre_build_ex") > + > config["BUILD_DIR_PATH"] = os.path.join(config["WORKSPACE"], > 'Build', > > config["PLATFORM_BOARD_PACKAGE"], @@ -53,6 > +54,68 @@ def pre_build_ex(config, functions): > > if config.get("API_MODE_FSP_WRAPPER_BUILD", "FALSE") == "TRUE": > raise ValueError("FSP API Mode is currently unsupported on Ice Lake > Xeon Scalable") > + > + # Build the ACPI AML offset table *.offset.h > + print("Info: re-generating PlatformOffset header files") > + > + execute_script = functions.get("execute_script") > + > + command = ["build", "-D", "MAX_SOCKET=" + config["MAX_SOCKET"]] > + > + if config["EXT_BUILD_FLAGS"] and config["EXT_BUILD_FLAGS"] != "": > + ext_build_flags = config["EXT_BUILD_FLAGS"].split(" ") > + ext_build_flags = [x.strip() for x in ext_build_flags] > + ext_build_flags = [x for x in ext_build_flags if x != ""] > + command.extend(ext_build_flags) > + > + aml_offsets_split = > os.path.split(os.path.normpath(config["AML_OFFSETS_PATH"])) > + command.append("-p") > + command.append(os.path.normpath(config["AML_OFFSETS_PATH"]) + > '.dsc') > + command.append("-m") > + command.append(os.path.join(aml_offsets_split[0], > aml_offsets_split[1], aml_offsets_split[1] + '.inf')) > + command.append("-y") > + command.append(os.path.join(config["WORKSPACE"], > "PreBuildReport.txt")) > + command.append("--log=" + os.path.join(config["WORKSPACE"], > + "PreBuild.log")) > + > + _, _, _, code = execute_script(command, config) > + if code != 0: > + print(" ".join(command)) > + print("Error re-generating PlatformOffset header files") > + sys.exit(1) > + > + # Build AmlGenOffset command to consume the *.offset.h and produce > AmlOffsetTable.c for StaticSkuDataDxe use. > + > + # Get destination path and filename from config > + relative_file_path = > os.path.normpath(config["STRIPPED_AML_OFFSETS_FILE_PATH"]) # get > path relative to Platform/Intel > + out_file_path = os.path.join(config["WORKSPACE_PLATFORM"], > relative_file_path) # full path to output file > + out_file_dir = os.path.dirname(out_file_path) > # > remove filename > + > + out_file_root_ext = os.path.splitext(os.path.basename(out_file_path)) > # root and extension of output file > + > + # Get relative path for the generated offset.h file > + relative_dsdt_file_path = > os.path.normpath(config["DSDT_TABLE_FILE_PATH"]) # path relative to > Platform/Intel > + dsdt_file_root_ext = > os.path.splitext(os.path.basename(relative_dsdt_file_path)) # root and > extension of generated offset.h file > + > + # Generate output directory if it doesn't exist > + if not os.path.exists(out_file_dir): > + os.mkdir(out_file_dir) > + > + command = ["python", > + os.path.join(config["MIN_PACKAGE_TOOLS"], "AmlGenOffset", > "AmlGenOffset.py"), > + "-d", "--aml_filter", config["AML_FILTER"], > + "-o", out_file_path, > + os.path.join(config["BUILD_X64"], aml_offsets_split[0], > + aml_offsets_split[1], aml_offsets_split[1], "OUTPUT", > + os.path.dirname(relative_dsdt_file_path), dsdt_file_root_ext[0] + > + ".offset.h")] > + > + # execute the command > + _, _, _, code = execute_script(command, config) > + if code != 0: > + print(" ".join(command)) > + print("Error re-generating PlatformOffset header files") > + sys.exit(1) > + > + print("GenOffset done") > + > + > return None > > def _merge_files(files, ofile): > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_config.cfg > b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_config.cfg > index 1676c08813..4cc9496153 100644 > --- a/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_config.cfg > +++ b/Platform/Intel/WhitleyOpenBoardPkg/WilsonCityRvp/build_config.cfg > @@ -34,3 +34,18 @@ FSP_BINARY_BUILD = FALSE FSP_TEST_RELEASE = > FALSE SECURE_BOOT_ENABLE = FALSE BIOS_INFO_GUID = 4A4CA1C6-871C- > 45BB-8801-6910A7AA5807 > + > +# > +# AML offset table generation configuration options # All paths should > +use / and be relative to edk2-platforms/Platform/Intel # > +# AML_FILTER - AML filter is used to strip out unused > AML offset > data > +# AML_OFFSETS_PATH - Path to INF file that builds AML offsets > C > source file > +# The directory name, DSC file name, INF file name, and BASE_NAME must > match identically > +# DSDT_TABLE_FILE_PATH - Path to DSDT ASL file for the board > +# STRIPPED_AML_OFFSETS_FILE_PATH - Target AML offset data file > +consumed by UBA driver # AML_FILTER = \"PSYS\" .\.DRVT\" > +.\.FIX[0-9,A-Z] BBI[0] BBU[0] CRCM BAR0 .\.CCT[0-9A-Z]\" > +.\.CFH[0-9A-Z]\" .\.FXCD\" .\.FXST\" .\.FXIN\" .\.FXOU\" .\.FXBS\" > +.\.FXFH\" .\.CENA\" .\.DRVT\" .\.CFIS\" {NULL }; AML_OFFSETS_PATH = > +WhitleyOpenBoardPkg/WilsonCityRvp/AmlOffsets > +DSDT_TABLE_FILE_PATH = > +WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/Dsdt/EPRPPlatform10nm > .asl > +STRIPPED_AML_OFFSETS_FILE_PATH = > +WhitleyOpenBoardPkg/Uba/UbaMain/StaticSkuDataDxe/AmlOffsetTable.c > -- > 2.27.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#86473): https://edk2.groups.io/g/devel/message/86473 Mute This Topic: https://groups.io/mt/88979449/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-