Update readme for below topics:
- The call flow of BIOS Redfish provisioning scenario.
- The call flow of BIOS Redfish pending settings scenario.
- The call flow of Redfish feature driver dispatch.
- Redfish foundation driver stack design.
- The design of Redfish Platform Config Protocol.
- The design of synchronization between BIOS and Redfish service.

Signed-off-by: Nickle Wang <nick...@nvidia.com>
Cc: Abner Chang <abner.ch...@amd.com>
Cc: Igor Kulchytskyy <ig...@ami.com>
---
 .../redfish-call-flow-pending-settings.svg    |  58 ++++++
 .../Media/redfish-call-flow-provisioning.svg  |  46 +++++
 .../redfish-feature-driver-call-flow.svg      | 133 ++++++++++++++
 .../Media/redfish-foundation-driver-stack.svg |  75 ++++++++
 ...redfish-platform-config-protocol-stack.svg |  99 ++++++++++
 .../Media/redfish-synchronization-design.svg  |  75 ++++++++
 RedfishClientPkg/Readme.md                    | 170 ++++++++++++++++--
 7 files changed, 641 insertions(+), 15 deletions(-)
 create mode 100755 
RedfishClientPkg/Documents/Media/redfish-call-flow-pending-settings.svg
 create mode 100755 
RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg
 create mode 100755 
RedfishClientPkg/Documents/Media/redfish-feature-driver-call-flow.svg
 create mode 100755 
RedfishClientPkg/Documents/Media/redfish-foundation-driver-stack.svg
 create mode 100755 
RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-stack.svg
 create mode 100755 
RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg

