Thank you for your interest in the testing of this beta firmware. This firmware is provided to you as-is and is under the terms of the beta license agreement that is available in this repository.
Please note that the content available in this repository is a beta version of the EDKII-Platform (a component of a sample UEFI Host Firmware for Genoa openSIL POC), which means it is still in a development and testing phase. While we have done our best to ensure the stability of this set of firmware, it may still contain bugs, incomplete features, or other issues.
By using this beta firmware, you agree to the terms and conditions of the Beta Firmare license agreement.
The beta release of the EDKII-Platform is intended to integrate with the AMD openSIL Genoa Proof-Of-Concept (POC), which is available at https://github.com/openSIL/openSIL.
- All components of the EDKII Host FW stack, including this AMD EDKII CRB platform package are provided as sample code and are intended to be used in accordance with the Beta Firmware License provided in this repository.
- AMD openSIL - Genoa POC
- opensil-uefi-interface
- AGCL-R (AGESA Compatibility Layer - Reduced)
- EDKII-Platform Code (this repository)
-
Windows Cmd promt or Linux bash
-
Create a directory to be used as the workspace directory. "workspace" is used in the rest of the document to represent the path.
-
Clone EDKII Host FW Components
- opensil-uefi-interface
- Clone to 'workspace\AmdOpenSilPkg' directory.
- The opensil-uefi-interface includes the AMD openSIL - Genoa POC repository as a submodule.
- AGCL-R: AGCL-R (AGESA Compatibility Layer - Reduced)
- Platform: EDKII-Platform Code (this repository)
- Clone to 'workspace\Platform' directory.
- opensil-uefi-interface
-
Acquire EDK2 FW components
- edk2-stable202205
- Clone to 'workspace\edk2' directory.
- edk2-platforms
- Clone to 'workspace\edk2-platforms' directory.
- edk2-stable202205
-
Acquire BMC GOP EFI Driver.
- The Genoa-Onyx platform utilizes the AST 2600 BMC chip.
For UEFI video support on the Genoa-Onyx, the GOP EFI driver must be obtained and placed in:
CrbSupportPkg\BmcGopDxe\X64\uefi_2600.efi>
To include the above driver in a build, copy the following file: source:<workspace>\Platform\AmdCommonPkg\ToCopy\CrbSupportPkg\BmcGopDxe\BmcGopDxe.inf
destination:<workspace>\CrbSupportPkg\BmcGopDxe\BmcGopDxe.inf
- The Genoa-Onyx platform utilizes the AST 2600 BMC chip.
For UEFI video support on the Genoa-Onyx, the GOP EFI driver must be obtained and placed in:
-
Copy Windows: Source: Platform\PlatformTools\root_dbuild.cmd Destination: \dbuild.cmd
Linux: Source: Platform\PlatformTools\root_dbuild.sh Destination + executable set: \dbuild.sh
-
Properly install tools in Required Tools for Windows or Required Tools for Linux
-
Git
Download URL: https://git-scm.com/
Make sure any proxy requirements are set in the git config settings.
-
Microsoft Visual Studio 2019 (tested)
Make sure Visual Studio and the SDK are properly configured for your environment.
The build will ultimately execute edksetup.bat from edk2 open source which should be able to detect properly installed Visual Studio components and SDKs.
For inspiration on Visual Studio and SDK Environment Variables, please refer to:
edk2/Conf/tools_def.txt
Platform/PlatformTools/BuildTools-env.cmd
If you do not have a Visual Studio install which can be located by edksetup.bat, you will need to configure all the proper PREFIX variables required for the build.
- Microsoft SDK
Match chosen version of Microsoft Visual Studio.
-
Python 3.x (tested 3.7.4 & 3.9)
Download URL: https://www.python.org
Environment Variable: PYTHON_HOME
E.g.,
PYTHON_HOME = C:\Python39
-
Perl (tested 5.32.1.1)
Download URL: https://strawberryperl.com (tested)
Strawberry Perl might require separately installing XML::LibXML
cpan install XML::LibXML
Environment Variable: PERL_PATH E.g.,
PERL_PATH=C:\Strawberry\perl\bin
Alternatively, ActiveState perl is available if there is trouble installing Strawberry Perl.
-
NASM (tested 2.15.05)
Environment Variable: NASM_PREFIX
-
ASL compiler (tested 20200110)
Environment Variable: ASL_PREFIX
-
Ubuntu 20.04 LTS Tested in Windows Subsystem for Linux
-
Packages to install
build-essential
uuid-dev
python3
python3-pip
perl
libperl-dev
libxml-simple-perl
libxml-parser-perl
curl
ca-certificates
nasm
iasl
Once files and folders are copied, the workspace should look like this:
- workspace
- AGCL-R
- AmdOpenSilPkg
- opensil-uefi-interface
- OpenSIL
- Platform
- SilToUefi
- opensil-uefi-interface
- BuildTools
- CrbSupportPkg
- edk2
- edk2-platforms
- Platform
- ...
- readme.md
- dbuild.cmd
- dbuild.sh
-
Make sure your build environment is configured as referenced in Required Tools for Windows
-
From the workspace directory, run the dbuild.cmd script.
ex:
dbuild.cmd genoa-onyx
or 'dbuild genoa-onyx --edk2args="-b DEBUG"'By default (without options), the script will display a usage message and list all available CRBs to build.
-
To receive more verbose information for the first Level commands run:
dbuild --help
-
Commands can have additional options. Example:
dbuild genoa-onyx --help
-
If you are not configuring the proper PREFIX variables for Visual Studio, you will need to provide an edk2args override to supply the tagname. The build process will use this to configure the build output directory before the edk2 build commences
--edk2args="-t VS2019"
-
The final BIOS will be placed in \*.FD
-
Make sure your build environment is configured as referenced in Required Tools for Linux
-
From the workspace directory, run the dbuild.sh script.
ex:
./dbuild.sh genoa-onyx
By default (without options), the script will display a usage message and list all available CRBs to build.
-
To receive more verbose information for the first Level commands run:
./dbuild.sh --help
-
Commands can have additional options. Example:
./dbuild.sh genoa-onyx --help
-
The final BIOS will be placed in \*.FD
-
The EDKII build defaults to a "RELEASE" type build, which does not include serial debug output.
To build a "DEBUG" build, pass to dbuild
--edk2args="-b DEBUG"
.Make sure to surround the arguments passed via edk2args with double quotes.
In the Project.dsc file,
gEfiMdePkgTokenSpaceGuid.PcdFixedDebugPrintErrorLevel
can be modified to change the EDK2 debug output.
- Basic OS boot support on Onyx CRB Hardware