aboutsummaryrefslogtreecommitdiffstats
path: root/Lessons/Lesson_25
diff options
context:
space:
mode:
Diffstat (limited to 'Lessons/Lesson_25')
-rw-r--r--Lessons/Lesson_25/README.md147
1 files changed, 147 insertions, 0 deletions
diff --git a/Lessons/Lesson_25/README.md b/Lessons/Lesson_25/README.md
index be07491..8cdae0e 100644
--- a/Lessons/Lesson_25/README.md
+++ b/Lessons/Lesson_25/README.md
@@ -302,6 +302,153 @@ PcdDynamicExInt32=77777777
```
And QEMU re-launch takes things to the start.
+# `DumpDynPcd`
+
+The `MdeModulePkg` contains an application to dump Dynamic PCD information at runtime - [https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Application/DumpDynPcd](https://github.com/tianocore/edk2/tree/master/MdeModulePkg/Application/DumpDynPcd).
+
+To build it use this command:
+```
+$ build --platform=MdeModulePkg/MdeModulePkg.dsc --module=MdeModulePkg/Application/DumpDynPcd/DumpDynPcd.inf --arch=X64 --buildtarget=RELEASE --tagname=GCC5
+```
+
+Copy result to the shared disk:
+```
+$ cp Build/MdeModule/RELEASE_GCC5/X64/DumpDynPcd.efi ~/UEFI_disk/
+```
+
+If you'll execute this program under UEFI shell, you'll get the output similar to the one that we get from the `parse_pcd_db` program:
+```
+FS0:\> DumpDynPcd.efi
+Current system SKU ID: 0x0
+
+Default Token Space
+ Token = 0x00000001 - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = TRUE
+
+Default Token Space
+ Token = 0x00000002 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x7EF4000
+
+Default Token Space
+ Token = 0x00000003 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000004 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000005 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000006 - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = FALSE
+
+Default Token Space
+ Token = 0x00000007 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000008 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000009 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x1
+
+Default Token Space
+ Token = 0x0000000A - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = FALSE
+
+Default Token Space
+ Token = 0x0000000B - Type = UINT16:DYNAMIC - Size = 0x2 - Value = 0x1237
+
+Default Token Space
+ Token = 0x0000000C - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0xC000
+
+Default Token Space
+ Token = 0x0000000D - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x4000
+
+Default Token Space
+ Token = 0x0000000E - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x80000000
+
+Default Token Space
+ Token = 0x0000000F - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x7C000000
+
+Default Token Space
+ Token = 0x00000010 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x800000000
+
+Default Token Space
+ Token = 0x00000011 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x800000000
+
+Default Token Space
+ Token = 0x00000012 - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = FALSE
+
+Default Token Space
+ Token = 0x00000013 - Type = UINT16:DYNAMIC - Size = 0x2 - Value = 0x8
+
+Default Token Space
+ Token = 0x00000017 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0xFFC42000
+
+Default Token Space
+ Token = 0x00000018 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0xFFC41000
+
+Default Token Space
+ Token = 0x00000019 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0xFFC00000
+
+Default Token Space
+ Token = 0x0000001A - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x7B6E000
+
+Default Token Space
+ Token = 0x0000001B - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x0
+
+Default Token Space
+ Token = 0x0000001C - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x280
+
+Default Token Space
+ Token = 0x0000001D - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x1E0
+
+Default Token Space
+ Token = 0x0000001E - Type = UINT8:DYNAMIC - Size = 0x1 - Value = 0x0
+
+Default Token Space
+ Token = 0x0000001F - Type = UINT16:DYNAMIC - Size = 0x2 - Value = 0x208
+
+Default Token Space
+ Token = 0x00000020 - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = FALSE
+
+Default Token Space
+ Token = 0x00000021 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x320
+
+Default Token Space
+ Token = 0x00000022 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0x258
+
+Default Token Space
+ Token = 0x00000023 - Type = UINT16:DYNAMIC - Size = 0x2 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000024 - Type = UINT8:DYNAMIC - Size = 0x1 - Value = 0x1
+
+Default Token Space
+ Token = 0x00000025 - Type = UINT8:DYNAMIC - Size = 0x1 - Value = 0x1
+
+Default Token Space
+ Token = 0x00000026 - Type = UINT32:DYNAMIC - Size = 0x4 - Value = 0xCAFECAFE
+
+Default Token Space
+ Token = 0x00000027 - Type = UINT64:DYNAMIC - Size = 0x8 - Value = 0x0
+
+Default Token Space
+ Token = 0x00000028 - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = TRUE
+
+Default Token Space
+ Token = 0x00000029 - Type = BOOLEAN:DYNAMIC - Size = 0x1 - Value = TRUE
+
+A1AFF049-FDEB-442A-B320-13AB4CB72BBC
+ Token = 0x00030005 - Type = POINTER:DYNAMICEX - Size = 0x1
+ 00000000: 00 *.*
+
+A1AFF049-FDEB-442A-B320-13AB4CB72BBC
+ Token = 0x00030004 - Type = UINT16:DYNAMICEX - Size = 0x2 - Value = 0x0
+
+A1AFF049-FDEB-442A-B320-13AB4CB72BBC
+ Token = 0x00030006 - Type = UINT64:DYNAMICEX - Size = 0x8 - Value = 0x0
+
+150CAB53-AD47-4385-B5DD-BCFC76BACAF0
+ Token = 0xAF35F3B2 - Type = UINT32:DYNAMICEX - Size = 0x4 - Value = 0xBABEBABE
+```
+
# Summary
Here are all the PCD functions. You can find their definition in the [https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PcdLib.h](https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PcdLib.h):