diff --git 
a/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-settings.svg 
b/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-settings.svg
new file mode 100755
index 00000000..c7338c69
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-settings.svg
@@ -0,0 +1,58 @@
+<svg width="4414" height="1709" style="background-color:white" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xml:space="preserve" overflow="hidden">
+  <defs>
+    <clipPath id="clip0">
+      <rect x="12" y="509" width="4414" height="1709"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#clip0)" transform="translate(-12 -509)">
+    <rect x="2057.5" y="676.5" width="557" height="128" stroke="#BCBCBC" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2143.23 
758)">Feature Driver</text>
+    <rect x="600.5" y="676.5" width="557" height="128" stroke="#BCBCBC" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 763.66 758)">EDK2 
HII</text>
+    <rect x="3408.5" y="676.5" width="587" height="128" stroke="#BCBCBC" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 3499.14 
758)">Redfish Service</text>
+    <path d="M2338.94 804.5 2338.94 2102.76 2332.06 2102.76 2332.06 
804.5ZM2354.51 2076.99 2335.5 2109.58 2316.49 2076.99C2315.53 2075.35 2316.09 
2073.25 2317.73 2072.29 2319.37 2071.34 2321.47 2071.89 2322.43 2073.53L2338.47 
2101.03 2332.53 2101.03 2348.57 2073.53C2349.53 2071.89 2351.63 2071.34 2353.27 
2072.29 2354.91 2073.25 2355.47 2075.35 2354.51 2076.99Z" fill="#8C8C8C"/>
+    <path d="M871.938 804.5 871.938 2127.85 865.063 2127.85 865.063 
804.5ZM887.511 2102.08 868.501 2134.67 849.49 2102.08C848.533 2100.44 849.087 
2098.34 850.727 2097.38 852.367 2096.43 854.471 2096.98 855.428 2098.62L871.47 
2126.12 865.531 2126.12 881.573 2098.62C882.53 2096.98 884.634 2096.43 886.274 
2097.38 887.914 2098.34 888.468 2100.44 887.511 2102.08Z" fill="#8C8C8C"/>
+    <path d="M3710.94 804.5 3710.94 2127.85 3704.06 2127.85 3704.06 
804.5ZM3726.51 2102.08 3707.5 2134.67 3688.49 2102.08C3687.53 2100.44 3688.09 
2098.34 3689.73 2097.38 3691.37 2096.43 3693.47 2096.98 3694.43 2098.62L3710.47 
2126.12 3704.53 2126.12 3720.57 2098.62C3721.53 2096.98 3723.63 2096.43 3725.27 
2097.38 3726.91 2098.34 3727.47 2100.44 3726.51 2102.08Z" fill="#8C8C8C"/>
+    <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-7.04493e-07 
2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95 13.7504Z" fill="#8C8C8C" 
transform="matrix(-1 0 0 1 2335.45 1342)"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 990.014 
1568)">3</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1016.37 1568)">. If 
</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1098.29 1568)">HII 
question exists and pending value is changed</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1051.89 1628)">Use 
HII protocol/library to submit new value</text>
+    <path d="M1444.91 1252 1719.91 1252 1719.91 1311 1444.91 1311Z" 
fill="#FFFF00" fill-rule="evenodd"/>
+    <path d="M1719.91 1252 1844.23 1252 1844.23 1311 1719.91 1311Z" 
fill="#FFFF00" fill-rule="evenodd"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 990.014 1239)">2. 
Check and see if there is HII question with lang:</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1051.89 
1299)">/</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1078.24 
1299)">bios/attributes/</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1444.91 
1299)">ATTRIBUTE_</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1719.91 
1299)">NAME</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2378.69 1805)">4. 
Update current settings to </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2440.56 
1865)">/redfish/v1/systems/SYS/Bios </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3138.38 
1865)">(provisioning)</text>
+    <path d="M2335 1079.14 3678.02 1079.14 3678.02 1084.87 2335 
1084.86ZM3673.43 1068.25 3700.93 1082 3673.43 1095.75Z" fill="#8C8C8C"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2393.47 968)">1. Use 
</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2549.88 968)">HTTP 
“GET” to download pending settings from</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2455.35 
1028)">/redfish</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2638.11 
1028)">/v1/systems/SYS/Bios/Settings</text>
+    <path d="M2335 1901.14 3678.02 1901.14 3678.02 1906.86 2335 
1906.86ZM3673.43 1890.25 3700.93 1904 3673.43 1917.75Z" fill="#8C8C8C"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2151.86 2175)">6. 
</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2212.01 
2175)">System reboot</text>
+    <rect x="298.5" y="959.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 347.29 1046)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 413.749 1105)">driver</text>
+    <rect x="353.5" y="1014.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 402.29 1101)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 468.749 1160)">driver</text>
+    <rect x="408.5" y="1069.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 457.29 1156)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 523.749 1215)">driver</text>
+    <rect x="463.5" y="1124.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 512.29 1211)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 578.749 1270)">driver</text>
+    <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-7.04493e-07 
2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95 13.7504Z" fill="#8C8C8C" 
transform="matrix(-1 0 0 1 2341.45 1666)"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="83" transform="matrix(1 0 0 1 62.1854 
611)">Consume pending </text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="83" transform="matrix(1 0 0 1 687.237 
611)">settings:</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="50" transform="matrix(1 0 0 1 
62.1854 680)">BMC to BIOS</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3715.21 1979)">5. 
BMC reset pending settings</text>
+  </g>
+</svg>
diff --git 
a/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg 
b/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg
new file mode 100755
index 00000000..70556152
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg
@@ -0,0 +1,46 @@
+<svg width="3803" height="1724" style="background-color:white" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xml:space="preserve" overflow="hidden">
+  <defs>
+    <clipPath id="clip0">
+      <rect x="239" y="507" width="3803" height="1724"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#clip0)" transform="translate(-239 -507)">
+    <rect x="2101.5" y="726.5" width="557" height="127" stroke="#BCBCBC" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2187.7 807)">Feature 
Driver</text>
+    <rect x="644.5" y="726.5" width="557" height="127" stroke="#BCBCBC" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 808.129 807)">EDK2 
HII</text>
+    <rect x="3452.5" y="726.5" width="587" height="127" stroke="#BCBCBC" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 3543.6 807)">Redfish 
Service</text>
+    <path d="M2383.94 853.5 2383.94 2188.56 2377.06 2188.56 2377.06 
853.5ZM2399.51 2162.79 2380.5 2195.38 2361.49 2162.79C2360.53 2161.15 2361.09 
2159.04 2362.73 2158.08 2364.37 2157.13 2366.47 2157.68 2367.43 2159.32L2383.47 
2186.82 2377.53 2186.82 2393.57 2159.32C2394.53 2157.68 2396.63 2157.13 2398.27 
2158.08 2399.91 2159.04 2400.47 2161.15 2399.51 2162.79Z" fill="#8C8C8C"/>
+    <path d="M915.938 853.5 915.938 2188.56 909.063 2188.56 909.063 
853.5ZM931.511 2162.79 912.501 2195.38 893.49 2162.79C892.533 2161.15 893.087 
2159.04 894.727 2158.08 896.367 2157.13 898.471 2157.68 899.428 2159.32L915.47 
2186.82 909.531 2186.82 925.573 2159.32C926.53 2157.68 928.634 2157.13 930.274 
2158.08 931.914 2159.04 932.468 2161.15 931.511 2162.79Z" fill="#8C8C8C"/>
+    <path d="M3754.94 853.5 3754.94 2188.56 3748.06 2188.56 3748.06 
853.5ZM3770.51 2162.79 3751.5 2195.38 3732.49 2162.79C3731.53 2161.15 3732.09 
2159.04 3733.73 2158.08 3735.37 2157.13 3737.47 2157.68 3738.43 2159.32L3754.47 
2186.82 3748.53 2186.82 3764.57 2159.32C3765.53 2157.68 3767.63 2157.13 3769.27 
2158.08 3770.91 2159.04 3771.47 2161.15 3770.51 2162.79Z" fill="#8C8C8C"/>
+    <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-7.04493e-07 
2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95 13.7504Z" fill="#8C8C8C" 
transform="matrix(-1 0 0 1 2379.45 1003)"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 957.259 969)">1. 
Find all HII questions with </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1620.12 
969)">language: </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 1854.45 
969)">“/bios/attributes/*</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2292.73 969)">” 
</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 985.955 1526)">3. 
Get current value of each HII question and</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 1047.83 
1586)">append value to attribute list</text>
+    <path d="M7.04493e-07-2.86458 1444.53-2.86423 1444.53 2.86494-7.04493e-07 
2.86458ZM1439.95-13.7496 1467.45 0.000360892 1439.95 13.7504Z" fill="#8C8C8C" 
transform="matrix(-1 0 0 1 2379.45 1391)"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2417.95 1202)">2. 
Follow Bios schema and </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2479.82 
1262)">create attribute list</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2412.63 1795)">4. 
BIOS current settings is ready</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 2474.5 1855)">Issue 
HTTP “PUT” to /redfish/v1/systems/SYS/Bios</text>
+    <path d="M2385 1906.14 3728.02 1906.14 3728.02 1911.86 2385 
1911.86ZM3723.43 1895.25 3750.93 1909 3723.43 1922.75Z" fill="#8C8C8C"/>
+    <rect x="342.5" y="1008.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 391.759 1095)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 458.217 1154)">driver</text>
+    <rect x="397.5" y="1063.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 446.759 1150)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 513.217 1209)">driver</text>
+    <rect x="452.5" y="1118.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 501.759 1205)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 568.217 1264)">driver</text>
+    <rect x="507.5" y="1173.5" width="377" height="199" stroke="#CDCDCD" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#404040"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 556.759 1260)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 623.217 1319)">driver</text>
+    <path d="M22.9158-2.86458 1467.45-2.86422 1467.45 2.86494 22.9158 
2.86459ZM27.5 13.75 0 0 27.5-13.75Z" fill="#8C8C8C" transform="matrix(-1 0 0 1 
2379.45 1453)"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="83" transform="matrix(1 0 0 1 289.433 
610)">Provisioning:</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="50" transform="matrix(1 0 0 1 
289.433 679)">BIOS to BMC</text>
+  </g>
+</svg>
diff --git 
a/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-flow.svg 
b/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-flow.svg
new file mode 100755
index 00000000..acea6b44
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-flow.svg
@@ -0,0 +1,133 @@
+<svg width="4287" height="2303" style="background-color:white" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xml:space="preserve" overflow="hidden">
+  <defs>
+    <clipPath id="clip0">
+      <rect x="29" y="171" width="4287" height="2303"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#clip0)" transform="translate(-29 -171)">
+    <rect x="33" y="171" width="1544" height="436" fill="#F2F2F2"/>
+    <path d="M3300 305.835C3300 231.368 3360.37 171 3434.84 171L3974.16 
171C4048.63 171 4109 231.368 4109 305.835L4109 1758.16C4109 1832.63 4048.63 
1893 3974.16 1893L3434.84 1893C3360.37 1893 3300 1832.63 3300 1758.16Z" 
fill="#E8E8E8" fill-rule="evenodd"/>
+    <path d="M616 846C616 827.222 631.223 812 650.001 812L1142 812C1160.78 812 
1176 827.222 1176 846L1176 982C1176 1000.78 1160.78 1016 1142 1016L650.001 
1016C631.223 1016 616 1000.78 616 982Z" fill="#76B900" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 703.081 901)">Redfish Feature </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 756.935 960)">Core Driver</text>
+    <rect x="30.5001" y="635.5" width="797" height="144" stroke="#000000" 
stroke-width="3.4375" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 63.3886 702)">Event 
driven</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="37" transform="matrix(1 0 0 1 
63.3886 751)">PcdEdkIIRedfishFeatureDriverStartupEventGuid</text>
+    <path d="M0.11336-2.86234 6.42586-2.61234 12.9907-1.77865 19.4637-0.428434 
25.9229 1.43627 32.3153 3.81669 38.6329 6.70925 44.8331 9.96451 50.9302 13.6801 
56.9417 17.8314 62.8126 22.3572 68.5498 27.2608 74.153 32.5411 84.7977 44.1253 
94.8188 56.9226 104.013 70.7936 112.257 85.6759 119.538 101.424 125.742 117.799 
130.688 134.762 134.365 152.159 135.732 164.561 130.036 165.182 128.76 153.341 
125.187 136.363 120.383 119.826 114.337 103.826 107.243 88.4491 99.2365 73.9564 
90.3062 60.4524 80.5773 47.9997 70.222 36.7089 64.8252 31.6142 59.3124 26.8928 
53.6833 22.5436 47.9448 18.5699 42.1669 15.0355 36.2421 11.9158 30.3096 9.1833 
24.3271 6.93873 18.2863 5.17843 12.2593 3.90365 6.19914 3.11234-0.11336 
2.86234ZM146.247 159.259 134.621 187.722 118.826 161.343Z" fill="#8C8C8C" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 429 779)"/>
+    <rect x="33.4998" y="1065.5" width="727" height="177" stroke="#BCBCBC" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 65.7033 
1129)">Ready</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 206.641 
1129)">-</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 223.255 
1129)">to</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 271.953 
1129)">-</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 288.568 
1129)">Provision Signal</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="37" transform="matrix(1 0 0 1 
65.7033 1173)">gEfiRedfishClientFeatureReadyToProvisionin</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="37" transform="matrix(1 0 0 1 
65.7033 1213)">gGuid</text>
+    <rect x="33.4998" y="2310.5" width="727" height="144" stroke="#BCBCBC" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#FFFFFF"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 65.7037 
2358)">After</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 182.006 
2358)">-</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 198.62 
2358)">Provision Signal</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="37" transform="matrix(1 0 0 1 
65.7037 2402)">gEfiRedfishClientFeatureAfterProvisioningG</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="37" transform="matrix(1 0 0 1 
65.7037 2442)">uid</text>
+    <path d="M898.61 1016 898.61 1153.86C898.61 1155.44 897.327 1156.72 
895.745 1156.72L782.917 1156.72 782.917 1150.99 895.745 1150.99 892.881 1153.86 
892.881 1016ZM787.5 1167.61 760 1153.86 787.5 1140.11Z" fill="#8C8C8C"/>
+    <path d="M898.61 1016 898.61 2382.49C898.61 2384.08 897.327 2385.36 
895.745 2385.36L782.917 2385.36 782.917 2379.63 895.745 2379.63 892.881 2382.49 
892.881 1016ZM787.5 2396.24 760 2382.49 787.5 2368.74Z" fill="#8C8C8C"/>
+    <path d="M1192.5 1194.67C1192.5 1181.32 1203.32 1170.5 1216.67 
1170.5L1690.33 1170.5C1703.68 1170.5 1714.5 1181.32 1714.5 1194.67L1714.5 
1291.33C1714.5 1304.68 1703.68 1315.5 1690.33 1315.5L1216.67 1315.5C1203.32 
1315.5 1192.5 1304.68 1192.5 1291.33Z" stroke="#008564" stroke-width="9.16667" 
stroke-linejoin="round" stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1313.38 1258)">Service Root</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 1192.27 
1131)">/redfish/v1</text>
+    <path d="M0-2.86458 226.791-2.86458C228.373-2.86458 229.656-1.58207 
229.656 0L229.656 273.147 223.927 273.147 223.927 0 226.791 2.86458 0 
2.86458ZM240.541 268.564 226.791 296.064 213.041 268.564Z" fill="#8C8C8C" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
+    <path d="M1629.5 1428.67C1629.5 1415.32 1640.32 1404.5 1653.67 
1404.5L2126.33 1404.5C2139.68 1404.5 2150.5 1415.32 2150.5 1428.67L2150.5 
1525.33C2150.5 1538.68 2139.68 1549.5 2126.33 1549.5L1653.67 1549.5C1640.32 
1549.5 1629.5 1538.68 1629.5 1525.33Z" stroke="#008564" stroke-width="9.16667" 
stroke-linejoin="round" stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1681.69 1462)">ComputerSystemC</text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1792.26 1521)">ollection</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 1626.06 
1376)">/redfish/v1/Systems</text>
+    <path d="M0-2.86458 460.879-2.86458C462.461-2.86458 463.743-1.58207 
463.743 0L463.743 709.637 458.014 709.637 458.014 0 460.879 2.86458 0 
2.86458ZM474.629 705.053 460.879 732.553 447.129 705.053Z" fill="#8C8C8C" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
+    <path d="M2512.5 1427.5C2512.5 1414.25 2523.25 1403.5 2536.5 1403.5L3009.5 
1403.5C3022.75 1403.5 3033.5 1414.25 3033.5 1427.5L3033.5 1523.5C3033.5 1536.75 
3022.75 1547.5 3009.5 1547.5L2536.5 1547.5C2523.25 1547.5 2512.5 1536.75 2512.5 
1523.5Z" stroke="#008564" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 2579.22 1490)">ComputerSystem</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 2510.53 
1371)">/redfish/v1/Systems/SYS</text>
+    <path d="M0.0107384-2.86456 338.69-1.59496 338.668 4.13417-0.0107384 
2.86456ZM334.147-12.4975 361.595 1.35551 334.044 15.0023Z" fill="#8C8C8C" 
transform="matrix(1 0 0 -1 2150 1476.36)"/>
+    <path d="M1889.5 1748.67C1889.5 1735.32 1900.32 1724.5 1913.67 
1724.5L2387.33 1724.5C2400.68 1724.5 2411.5 1735.32 2411.5 1748.67L2411.5 
1845.33C2411.5 1858.68 2400.68 1869.5 2387.33 1869.5L1913.67 1869.5C1900.32 
1869.5 1889.5 1858.68 1889.5 1845.33Z" stroke="#008564" stroke-width="9.16667" 
stroke-linejoin="round" stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 2103.34 1812)">Bios</text>
+    <path d="M0-2.86458 780.807-2.86458C782.389-2.86458 783.672-1.58207 
783.672 0L783.672 970.304 777.943 970.304 777.943 0 780.807 2.86458 0 
2.86458ZM794.557 965.718 780.807 993.218 767.057 965.718Z" fill="#8C8C8C" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 1894.92 
1693)">/redfish/v1/Systems/SYS/Bios</text>
+    <path d="M2053.5 2040.5C2053.5 2027.25 2064.25 2016.5 2077.5 2016.5L2551.5 
2016.5C2564.75 2016.5 2575.5 2027.25 2575.5 2040.5L2575.5 2136.5C2575.5 2149.75 
2564.75 2160.5 2551.5 2160.5L2077.5 2160.5C2064.25 2160.5 2053.5 2149.75 2053.5 
2136.5Z" stroke="#008564" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 2106.47 2103)">MemoryCollection</text>
+    <path d="M0-2.86458 1072.19-2.86458C1073.77-2.86458 1075.05-1.58207 
1075.05 0L1075.05 1134.13 1069.33 1134.13 1069.33 0 1072.19 2.86458 0 
2.86458ZM1085.94 1129.55 1072.19 1157.05 1058.44 1129.55Z" fill="#8C8C8C" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 896 1016)"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 2062.37 
1981)">/redfish/v1/Systems/SYS/Memory</text>
+    <path d="M2920.5 2040.5C2920.5 2027.25 2931.25 2016.5 2944.5 2016.5L3418.5 
2016.5C3431.75 2016.5 3442.5 2027.25 3442.5 2040.5L3442.5 2136.5C3442.5 2149.75 
3431.75 2160.5 3418.5 2160.5L2944.5 2160.5C2931.25 2160.5 2920.5 2149.75 2920.5 
2136.5Z" stroke="#008564" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 3085.32 2103)">Memory</text>
+    <path d="M2.98962e-06-2.86458 322.881-2.86425 322.881 2.86492-2.98962e-06 
2.86458ZM318.298-13.7497 345.798 0.000360892 318.298 13.7503Z" fill="#8C8C8C" 
transform="matrix(1 0 0 -1 2575 2088)"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="183" transform="matrix(1 0 0 1 2263.52 
2245)">…</text>
+    <path d="M3371.5 822.5C3371.5 809.245 3382.25 798.5 3395.5 798.5L4017.5 
798.5C4030.75 798.5 4041.5 809.245 4041.5 822.5L4041.5 918.5C4041.5 931.755 
4030.75 942.5 4017.5 942.5L3395.5 942.5C3382.25 942.5 3371.5 931.755 3371.5 
918.5Z" stroke="#008564" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" fill-rule="evenodd"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3657.66 885)">Bios</text>
+    <rect x="3371" y="601" width="670" height="144" fill="#008564"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3486.36 688)">Redfish foundation</text>
+    <rect x="3371" y="218" width="670" height="145" fill="#5E5E5E"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3474.33 306)">BMC Redfish 
service</text>
+    <path d="M2.86458-1.95531e-05 2.86479 29.9551-2.86438 29.9552-2.86458 
1.95531e-05ZM13.7502 25.3717 0.000360892 52.8718-13.7498 25.3719Z" 
fill="#8C8C8C" transform="matrix(1 0 0 -1 3706 797.872)"/>
+    <path d="M2.86456-0.0103569 2.94628 22.59-2.78285 22.6107-2.86456 
0.0103569ZM13.8151 17.9673 0.164567 45.5168-13.6848 18.0667Z" fill="#8C8C8C" 
transform="matrix(1 0 0 -1 3706 600.517)"/>
+    <rect x="3371" y="981" width="670" height="145" fill="#0071C5"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3434.8 1069)">Redfish Platform 
Config</text>
+    <rect x="3374" y="1304" width="670" height="144" fill="#8C8C8C"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3610.58 1391)">EDK2 HII</text>
+    <rect x="3377" y="1483" width="670" height="145" fill="#890C58"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3552.42 1571)">Chipset driver</text>
+    <rect x="3377" y="1666" width="670" height="144" fill="#5D1682"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 3670.44 1753)">HW</text>
+    <path d="M3708.86 942 3708.86 958.191 3703.14 958.191 3703.14 942ZM3719.75 
953.607 3706 981.107 3692.25 953.608Z" fill="#8C8C8C"/>
+    <path d="M3708.86 1125.94 3712.02 1280.79 3706.29 1280.9 3703.14 
1126.06ZM3722.81 1275.98 3709.62 1303.76 3695.31 1276.54Z" fill="#8C8C8C"/>
+    <path d="M3711.86 1447.79 3712.77 1460.37 3707.05 1460.78 3706.14 
1448.21ZM3723.29 1455.01 3711.57 1483.43 3695.87 1457Z" fill="#8C8C8C"/>
+    <path d="M3714.86 1628 3714.86 1643.16 3709.14 1643.16 3709.14 
1628ZM3725.75 1638.57 3712 1666.07 3698.25 1638.57Z" fill="#8C8C8C"/>
+    <rect x="3371" y="411" width="670" height="144" fill="#0071C5" 
fill-opacity="0.501961"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3606.27 498)">Network</text>
+    <path d="M3703.3 411.234 3703.21 385.926 3708.94 385.907 3709.03 
411.215ZM3692.34 390.547 3706 363 3719.84 390.453Z" fill="#8C8C8C"/>
+    <path d="M0-2.86458 22.9167-2.86458 22.9167 2.86458 0 
2.86458ZM40.1042-2.86458 63.0208-2.86458 63.0208 2.86458 40.1042 
2.86458ZM80.2083-2.86458 103.125-2.86458 103.125 2.86458 80.2083 
2.86458ZM120.312-2.86458 143.229-2.86458 143.229 2.86458 120.312 
2.86458ZM160.417-2.86458 183.333-2.86458 183.333 2.86458 160.417 
2.86458ZM200.521-2.86458 223.438-2.86458 223.438 2.86458 200.521 
2.86458ZM240.625-2.86458 263.542-2.86458 263.542 2.86458 240.625 
2.86458ZM280.729-2.86458 303.646-2.86458 303.646 2.86458 280.729 
2.86458ZM320.833-2.86458 343.75-2.86458 343.75 2.86458 320.833 
2.86458ZM360.938-2.86458 383.854-2.86458 383.854 2.86458 360.938 
2.86458ZM401.042-2.86458 423.958-2.86458 423.958 2.86458 401.042 
2.86458ZM441.146-2.86458 464.062-2.86458 464.062 2.86458 441.146 
2.86458ZM481.25-2.86458 504.167-2.86458 504.167 2.86458 481.25 
2.86458ZM521.354-2.86458 544.271-2.86458 544.271 2.86458 521.354 
2.86458ZM561.458-2.86458 584.375-2.86458 584.375 2.86458 561.458 
2.86458ZM601.562-2.86458
+ 624.479-2.86458 624.479 2.86458 601.562 2.86458ZM641.667-2.86458 
664.583-2.86458 664.583 2.86458 641.667 2.86458ZM681.771-2.86458 
704.688-2.86458 704.688 2.86458 681.771 2.86458ZM721.875-2.86458 
744.52-2.86458C746.102-2.86458 747.385-1.58207 747.385 0L747.385 0.271391 
741.656 0.271391 741.656 0 744.52 2.86458 721.875 2.86458ZM747.385 17.4589 
747.385 40.3756 741.656 40.3756 741.656 17.4589ZM747.385 57.5631 747.385 
80.4797 741.656 80.4797 741.656 57.5631ZM747.385 97.6672 747.385 120.584 
741.656 120.584 741.656 97.6672ZM747.385 137.771 747.385 160.688 741.656 
160.688 741.656 137.771ZM747.385 177.876 747.385 200.792 741.656 200.792 
741.656 177.876ZM747.385 217.98 747.385 240.896 741.656 240.896 741.656 
217.98ZM747.385 258.084 747.385 281.001 741.656 281.001 741.656 
258.084ZM747.385 298.188 747.385 321.105 741.656 321.105 741.656 
298.188ZM747.385 338.292 747.385 361.209 741.656 361.209 741.656 
338.292ZM747.385 378.396 747.385 401.313 741.656 401.313 741.656 
378.396ZM747.385 418.501
+ 747.385 441.417 741.656 441.417 741.656 418.501ZM747.385 458.605 747.385 
481.521 741.656 481.521 741.656 458.605ZM747.385 498.709 747.385 521.626 
741.656 521.626 741.656 498.709ZM747.385 538.813 747.385 561.73 741.656 561.73 
741.656 538.813ZM747.385 578.917 747.385 601.834 741.656 601.834 741.656 
578.917ZM747.385 619.021 747.385 641.938 741.656 641.938 741.656 
619.021ZM747.385 659.126 747.385 682.042 741.656 682.042 741.656 
659.126ZM747.385 699.23 747.385 722.146 741.656 722.146 741.656 699.23ZM747.385 
739.334 747.385 762.251 741.656 762.251 741.656 739.334ZM747.385 779.438 
747.385 802.355 741.656 802.355 741.656 779.438ZM747.385 819.542 747.385 
842.459 741.656 842.459 741.656 819.542ZM747.385 859.646 747.385 882.563 
741.656 882.563 741.656 859.646ZM747.385 899.751 747.385 922.667 741.656 
922.667 741.656 899.751ZM758.063 923.447 780.98 923.447 780.98 929.176 758.063 
929.176ZM798.168 923.447 821.084 923.447 821.084 929.176 798.168 
929.176ZM838.272 923.447 861.188 923.447 861.188
+ 929.176 838.272 929.176ZM878.376 923.447 901.293 923.447 901.293 929.176 
878.376 929.176ZM918.48 923.447 937.198 923.447 937.198 929.176 918.48 
929.176ZM932.615 912.562 960.115 926.312 932.615 940.062Z" fill="#008564" 
transform="matrix(1 0 0 -1 2411 1796.31)"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3733.97 
1194)">x</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3755.74 
1194)">-</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3771.21 
1194)">uefi</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3849.7 
1194)">-</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 3865.17 
1194)">redfish</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="50" transform="matrix(1 0 0 1 4007.25 
1194)">-</text>
+    <text fill="#0071C5" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="50" transform="matrix(1 0 0 1 4022.72 1194)">Bios.vA_B_C</text>
+    <text fill="#0071C5" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="50" transform="matrix(1 0 0 1 3733.97 
1255)">/Bios/Attributes/XXX</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="41" transform="matrix(1 0 0 1 
380.14 1659)">Redfish Feature Protocol</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="41" transform="matrix(1 0 0 1 
2829.58 2249)">Redfish Resource Config Protocol</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="41" transform="matrix(1 0 0 1 
2426.51 1602)">Redfish Resource Config Protocol</text>
+    <rect x="61.5" y="347.5" width="1093" height="111" stroke="#000000" 
stroke-width="3.4375" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <path d="M406.025 362.408 469.046 362.408 469.046 440.408 406.025 
440.408Z" fill="#C0C0C0" fill-rule="evenodd"/>
+    <path d="M496.546 362.408 715.4 362.408 715.4 440.408 496.546 440.408Z" 
fill="#FFFF00" fill-rule="evenodd"/>
+    <path d="M742.9 362.408 836.858 362.408 836.858 440.408 742.9 440.408Z" 
fill="#00FF00" fill-rule="evenodd"/>
+    <path d="M864.358 362.408 976.65 362.408 976.65 440.408 864.358 440.408Z" 
fill="#FF00FF" fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 165.4 
423)">/redfish/</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 406.025 
423)">v1</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 469.046 
423)">/</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 496.546 
423)">Systems</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 715.4 423)">/</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 742.9 
423)">SYS</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 836.858 
423)">/</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 864.358 
423)">Bios</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 976.65 
423)">/…</text>
+    <path d="M62.9999 316.844 1336.22 316.844 1336.22 327.157 62.9999 
327.156ZM62.9999 337.469C54.4567 337.469 47.5311 330.543 47.5312 322 47.5312 
313.457 54.4567 306.531 62.9999 306.531 71.5431 306.531 78.4687 313.457 78.4687 
322 78.4687 330.543 71.5431 337.469 62.9999 337.469ZM1331.06 306.532 1362 322 
1331.06 337.469Z" fill="#890857"/>
+    <rect x="462.5" y="483.5" width="285" height="87" fill="#CDCDCD"/>
+    <path d="M438.751 483.5 438.751 570.5Z" stroke="#000000" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <path d="M438.751 499.813 414.999 499.813 399.811 442.936" 
stroke="#000000" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" fill="none" fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 497.682 
539)">Service Root</text>
+    <rect x="629.5" y="188.5" width="413" height="102" fill="#CDCDCD"/>
+    <path d="M595.085 188.5 595.085 290.5Z" stroke="#000000" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <path d="M595.085 207.625 560.665 207.625 528.732 372.029" 
stroke="#000000" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" fill="none" fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 682.83 
228)">Computer System </text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 749.861 
272)">Collection</text>
+    <rect x="903.5" y="470.5" width="279" height="101" fill="#CDCDCD"/>
+    <path d="M880.251 470.5 880.251 571.5Z" stroke="#000000" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <path d="M880.251 489.438 856.999 489.438 806.93 438.596" stroke="#000000" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 956.072 
510)">Computer </text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 980.134 
554)">System</text>
+    <rect x="1221.5" y="191.5" width="279" height="102" fill="#CDCDCD"/>
+    <path d="M1198.25 191.5 1198.25 293.5Z" stroke="#000000" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <path d="M1198.25 210.625 1175 210.625 944.866 379.72" stroke="#000000" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 1324.41 
254)">Bios</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="55" transform="matrix(1 0 0 1 65.5579 
241)">Register</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 2943.32 
1981)">/redfish/v1/Systems/SYS/</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="48" transform="matrix(1 0 0 1 3469.25 
1981)">Memory/Dimm1</text>
+    <path d="M2390.33 1590.83 2383.15 1590.2C2383 1590.19 2382.85 1590.16 
2382.71 1590.13L2375.59 1588.38 2372.75 1587.27 2374.89 1581.96 2376.95 1582.81 
2384.08 1584.56 2383.64 1584.49 2390.83 1585.12ZM2367.15 1584.88 2361.06 
1581.47 2354.16 1576.55 2352.39 1575 2356.21 1570.72 2357.5 1571.89 2363.85 
1576.47 2369.95 1579.88ZM2348.12 1571.18 2347.61 1570.73 2341.43 1564.18 
2336.44 1557.94 2340.93 1554.37 2345.6 1560.26 2351.42 1566.46 2351.93 
1566.91ZM2333.04 1553.04 2330.39 1549.06 2325.59 1540.71 2324.23 1537.81 
2329.42 1535.38 2330.57 1537.86 2335.15 1545.88 2337.8 1549.86ZM2321.8 1532.62 
2321.42 1531.81 2317.85 1522.57 2315.92 1516.02 2321.41 1514.41 2323.19 1520.5 
2326.61 1529.38 2326.99 1530.19ZM2314.56 1510.07 2313.97 1506.17 2319.64 
1505.32 2320.22 1509.22ZM2303.72 1511.98 2314 1483 2331.02 1508.61Z" 
fill="#8C8C8C"/>
+    <path d="M2793.67 2238.69 2782.92 2237.94 2776.27 2236.64 2777.39 2231.02 
2783.32 2232.22 2794.07 2232.97ZM2770.36 2235.29 2761.04 2232.24 2754.03 
2229.05 2756.41 2223.84 2762.82 2226.8 2772.14 2229.85ZM2748.66 2226.39 2740.31 
2221.56 2733.96 2216.95 2737.33 2212.32 2743.18 2216.6 2751.52 2221.43ZM2729.23 
2213.33 2721.44 2206.63 2716.42 2201.54 2720.5 2197.52 2725.18 2202.29 2732.96 
2208.99ZM2712.26 2197.23 2704.97 2188.34 2701.58 2183.51 2706.27 2180.22 2709.4 
2184.7 2716.69 2193.6ZM2698.29 2178.81 2697.84 2178.16 2691.58 2167.39 2689.69 
2163.39 2694.88 2160.95 2696.54 2164.52 2702.53 2174.88 2702.99 
2175.53ZM2687.26 2158.2 2686.28 2156.11 2682 2144.51 2681.3 2141.43 2686.9 
2140.21 2687.37 2142.53 2691.46 2153.68 2692.44 2155.77ZM2680.08 2135.83 2679.1 
2131.34 2684.7 2130.12 2685.68 2134.61ZM2668.84 2137.02 2679 2108 2696.12 
2133.54Z" fill="#8C8C8C"/>
+    <path d="M587.149 1603.19 587.587 1598.75C587.602 1598.6 587.63 1598.45 
587.67 1598.3L588.858 1593.86C588.902 1593.69 588.961 1593.53 589.034 
1593.38L591.096 1589 593.017 1585.91 597.868 1588.96 596.278 1591.44 594.216 
1595.82 594.392 1595.34 593.205 1599.78 593.288 1599.32 592.851 
1603.75ZM596.687 1581.05 597.791 1579.71 602.21 1575.21 607.242 1570.81 609.766 
1568.92 613.187 1573.52 611.007 1575.13 606.29 1579.23 602.208 1583.36 601.104 
1584.7ZM614.532 1565.49 619.348 1562.28 626.283 1558.14 629.459 1556.44 632.158 
1561.49 629.217 1563.06 622.526 1567.04 617.71 1570.25ZM634.629 1553.72 641.876 
1550.21 650.309 1546.46 652.635 1551.69 644.374 1555.36 637.126 
1558.87ZM655.715 1544.27 659.492 1542.75 669.004 1539.22 671.966 1538.22 
673.809 1543.64 670.996 1544.6 661.633 1548.07 657.855 1549.59ZM677.391 1536.38 
679.016 1535.82 689.374 1532.5 693.921 1531.19 695.499 1536.7 691.126 1537.95 
680.859 1541.25 679.234 1541.8ZM699.429 1529.61 700.148 1529.41 716.155 1525.31 
717.574
+ 1530.87 701.726 1534.91 701.007 1535.12ZM721.706 1523.9 722.728 1523.64 
738.621 1520.25 739.813 1525.86 724.147 1529.19 723.124 1529.45ZM744.225 
1519.06 746.654 1518.55 761.26 1516.04 762.227 1521.69 747.846 1524.15 745.417 
1524.67ZM766.907 1515.07 771.579 1514.27 784.02 1512.61 784.78 1518.29 772.546 
1519.92 767.874 1520.72ZM789.698 1511.85 797.37 1510.82 806.874 1509.89 807.431 
1515.59 798.13 1516.5 790.458 1517.53ZM812.576 1509.33 823.722 1508.25 829.83 
1507.92 830.132 1513.64 824.278 1513.95 813.133 1515.04ZM835.551 1507.62 
852.715 1506.71 853.017 1512.43 835.853 1513.34ZM849.88 1495.82 877.659 1509 
850.449 1523.32Z" fill="#8C8C8C"/>
+  </g>
+</svg>
diff --git 
a/RedfishClientPkg/Documents/Media/redfish-foundation-driver-stack.svg 
b/RedfishClientPkg/Documents/Media/redfish-foundation-driver-stack.svg
new file mode 100755
index 00000000..79694335
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/redfish-foundation-driver-stack.svg
@@ -0,0 +1,75 @@
+<svg width="2492" height="1877" style="background-color:white" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xml:space="preserve" overflow="hidden">
+  <defs>
+    <clipPath id="clip0">
+      <rect x="278" y="517" width="2492" height="1877"/>
+    </clipPath>
+    <linearGradient x1="2572" y1="1054" x2="2572" y2="1294" 
gradientUnits="userSpaceOnUse" spreadMethod="reflect" id="fill1">
+      <stop offset="0" stop-color="#D2D2D2"/>
+      <stop offset="0.5" stop-color="#C8C8C8"/>
+      <stop offset="1" stop-color="#C0C0C0"/>
+    </linearGradient>
+  </defs>
+  <g clip-path="url(#clip0)" transform="translate(-278 -517)">
+    <rect x="278" y="958" width="2163" height="876" fill="#DAE3F3" 
fill-opacity="0.501961"/>
+    <path d="M1.19218-3.22415 20.5371 3.92891 18.1527 10.3772-1.19218 
3.22415ZM26.9853 6.31326 46.3302 13.4663 43.9459 19.9146 24.601 
12.7616ZM52.7785 15.8507 72.1234 23.0037 69.7391 29.452 50.3942 22.299ZM78.5717 
25.3881 97.9166 32.5411 95.5322 38.9894 76.1873 31.8364ZM104.365 34.9255 123.71 
42.0785 121.325 48.5268 101.981 41.3738ZM130.158 44.4629 149.503 51.6159 
147.119 58.0642 127.774 50.9112ZM155.951 54.0003 175.296 61.1533 172.912 
67.6016 153.567 60.4486ZM181.744 63.5377 201.089 70.6908 198.705 77.139 179.36 
69.986ZM207.538 73.0751 226.882 80.2282 224.498 86.6765 205.153 
79.5234ZM233.331 82.6125 252.676 89.7656 250.291 96.2139 230.946 
89.0608ZM259.124 92.1499 278.469 99.303 276.084 105.751 256.74 98.5982ZM284.917 
101.687 304.262 108.84 301.878 115.289 282.533 108.136ZM310.71 111.225 330.055 
118.378 327.671 124.826 308.326 117.673ZM336.503 120.762 355.848 127.915 
353.464 134.363 334.119 127.21ZM362.297 130.3 381.641 137.453 379.257 143.901 
359.912 136.748ZM388.09 139.837
+ 407.435 146.99 405.05 153.438 385.705 146.285ZM413.883 149.374 433.228 
156.527 430.843 162.976 411.499 155.823ZM439.676 158.912 459.021 166.065 
456.637 172.513 437.292 165.36ZM465.469 168.449 484.814 175.602 482.43 182.05 
463.085 174.897ZM491.262 177.987 510.607 185.14 508.223 191.588 488.878 
184.435ZM517.056 187.524 536.4 194.677 534.016 201.125 514.671 193.972ZM542.849 
197.061 562.194 204.214 559.809 210.663 540.464 203.51ZM568.642 206.599 587.987 
213.752 585.602 220.2 566.258 213.047ZM594.435 216.136 613.78 223.289 611.396 
229.738 592.051 222.584ZM620.228 225.674 639.573 232.827 637.189 239.275 
617.844 232.122ZM646.021 235.211 665.366 242.364 662.982 248.812 643.637 
241.659ZM671.815 244.748 691.16 251.901 688.775 258.35 669.43 251.197ZM697.608 
254.286 716.953 261.439 714.568 267.887 695.224 260.734ZM723.401 263.823 
742.746 270.976 740.362 277.425 721.017 270.271ZM744.812 260.745 765.836 
283.179 735.275 286.538Z" fill="#70AD47" transform="matrix(1 0 0 -1 594.5 
1048.68)"/>
+    <rect x="392.5" y="1881.5" width="622" height="142" stroke="#41719C" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#5B9BD5"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 652.979 
1972)">NIC</text>
+    <rect x="392.5" y="1515.5" width="622" height="251" stroke="#ED7D31" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#FBE5D6"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 450.739 1657)">UEFI 
Network Stack</text>
+    <rect x="1703.5" y="1515.5" width="622" height="251" stroke="#C55A11" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#FFC000"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1773.26 
1660)">In</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1828.84 
1660)">-</text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1852.33 1660)">band 
channel</text>
+    <rect x="807.5" y="1049.5" width="207" height="287" stroke="#2F5597" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#ADB9CA"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1 
855.72 1182)">REST </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1 
882.074 1231)">EX</text>
+    <rect x="393.5" y="1194.5" width="400" height="138" stroke="#787878" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#A5A5A5"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 433.577 
1254)">Redfish Discover </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 512.067 
1299)">Protocol</text>
+    <path d="M396.5 2234C396.5 2216.6 410.603 2202.5 428 2202.5L2294 
2202.5C2311.4 2202.5 2325.5 2216.6 2325.5 2234L2325.5 2360C2325.5 2377.4 2311.4 
2391.5 2294 2391.5L428 2391.5C410.603 2391.5 396.5 2377.4 396.5 2360Z" 
stroke="#70AD47" stroke-width="4.58333" stroke-miterlimit="8" fill="#FFFFFF" 
fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1158.18 
2313)">Redfish Service</text>
+    <rect x="396.5" y="519.5" width="1929" height="120" stroke="#000000" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#767171"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 1100.89 596)">Redfish 
Application</text>
+    <rect x="394.5" y="1048.5" width="400" height="138" stroke="#385723" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#70AD47"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 457.66 
1105)">Redfish Config </text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 535.851 
1155)">Driver</text>
+    <path d="M2375 1054 2729 1054 2769 1094 2769 1294 2375 1294Z" 
stroke="#A5A5A5" stroke-width="2.29167" stroke-miterlimit="8" 
fill="url(#fill1)" fill-rule="evenodd"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="55" transform="matrix(1 0 0 1 2474.57 
1172)">SMBIOS </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="400" font-size="55" transform="matrix(1 0 0 1 2465.7 1231)">Type 
42</text>
+    <rect x="1710" y="1879" width="615" height="142" fill="#4472C4" 
fill-opacity="0.501961"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="73" transform="matrix(1 0 0 1 1959.59 
1972)">HW</text>
+    <rect x="396.5" y="645.5" width="1929" height="120" stroke="#385723" 
stroke-width="3.4375" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#70AD47"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 994.903 720)">Redfish Config Handler 
Protocol</text>
+    <path d="M3.17204-1.3246 11.1196 17.7076 4.77555 20.3568-3.17204 
1.3246ZM13.7688 24.0517 21.7164 43.084 15.3723 45.7332 7.42475 26.7009ZM24.3656 
49.4281 32.3132 68.4603 25.9691 71.1095 18.0215 52.0773ZM34.9624 74.8044 42.91 
93.8366 36.5659 96.4858 28.6183 77.4536ZM45.5592 100.181 53.5068 119.213 
47.1627 121.862 39.2151 102.83ZM56.156 125.557 64.1036 144.589 57.7595 147.238 
49.8119 128.206ZM66.7528 150.933 74.7004 169.966 68.3563 172.615 60.4087 
153.583ZM77.3496 176.31 85.2972 195.342 78.9531 197.991 71.0055 
178.959ZM87.9464 201.686 95.894 220.718 89.5499 223.367 81.6023 
204.335ZM98.5432 227.062 106.491 246.095 100.147 248.744 92.1991 
229.712ZM109.14 252.439 114.093 264.301 107.749 266.95 102.796 255.088ZM121.843 
256.098 119.752 286.772 96.4671 266.694Z" fill="#70AD47" transform="matrix(1 0 
0 -1 1240.5 1052.27)"/>
+    <path d="M1867.15 1057.88 1849.23 1047.68 1852.63 1041.7 1870.55 
1051.91ZM1843.25 1044.28 1825.33 1034.07 1828.73 1028.1 1846.65 1038.3ZM1819.35 
1030.67 1801.43 1020.47 1804.83 1014.49 1822.75 1024.7ZM1795.45 1017.07 1777.53 
1006.86 1780.93 1000.89 1798.85 1011.09ZM1771.55 1003.46 1753.63 993.258 
1757.03 987.284 1774.96 997.488ZM1747.66 989.857 1729.73 979.653 1733.13 
973.679 1751.06 983.883ZM1723.76 976.252 1705.83 966.048 1709.23 960.073 
1727.16 970.277ZM1699.86 962.647 1681.93 952.443 1685.34 946.468 1703.26 
956.672ZM1675.96 949.042 1658.04 938.838 1661.44 932.863 1679.36 
943.067ZM1652.06 935.437 1634.14 925.233 1637.54 919.258 1655.46 
929.462ZM1628.16 921.831 1610.24 911.628 1613.64 905.653 1631.56 
915.857ZM1604.26 908.226 1586.34 898.022 1589.74 892.048 1607.67 
902.252ZM1580.37 894.621 1562.44 884.417 1565.84 878.443 1583.77 
888.646ZM1556.47 881.016 1538.54 870.812 1541.94 864.837 1559.87 
875.041ZM1532.57 867.411 1514.64 857.207 1518.04 851.232 1535.97 
861.436ZM1508.67
+ 853.806 1490.74 843.602 1494.15 837.627 1512.07 847.831ZM1484.77 840.2 
1466.85 829.997 1470.25 824.022 1488.17 834.226ZM1460.87 826.595 1442.95 
816.391 1446.35 810.417 1464.27 820.621ZM1436.97 812.99 1419.05 802.786 1422.45 
796.812 1440.37 807.015ZM1413.07 799.385 1395.15 789.181 1398.55 783.206 
1416.48 793.41ZM1389.18 785.78 1378.72 779.825 1382.12 773.851 1392.58 
779.805ZM1377.6 791.055 1360.5 765.5 1391.2 767.156Z" fill="#70AD47"/>
+    <path d="M0-2.29167 146.945-2.29167 146.945 186.106 144.653 183.814 266.39 
183.814 266.39 188.397 142.362 188.397 142.362 0 144.653 2.29167 0 
2.29167ZM261.806 172.356 289.306 186.106 261.806 199.856Z" fill="#FF0000" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 1360.5 765.5)"/>
+    <path d="M1571.77 1340.5 1571.77 1451.89 1362.5 1451.89 1364.79 1449.6 
1364.79 1491.77 1360.21 1491.77 1360.21 1447.3 1569.48 1447.3 1567.19 1449.6 
1567.19 1340.5ZM1376.25 1487.19 1362.5 1514.69 1348.75 1487.19Z" 
fill="#FF0000"/>
+    <path d="M1364.79 1766.5 1364.79 1858.57 1360.21 1858.57 1360.21 
1766.5ZM1376.25 1853.99 1362.5 1881.49 1348.75 1853.99Z" fill="#FF0000"/>
+    <path d="M2573.09 1294 2573.09 1422.16 1901.85 1422.16 1901.85 1361.43 
1904.15 1361.43 1904.15 1421.01 1903 1419.87 2571.94 1419.87 2570.8 1421.01 
2570.8 1294ZM1889.25 1366.01 1903 1338.51 1916.75 1366.01Z" fill="#A5A5A5"/>
+    <path d="M2573.22 1294 2573.22 1421.96 1249.85 1421.96 1249.85 1359.03 
1252.15 1359.03 1252.15 1420.81 1251 1419.67 2572.07 1419.67 2570.93 1420.81 
2570.93 1294ZM1237.25 1363.61 1251 1336.11 1264.75 1363.61Z" fill="#A5A5A5"/>
+    <path d="M2573.26 1294 2573.26 1422.27 591.854 1422.27 591.854 1354.94 
594.146 1354.94 594.146 1421.12 593 1419.98 2572.11 1419.98 2570.97 1421.12 
2570.97 1294ZM579.25 1359.52 593 1332.02 606.75 1359.52Z" fill="#A5A5A5"/>
+    <rect x="1465.5" y="1053.5" width="207" height="287" stroke="#2F5597" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#ADB9CA"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1 
1513.76 1186)">REST </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1 
1540.11 1235)">EX</text>
+    <rect x="1051.5" y="1198.5" width="400" height="139" stroke="#787878" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#A5A5A5"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 1091.62 
1258)">Redfish Discover </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 1170.11 
1303)">Protocol</text>
+    <rect x="1052.5" y="1052.5" width="400" height="138" stroke="#385723" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#70AD47"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 1099.08 
1111)">Redfish Config </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 1186.17 
1160)">Driver</text>
+    <rect x="2117.5" y="1055.5" width="208" height="288" stroke="#2F5597" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#ADB9CA"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1 
2165.89 1188)">REST </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-style="italic" font-weight="700" font-size="46" transform="matrix(1 0 0 1 
2192.24 1237)">EX</text>
+    <rect x="1703.5" y="1201.5" width="400" height="138" stroke="#787878" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#A5A5A5"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 1743.75 
1260)">Redfish Discover </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="41" transform="matrix(1 0 0 1 1822.23 
1305)">Protocol</text>
+    <rect x="1704.5" y="1055.5" width="401" height="138" stroke="#385723" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#70AD47"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 1751.21 
1113)">Redfish Config </text>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 1838.3 
1162)">Driver</text>
+    <rect x="1051.5" y="1515.5" width="621" height="251" stroke="#ED7D31" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#FBE5D6"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 1109.41 1657)">UEFI 
Network Stack</text>
+    <rect x="1051.5" y="1881.5" width="621" height="142" stroke="#41719C" 
stroke-width="4.58333" stroke-miterlimit="8" fill="#5B9BD5"/>
+    <text font-family="Trebuchet MS,Trebuchet MS_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1311.65 
1972)">NIC</text>
+    <path d="M2.29157-0.020976 3.72062 156.099-0.862519 156.141-2.29157 
0.020976ZM15.1365 151.411 1.63881 179.035-12.3623 151.662Z" fill="#FF0000" 
transform="matrix(-1 0 0 1 1362.14 2023.5)"/>
+  </g>
+</svg>
diff --git 
a/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-stack.svg 
b/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-stack.svg
new file mode 100755
index 00000000..670c29bf
--- /dev/null
+++ 
b/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-stack.svg
@@ -0,0 +1,99 @@
+<svg width="3433" height="1895" style="background-color:white" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xml:space="preserve" overflow="hidden">
+  <defs>
+    <filter id="fx0" x="-10%" y="-10%" width="120%" height="120%" 
filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse">
+      <feComponentTransfer color-interpolation-filters="sRGB">
+        <feFuncR type="discrete" tableValues="0 0"/>
+        <feFuncG type="discrete" tableValues="0 0"/>
+        <feFuncB type="discrete" tableValues="0 0"/>
+        <feFuncA type="linear" slope="0.380392" intercept="0"/>
+      </feComponentTransfer>
+      <feGaussianBlur stdDeviation="4.8119 4.8119"/>
+    </filter>
+    <clipPath id="clip1">
+      <rect x="572" y="465" width="3433" height="1895"/>
+    </clipPath>
+    <clipPath id="clip2">
+      <rect x="-5" y="13" width="863" height="130"/>
+    </clipPath>
+    <clipPath id="clip3">
+      <rect x="0" y="0" width="883" height="139"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#clip1)" transform="translate(-572 -465)">
+    <rect x="572" y="1277" width="3256" height="1083" fill="#C0E4FF" 
fill-opacity="0.4"/>
+    <path d="M654.5 1778.17C654.5 1742.45 683.453 1713.5 719.168 
1713.5L1793.83 1713.5C1829.55 1713.5 1858.5 1742.45 1858.5 1778.17L1858.5 
2036.83C1858.5 2072.55 1829.55 2101.5 1793.83 2101.5L719.168 2101.5C683.453 
2101.5 654.5 2072.55 654.5 2036.83Z" stroke="#A6A6A6" stroke-width="9.16667" 
stroke-linejoin="round" stroke-miterlimit="10" stroke-dasharray="36.6667 27.5" 
fill="none" fill-rule="evenodd"/>
+    <path d="M690 978.669C690 922.518 735.518 877 791.668 877L1586.33 
877C1642.48 877 1688 922.518 1688 978.669L1688 1385.33C1688 1441.48 1642.48 
1487 1586.33 1487L791.668 1487C735.518 1487 690 1441.48 690 1385.33Z" 
fill="#D9D9D9" fill-rule="evenodd"/>
+    <rect x="716" y="598" width="945" height="136" fill="#76B900"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 1026.14 683)">Setup Menu</text>
+    <rect x="716.5" y="1114.5" width="945" height="136" stroke="#0070C0" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#9E9E9E"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 916.711 1199)">EDK2 Setup 
Browser</text>
+    <rect x="716" y="952" width="945" height="136" fill="#9E9E9E"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 917.571 1038)">EDK2 Display 
Engine</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1122.4 
545)">User</text>
+    <rect x="716" y="1289" width="945" height="136" fill="#9E9E9E"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 941.92 1374)">EDK2 HII Database</text>
+    <rect x="716.5" y="1757.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 779.595 1842)">Chipset/HII </text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 838.88 1901)">driver</text>
+    <rect x="1124.5" y="1757.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1188 1842)">Chipset/HII </text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1247.28 1901)">driver</text>
+    <rect x="882.5" y="1856.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 945.765 1941)">Chipset/HII </text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1005.05 2000)">driver</text>
+    <rect x="1313.5" y="1856.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1376.4 1941)">Chipset/HII </text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1435.69 2000)">driver</text>
+    <path d="M1191.86 756.917 1191.86 929.504 1186.14 929.504 1186.14 
756.917ZM1175.25 761.5 1189 734 1202.75 761.5ZM1202.75 924.92 1189 952.42 
1175.25 924.92Z" fill="#8C8C8C"/>
+    <path d="M1185.86 1517.92 1185.86 1690.5 1180.14 1690.5 1180.14 
1517.92ZM1169.25 1522.5 1183 1495 1196.75 1522.5ZM1196.75 1685.92 1183 1713.42 
1169.25 1685.92Z" fill="#8C8C8C"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="55" transform="matrix(1 0 0 1 
1247.51 801)">Graphic protocols</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="55" transform="matrix(1 0 0 1 
1247.51 867)">Console input protocols</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="55" transform="matrix(1 0 0 1 
1232.43 1574)">EFI Config Access Protocol</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="55" transform="matrix(1 0 0 1 
1232.43 1640)">HII Database Protocol</text>
+    <rect x="657.5" y="2152.5" width="1204" height="145" stroke="#008564" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="73" transform="matrix(1 0 0 1 1203.49 2245)">HW</text>
+    <path d="M2422.5 1782C2422.5 1746.38 2451.38 1717.5 2487 1717.5L3562 
1717.5C3597.62 1717.5 3626.5 1746.38 3626.5 1782L3626.5 2040C3626.5 2075.62 
3597.62 2104.5 3562 2104.5L2487 2104.5C2451.38 2104.5 2422.5 2075.62 2422.5 
2040Z" stroke="#A6A6A6" stroke-width="9.16667" stroke-linejoin="round" 
stroke-miterlimit="10" stroke-dasharray="36.6667 27.5" fill="none" 
fill-rule="evenodd"/>
+    <path d="M2457 970.169C2457 912.638 2503.64 866 2561.17 866L3350.83 
866C3408.36 866 3455 912.638 3455 970.169L3455 1386.83C3455 1444.36 3408.36 
1491 3350.83 1491L2561.17 1491C2503.64 1491 2457 1444.36 2457 1386.83Z" 
fill="#D9D9D9" fill-rule="evenodd"/>
+    <rect x="2483" y="602" width="945" height="135" fill="#76B900"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 2754.31 687)">Feature drivers</text>
+    <rect x="2483" y="956" width="945" height="302" fill="#0070C0"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 2652.04 1124)">EDK2 HII Utility 
Library</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2724.81 
549)">Redfish Interface</text>
+    <rect x="2483" y="1291" width="945" height="136" fill="#9E9E9E"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="64" transform="matrix(1 0 0 1 2709.33 1376)">EDK2 HII Database</text>
+    <rect x="2483.5" y="1760.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 2532.97 1847)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 2599.43 1906)">driver</text>
+    <rect x="2892.5" y="1760.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 2941.37 1847)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 3007.83 1906)">driver</text>
+    <rect x="2650.5" y="1860.5" width="376" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 2699.14 1947)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 2765.6 2006)">driver</text>
+    <rect x="3080.5" y="1860.5" width="377" height="199" stroke="#656565" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#8C8C8C"/>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 3129.78 1947)">Chipset/HII </text>
+    <text fill="#FFFFFF" font-family="Trebuchet MS,Trebuchet 
MS_MSFontService,sans-serif" font-weight="400" font-size="55" 
transform="matrix(1 0 0 1 3196.24 2006)">driver</text>
+    <path d="M2958.86 759.917 2958.86 932.542 2953.14 932.542 2953.14 
759.917ZM2942.25 764.5 2956 737 2969.75 764.5ZM2969.75 927.959 2956 955.459 
2942.25 927.959Z" fill="#8C8C8C"/>
+    <path d="M2953.86 1520.92 2953.86 1693.5 2948.14 1693.5 2948.14 
1520.92ZM2937.25 1525.5 2951 1498 2964.75 1525.5ZM2964.75 1688.92 2951 1716.42 
2937.25 1688.92Z" fill="#8C8C8C"/>
+    <text fill="#FF0000" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic" 
font-weight="700" font-size="55" transform="matrix(1 0 0 1 3007.22 833)">EDKII 
Redfish Platform Configure Protocol</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="55" transform="matrix(1 0 0 1 
3007.22 1592)">EFI Config Access Protocol</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-style="italic" font-weight="400" font-size="55" transform="matrix(1 0 0 1 
3007.22 1658)">HII Database Protocol</text>
+    <rect x="2425.5" y="2155.5" width="1203" height="145" stroke="#008564" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="400" 
font-size="73" transform="matrix(1 0 0 1 2970.9 2248)">HW</text>
+    <g clip-path="url(#clip2)" filter="url(#fx0)" transform="translate(1645 
1071)">
+      <g clip-path="url(#clip3)">
+        <path d="M0.406692-4.48158 800.047 68.0836 799.233 77.0468-0.406692 
4.48158ZM796.32 58.4574 822.465 74.6365 793.835 85.8449Z" fill="#0071C5" 
transform="matrix(1 0 0 -1 16.4999 118.354)"/>
+      </g>
+    </g>
+    <path d="M0.414223-4.56458 800.054 68.0006 799.226 77.1298-0.414223 
4.56458ZM796.32 58.4574 822.465 74.6365 793.835 85.8449Z" fill="#0071C5" 
transform="matrix(1 0 0 -1 1661.5 1182.14)"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="55" transform="matrix(1 0 0 1 1783.55 1054)">Move 
necessary functions </text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="55" transform="matrix(1 0 0 1 1783.55 1120)">to 
library </text>
+    <rect x="1721.5" y="1792.5" width="303" height="193" stroke="#890C58" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 1821 1874)">UEFI </text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 1780.6 1933)">variable</text>
+    <rect x="3489.5" y="1768.5" width="303" height="194" stroke="#890C58" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10"/>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3589.11 1851)">UEFI </text>
+    <text fill="#FFFFFF" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-weight="700" 
font-size="55" transform="matrix(1 0 0 1 3548.71 1910)">variable</text>
+    <path d="M2145.64 1853.11 2293.36 1853.11 2293.36 1890.46 2145.64 
1890.46ZM2145.64 1918.54 2293.36 1918.54 2293.36 1955.89 2145.64 1955.89Z" 
fill="#C0E4FF" fill-rule="evenodd"/>
+  </g>
+</svg>
diff --git 
a/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg 
b/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg
new file mode 100755
index 00000000..2dd1fb61
--- /dev/null
+++ b/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg
@@ -0,0 +1,75 @@
+<svg width="4191" height="2178" style="background-color:white" 
xmlns="http://www.w3.org/2000/svg"; xmlns:xlink="http://www.w3.org/1999/xlink"; 
xml:space="preserve" overflow="hidden">
+  <defs>
+    <clipPath id="clip0">
+      <rect x="66" y="210" width="4191" height="2178"/>
+    </clipPath>
+  </defs>
+  <g clip-path="url(#clip0)" transform="translate(-66 -210)">
+    <path d="M487.5 379.5C487.5 364.588 498.469 352.5 512 352.5 525.531 352.5 
536.5 364.588 536.5 379.5 536.5 394.412 525.531 406.5 512 406.5 498.469 406.5 
487.5 394.412 487.5 379.5Z" stroke="#006047" stroke-width="9.16667" 
stroke-linejoin="round" stroke-miterlimit="10" fill="#008564" 
fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 104.76 
290)">REDFISH_FEATURE_CALLBACK()</text>
+    <rect x="609.5" y="522.5" width="709" height="133" stroke="#000000" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 839.622 
610)">Identify()</text>
+    <rect x="1178.5" y="767.5" width="709" height="133" stroke="#000000" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1433.4 
855)">Check()</text>
+    <rect x="1759.5" y="1046.5" width="709" height="134" stroke="#000000" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1928.64 
1134)">Provisioning()</text>
+    <rect x="1597.5" y="1422.5" width="709" height="133" stroke="#000000" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1808.4 
1510)">Consume()</text>
+    <rect x="2140.5" y="1730.5" width="709" height="133" stroke="#000000" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2376.59 
1818)">Update()</text>
+    <path d="M0-2.29167 182.65-2.29167C183.915-2.29167 184.941-1.26565 184.941 
0L184.941 74.3695 180.358 74.3695 180.358 0 182.65 2.29167 0 2.29167ZM196.4 
69.7861 182.65 97.2861 168.9 69.7861Z" fill="#008563" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 511.5 406.5)"/>
+    <path d="M988.5 831.208 1083.64 831.208C1084.91 831.208 1085.93 832.234 
1085.93 833.5L1085.93 833.591 1083.64 831.299 1155.86 831.299 1155.86 835.882 
1083.64 835.882C1082.37 835.882 1081.35 834.856 1081.35 833.591L1081.35 833.5 
1083.64 835.792 988.5 835.792ZM1151.28 819.841 1178.78 833.591 1151.28 
847.341Z" fill="#008563"/>
+    <path d="M0-2.29167 101.164-2.29167C102.43-2.29167 103.456-1.26565 103.456 
0L103.456 0.633366 101.164-1.6583 179.411-1.6583 179.411 2.92503 101.164 
2.92503C99.8983 2.92503 98.8722 1.89902 98.8722 0.633366L98.8722 0 101.164 
2.29167 0 2.29167ZM174.827-13.1166 202.327 0.633366 174.827 14.3834Z" 
fill="#008563" transform="matrix(1 0 0 -1 1557.5 1114.13)"/>
+    <path d="M0-2.29167 348.186-2.29167C349.452-2.29167 350.478-1.26565 
350.478 0L350.478 42.4958 345.894 42.4958 345.894 0 348.186 2.29167 0 
2.29167ZM361.936 37.9125 348.186 65.4125 334.436 37.9125Z" fill="#008563" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 1532.5 1141.5)"/>
+    <path d="M0-2.29167 241.064-2.29167C242.329-2.29167 243.356-1.26565 
243.356 0L243.356 165.488 238.772 165.488 238.772 0 241.064 2.29167 0 
2.29167ZM254.814 160.904 241.064 188.404 227.314 160.904Z" fill="#008563" 
transform="matrix(1.83697e-16 1 1 -1.83697e-16 1952.5 1555.5)"/>
+    <path d="M511.5 2311.5C511.5 2296.59 522.469 2284.5 536 2284.5 549.531 
2284.5 560.5 2296.59 560.5 2311.5 560.5 2326.41 549.531 2338.5 536 2338.5 
522.469 2338.5 511.5 2326.41 511.5 2311.5Z" stroke="#006047" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#008564" fill-rule="evenodd"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="64" transform="matrix(1 0 0 1 316.965 2332)">Done 
</text>
+    <path d="M965.584 860.5 965.584 1572.52C965.584 1573.79 964.558 1574.82 
963.292 1574.82L535.5 1574.82 537.792 1572.52 537.792 2261.63 533.209 2261.63 
533.209 1572.52C533.209 1571.26 534.235 1570.23 535.5 1570.23L963.292 1570.23 
961.001 1572.52 961.001 860.5ZM549.25 2257.05 535.5 2284.55 521.75 2257.05Z" 
fill="#008563"/>
+    <path d="M2497.82 1863.5 2497.82 2311.4C2497.82 2312.67 2496.79 2313.7 
2495.53 2313.7L583.418 2313.7 583.418 2309.11 2495.53 2309.11 2493.23 2311.4 
2493.23 1863.5ZM588 2325.15 560.5 2311.4 588 2297.65Z" fill="#008563"/>
+    <path d="M2728 1074.17C2728 1059.72 2739.72 1048 2754.17 1048L3410.83 
1048C3425.28 1048 3437 1059.72 3437 1074.17L3437 1178.83C3437 1193.28 3425.28 
1205 3410.83 1205L2754.17 1205C2739.72 1205 2728 1193.28 2728 1178.83Z" 
fill="#0071C5" fill-rule="evenodd" fill-opacity="0.501961"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2869.23 1148)">HTTP 
</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 3021.62 
1148)">POST/PUT</text>
+    <path d="M3112 2034.33C3112 2015.37 3127.37 2000 3146.33 2000L3786.67 
2000C3805.63 2000 3821 2015.37 3821 2034.33L3821 2171.67C3821 2190.63 3805.63 
2206 3786.67 2206L3146.33 2206C3127.37 2206 3112 2190.63 3112 2171.67Z" 
fill="#0071C5" fill-rule="evenodd" fill-opacity="0.501961"/>
+    <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400" 
font-size="64" transform="matrix(1 0 0 1 3191.74 2127)">HTTP </text>
+    <text fill="#FF0000" font-family="Arial,Arial_MSFontService,sans-serif" 
font-weight="400" font-size="64" transform="matrix(1 0 0 1 3376.79 
2127)">PATCH/PUT</text>
+    <rect x="1572" y="418" width="896" height="130" fill="#008564"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 1655.98 
505)">RedfishResourceIdentifyLib</text>
+    <path d="M0.0452146-1.71815 11.9202-1.40565 23.8145-0.526554 35.5234 
0.919242 46.906 2.80438 57.9272 5.19539 68.5072 8.02728 78.5249 11.2384 87.9266 
14.8322 96.5836 18.7466 104.375 22.923 111.238 27.3016 117.131 31.9661 121.965 
36.7847C122.036 36.8551 122.1 36.9316 122.157 37.0131L125.532 41.8256C125.598 
41.9198 125.655 42.0203 125.701 42.1257L127.826 47.0007C127.885 47.1376 127.927 
47.2817 127.949 47.4294L128.699 52.3669 129.449 57.3044 129.326 56.8757 131.451 
61.7507 131.282 61.4506 134.657 66.2631 134.465 66.0347 139.153 70.7222 144.756 
75.1536 151.363 79.3641 158.938 83.423 167.396 87.2466 176.555 90.7711 186.4 
93.9259 196.82 96.7148 207.677 99.0704 218.967 100.929 231.233 102.16 230.889 
105.58 218.408 104.321 206.948 102.43 195.93 100.035 185.35 97.1991 175.32 
93.9789 165.979 90.3784 157.312 86.452 149.512 82.2609 142.619 77.8464 136.722 
73.1528 132.035 68.4653C131.964 68.3949 131.9 68.3184 131.843 68.2369L128.468 
63.4244C128.402 63.3302 128.345 63.2297 128.299
+ 63.1243L126.174 58.2493C126.115 58.1124 126.073 57.9683 126.051 
57.8206L125.301 52.8831 124.551 47.9456 124.674 48.3743 122.549 43.4993 122.718 
43.7994 119.343 38.9869 119.535 39.2153 114.994 34.6589 109.387 30.1984 102.75 
25.952 95.1664 21.8784 86.6984 18.0428 77.475 14.5116 67.6178 11.3477 57.1978 
8.55461 46.344 6.19562 35.1016 4.33076 23.5605 2.90155 11.8298 
2.03065-0.0452146 1.71815ZM227.312 89.8694 253.937 105.246 225.66 117.32Z" 
fill="#008563" transform="matrix(1 0 0 -1 1318.5 588.746)"/>
+    <rect x="2687" y="738" width="425" height="102" fill="#5D1682" 
fill-opacity="0.501961"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 2797.23 
806)">GetData</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 2970.82 
806)">()</text>
+    <text fill="#890C58" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 2696.04 
693)">EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL</text>
+    <path d="M0.0837419-1.71671 5.20874-1.46671 10.4785-0.765991 15.7435 
0.383721 21.0012 1.98096 26.1383 4.02918 31.2374 6.44749 36.2738 9.24844 
41.2531 12.499 50.8027 19.8914 59.9974 28.63 68.7284 38.5528 76.822 49.544 
84.2726 61.5307 91.0188 74.258 96.9486 87.7463 101.933 101.866 105.969 116.416 
108.997 131.282 110.831 146.482 111.467 161.742 112.092 176.867 113.894 191.795 
116.872 206.407 120.844 220.729 125.746 234.616 131.574 247.871 138.147 260.389 
145.458 272.09 153.443 282.851 161.92 292.557 170.872 301.067 180.183 308.333 
184.928 311.366 189.774 314.061 189.495 313.937 197.654 316.733 196.54 319.985 
188.38 317.188C188.284 317.155 188.19 317.114 188.101 317.064L183.072 314.259 
178.067 311.042 168.503 303.557 159.33 294.818 150.682 284.899 142.542 273.91 
135.103 261.986 128.426 249.254 122.504 235.759 117.531 221.646 113.503 207.093 
110.481 192.205 108.658 177.008 108.033 161.883 107.419 146.893 105.628 131.968 
102.656 117.334 98.6916 103.009 93.8014 89.1287 87.9812 75.867
+ 81.3524 63.3443 74.053 51.581 66.1466 40.8222 57.6276 31.12 48.6973 22.6086 
39.3719 15.376 34.6012 12.2516 29.7626 9.55251 24.8617 7.22082 19.9988 5.26904 
15.0065 3.74128 10.0215 2.64099 5.04126 1.96671-0.0837419 1.71671ZM195.756 
303.927 219.415 323.564 189.51 330.709Z" fill="#890857" transform="matrix(1 0 0 
-1 2468.5 1113.06)"/>
+    <rect x="2690" y="863" width="422" height="102" fill="#5D1682" 
fill-opacity="0.501961"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 2757.16 
931)">GeOemData</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 3013.82 
931)">()</text>
+    <path d="M0.092493-1.71626 10.53-1.15376 21.0276 0.553809 31.3759 3.27561 
41.4048 6.94903 51.1654 11.5055 60.4854 16.8871 69.2961 23.028 77.5298 29.798 
85.1321 37.1392 91.9881 45.0638 98.02 53.4335 103.109 62.1333 107.25 71.1596 
110.32 80.4632 112.247 89.9086 112.902 99.4474 113.527 108.76 115.372 117.784 
118.32 126.713 122.313 135.41 127.292 143.813 133.088 151.941 139.734 159.559 
147.137 166.769 155.155 173.36 163.727 179.273 172.798 184.512 182.29 188.943 
192.089 192.51 191.834 192.439 199.996 194.058 199.327 197.43 191.165 
195.811C191.079 195.794 190.994 195.77 190.911 195.74L180.835 192.057 171.077 
187.488 161.773 182.102 152.97 176.015 144.738 169.231 137.141 161.816 130.287 
153.934 124.333 145.562 119.187 136.84 115.055 127.787 112.003 118.466 110.098 
108.99 109.473 99.6776 108.878 90.5914 107.055 81.5368 104.125 72.5904 100.141 
63.8667 95.23 55.4415 89.3869 47.3112 82.7429 39.6108 75.3452 32.452 67.3289 
25.847 58.7646 19.8629 49.7096 14.6195 40.2202 10.176 30.4991
+ 6.59939 20.4724 3.94619 10.345 2.27876-0.092493 1.71626ZM197.096 181.479 
222.341 199.029 193.154 208.695Z" fill="#890857" transform="matrix(1 0 0 -1 
2468.5 1113.53)"/>
+    <path d="M0.0142748-1.71869 37.6393-1.40619 56.1033-0.968266 
74.1162-0.405411 91.5677 0.282584 108.209 1.0958 124.032 1.97138 138.811 
3.03569 152.384 4.099 164.666 5.28927 170.254 5.917 175.456 6.54359 180.246 
7.23647 184.618 7.86102 188.55 8.55768 192.081 9.25098 195.079 9.95147 197.643 
10.6553 199.7 11.3802 201.269 12.1502C201.394 12.2131 201.512 12.2911 201.619 
12.3825L202.494 13.1325C202.684 13.2956 202.836 13.4982 202.94 13.7263L203.252 
14.4138 203.565 15.1013 203.119 14.5075 203.994 15.2575 203.644 15.0252 205.019 
15.7127 206.762 16.3177 209.143 16.9678 212.017 17.639 215.456 18.3135 219.3 
18.9952 223.618 19.611 228.371 20.299 233.518 20.9186 239.067 21.542 251.291 
22.7268 264.822 23.7865 279.561 24.8482 295.283 25.7214 311.959 26.5333 329.318 
27.2201 347.304 27.7821 365.722 28.1566 380.37 28.2979 380.337 31.7352 365.653 
31.5934 347.196 31.2179 329.182 30.6549 311.791 29.9667 295.092 29.1536 279.314 
28.2768 264.553 27.2135 250.959 26.1482 238.683 24.958 233.107 24.3314
+ 227.879 23.701 223.132 23.014 218.7 22.3798 214.794 21.6865 211.233 20.986 
208.232 20.2822 205.613 19.5573 203.481 18.7873 202.106 18.0998C201.981 18.0369 
201.863 17.9589 201.756 17.8675L200.881 17.1175C200.691 16.9544 200.539 16.7518 
200.435 16.5237L200.123 15.8362 199.81 15.1487 200.256 15.7425 199.381 14.9925 
199.731 15.2248 198.55 14.6198 196.732 13.9697 194.296 13.2985 191.419 12.624 
187.95 11.9423 184.132 11.264 179.754 10.6385 175.044 9.95641 169.871 9.333 
164.334 8.71073 152.116 7.526 138.564 6.46431 123.843 5.40363 108.041 4.5292 
91.4323 3.71742 74.0088 3.03041 56.0217 2.46827 37.6107 2.03119-0.0142748 
1.71869ZM375.903 16.223 403.269 30.2377 375.637 43.7217Z" fill="#890857" 
transform="matrix(1 0 0 -1 2849.5 1796.74)"/>
+    <path d="M2849.52 1794.78 2868.52 1795.03 2887.45 1795.85 2906.05 1797.1 
2924.23 1798.85 2941.83 1800.98 2958.63 1803.49 2974.62 1806.37 2989.49 1809.57 
3003.23 1813.02 3015.62 1816.73 3021.31 1818.69 3026.61 1820.71 3031.47 1822.73 
3035.92 1824.82 3039.92 1826.91 3043.47 1829.1 3046.57 1831.36 3049.18 1833.57 
3051.29 1835.92C3051.34 1835.98 3051.39 1836.05 3051.44 1836.12L3052.87 
1838.31C3052.94 1838.41 3053 1838.51 3053.04 1838.63L3053.91 1840.88C3053.96 
1841 3054 1841.13 3054.01 1841.26L3054.33 1843.44 3054.64 1845.63 3054.54 
1845.25 3055.41 1847.5 3055.25 1847.18 3056.69 1849.37 3056.54 1849.17 3058.47 
1851.36 3060.8 1853.32 3063.7 1855.42 3067.01 1857.4 3070.88 1859.49 3075.17 
1861.51 3079.91 1863.48 3085.09 1865.39 3090.68 1867.31 3102.93 1870.98 3116.54 
1874.4 3131.3 1877.57 3147.12 1880.43 3163.88 1882.92 3181.33 1885.04 3199.42 
1886.79 3217.99 1888.04 3232.84 1888.55 3232.72 1891.99 3217.76 1891.46 3199.08 
1890.21 3180.92 1888.46 3163.37 1886.32 3146.51 1883.82
+ 3130.58 1880.93 3115.71 1877.73 3101.94 1874.27 3089.56 1870.56 3083.9 
1868.61 3078.59 1866.65 3073.7 1864.62 3069.25 1862.51 3065.24 1860.35 3061.67 
1858.2 3058.57 1855.93 3055.9 1853.64 3053.96 1851.45C3053.91 1851.39 3053.86 
1851.32 3053.81 1851.26L3052.38 1849.07C3052.31 1848.97 3052.25 1848.86 3052.21 
1848.75L3051.34 1846.5C3051.29 1846.38 3051.25 1846.25 3051.24 1846.12L3050.92 
1843.93 3050.61 1841.74 3050.71 1842.12 3049.84 1839.87 3050 1840.19 3048.56 
1838.01 3048.71 1838.2 3046.95 1836.18 3044.55 1834.14 3041.66 1832.02 3038.33 
1829.96 3034.45 1827.93 3030.15 1825.9 3025.39 1823.92 3020.19 1821.94 3014.63 
1820.02 3002.39 1816.35 2988.76 1812.93 2974.01 1809.75 2958.12 1806.89 2941.42 
1804.39 2923.9 1802.27 2905.82 1800.53 2887.3 1799.28 2868.48 1798.47 2849.48 
1798.22ZM3228.52 1876.42 3255.7 1890.8 3227.88 1903.91Z" fill="#890857"/>
+    <path d="M2578 1103.75 2638.5 1103.75 2638.5 1080 2686 1127.5 2638.5 1175 
2638.5 1151.25 2578 1151.25Z" fill="#0071C5" fill-rule="evenodd" 
fill-opacity="0.501961"/>
+    <path d="M2956.92 1877.31 3000.36 1919.95 3016.93 1903.07 3017.55 1969.96 
2950.65 1970.59 2967.22 1953.71 2923.79 1911.07Z" fill="#0071C5" 
fill-rule="evenodd" fill-opacity="0.501961"/>
+    <path d="M939.5 833.5C939.5 818.588 950.469 806.5 964 806.5 977.531 806.5 
988.5 818.588 988.5 833.5 988.5 848.412 977.531 860.5 964 860.5 950.469 860.5 
939.5 848.412 939.5 833.5Z" stroke="#006047" stroke-width="9.16667" 
stroke-linejoin="round" stroke-miterlimit="10" fill="#008564" 
fill-rule="evenodd"/>
+    <path d="M965.792 655.5 965.792 730.981C965.792 732.247 964.766 733.273 
963.501 733.273L963.5 733.273 965.792 730.981 965.792 783.546 961.208 783.546 
961.208 730.981C961.208 729.716 962.235 728.69 963.5 728.69L963.501 728.69 
961.209 730.981 961.209 655.5ZM977.25 778.963 963.5 806.463 949.75 778.963Z" 
fill="#008563"/>
+    <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 815.508 946)">false</text>
+    <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1029.08 808)">true</text>
+    <path d="M1507.5 1114.5C1507.5 1099.59 1518.69 1087.5 1532.5 1087.5 
1546.31 1087.5 1557.5 1099.59 1557.5 1114.5 1557.5 1129.41 1546.31 1141.5 
1532.5 1141.5 1518.69 1141.5 1507.5 1129.41 1507.5 1114.5Z" stroke="#006047" 
stroke-width="9.16667" stroke-linejoin="round" stroke-miterlimit="10" 
fill="#008564" fill-rule="evenodd"/>
+    <path d="M1535.38 900.5 1535.38 993.849C1535.38 995.114 1534.35 996.14 
1533.09 996.14L1532.5 996.14 1534.79 993.849 1534.79 1064.28 1530.21 1064.28 
1530.21 993.849C1530.21 992.583 1531.23 991.557 1532.5 991.557L1533.09 991.557 
1530.8 993.849 1530.8 900.5ZM1546.25 1059.7 1532.5 1087.2 1518.75 1059.7Z" 
fill="#008563"/>
+    <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1405.87 1282)">true</text>
+    <text font-family="Arial,Arial_MSFontService,sans-serif" font-weight="400" 
font-size="55" transform="matrix(1 0 0 1 1590.37 1071)">false</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="400" font-size="64" transform="matrix(1 0 0 1 328.764 
396)">Start</text>
+    <path d="M0 0 177.266 0 177.266 2109.2 354.533 2109.2" stroke="#008563" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd" transform="matrix(1.83697e-16 1 1 -1.83697e-16 
2113.5 1180.5)"/>
+    <path d="M4225.53 1612.5 4225.53 2311.62C4225.53 2312.89 4224.5 2313.91 
4223.23 2313.91L583.414 2313.91 583.414 2309.33 4223.23 2309.33 4220.94 2311.62 
4220.94 1612.5ZM588 2325.37 560.5 2311.62 588 2297.87Z" fill="#008563"/>
+    <path d="M4223.5 1536.5 4223.5 1612.57" stroke="#008563" 
stroke-width="4.58333" stroke-linejoin="round" stroke-miterlimit="10" 
fill="none" fill-rule="evenodd"/>
+    <path d="M2464 1438.17C2464 1423.72 2475.72 1412 2490.17 1412L3146.83 
1412C3161.28 1412 3173 1423.72 3173 1438.17L3173 1542.83C3173 1557.28 3161.28 
1569 3146.83 1569L2490.17 1569C2475.72 1569 2464 1557.28 2464 1542.83Z" 
fill="#0071C5" fill-rule="evenodd" fill-opacity="0.501961"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2601 1512)">HTTP 
</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="64" transform="matrix(1 0 0 1 2753.4 
1512)">HEAD/GET</text>
+    <path d="M2337 1468.5 2398 1468.5 2398 1445 2445 1492 2398 1539 2398 
1515.5 2337 1515.5Z" fill="#0071C5" fill-rule="evenodd" 
fill-opacity="0.501961"/>
+    <rect x="3253" y="1715" width="424" height="102" fill="#5D1682" 
fill-opacity="0.501961"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 3362.57 
1783)">GetData</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 3536.17 
1783)">()</text>
+    <text fill="#890C58" 
font-family="Calibri,Calibri_MSFontService,sans-serif" font-style="italic" 
font-weight="700" font-size="46" transform="matrix(1 0 0 1 3195.85 
1686)">EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL</text>
+    <rect x="3256" y="1840" width="421" height="102" fill="#5D1682" 
fill-opacity="0.501961"/>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 3322.5 
1908)">GeOemData</text>
+    <text font-family="Calibri,Calibri_MSFontService,sans-serif" 
font-weight="700" font-size="50" transform="matrix(1 0 0 1 3579.17 
1908)">()</text>
+  </g>
+</svg>
diff --git a/RedfishClientPkg/Readme.md b/RedfishClientPkg/Readme.md
index 0aec0580..190ddb22 100644
--- a/RedfishClientPkg/Readme.md
+++ b/RedfishClientPkg/Readme.md
@@ -31,13 +31,13 @@ Redfish property with HII option.

 The current design of UEFI Redfish Client EDK2 Implementation can already
 support the provisioning of firmware-owned platform Redfish resource, however,
