DTBExtnLib¶
This is the base library for all DTB support within QC Boot FW:
core.boot.6.0.xyz/
.../QcomPkg/Include/Library/
DTBExtnLib.h (APIs defined here, includes DTBDefs.h)
DTBDefs.h (I/F defined here, split out because of UEFI)
DTBExtnUEFILib.h (UEFI Wrapper APIs)
.../QcomPkg/Include/Protocol/
EFIDtbExtn.h (UEFI Protocol definition for DTBExtnLib)
.../QcomPkg/Library/DTBExtnLib/
*.c (source code)
DTBExtnLib_env.h
Handle slight platform build variants: PORT_ARMv8 & PORT_Q6
.../QcomPkg/Library/DTBExtnUEFILib/
DTBExtnUEFILib.c (Wrap Protocol Library to look like normal API calls)
DTBuefiWrapper.c (Wrap Protocol Wrapper Library to have identical API)
.../QcomPkg/XBLCore/SecDtb.c (UEFI Protocol implementation)
WHEN ADDING A NEW API, THE FOLLOWING CHANGES ARE REQUIRED:
New prototype in DTBExtnLib.h
New prototype in DTBExtnUEFILib.h
New typedef in EFIDtbExtn.h (added to struct as well)
New API in …/QcomPkg/Library/DTBExtnLib/*.c
New Protocol API in DTBExtnUEFILib.c
New Protocol Wrapper in DTBuefiWrapper.c
Blow away whole Build/ folder and rebuild from scratch
WHEN PORTING TO OTHER ENVIRONMENTS:
Only Base library code needs to be ported to other environments, e.g. qdsp6.
.../QcomPkg/Library/DTBExtnLib/
.../QcomPkg/Include/Library/DTBExtnLib.h
.../QcomPkg/Include/Library/DTBDefs.h
Actual DeviceTree Source files are found under …/Settings/