--- /dev/null
+#Name\r
+**_PatchFv.py_** - The python script that patches the firmware volumes (**FV**)\r
+with in the flash device (**FD**) file post FSP build.\r
+\r
+#Synopsis\r
+\r
+```\r
+PatchFv FvBuildDir [FvFileBaseNames:]FdFileBaseNameToPatch ["Offset, Value"]+\r
+ | ["Offset, Value, @Comment"]+\r
+ | ["Offset, Value, $Command"]+\r
+ | ["Offset, Value, $Command, @Comment"]+\r
+```\r
+\r
+#Description\r
+The **_PatchFv.py_** tool allows the developer to fix up FD images to follow the\r
+Intel FSP Architecture specification. It also makes the FD image relocatable.\r
+The tool is written in Python and uses Python 2.7 or later to run.\r
+Consider using the tool in a build script.\r
+\r
+#FvBuildDir (Argument 1)\r
+This is the first argument that **_PatchFv.py_** requires. It is the build\r
+directory for all firmware volumes created during the FSP build. The path must\r
+be either an absolute path or a relevant path, relevant to the top level of the\r
+FSP tree.\r
+\r
+####Example usage:\r
+```\r
+ Build\YouPlatformFspPkg\%BD_TARGET%_%VS_VERSION%%VS_X86%\FV\r
+```\r
+\r
+The example used contains Windows batch script %VARIABLES%.\r
+\r
+#FvFileBaseNames (Argument 2: 0ptional Part 1)\r
+The firmware volume file base names (**_FvFileBaseNames_**) are the independent\r
+Fv?s that are to be patched within the FD. (0 or more in the form\r
+**FVFILEBASENAME:**) The colon **:** is used for delimiting the single\r
+argument and must be appended to the end of each (**_FvFileBaseNames_**).\r
+\r
+####Example usage:\r
+```\r
+STAGE1:STAGE2:MANIFEST:YOURPLATFORM\r
+```\r
+\r
+In the example **STAGE1** is **STAGE1.Fv** in **YOURPLATFORM.fd**.\r
+\r
+# FdFileNameToPatch (Argument 2: Mandatory Part 2)\r
+\r
+Firmware device file name to patch (**_FdFileNameToPatch_**) is the base name of\r
+the FD file that is to be patched. (1 only, in the form **YOURPLATFORM**)\r
+\r
+####Example usage:\r
+```\r
+STAGE1:STAGE2:MANIFEST:YOURPLATFORM\r
+```\r
+\r
+In the example **YOURPLATFORM** is from **_YOURPLATFORM.fd_**\r
+\r
+#"Offset, Value[, Command][, Comment]" (Argument 3)\r
+The **_Offset_** can be a positive or negative number and represents where the\r
+**_Value_** to be patched is located within the FD. The **_Value_** is what\r
+will be written at the given **_Offset_** in the FD. Constants may be used for\r
+both offsets and values. Also, this argument handles expressions for both\r
+offsets and values using these operators:\r
+\r
+```\r
+ = - * & | ~ ( ) [ ] { } < >\r
+```\r
+\r
+The entire argument includes the quote marks like in the example argument below:\r
+\r
+```\r
+0xFFFFFFC0, SomeCore:__EntryPoint - [0x000000F0],@SomeCore Entry\r
+```\r
+\r
+###Constants:\r
+ Hexadecimal (use **0x** as prefix) | Decimal\r
+\r
+####Examples:\r
+\r
+| **Positive Hex** | **Negative Hex** | **Positive Decimal** | **Negative Decimal** |\r
+| ---------------: | ---------------: | -------------------: | -------------------: |\r
+| 0x000000BC | 0xFFFFFFA2 | 188 | -94 |\r
+\r
+```\r
+ModuleName:FunctionName | ModuleName:GlobalVariableName\r
+ModuleGuid:Offset\r
+```\r
+\r
+###Operators:\r
+\r
+```\r
+\r
+ + Addition\r
+ - Subtraction\r
+ * Multiplication\r
+ & Logical and\r
+ | Logical or\r
+ ~ Complement\r
+ ( ) Evaluation control\r
+ [ ] Get a DWord value at the specified offset expression from [expr]\r
+ { } Convert an offset {expr} into an absolute address (FSP_BASE + expr)\r
+ < > Convert absolute address <expr> into an image offset (expr & FSP_SIZE)\r
+\r
+```\r
+\r
+###Special Commands:\r
+Special commands must use the **$** symbol as a prefix to the command itself.\r
+There is only one command available at this time.\r
+\r
+```\r
+$COPY ? Copy a binary block from source to destination.\r
+```\r
+\r
+####Example:\r
+\r
+```\r
+0x94, [PlatformInit:__gPcd_BinPatch_FvRecOffset] + 0x94, [0x98], $COPY, @Sync up 2nd FSP Header\r
+```\r
+\r
+###Comments:\r
+Comments are allowed in the **Offset, Value [, Comment]** argument. Comments\r
+must use the **@** symbol as a prefix. The comment will output to the build\r
+window upon successful completion of patching along with the offset and value data.\r