public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details
@ 2019-02-05  1:57 Michael Kubacki
  2019-02-05 17:17 ` Kinney, Michael D
  2019-02-05 17:34 ` Desimone, Nathaniel L
  0 siblings, 2 replies; 4+ messages in thread
From: Michael Kubacki @ 2019-02-05  1:57 UTC (permalink / raw)
  To: edk2-devel
  Cc: Michael D Kinney, Nate DeSimone, Ankit Sinha, Chasel Chiu,
	Isaac W Oram, Liming Gao

Adds details on the EDK II Minimum Platform design for Intel
platforms.

* Overview of Minimum Platform
* Board package purpose and conventions
* Stage boot concept and control
* Minimum Platform firmware solution stack overview
* Updates build instructions for all <xxx>OpenBoardPkgs
* Adds information for the ClevoOpenBoardPkg
* Adds planned activities and ideas for the future

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Ankit Sinha <ankit.sinha@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: Isaac W Oram <isaac.w.oram@intel.com>
Cc: Liming Gao <liming.gao@intel.com>

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
---
 ReadMe.md | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 file changed, 132 insertions(+), 32 deletions(-)

diff --git a/ReadMe.md b/ReadMe.md
index 9b873da2e3..72e332a476 100644
--- a/ReadMe.md
+++ b/ReadMe.md
@@ -1,8 +1,73 @@
-# **EDK II Minimized firmware for Intel(R) platforms**
+# **EDK II Minimum Platform Firmware for Intel(R) Platforms**
 
