X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FPCD%2FPei%2FService.c;h=66e72f75e78c44b22ded2274b8ac55c664bb7f5e;hb=6ac15f7c8a1cfad9e0ca0dfd8643fd9c79b757cd;hp=ab3059c7356ad3fbe72db401f4331118aaf07e7f;hpb=6ddd3af70b11da43538e98a54a4b7f6b3480f181;p=mirror_edk2.git diff --git a/MdeModulePkg/Universal/PCD/Pei/Service.c b/MdeModulePkg/Universal/PCD/Pei/Service.c index ab3059c735..66e72f75e7 100644 --- a/MdeModulePkg/Universal/PCD/Pei/Service.c +++ b/MdeModulePkg/Universal/PCD/Pei/Service.c @@ -412,6 +412,7 @@ SetWorker ( switch (LocalTokenNumber & PCD_TYPE_ALL_SET) { case PCD_TYPE_VPD: case PCD_TYPE_HII: + case PCD_TYPE_HII|PCD_TYPE_STRING: { ASSERT (FALSE); return EFI_INVALID_PARAMETER; @@ -624,6 +625,7 @@ GetWorker ( return (VOID *) (UINTN) (PcdGet32 (PcdVpdBaseAddress) + VpdHead->Offset); } + case PCD_TYPE_HII|PCD_TYPE_STRING: case PCD_TYPE_HII: { VariableHead = (VARIABLE_HEAD *) ((UINT8 *)PeiPcdDb + Offset); @@ -639,7 +641,11 @@ GetWorker ( // // Return the default value specified by Platform Integrator // - return (VOID *) ((UINT8 *) PeiPcdDb + VariableHead->DefaultValueOffset); + if ((LocalTokenNumber & PCD_TYPE_ALL_SET) == (PCD_TYPE_HII|PCD_TYPE_STRING)) { + return (VOID*)&StringTable[*(UINT16*)((UINT8*)PeiPcdDb + VariableHead->DefaultValueOffset)]; + } else { + return (VOID *) ((UINT8 *) PeiPcdDb + VariableHead->DefaultValueOffset); + } } }