Vlv2TbltDevicePkg: Update Readme.md

Cc: Zailiang Sun <zailiang.sun@intel.com>
Cc: Yi Qian <yi.qian@intel.com>
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Zailiang Sun <zailiang.sun@intel.com>
This commit is contained in:
Michael D Kinney 2019-05-08 15:42:07 -07:00
parent 1bb262ea04
commit 62fdb9bbc5
1 changed files with 200 additions and 42 deletions

View File

@ -1,39 +1,18 @@
# **EDK II firmware for Minnowboard Max/Turbot which is based on Intel Valleyview2 SoC (Byatrail platform)**
----------
## **How to Create a Full Source Tree for Minnowboard Max/Turbot under Windows**
### Pre-requisites
# Windows Pre-requisites
* GIT client: Available from https://git-scm.com/downloads
### Download Source Code
* Create a new directory C:\WORKSPACE as an EDK II work space.
* GIT clone operations required to pull the EDK II source tree and the edk2-non-osi repository. Run below command in git bash or windows command line.
- cd C:\WORKSPACE
- git clone https://github.com/tianocore/edk2.git
- git clone https://github.com/tianocore/edk2-non-osi.git
Note: The EDK II [Multiple Workspace](https://github.com/tianocore/tianocore.github.io/wiki/Multiple_Workspace)
feature is used by this project.
* Follow the instructions found in the file "OpenSSL-HOWTO.txt" in your work space (e.g. "C:\WORKSPACE\edk2\CryptoPkg\Library\OpensslLib\OpenSSL-HOWTO.txt") to install the Openssl source code.
## **Windows Build Instructions**
### Pre-requisites Tools
* Microsoft Visual Studio.
- Visual Studio 2015 recommended and is used in the examples below. Visual Studio 2013 is also supported.
* WINDDK
- Download Microsoft Windows Driver Development Kit 3790.1830 and install it to C:\WINDDK\3790.1830.
* Python 2.7
- Available from http://www.python.org. Install Python to C:\Python27, and add the path "C:\Python27" to system environment variable **PYTHON_HOME**.
* Python 3
- https://www.python.org/downloads/
* Install iASL
- Install the iasl compiler by downloading iasl-win-20160527.zip from the following
@ -42,34 +21,213 @@ feature is used by this project.
(create the folder "C:\ASL" if it does not exist).
* Install the NASM* assembly language compiler
- Download NASM* 2.12.02 binaries from
- Download NASM* 2.12.02 binaries from
http://www.nasm.us/pub/nasm/releasebuilds/2.12.02/win64/nasm-2.12.02-win64.zip and place the
unzipped content ("nasm.exe") into the directory "C:\NASM" on your local hard drive
(create the folder "C:\NASM" if it does not exist). Add the path "C:\NASM\" to system environment variable **NASM_PREFIX**.
* Install Openssl
- Download a pre-compiled Openssl Windows binary from
https://wiki.openssl.org/index.php/Binaries. Search for a Windows binary in the list
of "Third Party OpenSSL Related Binary Distributions". Go to the third party site to
download the latest version. Download and extract to C:\Openssl, add the path of openssl.exe
- Download a pre-compiled Openssl Windows binary from
https://wiki.openssl.org/index.php/Binaries. Search for a Windows binary in the list
of "Third Party OpenSSL Related Binary Distributions". Go to the third party site to
download the latest version. Download and extract to C:\Openssl, add the path of openssl.exe
("C:\openssl") to system environment variable **OPENSSL_PATH**.
# Download and Build MinnowMax using Windows/Visual Studio
Run the script below from an empty directory. The script clones the EDK II
repository from GitHub and downloads and unzips the binary support files for the
MinnowBoard MAX. It then sets up the environment for EDK II builds and builds
the MinnowBoard MAX firmware and generates UEFI Capsules that can be used to
update the MinnowBoard MAX firmware and three sample devices.
```
git clone --recurse-submodules https://github.com/tianocore/edk2.git
powershell "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri "https://indy.fulgan.com/SSL/openssl-1.0.2r-x64_86-win64.zip -OutFile openssl-1.0.2r-x64_86-win64.zip"}"
powershell Expand-Archive openssl-1.0.2r-x64_86-win64.zip
powershell "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri "https://firmware.intel.com/sites/default/files/MinnowBoardMax-Development190216.zip -OutFile MinnowBoardMax-Development190216.zip"}"
powershell Expand-Archive MinnowBoardMax-Development190216.zip
sleep 1
rename MinnowBoardMax-Development190216 Vlv2Binaries
cd Vlv2Binaries
powershell Expand-Archive Vlv2SocBinPkg.zip .
sleep 1
cd ..
powershell "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri "https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win64/nasm-2.13.03-win64.zip -OutFile nasm-2.13.03-win64.zip"}"
powershell Expand-Archive nasm-2.13.03-win64.zip .
mkdir Conf
set WORKSPACE=%CD%
set EDK_TOOLS_PATH=%WORKSPACE%\edk2\BaseTools
set EDK_TOOLS_BIN=%EDK_TOOLS_PATH%\BinWrappers\WindowsLike
set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\Vlv2Binaries
path=%path%;%EDK_TOOLS_PATH%\Bin\Win32;%WORKSPACE%\openssl-1.0.2r-x64_86-win64
set NASM_PREFIX=%WORKSPACE%\nasm-2.13.03\
cd %WORKSPACE%\edk2
call edkSetup.bat Rebuild
cd Vlv2TbltDevicePkg
Build_IFWI.bat /m /y MNW2 Debug
```
Once all the code and tools are downloaded and installed, only the following
commands are required to setup the environment. Run these from the same
directory used to install the source and binaries.
```
set WORKSPACE=%CD%
set EDK_TOOLS_PATH=%WORKSPACE%\edk2\BaseTools
set EDK_TOOLS_BIN=%EDK_TOOLS_PATH%\BinWrappers\WindowsLike
set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\Vlv2Binaries
path=%path%;%EDK_TOOLS_PATH%\Bin\Win32;%WORKSPACE%\openssl-1.0.2r-x64_86-win64
set NASM_PREFIX=%WORKSPACE%\nasm-2.13.03\
cd %WORKSPACE%\edk2
call edkSetup.bat Rebuild
```
Once the environment is setup, the MinnowBoard MAX firmware and capsules can be
rebuilt using the following commands.
* Build Debug Image
```
cd Vlv2TbltDevicePkg
Build_IFWI.bat /m /y MNW2 Debug
```
* Build Release Image
```
cd Vlv2TbltDevicePkg
Build_IFWI.bat /m /y MNW2 Release
```
The generated firmware image is the newest `.bin` file in `edk2/Vlv2TbltDevicePkg/Stitch`.
The file is in the form `MNW2MAX1.X64.0084.D01.<DATE>.bin`.
The CapsuleApp and generated UEFI Capsules are in `Build/Vlv2TbltDevicePkg/Capsules`
# Linux Pre-requisites
* The tool GenBiosId has a dependency on libc.so.6. Make sure it is installed.
Here are a few example installation commands:
sudo dnf install libc.so.6
apt-get install libc:i386
# Download and Build MinnowMax using Linux/GCC
Run the script below from an empty directory. The script clones the EDK II
repository from GitHub and downloads and unzips the binary support files for the
MinnowBoard MAX. It then sets up the environment for EDK II builds and builds
the MinnowBoard MAX firmware and generates UEFI Capsules that can be used to
update the MinnowBoard MAX firmware and three sample devices.
```
git clone --recurse-submodules https://github.com/tianocore/edk2.git
mkdir Vlv2Binaries
cd Vlv2Binaries
wget https://firmware.intel.com/sites/default/files/MinnowBoardMax-Development190216.zip
unzip MinnowBoardMax-Development190216.zip
unzip Vlv2SocBinPkg.zip
cd ..
mkdir Conf
export WORKSPACE=$PWD/edk2
export PACKAGES_PATH=$PWD/Vlv2Binaries
export EDK_TOOLS_PATH=$WORKSPACE/BaseTools
cd edk2
cd Vlv2TbltDevicePkg
. Build_IFWI.sh MNW2 Debug
```
Once all the code is downloaded and installed, only the following commands are
required to setup the environment. Run these from the same directory used to
install the source and binaries.
```
export WORKSPACE=$PWD/edk2
export PACKAGES_PATH=$PWD/Vlv2Binaries
export EDK_TOOLS_PATH=$WORKSPACE/BaseTools
cd edk2
cd Vlv2TbltDevicePkg
```
Once the environment is setup, the MinnowBoard MAX firmware and capsules can be
rebuilt using the following commands.
### Build Commands
* cd C:\WORKSPACE\edk2\Vlv2TbltDevicePkg
* Build Debug Image
* To build 64-bit release version image: Build_IFWI.bat MNW2 Release
```
cd Vlv2TbltDevicePkg
./Build_IFWI.sh MNW2 Debug
```
* To build 64-bit debug version image: Build_IFWI.bat MNW2 Debug
* To build 32-bit release version image: Build_IFWI.bat /IA32 MNW2 Release
* Build Release Image
* To build 32-bit debug version image: Build_IFWI.bat /IA32 MNW2 Debug
```
cd Vlv2TbltDevicePkg
./Build_IFWI.sh MNW2 Release
```
### Output
* After the build process successfully completes, the 8MB firmware binary image will
be located in the following location on your local hard drive:
"C:\WORKSPACE\edk2\Vlv2TbltDevicePkg\Stitch\"
The generated firmware image is the `MNW2MAX_X64_D_0084_01_GCC.bin` file in
`edk2\Vlv2TbltDevicePkg\Stitch`
The CapsuleApp and generated UEFI Capsules are in `Build\Vlv2TbltDevicePkg\Capsules`
# Use DediProg to update FLASH image on a MinnowBoard MAX Target
# Update MinnowBoard MAX Firmware from UEFI Capsules
* Copy the `Build/Vlv2TbltDevicePkg/Capsules` directory to a USB FLASH drive
* Connect USB FLASH Drive to MinnowBoard MAX
* Boot MinnowBoard MAX to the Boot Manager
* Boot the `EFI Internal Shell` boot option
* Mount the USB FLASH Drive (usually `FS1`)
* Use `cd` command to go to `Capsules/TestCert` directory
* Run the following command to apply all four capsules
```
CapsuleApp.efi Red.cap Green.cap Blue.cap MinnowMax.cap
```
* The MinnowBoard MAX should reboot and the four capsules are applied in the
order listed. The progress bar matches the color name of the capsule.
MinnowMax.cap uses the color purple. Once all capsules are processed, the
MinnowBoard MAX should reboot again using the new firmware images.
# Generate and Test a UX BitMap Capsule
* Use bitmap editor to generate a BMP file. Recommend resolution of 600 wide
by 100 tell and either 24 or 32 bits per pixel.
* Save BMP file to USB FLASH drive
* Use CapsuleApp.efi to convert BMP file to a UX Capsule
```
CapsuleApp.efi -G MyImage.bmp -O MyImage.cap
```
* When updating firmware using capsules, add UX capsule to the list of capsules
passed into CapsuleApp.efi.
```
CapsuleApp.efi MyImage.cap Red.cap Green.cap Blue.cap MinnowMax.cap
```
* When the capsules are processed the UX bitmap image should be displayed at the
bottom of the screen.