diff mbox series

[edk2,v2,09/14] ArmVirtPkg: introduce ArmVirtMemInfoLib library class

Message ID 20171122100731.24525-10-ard.biesheuvel@linaro.org
State Accepted
Commit 77ca9182818f28334f17f772adc7dfe24d8cf55f
Headers show
Series ArmVirtPkg: get rid of ArmPlatformLib | expand

Commit Message

Ard Biesheuvel Nov. 22, 2017, 10:07 a.m. UTC
As part of the effort to get rid of ArmPlatformLib (which incorporates
far too many duties in a single library), introduce ArmVirtMemInfoLib
which will be invoked by our ArmVirtMemoryInitPeiLib implementation to
get a description of the virtual address space. This will allow us to
remove this functionality from ArmPlatformLib later, or, in the case of
ArmVirtXen and ArmVirtQemuKernel, drop ArmPlatformLib altogether.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

---
 ArmVirtPkg/ArmVirtPkg.dec                      |  3 ++
 ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h | 41 ++++++++++++++++++++
 2 files changed, 44 insertions(+)

-- 
2.11.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Comments

Laszlo Ersek Nov. 23, 2017, 4 p.m. UTC | #1
On 11/22/17 11:07, Ard Biesheuvel wrote:
> As part of the effort to get rid of ArmPlatformLib (which incorporates

> far too many duties in a single library), introduce ArmVirtMemInfoLib

> which will be invoked by our ArmVirtMemoryInitPeiLib implementation to

> get a description of the virtual address space. This will allow us to

> remove this functionality from ArmPlatformLib later, or, in the case of

> ArmVirtXen and ArmVirtQemuKernel, drop ArmPlatformLib altogether.

> 

> Contributed-under: TianoCore Contribution Agreement 1.1

> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> ---

>  ArmVirtPkg/ArmVirtPkg.dec                      |  3 ++

>  ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h | 41 ++++++++++++++++++++

>  2 files changed, 44 insertions(+)

> 

> diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec

> index a8603e1b80e5..8f656fd2739d 100644

> --- a/ArmVirtPkg/ArmVirtPkg.dec

> +++ b/ArmVirtPkg/ArmVirtPkg.dec

> @@ -30,6 +30,9 @@ [Defines]

>  [Includes.common]

>    Include                        # Root include for the package

>  

> +[LibraryClasses]

> +  ArmVirtMemInfoLib|Include/Library/ArmVirtMemInfoLib.h

> +

>  [Guids.common]

>    gArmVirtTokenSpaceGuid = { 0x0B6F5CA7, 0x4F53, 0x445A, { 0xB7, 0x6E, 0x2E, 0x36, 0x5B, 0x80, 0x63, 0x66 } }

>    gEarlyPL011BaseAddressGuid       = { 0xB199DEA9, 0xFD5C, 0x4A84, { 0x80, 0x82, 0x2F, 0x41, 0x70, 0x78, 0x03, 0x05 } }

> diff --git a/ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h b/ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h

> new file mode 100644

> index 000000000000..bdf1c513bc6d

> --- /dev/null

> +++ b/ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h

> @@ -0,0 +1,41 @@

> +/** @file

> +

> +  Copyright (c) 2011-2013, ARM Limited. All rights reserved.

> +  Copyright (c) 2017, Linaro, Ltd. All rights reserved.

> +

> +  This program and the accompanying materials are licensed and made available

> +  under the terms and conditions of the BSD License which accompanies this

> +  distribution.  The full text of the license may be found at

> +  http://opensource.org/licenses/bsd-license.php

> +

> +  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

> +  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

> +

> +**/

> +

> +#ifndef _ARM_VIRT_MEMINFO_LIB_H_

> +#define _ARM_VIRT_MEMINFO_LIB_H_

> +

> +#include <Base.h>

> +#include <Library/ArmLib.h>

> +

> +/**

> +  Return the Virtual Memory Map of your platform

> +

> +  This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU

> +  on your platform.

> +

> +  @param[out]   VirtualMemoryMap    Array of ARM_MEMORY_REGION_DESCRIPTOR

> +                                    describing a Physical-to-Virtual Memory

> +                                    mapping. This array must be ended by a

> +                                    zero-filled entry. The allocated memory

> +                                    will not be freed.

> +

> +**/

> +VOID

> +EFIAPI

> +ArmVirtGetMemoryMap (

> +  OUT ARM_MEMORY_REGION_DESCRIPTOR    **VirtualMemoryMap

> +  );

> +

> +#endif

> 


Reviewed-by: Laszlo Ersek <lersek@redhat.com>

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
diff mbox series

Patch

diff --git a/ArmVirtPkg/ArmVirtPkg.dec b/ArmVirtPkg/ArmVirtPkg.dec
index a8603e1b80e5..8f656fd2739d 100644
--- a/ArmVirtPkg/ArmVirtPkg.dec
+++ b/ArmVirtPkg/ArmVirtPkg.dec
@@ -30,6 +30,9 @@  [Defines]
 [Includes.common]
   Include                        # Root include for the package
 
+[LibraryClasses]
+  ArmVirtMemInfoLib|Include/Library/ArmVirtMemInfoLib.h
+
 [Guids.common]
   gArmVirtTokenSpaceGuid = { 0x0B6F5CA7, 0x4F53, 0x445A, { 0xB7, 0x6E, 0x2E, 0x36, 0x5B, 0x80, 0x63, 0x66 } }
   gEarlyPL011BaseAddressGuid       = { 0xB199DEA9, 0xFD5C, 0x4A84, { 0x80, 0x82, 0x2F, 0x41, 0x70, 0x78, 0x03, 0x05 } }
diff --git a/ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h b/ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h
new file mode 100644
index 000000000000..bdf1c513bc6d
--- /dev/null
+++ b/ArmVirtPkg/Include/Library/ArmVirtMemInfoLib.h
@@ -0,0 +1,41 @@ 
+/** @file
+
+  Copyright (c) 2011-2013, ARM Limited. All rights reserved.
+  Copyright (c) 2017, Linaro, Ltd. All rights reserved.
+
+  This program and the accompanying materials are licensed and made available
+  under the terms and conditions of the BSD License which accompanies this
+  distribution.  The full text of the license may be found at
+  http://opensource.org/licenses/bsd-license.php
+
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+
+**/
+
+#ifndef _ARM_VIRT_MEMINFO_LIB_H_
+#define _ARM_VIRT_MEMINFO_LIB_H_
+
+#include <Base.h>
+#include <Library/ArmLib.h>
+
+/**
+  Return the Virtual Memory Map of your platform
+
+  This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU
+  on your platform.
+
+  @param[out]   VirtualMemoryMap    Array of ARM_MEMORY_REGION_DESCRIPTOR
+                                    describing a Physical-to-Virtual Memory
+                                    mapping. This array must be ended by a
+                                    zero-filled entry. The allocated memory
+                                    will not be freed.
+
+**/
+VOID
+EFIAPI
+ArmVirtGetMemoryMap (
+  OUT ARM_MEMORY_REGION_DESCRIPTOR    **VirtualMemoryMap
+  );
+
+#endif