]> git.proxmox.com Git - mirror_edk2.git/blobdiff - QuarkPlatformPkg/Readme.md
MdePkg: introduce standalone MM entry point library implementation
[mirror_edk2.git] / QuarkPlatformPkg / Readme.md
index b48e072ffb75d4836ca82f61ab1ab5b4e1181d48..126de6937bb3bedd6240d7e88d9d56c005172944 100644 (file)
   - Install\r
 * ASL compiler: Available from http://www.acpica.org\r
   - Install into ```C:\ASL``` to match default tools_def.txt configuration.\r
+* Python 2.7: Available from http://www.python.org\r
 \r
 Create a new directory for an EDK II WORKSPACE.\r
 \r
 The code block below shows the GIT clone operations required to pull the EDK II\r
-source tree, the FatPkg sources, the pre-built versions of BaseTools as WIN32\r
-binaries, and the edk2-non-osi repository that provides a binary file for the\r
+source tree and the edk2-non-osi repository that provides a binary file for the\r
 Quark Remote Management Unit (RMU).\r
 \r
 Next it sets environment variables that must be set before running\r
@@ -60,6 +60,8 @@ the EDK II [Multiple Workspace](
 https://github.com/tianocore/tianocore.github.io/wiki/Multiple_Workspace)\r
 feature is used.\r
 \r
+Next, the EDK II BaseTools required to build firmware images are built.\r
+\r
 Next, the ```edksetup.bat``` file is run to complete the initialization of an\r
 EDK II build environment.  Two example build commands are shown.  The first one\r
 in ```QuarkPlatformPlg/Quark.dsc``` builds a full UEFI firmware image that is\r
@@ -69,16 +71,17 @@ image that is useful for initial power-on and debug of new features.
 \r
 ```cmd\r
 git clone https://github.com/tianocore/edk2.git\r
-git clone https://github.com/tianocore/edk2-FatPkg.git FatPkg\r
-git clone https://github.com/tianocore/edk2-BaseTools-win32.git\r
 git clone https://github.com/tianocore/edk2-non-osi.git\r
 \r
+set PYTHON_HOME=c:\Python27\r
 set WORKSPACE=%CD%\r
-set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\edk2-non-osi\r
-set EDK_TOOLS_BIN=%WORKSPACE%\edk2-BaseTools-win32\r
+set PACKAGES_PATH=%WORKSPACE%\edk2;%WORKSPACE%\edk2-non-osi\Silicon\Intel\r
+set EDK_TOOLS_PATH=%WORKSPACE%\edk2\BaseTools\r
+cd %WORKSPACE%\edk2\r
 \r
-cd edk2\r
-edksetup.bat\r
+BaseTools\toolsetup.bat Rebuild\r
+\r
+edksetup.bat Rebuild\r
 \r
 build -a IA32 -t VS2015x86 -p QuarkPlatformPkg/Quark.dsc\r
 build -a IA32 -t VS2015x86 -p QuarkPlatformPkg/QuarkMin.dsc\r
@@ -91,12 +94,13 @@ build -a IA32 -t VS2015x86 -p QuarkPlatformPkg/QuarkMin.dsc
 * GIT client\r
 * GCC 4.9 compiler\r
 * ASL compiler: Available from http://www.acpica.org.\r
+* Python 2.7\r
 \r
 Create a new directory for an EDK II WORKSPACE.\r
 \r
 The code block below shows the GIT clone operations required to pull the EDK II\r
-source tree, the FatPkg sources, and the edk2-non-osi repository that provides a\r
-binary file for the Quark Remote Management Unit (RMU).\r
+source tree and the edk2-non-osi repository that provides a binary file for the\r
+Quark Remote Management Unit (RMU).\r
 \r
 Next it sets environment variables that must be set before running\r
 ```edksetup.bat```. Since content is being pulled from multiple repositories,\r
@@ -106,7 +110,7 @@ feature is used.
 \r
 Next, the EDK II BaseTools required to build firmware images are built.\r
 \r
-Next, the ```edksetup.bat``` file is run to complete the initialization of an\r
+Next, the ```edksetup.sh``` file is run to complete the initialization of an\r
 EDK II build environment.  Two example build commands are shown.  The first one\r
 in ```QuarkPlatformPlg/Quark.dsc``` builds a full UEFI firmware image that is\r
 able to boot the built-in UEFI Shell and Linux from a micro SD FLASH card.  The\r
@@ -115,17 +119,15 @@ image that is useful for initial power-on and debug of new features.
 \r
 ```sh\r
 git clone https://github.com/tianocore/edk2.git\r
-git clone https://github.com/tianocore/edk2-FatPkg.git FatPkg\r
 git clone https://github.com/tianocore/edk2-non-osi.git\r
 \r
 export WORKSPACE=$PWD\r
-export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-non-osi\r
+export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-non-osi/Silicon/Intel\r
 export EDK_TOOLS_PATH=$WORKSPACE/edk2/BaseTools\r
-\r
-make -C edk2/BaseTools\r
-\r
 cd $WORKSPACE/edk2\r
 \r
+make -C BaseTools\r
+\r
 . edksetup.sh BaseTools\r
 \r
 build -a IA32 -t GCC49 -p QuarkPlatformPkg/Quark.dsc\r
@@ -146,6 +148,8 @@ features on the build command line using ```-D``` flags.
 | ```SECURE_BOOT_ENABLE```   |             FALSE | TRUE, FALSE          |\r
 | ```MEASURED_BOOT_ENABLE``` |             FALSE | TRUE, FALSE          |\r
 | ```TPM_12_HARDWARE```      |              NONE | NONE, LPC, ATMEL_I2C, INFINEON_I2C |\r
+| ```CAPSULE_ENABLE```       |             FALSE | TRUE, FALSE          |\r
+| ```RECOVERY_ENABLE```      |             FALSE | TRUE, FALSE          |\r
 \r
 * ```GALILEO``` - Used to specify the type of Intel(R) Galileo board type.  The\r
   default is ```GEN2``` for the [Intel(R) Galileo Gen 2 Development Board](\r
@@ -199,6 +203,22 @@ features on the build command line using ```-D``` flags.
   has been tested with the [CryptoShield](https://www.sparkfun.com/products/13183)\r
   available from [SparkFun](https://www.sparkfun.com/).\r
 \r
+* ```CAPSULE_ENABLE``` - Used to enable/disable capsule update features.\r
+  The default is FALSE for disabled.  Add ```-D CAPSULE_ENABLE``` to the\r
+  build command line to enable capsule update features.\r
+  The build process generate capsule update image - QUARKFIRMWAREUPDATECAPSULEFMPPKCS7.Cap.\r
+  The user need copy QUARKFIRMWAREUPDATECAPSULEFMPPKCS7.Cap and CapsuleApp.efi\r
+  to a storage media attached to the Quark Board.\r
+  Then the user can boot to shell and run ```CapsuleApp QUARKFIRMWAREUPDATECAPSULEFMPPKCS7.Cap```.\r
+  In next reboot, the system firmware is updated.\r
+\r
+* ```RECOVERY_ENABLE``` - Used to enable/disable recovery features.\r
+  The default is FALSE for disabled.  Add ```-D RECOVERY_ENABLE``` to the\r
+  build command line to enable recovery features.\r
+  The build process generates the recovery capsule image - QUARKREC.Cap.\r
+  Then the user need copy QUARKREC.Cap to a USB KEY, plug the USB KEY to the Quark Board.\r
+  In next boot, if a user runs ForceRecovery.efi in shell, or if a user presses the RESET button during power on, warm reset or REBOOT,\r
+  or if the FvMain is corrupted in flash, the system will boot into recovery mode.\r
 \r
 ### **Example Build Commands**\r
 \r
@@ -224,8 +244,7 @@ Enable UEFI Secure Boot features:
 \r
 Enable UEFI Secure Boot and Measured Boot using Atmel I2C TPM hardware device:\r
 \r
-```build -a IA32 -t VS2015x86 -p QuarkPlatformPkg/Quark.dsc -D UEFI_SECURE_BOOT\r
--D MEASURED_BOOT_ENABLE -D TPM_12_HARDWARE=ATMEL_I2C```\r
+```build -a IA32 -t VS2015x86 -p QuarkPlatformPkg/Quark.dsc -D UEFI_SECURE_BOOT -D MEASURED_BOOT_ENABLE -D TPM_12_HARDWARE=ATMEL_I2C```\r
 \r
 ## **FLASH Update using DediProg SF100**\r
 \r
@@ -239,7 +258,7 @@ http://www.dediprog.com/pd/spi-flash-solution/SF100).
 \r
 * Connect the DediProg SF100 to the Galileo development board.\r
 \r
-    ![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/Dediprog.jpg)\r
+    ![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/Dediprog.jpg)\r
 \r
 * Make sure ```dpcmd.exe``` is in ```PATH```\r
 \r
@@ -273,7 +292,7 @@ Boot Manager, UEFI Shell, and operating system.
 The default serial communication parameters for the Intel(R) Galileo Gen 2\r
 Development Board is 921600,n,8,1 with no hardware flow control.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/TeraTermSerialParameters.png)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/TeraTermSerialParameters.png)\r
 \r
 The default serial communication parameters for the Intel(R) Galileo Development\r
 Board is 461800,n,8,1 with no hardware flow control.\r
@@ -285,11 +304,11 @@ recommendation apply to the TCPIP use cases.
 \r
 * TERATERM.INI - Set terminal size to 80 x 25 and terminal settings to UTF8.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/TeraTermTerminal.png)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/TeraTermTerminal.png)\r
 \r
 * TERATERM.INI - Set font type to Terminal to support box drawing glyphs.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/TeraTermFont.png)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/TeraTermFont.png)\r
 \r
 * TERATERM.INI - Disable line mode to make TCPIP mode work like COM port mode.\r
 \r
