Hi Michael, Comments below. On 9/13/2019 2:41 PM, Kubacki, Michael A wrote: > This change makes the following updates: > 1. Add SimicsOpenBoardPkg details. > 2. Update Python instructions to Python 3.x and mention > Python 2.x deprecation. > 3. Add Linux build environment set up instructions. > 4. Update supported compiler and tool versions to newer versions tested. > * Ubuntu build: 16.04.5 LTS to 18.04.1 LTS > * iASL: 20160527 to 20190816 > * NASM: 2.11.08 to 2.12.02 > 5. Update ClevoOpenBoardPkg details. > 6. Add instructions to build packages (e.g. AdvancedFeaturePkg). > 6. Update Planned Activities and Ideas sections. > > Cc: Agyeman Prince <[email protected]> > Cc: Dandan Bi <[email protected]> > Cc: Sai Chaganty <[email protected]> > Cc: Chasel Chiu <[email protected]> > Cc: Liming Gao <[email protected]> > Cc: Nate DeSimone <[email protected]> > Cc: Michael D Kinney <[email protected]> > Cc: Ankit Sinha <[email protected]> > Cc: Wei David Y <[email protected]> > Signed-off-by: Michael Kubacki <[email protected]> > --- > Platform/Intel/Readme.md | 105 +++++++++++++------- > 1 file changed, 71 insertions(+), 34 deletions(-) > > diff --git a/Platform/Intel/Readme.md b/Platform/Intel/Readme.md > index 3caf362983..334c61e037 100644 > --- a/Platform/Intel/Readme.md > +++ b/Platform/Intel/Readme.md > @@ -56,6 +56,7 @@ A UEFI firmware implementation using MinPlatformPkg is > constructed using the fol > * The `ClevoOpenBoardPkg` contains board implementations for Clevo systems. > * The `KabylakeOpenBoardPkg` contains board implementations for Kaby Lake > systems. > * The `PurleyOpenBoardPkg` contains board implementations for Purley > systems. > +* The `SimicsOpenBoardPkg` contains board implementations for the Simics > hardware simulator. > * The `WhiskeylakeOpenBoardPkg` contains board implementations for Whiskey > Lake systems. > > ## Board Package Organization > @@ -83,10 +84,19 @@ return back to the minimum platform caller. > - Install into ```C:\ASL``` to match default tools_def.txt configuration. > * NASM assembler: Available from: http://www.nasm.us/ > - Install into ```C:\NASM``` to match default tools_def.txt configuration. > -* Python 2.7.6: Available from: > https://www.python.org/download/releases/2.7.6/ > - - Install into ```C:\Python27``` to match default tools_def.txt > configuration. > - - Add C:\Python27 to your path > - - Other versions of 2.7 may also work fine. > +* Python 3.7.3: Available from: > https://www.python.org/downloads/release/python-373/ > + - Other versions of Python 3.x should be compatible. > + - It is recommended to use the Python launcher to ensure the Python build > script is launched using Python 3. > + - E.g. "py -3.7 build_bios.py -l" > + > +## **Linux Build Instructions** > + > +### Pre-requisites > + > + * Set up a EDK II build environment for Linux following the instructions in > + [Using EDK II with Native > GCC](https://github.com/tianocore/tianocore.github.io/wiki/Using-EDK-II-with-Native-GCC). > + * Proceed to the [Common EDK II build instructions for > Linux](https://github.com/tianocore/tianocore.github.io/wiki/Common-instructions) > + to verify your basic EDK II build environment is set up properly. > > ### Download the required components > > @@ -106,11 +116,11 @@ return back to the minimum platform caller. > * FSP repository > * ``git clone https://github.com/IntelFsp/FSP.git`` > > -### Build > +### Board Builds > > **Building with the python script** > > -1. Open command window, go to the workspace directory, e.g. c:\Kabylake or > ~/Kabylake in the case of a linux OS > +1. Open command window, go to the workspace directory, e.g. c:\Edk2Workspace > or ~/Edk2Workspace in the case of a linux OS > 2. If using a linux OS > * Type "cd edk2" > * Type "source edksetup.sh" > @@ -146,11 +156,19 @@ return back to the minimum platform caller. > * Type "python build_bios.py -h" > > * Note > - * Python 2.7.16 and Python 3.7.3 compatible > - * Some dependency Python scripts might only support 2.x or 3.x, if that > happened use > - "py -2" or "py -3" to launch build_bios.py > - * This python build script has been tested on Windows 10 and Ubuntu > 16.04.5 LTS > - * See [cross-platform limitations](#Known-limitations) > + * The Python build scripts were compatible with Python 2.7.16. But Python > 2.x support is no longer maintained or recommended. > + > + * This python build script has been tested on Windows 10 and Ubuntu > 18.04.1 LTS. > + > + * Unless otherwise noted, all boards build with the following components > and versions: > + * Linux build: Ubuntu 18.04.1 LTS with GCC version 5.4.0 > + * Windows build: Windows 10 with the Microsoft Visual Studio 2015 > compiler > + * iASL version: 20190816 > + * NASM version: 2.12.02 > + > + * Unless otherwise noted all boards have been tested for boot to Windows > 10 x64 RS3. > + > + * See [known limitations](#Known-limitations) > > * Configuration Files > * The edk2-platforms\Platform\Intel\build.cfg file contains the default > settings used by build_bios.py > @@ -185,6 +203,7 @@ return back to the minimum platform caller. > | | | | build > settings, environment variables. > | | | |---build_board.py: Optional > board-specific pre-build, build > | | | and clean > post-build functions. > + | | | > | | |------PurleyOpenBoardPkg > | | | |------BoardMtOlympus > | | | |---build_config.cfg: > BoardMtOlympus specific > @@ -192,19 +211,26 @@ return back to the minimum platform caller. > | | | |---build_board.py: Optional > board-specific pre-build, > | | | build, > post-build and clean functions. > | | | > + | | |------SimicsOpenBoardPkg > + | | | |------BoardX58Ich10 > + | | | |---build_config.cfg: > BoardX58Ich10 specific > + | | | | build > settings, environment variables. > + | | | > | | |------WhiskeylakeOpenBoardPkg > | | | |------WhiskeylakeURvp > | | | |---build_config.cfg: > WhiskeylakeURvp specific build > | | | settings > environment variables. > + | | | > |------FSP > </pre> > > **Building with the batch scripts** > + > Only PurleyOpenBoardPkg still supports batch script build. Future board > packages must only use the Python build > infrastructure. > > For PurleyOpenBoardPkg > -1. Open command window, go to the workspace directory, e.g. c:\Purley. > +1. Open command window, go to the workspace directory, e.g. c:\Edk2Workspace. > 2. Type "cd > edk2-platforms\Platform\Intel\PurleyOpenBoardPkg\BoardMtOlympus". > 3. Type "GitEdk2MinMtOlympus.bat" to setup GIT environment. > 4. Type "bld" to build Purley Mt Olympus board UEFI firmware image, "bld > release" for release build, "bld clean" to > @@ -212,40 +238,51 @@ For PurleyOpenBoardPkg > "bld cache-consume" Consume a cache of binary files from the specified > directory, BINARY_CACHE_PATH is empty, > used "BinCache" as default path. > > -The validated version of iasl compiler that can build MinPurley is 20180629. > Older version may generate ACPI build > +The validated version of iASL compiler that can build MinPurley is 20180629. > Older version may generate ACPI build > errors. >
Please do not bury the list of supported hardware into the Known Limitations sections. I would recommend that we add a "supported boards" section... something similar to this: ### **Supported Hardware** *Intel | Machine Name | Supported Chipsets |BoardPkg to Use | | --------------------------------------|----------------------------------------|--------------------------| | RVP 3 | Sky Lake, Kaby Lake, Kaby Lake Refresh | KabyLakeOpenBoardPkg | | WHL-U RVP | Whiskey Lake |WhiskeyLakeOpenBoardPkg | | | Note: RVP = Reference and Validation Platform * System 76 * Galago Pro Laptop | Machine Name | Supported Chipsets |BoardPkg to Use | | --------------------------------------|----------------------------------------|--------------------------| | galp2 (Clevo N130BU) | Kaby Lake | ClevoOpenBoardPkg/N1xxWU | | galp3 & galp3-b (Clevo N1xxWU series) | Kaby Lake Refresh |ClevoOpenBoardPkg/N1xxWU | | | * Microsoft | Machine Name | Supported Chipsets |BoardPkg to Use | | --------------------------------------|----------------------------------------|--------------------------| | Mt. Olympus | Purley | PurleyOpenBoardPkg | | | > ### **Known limitations** > > **ClevoOpenBoardPkg** > 1. Currently, support is only being added for the N1xxWU series of boards. > -2. The Windows build was tested on Windows 10 with Microsoft Visual Studio > 2015 compiler. > -3. The Linux build was tested on Ubuntu 16.04.5 LTS with GCC version 5.4.0. > -4. The build was tested with NASM version 2.11.08. > -5. The firmware project has not been tested on an actual board, it *should > not* be expected to boot. > -6. The firmware project applies to all Clevo supported board configurations > but is only being tested on System 76 Galago > - Pro devices. > +2. The firmware project has not been tested on the System 76 Galago Pro 2 > and System 76 Galago Pro 3-B. > +3. The firmware project applies to all Clevo supported board configurations > but is only being tested on System 76 Galago > + Pro devices. > > **KabylakeOpenBoardPkg** > -1. This firmware project has only been tested on the Intel KabylakeRvp3 > board. > -2. This firmware project has only been tested booting to Microsoft Windows > 10 x64 with AHCI mode and Integrated Graphic > - Device. > -3. The Windows build was tested on Windows 10 with Microsoft Visual Studio > 2015. > -4. The Linux build was tested on Ubuntu 16.04.5 LTS with GCC version 5.4.0. > -5. The build was tested with NASM version 2.11.08. > +1. This firmware project has only been tested on the Intel Kaby Lake 3 RVP > board. > +2. This firmware project has only been tested for Microsoft Windows 10 x64 > boot with AHCI mode and Integrated Graphic > + Device. > > **PurleyOpenBoardPkg** > -1. This firmware project has only been tested on the Microsoft MtOlympus > board. > +1. This firmware project has only been tested on the Microsoft Mt. Olympus > board. > 2. This firmware project has only been tested booting to Microsoft Windows > Server 2016 with NVME on M.2 slot. > -3. This firmware project build has only been tested using the Microsoft > Visual Studio 2015 compiler. > +3. This firmware project does not build with the GCC compiler. > +4. This firmware project does not build with the Python build script > infrastructure. > + > +**SimicsOpenBoardPkg** > +1. This firmware project has only been tested with the Simics Quick Start > Package. > +2. This firmware project has only been tested booting to Microsoft Windows > 10 x64 and Ubuntu 17.10 with AHCI mode and > + Integrated Graphic Device. > > **WhiskeylakeOpenBoardPkg** > -1. This firmware project has only been tested on the Intel WhiskeylakeURvp > board. > +1. This firmware project has only been tested on the Intel Whiskey Lake U > DDR4 RVP board. > 2. This firmware project has only been tested booting to Microsoft Windows > 10 x64 with AHCI mode and Integrated Graphic > Device. > -3. The Windows build was tested on Windows 10 with Microsoft Visual Studio > 2015. > -4. The Linux build was tested on Ubuntu 16.04.5 LTS with GCC version 5.4.0. > -5. The build was tested with NASM version 2.11.08. > + > +### **Package Builds** > + > +In some cases, such as AdvancedFeaturePkg, a package may provide a set of > functionality that is included in other > +packages. To test the build of the whole package, the "build" command should > be used following the instructions below. > + > +1. Execute edksetup.bat (Windows) or edksetup.sh (Linux). > +2. Verify the "WORKSPACE" environment variable is set to the edk2 directory > in your workspace. > +3. Set the "PACKAGES_PATH" enviornment variable to include the > edk2-platforms/Platform/Intel and edk2-platforms/Silicon/Intel > + directories. > + * Windows example: set > PACKAGES_PATH=c:\Edk2Workspace\edk2-platforms\Platform\Intel;c:\Edk2Workspace\edk2-platforms\Silicon\Intel > +4. Build the package by specifying the package DSC as the platform build > target from the Platform/Intel or Silicon/Intel directory: > + "build -p AdvancedFeaturePkg/AdvancedFeaturePkg.dsc" > + > > ### **Firmware Image Flashing** > > @@ -259,14 +296,14 @@ that authenticates the initial firmware boot image such > as Boot Guard, it will f > that is not signed properly. > > ### **Planned Activities** > -* Replace the batch build scripts with cross-platform Python build scripts. > -* Publish a Minimum Platform specification to describe the architecture and > interfaces in more detail. > +* Expand Intel's open source platform code presence through new platform and > board support. > +* Expand advanced feature code and quality. > +* Support open source community continuous integration for Minimum Platform > compliant boards. > > ### **Ideas** > If you would like to help but are not sure where to start some areas > currently identified for improvement include: > * Adding board ports for more motherboards and systems > * Adding Clang support > - * Adding GCC support > > Please feel free to contact Michael Kubacki (michael.a.kubacki at > intel.com) and Isaac Oram (isaac.w.oram at intel.com) > if you would like to discuss contribution ideas. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#47234): https://edk2.groups.io/g/devel/message/47234 Mute This Topic: https://groups.io/mt/34132010/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