-## Features
-* The Minimized Kabylake provides the minimal feature of the Kabylake BIOS.
-* The Minimized Purley provides the minimal feature of the Purley BIOS.
+The Minimum Platform is a software architecture that guides uniform delivery of Intel platforms enabling firmware
+solutions for basic boot functionality with extensibility built-in.
+
+Package maintainers for the Minimum Platform projects are listed in Maintainers.txt.
+
+## Overview
+The key elements of the architecture are organized into a staged boot approach where each stage has requirements and
+functionality for specific use cases. The generic control flow through the boot process is implemented in the
+[`MinPlatformPkg`](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel/MinPlatformPkg).
+The generic nature of the tasks performed in MinPlatformPkg lends to reuse across all Intel platforms with no
+source modification. Details for any particular board are made accessible to the MinPlatformPkg through a well-defined
+statically linked board API. A complete platform solution then consists of the MinPlatformPkg and a compatible board
+package.
+
+## Board Naming Convention
+The board packages supported by Intel follow the naming convention \<xxx\>OpenBoardPkg where xxx refers to the
+encompassing platform name for a particular platform generation. For example, the [`KabylakeOpenBoardPkg`](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel/KabylakeOpenBoardPkg) contains the
+board code for Intel Kaby Lake reference systems. Intel uses the moniker "OpenBoardPkg" to indicate that this package
+is the open source board code. A closed source counterpart may exist which simply uses "BoardPkg". Both directly use
+the MinPlatformPkg from edk2-platforms.
+
+## Stage Selection
+Stage selection is controlled via the PCD `gMinPlatformPkgTokenSpaceGuid.PcdBootStage` in [`MinPlatformPkg.dec`](https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec).
+The stage should be configured in the board package DSC file to the appropriate value. For example, a board may disable
+all advanced features by setting this value to 4 instead of 6. This may be used to improve boot time for a particular
+use case. Decrementing the stage can also be used for debug since only the actions required for that stage objective
+should be executed. As an example, ACPI initialization is not required for a Stage 3 boot.
+
+The stages are defined as follows:
+
+| Stage  | Functional Objective         | Example Capabilities                                                                               |
+| -------|------------------------------|----------------------------------------------------------------------------------------------------|
+| I      | Minimal Debug                | Serial port output, source debug enabled, hardware debugger enabled                                |
+| II     | Memory Functional            | Basic hardware initialization necessary to reach memory initialization, permanent memory available |
+| III    | Boot to UI                   | Simple console input and output to a UI, UEFI shell                                                |
+| IV     | Boot to OS                   | Boot an operating system with the minimally required features                                      |
+| V      | Security Enable              | UEFI Secure Boot, TCG measured boot, DMA protections                                               |
+| VI     | Advanced Feature Enable      | Firmware update, power management, non-essential I/O                                               |
+
+## Minimum Platform Firmware Solution Stack
+A UEFI firmware implementation using MinPlatformPkg is constructed using the following pieces.
+
+|                                    |
+|------------------------------------|
+| [EDK II](https://github.com/tianocore/edk2)                                                                              |
+| [Intel(r) FSP](https://github.com/IntelFsp/FSP)                                                                            |
+| [Minimum Platform (`MinPlatformPkg`)](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel/MinPlatformPkg)                        |
+| [Board Support (\<xxx\>OpenBoardPkg)](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel)  |
+
+
+## Board Support
+* The `KabylakeOpenBoardPkg` contains board implementations for Kaby Lake systems.
+* The `PurleyOpenBoardPkg` contains board implementations for Purley systems.
+* The `ClevoOpenBoardPkg` contains board implementations for Clevo systems.
+
+## Board Package Organization
+The board package follows the standard EDK II package structure with the following additional elements and guidelines:
+* Only code usable across more than one board at the root level.
+* Board-specific code in a directory. The directory name should match that of the board supported.
+* Features not essential to achieve stage 5 or earlier boots are maintained in a Features folder at the appropriate
+  level in the package hierarchy.
+
+Shared resources in the package root directory can include interfaces described in header files, library instances,
+firmware modules, binaries, etc. The UEFI firmware implementation is built using the process described below from the
+board-specific directory.
+
+A board package must implement the board APIs defined in the MinPlatformPkg even if a "NULL" implementation is used to
+return back to the minimum platform caller.
 
 ## **Windows Build Instructions**
 
@@ -20,52 +85,87 @@
   - Add C:\Python27 to your path
   - Other versions of 2.7 may also work fine.
 
-### Download the required component
+### Download the required components
 
-1. Create a new directory for an EDK II WORKSPACE.
+1. Create a new directory for the EDK II WORKSPACE.
 
 2. Download below repository to this WORKSPACE:
 
-edk2 repository
-	``git clone https://github.com/tianocore/edk2.git``
+* edk2 repository
+  * ``git clone https://github.com/tianocore/edk2.git``
 
-edk2-platforms repository
-	``git clone https://github.com/tianocore/edk2-platforms.git -b devel-MinPlatform``
+* edk2-platforms repository
+  * ``git clone https://github.com/tianocore/edk2-platforms.git -b devel-MinPlatform``
 
-edk2-non-osi repository
-	``git clone https://github.com/tianocore/edk2-non-osi.git -b devel-MinPlatform``
+* edk2-non-osi repository
+  * ``git clone https://github.com/tianocore/edk2-non-osi.git -b devel-MinPlatform``
 
-FSP repository
-	``git clone https://github.com/IntelFsp/FSP.git -b Kabylake``
+* FSP repository
+  * ``git clone https://github.com/IntelFsp/FSP.git -b Kabylake``
 
 ### Build
 
-For MinKabylake
-1. Open command window, goto the workspace dir, e.g. c:\Kabylake.
+For KabylakeOpenBoardPkg
+1. Open command window, go to the workspace directory, e.g. c:\Kabylake.
 2. Type "cd edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3".
 3. Type "GitEdk2MinKabylake.bat" to setup GIT environment.
-4. Type "prep" and make prebuild finish for debug build, "prep r" for rlease build.
-5. Type "bld" to build kabylake BIOS image.
+4. Type "prep" and make prebuild finish for debug build, "prep r" for release build.
+5. Type "bld" to build Kaby Lake reference platform UEFI firmware image.
 
-For MinPurley
-1. Open command window, goto the workspace dir, e.g. c:\Purley.
+For PurleyOpenBoardPkg
+1. Open command window, go to the workspace directory, e.g. c:\Purley.
 2. Type "cd edk2-platforms\Platform\Intel\PurleyOpenBoardPkg\BoardMtOlympus".
 3. Type "GitEdk2MinMtOlympus.bat" to setup GIT environment.
-4. Type "bld" to build Purley BIOS image, "bld release" for release build, "bld clean" to remove intermediate files.
+4. Type "bld" to build Purley Mt Olympus board UEFI firmware image, "bld release" for release build, "bld clean" to
+   remove intermediate files.
 
-The user can run FITC tool to build full image for flash (BIOS + ME + DESC). The user can also burn the BIOS image to highest part of flash region directly.
+The validated version of iasl compiler that can build MinPurley is 20180629. Older version may generate ACPI build
+errors.
 
-The validated version of iasl compiler that can build MinPurley is 20180629. Older version may generate ACPI build errors. 
+For ClevoOpenBoardPkg
+1. Open command window, go to the workspace directory, e.g. c:\Clevo.
+2. Type "cd edk2-platforms\Platform\Intel\ClevoOpenBoardPkg\N1xxWU".
+3. Type "GitEdk2Clevo.bat" to setup GIT environment.
+4. Type "bld" to build Clevo UEFI firmware image, "bld release" for release build, "bld clean" to remove intermediate
+files.
 
-### Known limitations
+Users with access to the Intel proprietary FITC tool and ME ingredients can build full images for flash  (BIOS + ME +
+DESC).
 
-For MinKabylake
-1. This firmware project has only been validated on the Intel KabylakeRVP3 board.
-2. This firmware project has only been validated booting to Microsoft Windows 10 x64 with AHCI mode and Integrated Graphic Device.
-3. This firmware project has only been validated using the Microsoft Visual Studio 2015 compiler.
+Users can also flash the UEFI firmware image to the highest area of the flash region directly.
 
-For MinPurley
-1. This firmware project has only been validated on the Microsoft MtOlympus board.
-2. This firmware project has only been validated booting to Microsoft Windows Server 2016 with NVME on M.2 slot.
-3. This firmware project has only been validated using the Microsoft Visual Studio 2015 compiler.
+### **Known limitations**
 
+* All firmware projects can only build on Windows with the validated configuration below.
+  * Cross-platform build support is work-in-progress.
+
+**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. This firmware project build has only been tested using the Microsoft Visual Studio 2015 compiler.
+
+**PurleyOpenBoardPkg**
+1. This firmware project has only been tested on the Microsoft MtOlympus 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.
+
+**ClevoOpenBoardPkg**
+1. Currently, support is only being added for the N1xxWU series of boards.
+2. The firmware project build has only been tested using the Microsoft Visual Studio 2015 compiler.
+3. The firmware project has not been tested on an actual board, it *should not* be expected to boot.
+4. The firmware project applies to all Clevo supported board configurations but is only being tested on System 76 Galago
+  Pro devices.
+
+### **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.
+
+### **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.
-- 
2.16.2.windows.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details
  2019-02-05  1:57 [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details Michael Kubacki
@ 2019-02-05 17:17 ` Kinney, Michael D
  2019-02-05 17:34 ` Desimone, Nathaniel L
  1 sibling, 0 replies; 4+ messages in thread
From: Kinney, Michael D @ 2019-02-05 17:17 UTC (permalink / raw)
  To: Kubacki, Michael A, edk2-devel@lists.01.org
  Cc: Desimone, Nathaniel L, Sinha, Ankit, Chiu, Chasel, Oram, Isaac W,
	Gao, Liming

Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>

> -----Original Message-----
> From: Kubacki, Michael A
> Sent: Monday, February 4, 2019 5:57 PM
> To: edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>;
> Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>;
> Sinha, Ankit <ankit.sinha@intel.com>; Chiu, Chasel
> <chasel.chiu@intel.com>; Oram, Isaac W
> <isaac.w.oram@intel.com>; Gao, Liming
> <liming.gao@intel.com>
> Subject: [edk2-platforms/devel-MinPlatform][PATCH v3
> 1/1] ReadMe.md: Update Minimum Platform details
> 
> Adds details on the EDK II Minimum Platform design for
> Intel
> platforms.
> 
> * Overview of Minimum Platform
> * Board package purpose and conventions
> * Stage boot concept and control
> * Minimum Platform firmware solution stack overview
> * Updates build instructions for all <xxx>OpenBoardPkgs
> * Adds information for the ClevoOpenBoardPkg
> * Adds planned activities and ideas for the future
> 
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Cc: Ankit Sinha <ankit.sinha@intel.com>
> Cc: Chasel Chiu <chasel.chiu@intel.com>
> Cc: Isaac W Oram <isaac.w.oram@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Michael Kubacki
> <michael.a.kubacki@intel.com>
> ---
>  ReadMe.md | 164
> ++++++++++++++++++++++++++++++++++++++++++++++++++-----
> -------
>  1 file changed, 132 insertions(+), 32 deletions(-)
> 
> diff --git a/ReadMe.md b/ReadMe.md
> index 9b873da2e3..72e332a476 100644
> --- a/ReadMe.md
> +++ b/ReadMe.md
> @@ -1,8 +1,73 @@
> -# **EDK II Minimized firmware for Intel(R) platforms**
> +# **EDK II Minimum Platform Firmware for Intel(R)
> Platforms**
> 
> -## Features
> -* The Minimized Kabylake provides the minimal feature
> of the Kabylake BIOS.
> -* The Minimized Purley provides the minimal feature of
> the Purley BIOS.
> +The Minimum Platform is a software architecture that
> guides uniform delivery of Intel platforms enabling
> firmware
> +solutions for basic boot functionality with
> extensibility built-in.
> +
> +Package maintainers for the Minimum Platform projects
> are listed in Maintainers.txt.
> +
> +## Overview
> +The key elements of the architecture are organized
> into a staged boot approach where each stage has
> requirements and
> +functionality for specific use cases. The generic
> control flow through the boot process is implemented in
> the
> +[`MinPlatformPkg`](https://github.com/tianocore/edk2-
> platforms/tree/devel-
> MinPlatform/Platform/Intel/MinPlatformPkg).
> +The generic nature of the tasks performed in
> MinPlatformPkg lends to reuse across all Intel
> platforms with no
> +source modification. Details for any particular board
> are made accessible to the MinPlatformPkg through a
> well-defined
> +statically linked board API. A complete platform
> solution then consists of the MinPlatformPkg and a
> compatible board
> +package.
> +
> +## Board Naming Convention
> +The board packages supported by Intel follow the
> naming convention \<xxx\>OpenBoardPkg where xxx refers
> to the
> +encompassing platform name for a particular platform
> generation. For example, the
> [`KabylakeOpenBoardPkg`](https://github.com/tianocore/e
> dk2-platforms/tree/devel-
> MinPlatform/Platform/Intel/KabylakeOpenBoardPkg)
> contains the
> +board code for Intel Kaby Lake reference systems.
> Intel uses the moniker "OpenBoardPkg" to indicate that
> this package
> +is the open source board code. A closed source
> counterpart may exist which simply uses "BoardPkg".
> Both directly use
> +the MinPlatformPkg from edk2-platforms.
> +
> +## Stage Selection
> +Stage selection is controlled via the PCD
> `gMinPlatformPkgTokenSpaceGuid.PcdBootStage` in
> [`MinPlatformPkg.dec`](https://github.com/tianocore/edk
> 2-platforms/blob/devel-
> MinPlatform/Platform/Intel/MinPlatformPkg/MinPlatformPk
> g.dec).
> +The stage should be configured in the board package
> DSC file to the appropriate value. For example, a board
> may disable
> +all advanced features by setting this value to 4
> instead of 6. This may be used to improve boot time for
> a particular
> +use case. Decrementing the stage can also be used for
> debug since only the actions required for that stage
> objective
> +should be executed. As an example, ACPI initialization
> is not required for a Stage 3 boot.
> +
> +The stages are defined as follows:
> +
> +| Stage  | Functional Objective         | Example
> Capabilities
> |
> +| -------|------------------------------|-------------
> -------------------------------------------------------
> --------------------------------|
> +| I      | Minimal Debug                | Serial port
> output, source debug enabled, hardware debugger enabled
> |
> +| II     | Memory Functional            | Basic
> hardware initialization necessary to reach memory
> initialization, permanent memory available |
> +| III    | Boot to UI                   | Simple
> console input and output to a UI, UEFI shell
> |
> +| IV     | Boot to OS                   | Boot an
> operating system with the minimally required features
> |
> +| V      | Security Enable              | UEFI Secure
> Boot, TCG measured boot, DMA protections
> |
> +| VI     | Advanced Feature Enable      | Firmware
> update, power management, non-essential I/O
> |
> +
> +## Minimum Platform Firmware Solution Stack
> +A UEFI firmware implementation using MinPlatformPkg is
> constructed using the following pieces.
> +
> +|                                    |
> +|------------------------------------|
> +| [EDK II](https://github.com/tianocore/edk2)
> |
> +| [Intel(r) FSP](https://github.com/IntelFsp/FSP)
> |
> +| [Minimum Platform
> (`MinPlatformPkg`)](https://github.com/tianocore/edk2-
> platforms/tree/devel-
> MinPlatform/Platform/Intel/MinPlatformPkg)
> |
> +| [Board Support
> (\<xxx\>OpenBoardPkg)](https://github.com/tianocore/edk
> 2-platforms/tree/devel-MinPlatform/Platform/Intel)  |
> +
> +
> +## Board Support
> +* The `KabylakeOpenBoardPkg` contains board
> implementations for Kaby Lake systems.
> +* The `PurleyOpenBoardPkg` contains board
> implementations for Purley systems.
> +* The `ClevoOpenBoardPkg` contains board
> implementations for Clevo systems.
> +
> +## Board Package Organization
> +The board package follows the standard EDK II package
> structure with the following additional elements and
> guidelines:
> +* Only code usable across more than one board at the
> root level.
> +* Board-specific code in a directory. The directory
> name should match that of the board supported.
> +* Features not essential to achieve stage 5 or earlier
> boots are maintained in a Features folder at the
> appropriate
> +  level in the package hierarchy.
> +
> +Shared resources in the package root directory can
> include interfaces described in header files, library
> instances,
> +firmware modules, binaries, etc. The UEFI firmware
> implementation is built using the process described
> below from the
> +board-specific directory.
> +
> +A board package must implement the board APIs defined
> in the MinPlatformPkg even if a "NULL" implementation
> is used to
> +return back to the minimum platform caller.
> 
>  ## **Windows Build Instructions**
> 
> @@ -20,52 +85,87 @@
>    - Add C:\Python27 to your path
>    - Other versions of 2.7 may also work fine.
> 
> -### Download the required component
> +### Download the required components
> 
> -1. Create a new directory for an EDK II WORKSPACE.
> +1. Create a new directory for the EDK II WORKSPACE.
> 
>  2. Download below repository to this WORKSPACE:
> 
> -edk2 repository
> -	``git clone https://github.com/tianocore/edk2.git``
> +* edk2 repository
> +  * ``git clone
> https://github.com/tianocore/edk2.git``
> 
> -edk2-platforms repository
> -	``git clone https://github.com/tianocore/edk2-
> platforms.git -b devel-MinPlatform``
> +* edk2-platforms repository
> +  * ``git clone https://github.com/tianocore/edk2-
> platforms.git -b devel-MinPlatform``
> 
> -edk2-non-osi repository
> -	``git clone https://github.com/tianocore/edk2-non-
> osi.git -b devel-MinPlatform``
> +* edk2-non-osi repository
> +  * ``git clone https://github.com/tianocore/edk2-non-
> osi.git -b devel-MinPlatform``
> 
> -FSP repository
> -	``git clone https://github.com/IntelFsp/FSP.git -b
> Kabylake``
> +* FSP repository
> +  * ``git clone https://github.com/IntelFsp/FSP.git -b
> Kabylake``
> 
>  ### Build
> 
> -For MinKabylake
> -1. Open command window, goto the workspace dir, e.g.
> c:\Kabylake.
> +For KabylakeOpenBoardPkg
> +1. Open command window, go to the workspace directory,
> e.g. c:\Kabylake.
>  2. Type "cd edk2-
> platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeR
> vp3".
>  3. Type "GitEdk2MinKabylake.bat" to setup GIT
> environment.
> -4. Type "prep" and make prebuild finish for debug
> build, "prep r" for rlease build.
> -5. Type "bld" to build kabylake BIOS image.
> +4. Type "prep" and make prebuild finish for debug
> build, "prep r" for release build.
> +5. Type "bld" to build Kaby Lake reference platform
> UEFI firmware image.
> 
> -For MinPurley
> -1. Open command window, goto the workspace dir, e.g.
> c:\Purley.
> +For PurleyOpenBoardPkg
> +1. Open command window, go to the workspace directory,
> e.g. c:\Purley.
>  2. Type "cd edk2-
> platforms\Platform\Intel\PurleyOpenBoardPkg\BoardMtOlym
> pus".
>  3. Type "GitEdk2MinMtOlympus.bat" to setup GIT
> environment.
> -4. Type "bld" to build Purley BIOS image, "bld
> release" for release build, "bld clean" to remove
> intermediate files.
> +4. Type "bld" to build Purley Mt Olympus board UEFI
> firmware image, "bld release" for release build, "bld
> clean" to
> +   remove intermediate files.
> 
> -The user can run FITC tool to build full image for
> flash (BIOS + ME + DESC). The user can also burn the
> BIOS image to highest part of flash region directly.
> +The validated version of iasl compiler that can build
> MinPurley is 20180629. Older version may generate ACPI
> build
> +errors.
> 
> -The validated version of iasl compiler that can build
> MinPurley is 20180629. Older version may generate ACPI
> build errors.
> +For ClevoOpenBoardPkg
> +1. Open command window, go to the workspace directory,
> e.g. c:\Clevo.
> +2. Type "cd edk2-
> platforms\Platform\Intel\ClevoOpenBoardPkg\N1xxWU".
> +3. Type "GitEdk2Clevo.bat" to setup GIT environment.
> +4. Type "bld" to build Clevo UEFI firmware image, "bld
> release" for release build, "bld clean" to remove
> intermediate
> +files.
> 
> -### Known limitations
> +Users with access to the Intel proprietary FITC tool
> and ME ingredients can build full images for flash
> (BIOS + ME +
> +DESC).
> 
> -For MinKabylake
> -1. This firmware project has only been validated on
> the Intel KabylakeRVP3 board.
> -2. This firmware project has only been validated
> booting to Microsoft Windows 10 x64 with AHCI mode and
> Integrated Graphic Device.
> -3. This firmware project has only been validated using
> the Microsoft Visual Studio 2015 compiler.
> +Users can also flash the UEFI firmware image to the
> highest area of the flash region directly.
> 
> -For MinPurley
> -1. This firmware project has only been validated on
> the Microsoft MtOlympus board.
> -2. This firmware project has only been validated
> booting to Microsoft Windows Server 2016 with NVME on
> M.2 slot.
> -3. This firmware project has only been validated using
> the Microsoft Visual Studio 2015 compiler.
> +### **Known limitations**
> 
> +* All firmware projects can only build on Windows with
> the validated configuration below.
> +  * Cross-platform build support is work-in-progress.
> +
> +**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. This firmware project build has only been tested
> using the Microsoft Visual Studio 2015 compiler.
> +
> +**PurleyOpenBoardPkg**
> +1. This firmware project has only been tested on the
> Microsoft MtOlympus 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.
> +
> +**ClevoOpenBoardPkg**
> +1. Currently, support is only being added for the
> N1xxWU series of boards.
> +2. The firmware project build has only been tested
> using the Microsoft Visual Studio 2015 compiler.
> +3. The firmware project has not been tested on an
> actual board, it *should not* be expected to boot.
> +4. The firmware project applies to all Clevo supported
> board configurations but is only being tested on System
> 76 Galago
> +  Pro devices.
> +
> +### **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.
> +
> +### **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.
> --
> 2.16.2.windows.1



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details
  2019-02-05  1:57 [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details Michael Kubacki
  2019-02-05 17:17 ` Kinney, Michael D
@ 2019-02-05 17:34 ` Desimone, Nathaniel L
  2019-02-12  1:37   ` Chiu, Chasel
  1 sibling, 1 reply; 4+ messages in thread
From: Desimone, Nathaniel L @ 2019-02-05 17:34 UTC (permalink / raw)
  To: Kubacki, Michael A, edk2-devel@lists.01.org
  Cc: Kinney, Michael D, Sinha, Ankit, Chiu, Chasel, Oram, Isaac W,
	Gao, Liming

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

On 2/4/19, 5:57 PM, "Kubacki, Michael A" <michael.a.kubacki@intel.com> wrote:

    Adds details on the EDK II Minimum Platform design for Intel
    platforms.
    
    * Overview of Minimum Platform
    * Board package purpose and conventions
    * Stage boot concept and control
    * Minimum Platform firmware solution stack overview
    * Updates build instructions for all <xxx>OpenBoardPkgs
    * Adds information for the ClevoOpenBoardPkg
    * Adds planned activities and ideas for the future
    
    Cc: Michael D Kinney <michael.d.kinney@intel.com>
    Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
    Cc: Ankit Sinha <ankit.sinha@intel.com>
    Cc: Chasel Chiu <chasel.chiu@intel.com>
    Cc: Isaac W Oram <isaac.w.oram@intel.com>
    Cc: Liming Gao <liming.gao@intel.com>
    
    Contributed-under: TianoCore Contribution Agreement 1.0
    Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
    ---
     ReadMe.md | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++------------
     1 file changed, 132 insertions(+), 32 deletions(-)
    
    diff --git a/ReadMe.md b/ReadMe.md
    index 9b873da2e3..72e332a476 100644
    --- a/ReadMe.md
    +++ b/ReadMe.md
    @@ -1,8 +1,73 @@
    -# **EDK II Minimized firmware for Intel(R) platforms**
    +# **EDK II Minimum Platform Firmware for Intel(R) Platforms**
     
    -## Features
    -* The Minimized Kabylake provides the minimal feature of the Kabylake BIOS.
    -* The Minimized Purley provides the minimal feature of the Purley BIOS.
    +The Minimum Platform is a software architecture that guides uniform delivery of Intel platforms enabling firmware
    +solutions for basic boot functionality with extensibility built-in.
    +
    +Package maintainers for the Minimum Platform projects are listed in Maintainers.txt.
    +
    +## Overview
    +The key elements of the architecture are organized into a staged boot approach where each stage has requirements and
    +functionality for specific use cases. The generic control flow through the boot process is implemented in the
    +[`MinPlatformPkg`](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel/MinPlatformPkg).
    +The generic nature of the tasks performed in MinPlatformPkg lends to reuse across all Intel platforms with no
    +source modification. Details for any particular board are made accessible to the MinPlatformPkg through a well-defined
    +statically linked board API. A complete platform solution then consists of the MinPlatformPkg and a compatible board
    +package.
    +
    +## Board Naming Convention
    +The board packages supported by Intel follow the naming convention \<xxx\>OpenBoardPkg where xxx refers to the
    +encompassing platform name for a particular platform generation. For example, the [`KabylakeOpenBoardPkg`](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel/KabylakeOpenBoardPkg) contains the
    +board code for Intel Kaby Lake reference systems. Intel uses the moniker "OpenBoardPkg" to indicate that this package
    +is the open source board code. A closed source counterpart may exist which simply uses "BoardPkg". Both directly use
    +the MinPlatformPkg from edk2-platforms.
    +
    +## Stage Selection
    +Stage selection is controlled via the PCD `gMinPlatformPkgTokenSpaceGuid.PcdBootStage` in [`MinPlatformPkg.dec`](https://github.com/tianocore/edk2-platforms/blob/devel-MinPlatform/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec).
    +The stage should be configured in the board package DSC file to the appropriate value. For example, a board may disable
    +all advanced features by setting this value to 4 instead of 6. This may be used to improve boot time for a particular
    +use case. Decrementing the stage can also be used for debug since only the actions required for that stage objective
    +should be executed. As an example, ACPI initialization is not required for a Stage 3 boot.
    +
    +The stages are defined as follows:
    +
    +| Stage  | Functional Objective         | Example Capabilities                                                                               |
    +| -------|------------------------------|----------------------------------------------------------------------------------------------------|
    +| I      | Minimal Debug                | Serial port output, source debug enabled, hardware debugger enabled                                |
    +| II     | Memory Functional            | Basic hardware initialization necessary to reach memory initialization, permanent memory available |
    +| III    | Boot to UI                   | Simple console input and output to a UI, UEFI shell                                                |
    +| IV     | Boot to OS                   | Boot an operating system with the minimally required features                                      |
    +| V      | Security Enable              | UEFI Secure Boot, TCG measured boot, DMA protections                                               |
    +| VI     | Advanced Feature Enable      | Firmware update, power management, non-essential I/O                                               |
    +
    +## Minimum Platform Firmware Solution Stack
    +A UEFI firmware implementation using MinPlatformPkg is constructed using the following pieces.
    +
    +|                                    |
    +|------------------------------------|
    +| [EDK II](https://github.com/tianocore/edk2)                                                                              |
    +| [Intel(r) FSP](https://github.com/IntelFsp/FSP)                                                                            |
    +| [Minimum Platform (`MinPlatformPkg`)](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel/MinPlatformPkg)                        |
    +| [Board Support (\<xxx\>OpenBoardPkg)](https://github.com/tianocore/edk2-platforms/tree/devel-MinPlatform/Platform/Intel)  |
    +
    +
    +## Board Support
    +* The `KabylakeOpenBoardPkg` contains board implementations for Kaby Lake systems.
    +* The `PurleyOpenBoardPkg` contains board implementations for Purley systems.
    +* The `ClevoOpenBoardPkg` contains board implementations for Clevo systems.
    +
    +## Board Package Organization
    +The board package follows the standard EDK II package structure with the following additional elements and guidelines:
    +* Only code usable across more than one board at the root level.
    +* Board-specific code in a directory. The directory name should match that of the board supported.
    +* Features not essential to achieve stage 5 or earlier boots are maintained in a Features folder at the appropriate
    +  level in the package hierarchy.
    +
    +Shared resources in the package root directory can include interfaces described in header files, library instances,
    +firmware modules, binaries, etc. The UEFI firmware implementation is built using the process described below from the
    +board-specific directory.
    +
    +A board package must implement the board APIs defined in the MinPlatformPkg even if a "NULL" implementation is used to
    +return back to the minimum platform caller.
     
     ## **Windows Build Instructions**
     
    @@ -20,52 +85,87 @@
       - Add C:\Python27 to your path
       - Other versions of 2.7 may also work fine.
     
    -### Download the required component
    +### Download the required components
     
    -1. Create a new directory for an EDK II WORKSPACE.
    +1. Create a new directory for the EDK II WORKSPACE.
     
     2. Download below repository to this WORKSPACE:
     
    -edk2 repository
    -	``git clone https://github.com/tianocore/edk2.git``
    +* edk2 repository
    +  * ``git clone https://github.com/tianocore/edk2.git``
     
    -edk2-platforms repository
    -	``git clone https://github.com/tianocore/edk2-platforms.git -b devel-MinPlatform``
    +* edk2-platforms repository
    +  * ``git clone https://github.com/tianocore/edk2-platforms.git -b devel-MinPlatform``
     
    -edk2-non-osi repository
    -	``git clone https://github.com/tianocore/edk2-non-osi.git -b devel-MinPlatform``
    +* edk2-non-osi repository
    +  * ``git clone https://github.com/tianocore/edk2-non-osi.git -b devel-MinPlatform``
     
    -FSP repository
    -	``git clone https://github.com/IntelFsp/FSP.git -b Kabylake``
    +* FSP repository
    +  * ``git clone https://github.com/IntelFsp/FSP.git -b Kabylake``
     
     ### Build
     
    -For MinKabylake
    -1. Open command window, goto the workspace dir, e.g. c:\Kabylake.
    +For KabylakeOpenBoardPkg
    +1. Open command window, go to the workspace directory, e.g. c:\Kabylake.
     2. Type "cd edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3".
     3. Type "GitEdk2MinKabylake.bat" to setup GIT environment.
    -4. Type "prep" and make prebuild finish for debug build, "prep r" for rlease build.
    -5. Type "bld" to build kabylake BIOS image.
    +4. Type "prep" and make prebuild finish for debug build, "prep r" for release build.
    +5. Type "bld" to build Kaby Lake reference platform UEFI firmware image.
     
    -For MinPurley
    -1. Open command window, goto the workspace dir, e.g. c:\Purley.
    +For PurleyOpenBoardPkg
    +1. Open command window, go to the workspace directory, e.g. c:\Purley.
     2. Type "cd edk2-platforms\Platform\Intel\PurleyOpenBoardPkg\BoardMtOlympus".
     3. Type "GitEdk2MinMtOlympus.bat" to setup GIT environment.
    -4. Type "bld" to build Purley BIOS image, "bld release" for release build, "bld clean" to remove intermediate files.
    +4. Type "bld" to build Purley Mt Olympus board UEFI firmware image, "bld release" for release build, "bld clean" to
    +   remove intermediate files.
     
    -The user can run FITC tool to build full image for flash (BIOS + ME + DESC). The user can also burn the BIOS image to highest part of flash region directly.
    +The validated version of iasl compiler that can build MinPurley is 20180629. Older version may generate ACPI build
    +errors.
     
    -The validated version of iasl compiler that can build MinPurley is 20180629. Older version may generate ACPI build errors. 
    +For ClevoOpenBoardPkg
    +1. Open command window, go to the workspace directory, e.g. c:\Clevo.
    +2. Type "cd edk2-platforms\Platform\Intel\ClevoOpenBoardPkg\N1xxWU".
    +3. Type "GitEdk2Clevo.bat" to setup GIT environment.
    +4. Type "bld" to build Clevo UEFI firmware image, "bld release" for release build, "bld clean" to remove intermediate
    +files.
     
    -### Known limitations
    +Users with access to the Intel proprietary FITC tool and ME ingredients can build full images for flash  (BIOS + ME +
    +DESC).
     
    -For MinKabylake
    -1. This firmware project has only been validated on the Intel KabylakeRVP3 board.
    -2. This firmware project has only been validated booting to Microsoft Windows 10 x64 with AHCI mode and Integrated Graphic Device.
    -3. This firmware project has only been validated using the Microsoft Visual Studio 2015 compiler.
    +Users can also flash the UEFI firmware image to the highest area of the flash region directly.
     
    -For MinPurley
    -1. This firmware project has only been validated on the Microsoft MtOlympus board.
    -2. This firmware project has only been validated booting to Microsoft Windows Server 2016 with NVME on M.2 slot.
    -3. This firmware project has only been validated using the Microsoft Visual Studio 2015 compiler.
    +### **Known limitations**
     
    +* All firmware projects can only build on Windows with the validated configuration below.
    +  * Cross-platform build support is work-in-progress.
    +
    +**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. This firmware project build has only been tested using the Microsoft Visual Studio 2015 compiler.
    +
    +**PurleyOpenBoardPkg**
    +1. This firmware project has only been tested on the Microsoft MtOlympus 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.
    +
    +**ClevoOpenBoardPkg**
    +1. Currently, support is only being added for the N1xxWU series of boards.
    +2. The firmware project build has only been tested using the Microsoft Visual Studio 2015 compiler.
    +3. The firmware project has not been tested on an actual board, it *should not* be expected to boot.
    +4. The firmware project applies to all Clevo supported board configurations but is only being tested on System 76 Galago
    +  Pro devices.
    +
    +### **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.
    +
    +### **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.
    -- 
    2.16.2.windows.1
    
    


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details
  2019-02-05 17:34 ` Desimone, Nathaniel L
@ 2019-02-12  1:37   ` Chiu, Chasel
  0 siblings, 0 replies; 4+ messages in thread
From: Chiu, Chasel @ 2019-02-12  1:37 UTC (permalink / raw)
  To: Desimone, Nathaniel L, Kubacki, Michael A,
	edk2-devel@lists.01.org
  Cc: Kinney, Michael D, Sinha, Ankit, Oram, Isaac W, Gao, Liming


Reviewed-by: Chasel Chiu <chasel.chiu@intel.com>

> -----Original Message-----
> From: Desimone, Nathaniel L
> Sent: Wednesday, February 6, 2019 1:34 AM
> To: Kubacki, Michael A <michael.a.kubacki@intel.com>;
> edk2-devel@lists.01.org
> Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Sinha, Ankit
> <ankit.sinha@intel.com>; Chiu, Chasel <chasel.chiu@intel.com>; Oram, Isaac W
> <isaac.w.oram@intel.com>; Gao, Liming <liming.gao@intel.com>
> Subject: Re: [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md:
> Update Minimum Platform details
> 
> Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
> 
> On 2/4/19, 5:57 PM, "Kubacki, Michael A" <michael.a.kubacki@intel.com>
> wrote:
> 
>     Adds details on the EDK II Minimum Platform design for Intel
>     platforms.
> 
>     * Overview of Minimum Platform
>     * Board package purpose and conventions
>     * Stage boot concept and control
>     * Minimum Platform firmware solution stack overview
>     * Updates build instructions for all <xxx>OpenBoardPkgs
>     * Adds information for the ClevoOpenBoardPkg
>     * Adds planned activities and ideas for the future
> 
>     Cc: Michael D Kinney <michael.d.kinney@intel.com>
>     Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>     Cc: Ankit Sinha <ankit.sinha@intel.com>
>     Cc: Chasel Chiu <chasel.chiu@intel.com>
>     Cc: Isaac W Oram <isaac.w.oram@intel.com>
>     Cc: Liming Gao <liming.gao@intel.com>
> 
>     Contributed-under: TianoCore Contribution Agreement 1.0
>     Signed-off-by: Michael Kubacki <michael.a.kubacki@intel.com>
>     ---
>      ReadMe.md | 164
> ++++++++++++++++++++++++++++++++++++++++++++++++++------------
>      1 file changed, 132 insertions(+), 32 deletions(-)
> 
>     diff --git a/ReadMe.md b/ReadMe.md
>     index 9b873da2e3..72e332a476 100644
>     --- a/ReadMe.md
>     +++ b/ReadMe.md
>     @@ -1,8 +1,73 @@
>     -# **EDK II Minimized firmware for Intel(R) platforms**
>     +# **EDK II Minimum Platform Firmware for Intel(R) Platforms**
> 
>     -## Features
>     -* The Minimized Kabylake provides the minimal feature of the Kabylake
> BIOS.
>     -* The Minimized Purley provides the minimal feature of the Purley BIOS.
>     +The Minimum Platform is a software architecture that guides uniform
> delivery of Intel platforms enabling firmware
>     +solutions for basic boot functionality with extensibility built-in.
>     +
>     +Package maintainers for the Minimum Platform projects are listed in
> Maintainers.txt.
>     +
>     +## Overview
>     +The key elements of the architecture are organized into a staged boot
> approach where each stage has requirements and
>     +functionality for specific use cases. The generic control flow through the
> boot process is implemented in the
> 
> +[`MinPlatformPkg`](https://github.com/tianocore/edk2-platforms/tree/devel
> -MinPlatform/Platform/Intel/MinPlatformPkg).
>     +The generic nature of the tasks performed in MinPlatformPkg lends to reuse
> across all Intel platforms with no
>     +source modification. Details for any particular board are made accessible to
> the MinPlatformPkg through a well-defined
>     +statically linked board API. A complete platform solution then consists of the
> MinPlatformPkg and a compatible board
>     +package.
>     +
>     +## Board Naming Convention
>     +The board packages supported by Intel follow the naming convention
> \<xxx\>OpenBoardPkg where xxx refers to the
>     +encompassing platform name for a particular platform generation. For
> example, the
> [`KabylakeOpenBoardPkg`](https://github.com/tianocore/edk2-platforms/tree
> /devel-MinPlatform/Platform/Intel/KabylakeOpenBoardPkg) contains the
>     +board code for Intel Kaby Lake reference systems. Intel uses the moniker
> "OpenBoardPkg" to indicate that this package
>     +is the open source board code. A closed source counterpart may exist which
> simply uses "BoardPkg". Both directly use
>     +the MinPlatformPkg from edk2-platforms.
>     +
>     +## Stage Selection
>     +Stage selection is controlled via the PCD
> `gMinPlatformPkgTokenSpaceGuid.PcdBootStage` in
> [`MinPlatformPkg.dec`](https://github.com/tianocore/edk2-platforms/blob/d
> evel-MinPlatform/Platform/Intel/MinPlatformPkg/MinPlatformPkg.dec).
>     +The stage should be configured in the board package DSC file to the
> appropriate value. For example, a board may disable
>     +all advanced features by setting this value to 4 instead of 6. This may be used
> to improve boot time for a particular
>     +use case. Decrementing the stage can also be used for debug since only the
> actions required for that stage objective
>     +should be executed. As an example, ACPI initialization is not required for a
> Stage 3 boot.
>     +
>     +The stages are defined as follows:
>     +
>     +| Stage  | Functional Objective         | Example Capabilities
> |
>     +|
> -------|------------------------------|-----------------------------------------------------------
> -----------------------------------------|
>     +| I      | Minimal Debug                | Serial port output, source debug
> enabled, hardware debugger enabled                                |
>     +| II     | Memory Functional            | Basic hardware initialization
> necessary to reach memory initialization, permanent memory available |
>     +| III    | Boot to UI                   | Simple console input and output to a UI,
> UEFI shell                                                |
>     +| IV     | Boot to OS                   | Boot an operating system with the
> minimally required features                                      |
>     +| V      | Security Enable              | UEFI Secure Boot, TCG measured boot,
> DMA protections                                               |
>     +| VI     | Advanced Feature Enable      | Firmware update, power
> management, non-essential I/O                                               |
>     +
>     +## Minimum Platform Firmware Solution Stack
>     +A UEFI firmware implementation using MinPlatformPkg is constructed using
> the following pieces.
>     +
>     +|                                    |
>     +|------------------------------------|
>     +| [EDK II](https://github.com/tianocore/edk2)
> |
>     +| [Intel(r) FSP](https://github.com/IntelFsp/FSP)
> |
>     +| [Minimum Platform
> (`MinPlatformPkg`)](https://github.com/tianocore/edk2-platforms/tree/devel
> -MinPlatform/Platform/Intel/MinPlatformPkg)                        |
>     +| [Board Support
> (\<xxx\>OpenBoardPkg)](https://github.com/tianocore/edk2-platforms/tree/
> devel-MinPlatform/Platform/Intel)  |
>     +
>     +
>     +## Board Support
>     +* The `KabylakeOpenBoardPkg` contains board implementations for Kaby
> Lake systems.
>     +* The `PurleyOpenBoardPkg` contains board implementations for Purley
> systems.
>     +* The `ClevoOpenBoardPkg` contains board implementations for Clevo
> systems.
>     +
>     +## Board Package Organization
>     +The board package follows the standard EDK II package structure with the
> following additional elements and guidelines:
>     +* Only code usable across more than one board at the root level.
>     +* Board-specific code in a directory. The directory name should match that
> of the board supported.
>     +* Features not essential to achieve stage 5 or earlier boots are maintained in
> a Features folder at the appropriate
>     +  level in the package hierarchy.
>     +
>     +Shared resources in the package root directory can include interfaces
> described in header files, library instances,
>     +firmware modules, binaries, etc. The UEFI firmware implementation is built
> using the process described below from the
>     +board-specific directory.
>     +
>     +A board package must implement the board APIs defined in the
> MinPlatformPkg even if a "NULL" implementation is used to
>     +return back to the minimum platform caller.
> 
>      ## **Windows Build Instructions**
> 
>     @@ -20,52 +85,87 @@
>        - Add C:\Python27 to your path
>        - Other versions of 2.7 may also work fine.
> 
>     -### Download the required component
>     +### Download the required components
> 
>     -1. Create a new directory for an EDK II WORKSPACE.
>     +1. Create a new directory for the EDK II WORKSPACE.
> 
>      2. Download below repository to this WORKSPACE:
> 
>     -edk2 repository
>     -	``git clone https://github.com/tianocore/edk2.git``
>     +* edk2 repository
>     +  * ``git clone https://github.com/tianocore/edk2.git``
> 
>     -edk2-platforms repository
>     -	``git clone https://github.com/tianocore/edk2-platforms.git -b
> devel-MinPlatform``
>     +* edk2-platforms repository
>     +  * ``git clone https://github.com/tianocore/edk2-platforms.git -b
> devel-MinPlatform``
> 
>     -edk2-non-osi repository
>     -	``git clone https://github.com/tianocore/edk2-non-osi.git -b
> devel-MinPlatform``
>     +* edk2-non-osi repository
>     +  * ``git clone https://github.com/tianocore/edk2-non-osi.git -b
> devel-MinPlatform``
> 
>     -FSP repository
>     -	``git clone https://github.com/IntelFsp/FSP.git -b Kabylake``
>     +* FSP repository
>     +  * ``git clone https://github.com/IntelFsp/FSP.git -b Kabylake``
> 
>      ### Build
> 
>     -For MinKabylake
>     -1. Open command window, goto the workspace dir, e.g. c:\Kabylake.
>     +For KabylakeOpenBoardPkg
>     +1. Open command window, go to the workspace directory, e.g. c:\Kabylake.
>      2. Type "cd
> edk2-platforms\Platform\Intel\KabylakeOpenBoardPkg\KabylakeRvp3".
>      3. Type "GitEdk2MinKabylake.bat" to setup GIT environment.
>     -4. Type "prep" and make prebuild finish for debug build, "prep r" for rlease
> build.
>     -5. Type "bld" to build kabylake BIOS image.
>     +4. Type "prep" and make prebuild finish for debug build, "prep r" for release
> build.
>     +5. Type "bld" to build Kaby Lake reference platform UEFI firmware image.
> 
>     -For MinPurley
>     -1. Open command window, goto the workspace dir, e.g. c:\Purley.
>     +For PurleyOpenBoardPkg
>     +1. Open command window, go to the workspace directory, e.g. c:\Purley.
>      2. Type "cd
> edk2-platforms\Platform\Intel\PurleyOpenBoardPkg\BoardMtOlympus".
>      3. Type "GitEdk2MinMtOlympus.bat" to setup GIT environment.
>     -4. Type "bld" to build Purley BIOS image, "bld release" for release build, "bld
> clean" to remove intermediate files.
>     +4. Type "bld" to build Purley Mt Olympus board UEFI firmware image, "bld
> release" for release build, "bld clean" to
>     +   remove intermediate files.
> 
>     -The user can run FITC tool to build full image for flash (BIOS + ME + DESC).
> The user can also burn the BIOS image to highest part of flash region directly.
>     +The validated version of iasl compiler that can build MinPurley is 20180629.
> Older version may generate ACPI build
>     +errors.
> 
>     -The validated version of iasl compiler that can build MinPurley is 20180629.
> Older version may generate ACPI build errors.
>     +For ClevoOpenBoardPkg
>     +1. Open command window, go to the workspace directory, e.g. c:\Clevo.
>     +2. Type "cd edk2-platforms\Platform\Intel\ClevoOpenBoardPkg\N1xxWU".
>     +3. Type "GitEdk2Clevo.bat" to setup GIT environment.
>     +4. Type "bld" to build Clevo UEFI firmware image, "bld release" for release
> build, "bld clean" to remove intermediate
>     +files.
> 
>     -### Known limitations
>     +Users with access to the Intel proprietary FITC tool and ME ingredients can
> build full images for flash  (BIOS + ME +
>     +DESC).
> 
>     -For MinKabylake
>     -1. This firmware project has only been validated on the Intel KabylakeRVP3
> board.
>     -2. This firmware project has only been validated booting to Microsoft
> Windows 10 x64 with AHCI mode and Integrated Graphic Device.
>     -3. This firmware project has only been validated using the Microsoft Visual
> Studio 2015 compiler.
>     +Users can also flash the UEFI firmware image to the highest area of the flash
> region directly.
> 
>     -For MinPurley
>     -1. This firmware project has only been validated on the Microsoft
> MtOlympus board.
>     -2. This firmware project has only been validated booting to Microsoft
> Windows Server 2016 with NVME on M.2 slot.
>     -3. This firmware project has only been validated using the Microsoft Visual
> Studio 2015 compiler.
>     +### **Known limitations**
> 
>     +* All firmware projects can only build on Windows with the validated
> configuration below.
>     +  * Cross-platform build support is work-in-progress.
>     +
>     +**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. This firmware project build has only been tested using the Microsoft
> Visual Studio 2015 compiler.
>     +
>     +**PurleyOpenBoardPkg**
>     +1. This firmware project has only been tested on the Microsoft MtOlympus
> 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.
>     +
>     +**ClevoOpenBoardPkg**
>     +1. Currently, support is only being added for the N1xxWU series of boards.
>     +2. The firmware project build has only been tested using the Microsoft
> Visual Studio 2015 compiler.
>     +3. The firmware project has not been tested on an actual board, it *should
> not* be expected to boot.
>     +4. The firmware project applies to all Clevo supported board configurations
> but is only being tested on System 76 Galago
>     +  Pro devices.
>     +
>     +### **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.
>     +
>     +### **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.
>     --
>     2.16.2.windows.1
> 
> 


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-02-12  1:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-05  1:57 [edk2-platforms/devel-MinPlatform][PATCH v3 1/1] ReadMe.md: Update Minimum Platform details Michael Kubacki
2019-02-05 17:17 ` Kinney, Michael D
2019-02-05 17:34 ` Desimone, Nathaniel L
2019-02-12  1:37   ` Chiu, Chasel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox