From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: zailiang.sun@intel.com) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by groups.io with SMTP; Thu, 09 May 2019 18:41:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 May 2019 18:41:27 -0700 X-ExtLoop1: 1 Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga004.jf.intel.com with ESMTP; 09 May 2019 18:41:26 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 9 May 2019 18:41:26 -0700 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 9 May 2019 18:41:26 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.33]) by shsmsx102.ccr.corp.intel.com ([169.254.2.249]) with mapi id 14.03.0415.000; Fri, 10 May 2019 09:41:24 +0800 From: "Sun, Zailiang" To: "Kinney, Michael D" , "devel@edk2.groups.io" CC: "Qian, Yi" Subject: Re: [Patch V2] Vlv2TbltDevicePkg: Update Readme.md Thread-Topic: [Patch V2] Vlv2TbltDevicePkg: Update Readme.md Thread-Index: AQHVBoDWfxTZt9/gUk2EJFTU1e3nt6Zjldlg Date: Fri, 10 May 2019 01:41:23 +0000 Message-ID: <7CB7EF03E15B5D48981329A508747A9850C632C0@SHSMSX104.ccr.corp.intel.com> References: <20190509160402.20704-1-michael.d.kinney@intel.com> In-Reply-To: <20190509160402.20704-1-michael.d.kinney@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zailiang.sun@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Zailiang Sun > -----Original Message----- > From: Kinney, Michael D > Sent: Friday, May 10, 2019 12:04 AM > To: devel@edk2.groups.io > Cc: Sun, Zailiang ; Qian, Yi > Subject: [Patch V2] Vlv2TbltDevicePkg: Update Readme.md >=20 > Cc: Zailiang Sun > Cc: Yi Qian > Signed-off-by: Michael D Kinney > --- > Vlv2TbltDevicePkg/Readme.md | 242 +++++++++++++++++++++++++++++- > ------ > 1 file changed, 200 insertions(+), 42 deletions(-) >=20 > diff --git a/Vlv2TbltDevicePkg/Readme.md b/Vlv2TbltDevicePkg/Readme.md > index 139aa4ea61..cbbb465b69 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)** >=20 > ---------- > - > - > -## **How to Create a Full Source Tree for Minnowboard Max/Turbot under > Windows** -### Pre-requisites > +# Windows Pre-requisites >=20 > * GIT client: Available from https://git-scm.com/downloads >=20 > -### 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 e= dk2- > 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/ >=20 > * 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). >=20 > * 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 lo= cal > hard drive > (create the folder "C:\NASM" if it does not exist). Add the path > "C:\NASM\" to system environment variable **NASM_PREFIX**. >=20 > * Install Openssl > - - Download a pre-compiled Openssl Windows binary from > - https://wiki.openssl.org/index.php/Binaries. Search for a Windows bin= ary > in the list > - of "Third Party OpenSSL Related Binary Distributions". Go to the thir= d 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 bin= ary > in the list > + of "Third Party OpenSSL Related Binary Distributions". Go to the thir= d > 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**. >=20 > +# Download and Build MinnowMax using Windows/Visual Studio >=20 > +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. >=20 > -### Build Commands > - * cd C:\WORKSPACE\edk2\Vlv2TbltDevicePkg > +``` > +git clone --recurse-submodules https://github.com/tianocore/edk2.git >=20 > - * To build 64-bit release version image: Build_IFWI.bat MNW2 Release > +powershell "& {[Net.ServicePointManager]::SecurityProtocol =3D > [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 >=20 > - * 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 =3D > [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 .. >=20 > - * To build 32-bit debug version image: Build_IFWI.bat /IA32 MNW2 Debug > +powershell "& {[Net.ServicePointManager]::SecurityProtocol =3D > [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 . >=20 > -### Output > -* After the build process successfully completes, the 8MB firmware binar= y > image will -be located in the following location on your local hard drive= : > -"C:\WORKSPACE\edk2\Vlv2TbltDevicePkg\Stitch\" > +mkdir Conf >=20 > +set WORKSPACE=3D%CD% > +set EDK_TOOLS_PATH=3D%WORKSPACE%\edk2\BaseTools > +set EDK_TOOLS_BIN=3D%EDK_TOOLS_PATH%\BinWrappers\WindowsLike > +set PACKAGES_PATH=3D%WORKSPACE%\edk2;%WORKSPACE%\Vlv2Binaries > +path=3D%path%;%EDK_TOOLS_PATH%\Bin\Win32;%WORKSPACE%\openssl- > 1.0.2r-x64_8 > +6-win64 set NASM_PREFIX=3D%WORKSPACE%\nasm-2.13.03\ >=20 > +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=3D%CD% > +set EDK_TOOLS_PATH=3D%WORKSPACE%\edk2\BaseTools > +set EDK_TOOLS_BIN=3D%EDK_TOOLS_PATH%\BinWrappers\WindowsLike > +set PACKAGES_PATH=3D%WORKSPACE%\edk2;%WORKSPACE%\Vlv2Binaries > +path=3D%path%;%EDK_TOOLS_PATH%\Bin\Win32;%WORKSPACE%\openssl- > 1.0.2r-x64_8 > +6-win64 set NASM_PREFIX=3D%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..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- > Developme > +nt190216.zip unzip MinnowBoardMax-Development190216.zip > +unzip Vlv2SocBinPkg.zip > + > +cd .. > +mkdir Conf > + > +export WORKSPACE=3D$PWD/edk2 > +export PACKAGES_PATH=3D$PWD/Vlv2Binaries > +export EDK_TOOLS_PATH=3D$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=3D$PWD/edk2 > +export PACKAGES_PATH=3D$PWD/Vlv2Binaries > +export EDK_TOOLS_PATH=3D$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