public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Nate DeSimone" <nathaniel.l.desimone@intel.com>
To: "Oram, Isaac W" <isaac.w.oram@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Chiu, Chasel" <chasel.chiu@intel.com>,
	"KARPAGAVINAYAGAM, MANICKAVASAKAM" <manickavasakamk@ami.com>
Subject: Re: [edk2-devel][edk2-platforms][PATCH V1 1/1] WhitleyOpenBoardPkg/JunctionCity: Build ACPI content
Date: Wed, 27 Apr 2022 20:18:14 +0000	[thread overview]
Message-ID: <MW4PR11MB58214E836ADC2466CC867781CDFA9@MW4PR11MB5821.namprd11.prod.outlook.com> (raw)
In-Reply-To: <091b469e6753bd047462f3352966db368c73e724.1647040345.git.isaac.w.oram@intel.com>

Reviewed-By: Nate DeSimone <nathaniel.l.desimone@intel.com>

> -----Original Message-----
> From: Oram, Isaac W <isaac.w.oram@intel.com>
> Sent: Friday, March 11, 2022 3:31 PM
> To: devel@edk2.groups.io
> Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Chiu, Chasel
> <chasel.chiu@intel.com>; KARPAGAVINAYAGAM, MANICKAVASAKAM
> <manickavasakamk@ami.com>
> Subject: [edk2-devel][edk2-platforms][PATCH V1 1/1]
> WhitleyOpenBoardPkg/JunctionCity: Build ACPI content
> 
> Use source versions of AcpiTables, AcpiPlatform, and StaticSkuDataDxe.
> 
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Manickavasakam Karpagavinayagam <manickavasakamk@ami.com>
> Signed-off-by: Isaac Oram <isaac.w.oram@intel.com>
> ---
>  Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/PlatformPkg.fdf  |  3 +
>  Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_board.py   | 63
> ++++++++++++++++++++
>  Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_config.cfg | 15
> +++++
>  3 files changed, 81 insertions(+)
> 
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/PlatformPkg.fdf
> b/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/PlatformPkg.fdf
> index 0b919b5ea9..b72aa2b688 100644
> --- a/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/PlatformPkg.fdf
> +++ b/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/PlatformPkg.fdf
> @@ -601,6 +601,7 @@ SET
> gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize         = 0x01000000
>    # UBA DXE common and board specific components
>    #
>    !include WhitleyOpenBoardPkg/Uba/UbaDxeCommon.fdf
> +  INF $(RP_PKG)/Uba/UbaMain/StaticSkuDataDxe/StaticSkuDataDxe.inf
>    INF
> $(RP_PKG)/$(BOARD_NAME)/Uba/TypeJunctionCity/Dxe/UsbOcUpdateDxe
> /UsbOcUpdateDxe.inf
>    INF
> $(RP_PKG)/$(BOARD_NAME)/Uba/TypeJunctionCity/Dxe/IioCfgUpdateDxe/
> IioCfgUpdateDxe.inf
>    INF
> $(RP_PKG)/$(BOARD_NAME)/Uba/TypeJunctionCity/Dxe/SlotDataUpdateD
> xe/SlotDataUpdateDxe.inf
> @@ -682,6 +683,8 @@ SET
> gMinPlatformPkgTokenSpaceGuid.PcdFlashAreaSize         = 0x01000000
>    INF  BoardModulePkg/LegacySioDxe/LegacySioDxe.inf
>    INF  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
> 
> +  INF  RuleOverride = ACPITABLE
> + WhitleyOpenBoardPkg/Features/Acpi/AcpiTables/AcpiTables10nm.inf
> +  INF  WhitleyOpenBoardPkg/Features/Acpi/AcpiPlatform/AcpiPlatform.inf
>    INF  WhitleyOpenBoardPkg/Features/AcpiVtd/AcpiVtd.inf
>    INF  MinPlatformPkg/Acpi/AcpiSmm/AcpiSmm.inf
> 
> diff --git
> a/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_board.py
> b/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_board.py
> index 33698f9809..72d0c5089a 100644
> --- a/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_board.py
> +++ b/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_board.py
> @@ -25,6 +25,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"], @@ -55,6
> +56,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/JunctionCity/build_config.cfg
> b/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_config.cfg
> index 8744e9072c..3b66995128 100644
> --- a/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_config.cfg
> +++ b/Platform/Intel/WhitleyOpenBoardPkg/JunctionCity/build_config.cfg
> @@ -35,3 +35,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


  parent reply	other threads:[~2022-04-27 20:18 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-11 23:30 [edk2-devel][edk2-platforms][PATCH V1 1/1] WhitleyOpenBoardPkg/JunctionCity: Build ACPI content Oram, Isaac W
2022-03-14 20:27 ` manickavasakam karpagavinayagam
2022-03-15 19:22   ` manickavasakam karpagavinayagam
2022-03-16 19:30     ` Oram, Isaac W
2022-04-27 20:18 ` Nate DeSimone [this message]
2022-04-27 20:22   ` Oram, Isaac W

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=MW4PR11MB58214E836ADC2466CC867781CDFA9@MW4PR11MB5821.namprd11.prod.outlook.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