-this requires addtional support on edk2 HII. Therefore, provisioning of
+this requires additional support on edk2 HII. Therefore, provisioning of
 firmware managed platform Redfish resource would be the second stage.

 Below are the block diagrams of UEFI Redfish Client EDK2 Implementation.

 ## <a name="[0]">EDK2 Redfish Client Implementation Diagrams</a>
-![UEFI Redfish Client 
Implementation](https://github.com/changab/edk2-staging/blob/edk2-redfish-client/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=true)
+![UEFI Redfish Client 
Implementation](https://github.com/tianocore/edk2-redfish-client/blob/main/RedfishClientPkg/Documents/Media/RedfishClientDriverStack.svg?raw=true)

 ## EFI EDK2 Redfish Client Framework
 The functionality of each block in the diagrams are described in below 
sections,
@@ -89,7 +89,7 @@ Redfish service to platform configurations, or vice versa to 
update platform
 configurations to Redfish service. Both EDK2 Redfish Non-Collection and
 Collection Feature drivers are script auto-generated base on Redfish schema
 naming. The EDK2 Redfish Non-Collection feature driver manages the resource of
-specific Resdifsh resource type, while the EDK2 Redfish Collection feature
+specific Redfish resource type, while the EDK2 Redfish Collection feature
 driver manages the members which have the same resource type in collection
 resource (e.g the ComputerSystem resource and ComputerSystemCollection 
resource)
 .
@@ -100,18 +100,30 @@ platform configuration format and storage from EDK2 
Redfish Feature driver.
 This protocol provides the interfaces to get and set platform configuration 
with
 the format and configuration storage agnostic to the Redfish feature driver.
 The platform can provide its own EDKII Redfish Platform Config driver instance
-to access platform-specific configuration format and storage. On EDK2 open
-source, EDKII Redfish Platform Config Protocol accesses the platform
-configuration in EDK2 HII defined format.
+to access platform-specific configuration format and storage.
+
+On EDK2 open source, EDKII Redfish Platform Config Protocol accesses the
+platform configuration in EDK2 HII defined format. Below is driver stack 
diagram
+which implements EDKII Redfish Platform Config Protocol. The protocol driver
+leverages the HII interface to get or set the HII configuration on platform. By
+following the x-uefi-redfish Configure Language defined in UNI file, protocol
+driver can find corresponding HII question for given Redfish attribute. In this
+way, protocol driver creates the mapping between HII questions and Redfish
+attributes.
+
+![platform 
config](https://github.com/nicklela/edk2-redfish-client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-platform-config-protocol-stack.svg?raw=true)

 Below is the prototype of **EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL**,

 ```C
 struct _EDKII_REDFISH_PLATFORM_CONFIG_PROTOCOL {
-  EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE             GetValue;
-  EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE             SetValue;
-  EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG       GetConfigureLang;
-  EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA  GetSupportedSchema;
+  UINT64                                                Revision;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_VALUE               GetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_SET_VALUE               SetValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_DEFAULT_VALUE       GetDefaultValue;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_ATTRIBUTE           GetAttribute;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_CONFIG_LANG         GetConfigureLang;
+  EDKII_REDFISH_PLATFORM_CONFIG_GET_SUPPORTED_SCHEMA    GetSupportedSchema;
 };
 ```

@@ -181,11 +193,10 @@ x-uefi-redfish-Processor.v1_0_0
 ```
 #### x-uefi-redfish Configure Language format:
 - The string declared with x-uefi-redfish configure language is a path to the 
property
-in Redfish resource
+in Redfish schema.
 - The root of path is the Redfish resource type indicated in x-uefi-redfish 
configure
 language
-- The path is relative to root of Redfish resource type, not related to 
Redfish service
-- root.
+- The path is relative to root of [Redfish 
schema](https://redfish.dmtf.org/redfish/schema_index) defined by DMTF, not 
related to Redfish service root.

 #### Examples,
 ```C
@@ -215,7 +226,136 @@ EDK2 Build is responsible to pull the necessary EDK2 
Redfish JSON Schema to C
 Structure Convertors and EDK2 Redfish Feature drivers into edk2 build process
 according to the x-uefi-Redfish config language used in the HII VFR forms.

+## EDK2 Redfish client feature driver
+![foundation driver 
stack](https://github.com/nicklela/edk2-redfish-client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-foundation-driver-stack.svg?raw=true)
+
+Above diagram shows the way how Redfish application (Redfish feature driver) 
works with Redfish foundation
+drivers and communicate with Redfish service. Redfish feature driver relies on 
Redfish Config driver to
+provide the information of desired Rest Ex instance. To achieve this, Redfish 
feature driver has to provide
+EDKII Redfish Config Handler Protocol and Redfish Config driver will use this 
protocol to deliver Redfish
+service information.
+
+```C
+struct _EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL {
+  EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_INIT    Init;
+  EDKII_REDFISH_CONFIG_HANDLER_PROTOCOL_STOP    Stop;
+};
+```
+
+![feature driver call 
flow](https://github.com/nicklela/edk2-redfish-client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-feature-driver-call-flow.svg?raw=true)
+
+Above diagram shows the details of how Redfish feature core driver invokes 
Redfish feature drivers. To be called
+by Redfish feature core driver, Redfish feature driver has to register the 
managed URI to Redfish feature core
+driver. Then Redfish feature core driver learns the dependency of each 
different feature drivers.
+
+#### Dispatch Redfish feature drivers
+When given event is signaled, Redfish feature core driver starts the operation 
of invoking Redfish feature drivers
+by following the order from parent node to child node in the Redfish URI 
hierarchy. In the diagram, the feature
+driver which manages service root will be invoked first. And feature driver 
which manages computer system collection
+will be invoked at second position. Once Redfish feature core driver walks 
through entire Redfish URI, the operation
+is stopped.
+
+### Interface between collection feature driver and non-collection feature 
driver
+Redfish collection resource is a set of Redfish non-collection resource. 
Redfish collection feature driver works
+with non-collection feature driver to manage them. For example, boot option 
collection feature driver work with
+boot option feature driver to manage boot options in Redfish service. Computer 
system collection feature driver
+work with computer system feature driver to manage computer system resource.
+
+The interface between collection feature driver and non-collection feature 
driver is EDKII Redfish resource config
+protocol.
+
+```C
+struct _EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL {
+  EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_PROVISIONING    Provisioning;
+  EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CONSUME         Consume;
+  EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_UPDATE          Update;
+  EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_CHECK           Check;
+  EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_IDENTIFY        Identify;
+  EDKII_REDFISH_RESOURCE_CONFIG_PROTOCOL_GET_INFO        GetInfo;
+};
+```
+
+### Feature driver event
+Two events are defined for feature driver to perform necessary operation at 
given time.
+- Ready-to-Provisioning event
+  - Feature driver which requires to do operation before Redfish feature 
driver starts the synchronization can listen to
+    this event. For example, boot option feature driver may want to refresh 
boot order variable and get latest boot order
+    information before provisioning the boot options to boot options resource.
+- After-Provisioning event
+  - Feature driver which wants to do operation after Redfish feature driver 
finish the synchronization job can listen to
+    this event.
+
+### Reboot required
+When Redfish feature drivers apply user request to platform, a system reboot 
is usually required. PCD 
`gEfiRedfishClientPkgTokenSpaceGuid.PcdRedfishSystemRebootRequired` is 
introduced for this purpose. After Redfish feature
+core driver is done with synchronization job, Redfish feature core driver 
checks this PCD and perform system reboot when
+PCD is set to `TRUE`.
+
+### Synchronization design between Redfish service and BIOS
+The purpose of Redfish feature driver is to do the synchronization job between 
Redfish service and BIOS. The operation of synchronization can be simply 
divided into two types:
+
+#### Provisioning resource
+Below is the flow diagram of provisioning platform configuration to Redfish 
service at Bios resource. With the x-uefi-redfish
+configure language described in above section, Redfish feature driver collect 
all BIOS attributes from HII database and populated
+them to Redfish service.
+![provisioning](https://github.com/nicklela/edk2-redfish-client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-call-flow-provisioning.svg?raw=true)
+
+#### Consume resource
+Below is the flow diagram of consuming user request from Redfish service to 
platform configuration. Redfish feature driver finds
+corresponding HII question and apply user desired value to platform.
+![pending 
settings](https://github.com/nicklela/edk2-redfish-client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-call-flow-pending-settings.svg?raw=true)
+
+Below diagram shows the call flow of EDKII Resource Config Protocol and how to 
use this protocol to handle synchronization
+job.
+![synchronization](https://github.com/nicklela/edk2-redfish-client/blob/update-readme/RedfishClientPkg/Documents/Media/redfish-synchronization-design.svg?raw=true)
+
+Several interfaces defined in EDKII Redfish Resource Config Protocol work 
together to support Redfish synchronization:
+- Identify()
+  - This function is used to check if the given Redfish resource is the one 
the feature driver wants to manage. A platform
+    library `RedfishReesourceIdentifyLib` is introduced for platform to 
implement its own policy to identify Redfish resource.
+- Check()
+  - This function is used to check the attribute status on Redfish service. If 
all attributes the feature driver manages
+    are presented in Redfish service, feature driver must provision them 
already. Otherwise, Provisioning() will be called
+    to perform resource provisioning job.
+- Provisioning()
+  - When this function is called, feature driver will provision all attributes 
that it managed to Redfish service. This
+    operation usually create new resource at Redfish service and require 
different operation that specified by Redfish service.
+- Consume()
+  - When there is pending settings in Redfish service, this function is called 
for feature driver to consume pending settings
+    requested by user.
+- Update()
+  - When platform configuration is updated, this function is called to update 
configuration changes to Redfish service and
+    Redfish service can show the latest settings on platform.
+
+The EDKII Redfish Resource Addendum Protocol is introduced to provide platform 
addendum data that Redfish service requires.
+This protocol will be called at Provisioning() and Update() functions so 
platform can add OEM attribute or any other attribute
+specified by Redfish service.
+
+```C
+struct _EDKII_REDFISH_RESOURCE_ADDENDUM_PROTOCOL {
+  UINT64                                  Revision;    ///< Protocol revision
+  EDKII_REDFISH_RESOURCE_ADDENDUM_OEM     GetOemData;  ///< Get OEM data
+  EDKII_REDFISH_RESOURCE_ADDENDUM_DATA    GetData;     ///< Get addendum data
+};
+```
+
+#### Redfish service implementation
+The idea of Redfish synchronization design is to manage Redfish resource 
directly by platform firmware. To do this, Redfish
+synchronization functions have to work with Redfish service implementation in 
BMC firmware. This is because the interface
+between platform firmware and BMC firmware is not defined in any specification.
+Several prerequisites must be satisfied:
+- Platform firmware has permission to manage Redfish resource. BMC has ability 
to tell the difference between platform request
+  and out-of-band user. This can normally be done by identifying the bootstrap 
account in HTTP request. The bootstrap account is
+  described in Host Interface specification 1.3.0 section 9.
+- The ability to tell if there is an user who changes to Redfish resource or 
not. Redfish feature drivers can only be executed at
+  POST time. So the modification to BIOS managed resource is an asynchronous 
operation. Thus, we need below supports in Redfish service:
+  - ETAG support in HTTP header.
+  - Setting resource support (defined in Redfish specification 1.18 section 
9.10).
+  - Redfish Task support to POST and DELETE operation made by user in Redfish 
collection resource and Redfish actions.
+
+### Redfish Task design
+TBD.
+
 ## The Contributors
-Chang, Abner <abner.ch...@hpe.com>\
-Wang, Nickle <nickle.w...@hpe.com>\
+Chang, Abner <abner.ch...@amd.com>\
+Wang, Nickle <nick...@nvidia.com>\
 Chen, Aaron <aaron.c...@hpe.com>
--
2.17.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109280): https://edk2.groups.io/g/devel/message/109280
Mute This Topic: https://groups.io/mt/101732254/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to