+ VariableRuntimeCacheHob = BuildGuidHob (&gEdkiiVariableRuntimeCacheInfoHobGuid, sizeof (VARIABLE_RUNTIME_CACHE_INFO)); + ASSERT (VariableRuntimeCacheHob != NULL); + ZeroMem (VariableRuntimeCacheHob, sizeof (VARIABLE_RUNTIME_CACHE_INFO)); + + // + // AllocateRuntimePages for CACHE_INFO_FLAG and unblock it. + // + Pages = EFI_SIZE_TO_PAGES (sizeof (CACHE_INFO_FLAG)); + Buffer = AllocateRuntimePages (Pages); + ASSERT (Buffer != NULL); + Status = MmUnblockMemoryRequest ( + (EFI_PHYSICAL_ADDRESS)(UINTN)Buffer, + Pages + ); + if ((Status != EFI_UNSUPPORTED) && EFI_ERROR (Status)) { + return Status; [Ray.1] The GUID hob is created already. Maybe you should defer the HOB creation to later phase. + } + + VariableRuntimeCacheHob->CacheInfoFlag = (CACHE_INFO_FLAG *)(UINTN)Buffer; + DEBUG (( + DEBUG_INFO, + "PeiVariable: CACHE_INFO_FLAG Buffer is: 0x%x, number of pages is: 0x%x\n", [Ray.2] please use "%p" for pointer dump. "%x" only prints "int" type value. [Ray.3]I think you should create HOB at this point. -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119044): https://edk2.groups.io/g/devel/message/119044 Mute This Topic: https://groups.io/mt/106150802/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-