Hello Olivier and Expert,
I am trying to pass the non-contiguous physical memory map to kernel on ARMv8.
Can the UEFI pass non-contiguous physical memory area to the kernel?
I mean, Physical memory is divided into 0x80000000-0xFFFFFFFF(2GB) and 0x880000000- 0xFFFFFFFFF(30GB).
If possible, Could you explain how to describe in UEFI?
Otherwise, Could you let me know the reason?
Thanks,
On Apr 11, 2014, at 3:11 AM, Youngmin Nam youngmin.nam@samsung.com wrote:
Hello Olivier and Expert,
I am trying to pass the non-contiguous physical memory map to kernel on ARMv8.
Can the UEFI pass non-contiguous physical memory area to the kernel?
Yes
I mean, Physical memory is divided into 0x80000000-0xFFFFFFFF(2GB) and 0x880000000- 0xFFFFFFFFF(30GB).
If possible, Could you explain how to describe in UEFI?
The platform passes up the info in the EFI Memory map. So that is a gBS->GetMemoryMap() call. The shell has a memmap command that dumps the data.
How to add memory regions is not defined in UEFI, but it is defined in PI.
The region is added via gDS->AddMemorySpace()
The initial map is based on EFI_HOB_TYPE_RESOURCE_DESCRIPTOR HOBs passed into the DXE Core
https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdeModulePkg/Core/Dxe/Gcd/Gcd... CoreInitializeGcdServices()
So platform specific code needs to build the HOB or call gDS->AddMemorySpace().
Thanks,
Andrew Fish
Otherwise, Could you let me know the reason?
Thanks,
Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel
I have just created a wikipage to answer the question: https://sourceforge.net/apps/mediawiki/tianocore/index.php?title=ArmPlatform Pkg/SparseMemory ... and added support for the ARM Base and Foundation FVP models in SVN 15461 - ArmPlatformPkg/ArmVExpressLibRTSM: Added support for the additional 2GB memory of DRAM on FVP.
Here is the example of the Foundation Model DRAM: 0x00_8000_0000 0x00_FFFF_FFFF DRAM (0GB - 2GB) DRAM (0GB - 2GB) 2GB S/NS 0x08_8000_0000 0x09_FFFF_FFFF DRAM (2GB - 8GB) DRAM (2GB - 8GB) 6GB S/NS Source: http://infocenter.arm.com/help/topic/com.arm.doc.dui0677c/BBACIHDC.html
Note: I only added 2GB from the extra 6GB because the Base FVP model has only 2GB by default at 0x08_8000_0000.
-----Original Message----- From: Andrew Fish [mailto:afish@apple.com] Sent: 11 April 2014 16:43 To: edk2-devel@lists.sourceforge.net Cc: Olivier Martin; linaro-uefi@lists.linaro.org Subject: Re: [edk2] Passing Non-contiguous memory map to kernel on ARMv8
On Apr 11, 2014, at 3:11 AM, Youngmin Nam youngmin.nam@samsung.com wrote:
Hello Olivier and Expert,
I am trying to pass the non-contiguous physical memory map to kernel
on ARMv8.
Can the UEFI pass non-contiguous physical memory area to the kernel?
Yes
I mean, Physical memory is divided into 0x80000000-0xFFFFFFFF(2GB)
and 0x880000000- 0xFFFFFFFFF(30GB).
If possible, Could you explain how to describe in UEFI?
The platform passes up the info in the EFI Memory map. So that is a gBS->GetMemoryMap() call. The shell has a memmap command that dumps the data.
How to add memory regions is not defined in UEFI, but it is defined in PI.
The region is added via gDS->AddMemorySpace()
The initial map is based on EFI_HOB_TYPE_RESOURCE_DESCRIPTOR HOBs passed into the DXE Core
https://svn.code.sf.net/p/edk2/code/trunk/edk2/MdeModulePkg/Core/Dxe/Gc d/Gcd.c CoreInitializeGcdServices()
So platform specific code needs to build the HOB or call gDS-
AddMemorySpace().
Thanks,
Andrew Fish
Otherwise, Could you let me know the reason?
Thanks,
Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel