Reviewed by Qian, Yi <yi.q...@intel.com> Thanks QianYi
-----Original Message----- From: Kinney, Michael D Sent: Thursday, May 9, 2019 12:31 PM To: devel@edk2.groups.io Cc: Sun, Zailiang <zailiang....@intel.com>; Qian, Yi <yi.q...@intel.com> Subject: [Patch 16/16] Vlv2TbltDevicePkg: Update Readme.md Cc: Zailiang Sun <zailiang....@intel.com> Cc: Yi Qian <yi.q...@intel.com> Signed-off-by: Michael D Kinney <michael.d.kin...@intel.com> --- Vlv2TbltDevicePkg/Readme.md | 232 +++++++++++++++++++++++++++++------- 1 file changed, 190 insertions(+), 42 deletions(-) diff --git a/Vlv2TbltDevicePkg/Readme.md b/Vlv2TbltDevicePkg/Readme.md index 139aa4ea61..647d0ba361 100644 --- a/Vlv2TbltDevicePkg/Readme.md +++ b/Vlv2TbltDevicePkg/Readme.md @@ -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,203 @@ 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. -### Build Commands - * cd C:\WORKSPACE\edk2\Vlv2TbltDevicePkg +``` +git clone --recurse-submodules https://github.com/tianocore/edk2.git - * To build 64-bit release version image: Build_IFWI.bat MNW2 Release +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 - * 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 +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 .. - * To build 32-bit debug version image: Build_IFWI.bat /IA32 MNW2 Debug +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 . -### 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\" +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_8 +6-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_8 +6-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` + +# 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-Developme +nt190216.zip unzip MinnowBoardMax-Development190216.zip +unzip Vlv2SocBinPkg.zip + +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 Debug Image + +``` +cd Vlv2TbltDevicePkg +./Build_IFWI.sh MNW2 Debug +``` + +* Build Release Image + +``` +cd Vlv2TbltDevicePkg +./Build_IFWI.sh MNW2 Release +``` + +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. -- 2.21.0.windows.1 -- Qian Yi -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#40351): https://edk2.groups.io/g/devel/message/40351 Mute This Topic: https://groups.io/mt/31551785/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-