@@ -353,7 +372,7 @@ Connect power adapter to Galileo development board, and the logging messages
 should be seen, followed by 5 second countdown, followed by an automatic boot to\r
 the built-in UEFI Shell.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/UefiShell.png)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/UefiShell.png)\r
 \r
 ## **Source Level Debug Using Intel(R) UEFI Development Kit Debugger Tool**\r
 \r
@@ -410,7 +429,7 @@ the debug agent is initialized.  The WinDbg window shows that the debugger is
 connected and the WinDbg application can be used for run control, breakpoint\r
 management, and viewing call stacks, local variables,  global variables, etc.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/UdkDebugger.png)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/UdkDebugger.png)\r
 \r
 ## **Debug Using Intel(R) System Debugger using OpenOCD**\r
 \r
@@ -615,7 +634,7 @@ Use Dediprog SF100 to update the Galileo development board FLASH image.
 Attach the CryptoShield to the Arduino header of the Galileo development board\r
 as shown below.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/GalileoCryptoShield.jpg)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/GalileoCryptoShield.jpg)\r
 \r
 Connect power adapter to Galileo development board and boot to the UEFI Shell.\r
 In the boot logging messages, messages similar to the following should be seen\r
@@ -663,4 +682,4 @@ extra work that is only performed one time.  In order to get correct performance
 measurements, use the 2nd or later boots.  After the 2nd boot, run the\r
 ```dp -s``` command.  The output should look similar to the figure below.\r
 \r
-![](http://www.tianocore.org/Projects/QuarkPlatformPkg/Images/DpCommand.png)\r
+![](https://github.com/tianocore/tianocore.github.io/wiki/Projects/QuarkPlatformPkg/Images/DpCommand.png)\r