Thanks for this, If memory is marked as reserved by HobList then gDS->AddMemorySpace will return error 15. No ?
Regards Udit > -----Original Message----- > From: Sakar Arora [mailto:sakar.ar...@arm.com] > Sent: Tuesday, September 19, 2017 4:51 PM > To: Udit Kumar <udit.ku...@nxp.com>; Meenakshi Aggarwal > <meenakshi.aggar...@nxp.com>; edk2-devel@lists.01.org; > leif.lindh...@linaro.org; ard.biesheu...@linaro.org > Subject: RE: [edk2] [PATCH v2] PeiLib : Inform UEFI memory to Linux > > You could use the DXE services method gDS->AddMemorySpace to add this > memory space to the global gMemoryMap. This is the memory map linux efi > stub reads to get information about all the available system memory. > > Thanks, > Sakar > > -----Original Message----- > From: Udit Kumar [mailto:udit.ku...@nxp.com] > Sent: Tuesday, September 19, 2017 3:41 PM > To: Sakar Arora <sakar.ar...@arm.com>; Meenakshi Aggarwal > <meenakshi.aggar...@nxp.com>; edk2-devel@lists.01.org; > leif.lindh...@linaro.org; ard.biesheu...@linaro.org > Subject: RE: [edk2] [PATCH v2] PeiLib : Inform UEFI memory to Linux > > Thanks Sakar, > I am wondering, how we can add this memory before OS, please suggest. > I guess, we cannot add in HobList when we are in DXE or BDS. > > Regards > Udit > > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > > Sakar Arora > > Sent: Tuesday, September 19, 2017 1:37 PM > > To: Meenakshi Aggarwal <meenakshi.aggar...@nxp.com>; edk2- > > de...@lists.01.org; leif.lindh...@linaro.org; > > ard.biesheu...@linaro.org > > Subject: Re: [edk2] [PATCH v2] PeiLib : Inform UEFI memory to Linux > > > > This change will create the possibility for memory space holding the > > UEFI image to be over-written by the DXE core code, since this space > > will then be available for allocation. Any such change, if required, > > should be done just before booting the OS. > > > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > > Meenakshi Aggarwal > > Sent: Tuesday, September 19, 2017 6:02 PM > > To: edk2-devel@lists.01.org; leif.lindh...@linaro.org; > > ard.biesheu...@linaro.org > > Subject: [edk2] [PATCH v2] PeiLib : Inform UEFI memory to Linux > > > > While creating Hob list, ArmPlatformPkg is hiding UEFI memory. > > whereas this memory can be used by OS. > > > > This patch, allows OS to use UEFI code area. > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Udit Kumar <udit.ku...@nxp.com> > > Signed-off-by: Meenakshi Aggarwal <meenakshi.aggar...@nxp.com> > > --- > > ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c | 69 > > ------------------------- > > 1 file changed, 69 deletions(-) > > > > diff --git a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c > > b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c > > index 2feb11f..d03214b 100644 > > --- a/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c > > +++ b/ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.c > > @@ -70,11 +70,7 @@ MemoryPeim ( > > { > > ARM_MEMORY_REGION_DESCRIPTOR *MemoryTable; > > EFI_RESOURCE_ATTRIBUTE_TYPE ResourceAttributes; > > - UINT64 ResourceLength; > > EFI_PEI_HOB_POINTERS NextHob; > > - EFI_PHYSICAL_ADDRESS FdTop; > > - EFI_PHYSICAL_ADDRESS SystemMemoryTop; > > - EFI_PHYSICAL_ADDRESS ResourceTop; > > BOOLEAN Found; > > > > // Get Virtual Memory Map from the Platform Library @@ -121,71 > > +117,6 @@ MemoryPeim ( > > ); > > } > > > > - // > > - // Reserved the memory space occupied by the firmware volume > > - // > > - > > - SystemMemoryTop = (EFI_PHYSICAL_ADDRESS)PcdGet64 > > (PcdSystemMemoryBase) + (EFI_PHYSICAL_ADDRESS)PcdGet64 > > (PcdSystemMemorySize); > > - FdTop = (EFI_PHYSICAL_ADDRESS)PcdGet64 (PcdFdBaseAddress) + > > (EFI_PHYSICAL_ADDRESS)PcdGet32 (PcdFdSize); > > - > > - // EDK2 does not have the concept of boot firmware copied into > > DRAM. To avoid the DXE > > - // core to overwrite this area we must mark the region with the > > attribute non- present > > - if ((PcdGet64 (PcdFdBaseAddress) >= PcdGet64 (PcdSystemMemoryBase)) > > && (FdTop <= SystemMemoryTop)) { > > - Found = FALSE; > > - > > - // Search for System Memory Hob that contains the firmware > > - NextHob.Raw = GetHobList (); > > - while ((NextHob.Raw = GetNextHob > > (EFI_HOB_TYPE_RESOURCE_DESCRIPTOR, NextHob.Raw)) != NULL) { > > - if ((NextHob.ResourceDescriptor->ResourceType == > > EFI_RESOURCE_SYSTEM_MEMORY) && > > - (PcdGet64 (PcdFdBaseAddress) >= NextHob.ResourceDescriptor- > > >PhysicalStart) && > > - (FdTop <= NextHob.ResourceDescriptor->PhysicalStart + > > NextHob.ResourceDescriptor->ResourceLength)) > > - { > > - ResourceAttributes = NextHob.ResourceDescriptor->ResourceAttribute; > > - ResourceLength = NextHob.ResourceDescriptor->ResourceLength; > > - ResourceTop = NextHob.ResourceDescriptor->PhysicalStart + > > ResourceLength; > > - > > - if (PcdGet64 (PcdFdBaseAddress) == NextHob.ResourceDescriptor- > > >PhysicalStart) { > > - if (SystemMemoryTop == FdTop) { > > - NextHob.ResourceDescriptor->ResourceAttribute = > > ResourceAttributes > > & ~EFI_RESOURCE_ATTRIBUTE_PRESENT; > > - } else { > > - // Create the System Memory HOB for the firmware with the non- > > present attribute > > - BuildResourceDescriptorHob (EFI_RESOURCE_SYSTEM_MEMORY, > > - ResourceAttributes & > > ~EFI_RESOURCE_ATTRIBUTE_PRESENT, > > - PcdGet64 (PcdFdBaseAddress), > > - PcdGet32 (PcdFdSize)); > > - > > - // Top of the FD is system memory available for UEFI > > - NextHob.ResourceDescriptor->PhysicalStart += > > PcdGet32(PcdFdSize); > > - NextHob.ResourceDescriptor->ResourceLength -= > PcdGet32(PcdFdSize); > > - } > > - } else { > > - // Create the System Memory HOB for the firmware with the non- > present > > attribute > > - BuildResourceDescriptorHob (EFI_RESOURCE_SYSTEM_MEMORY, > > - ResourceAttributes & > > ~EFI_RESOURCE_ATTRIBUTE_PRESENT, > > - PcdGet64 (PcdFdBaseAddress), > > - PcdGet32 (PcdFdSize)); > > - > > - // Update the HOB > > - NextHob.ResourceDescriptor->ResourceLength = PcdGet64 > > (PcdFdBaseAddress) - NextHob.ResourceDescriptor->PhysicalStart; > > - > > - // If there is some memory available on the top of the FD then > > create a > > HOB > > - if (FdTop < NextHob.ResourceDescriptor->PhysicalStart + > > ResourceLength) { > > - // Create the System Memory HOB for the remaining region (top > > of the > > FD) > > - BuildResourceDescriptorHob (EFI_RESOURCE_SYSTEM_MEMORY, > > - ResourceAttributes, > > - FdTop, > > - ResourceTop - FdTop); > > - } > > - } > > - Found = TRUE; > > - break; > > - } > > - NextHob.Raw = GET_NEXT_HOB (NextHob); > > - } > > - > > - ASSERT(Found); > > - } > > - > > // Build Memory Allocation Hob > > InitMmu (MemoryTable); > > > > -- > > 1.9.1 > > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel > > IMPORTANT NOTICE: The contents of this email and any attachments are > > confidential and may also be privileged. If you are not the intended > > recipient, please notify the sender immediately and do not disclose > > the contents to any other person, use it for any purpose, or store or > > copy the information in any medium. Thank you. > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel > IMPORTANT NOTICE: The contents of this email and any attachments are > confidential and may also be privileged. If you are not the intended > recipient, > please notify the sender immediately and do not disclose the contents to any > other person, use it for any purpose, or store or copy the information in any > medium. Thank you. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel