[edk2] Instance of library class [ArmMmuLib] is not found

Message ID CAKv+Gu_LL7rpD8c60OptzSrc8gopfM9Q6mQS=+i=MBXLk5Nv+Q@mail.gmail.com
State New
Headers show

Commit Message

Ard Biesheuvel July 21, 2016, 11:27 a.m.
On 20 July 2016 at 07:44, Michael Zimmermann <sigmaepsilon92@gmail.com> wrote:
> Hi,

>

> since commit '5db1cce ArmPkg ArmVirtPkg MdeModulePkg: switch to separate

> ArmMmuLib' you need to add ArmMmuLib to your platform's dsc file:

>

> ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

>


Indeed. But in this particular case, the reporter is building
ArmPkg.dsc from the upstream, and so one would expect the series that
introduces ArmMmuLib to keep ArmPkg.dsc in sync as well.

My bad.

This should do the trick

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

Comments

Haojian Zhuang July 21, 2016, 1:20 p.m. | #1
On 2016/7/21 19:27, Ard Biesheuvel wrote:
> On 20 July 2016 at 07:44, Michael Zimmermann <sigmaepsilon92@gmail.com> wrote:

>> Hi,

>>

>> since commit '5db1cce ArmPkg ArmVirtPkg MdeModulePkg: switch to separate

>> ArmMmuLib' you need to add ArmMmuLib to your platform's dsc file:

>>

>> ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

>>

> Indeed. But in this particular case, the reporter is building

> ArmPkg.dsc from the upstream, and so one would expect the series that

> introduces ArmMmuLib to keep ArmPkg.dsc in sync as well.

>

> My bad.

>

> This should do the trick

>

> diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc

> index df5be6e..f4ca3e1 100644

> --- a/ArmPkg/ArmPkg.dsc

> +++ b/ArmPkg/ArmPkg.dsc

> @@ -38,6 +38,7 @@

>     RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG

>

>   [LibraryClasses.common]

> +  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

>     BaseLib|MdePkg/Library/BaseLib/BaseLib.inf

>     BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

>     CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf

> _______________________________________________

> edk2-devel mailing list

> edk2-devel@lists.01.org

> https://lists.01.org/mailman/listinfo/edk2-devel


I think that we also need to append ArmMmuLib in 
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf. Since ArmConfigureMmu() 
is used in MemoryInitPeim.


Best Regards

Haojian

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Haojian Zhuang July 21, 2016, 1:20 p.m. | #2
On 2016/7/21 19:27, Ard Biesheuvel wrote:
> On 20 July 2016 at 07:44, Michael Zimmermann <sigmaepsilon92@gmail.com> wrote:

>> Hi,

>>

>> since commit '5db1cce ArmPkg ArmVirtPkg MdeModulePkg: switch to separate

>> ArmMmuLib' you need to add ArmMmuLib to your platform's dsc file:

>>

>> ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

>>

> Indeed. But in this particular case, the reporter is building

> ArmPkg.dsc from the upstream, and so one would expect the series that

> introduces ArmMmuLib to keep ArmPkg.dsc in sync as well.

>

> My bad.

>

> This should do the trick

>

> diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc

> index df5be6e..f4ca3e1 100644

> --- a/ArmPkg/ArmPkg.dsc

> +++ b/ArmPkg/ArmPkg.dsc

> @@ -38,6 +38,7 @@

>     RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG

>

>   [LibraryClasses.common]

> +  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf

>     BaseLib|MdePkg/Library/BaseLib/BaseLib.inf

>     BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf

>     CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf

> _______________________________________________

> edk2-devel mailing list

> edk2-devel@lists.01.org

> https://lists.01.org/mailman/listinfo/edk2-devel


I think that we also need to append ArmMmuLib in 
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf. Since ArmConfigureMmu() 
is used in MemoryInitPeim.


Best Regards

Haojian

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel July 22, 2016, 2:30 p.m. | #3
On 21 July 2016 at 15:20, Haojian Zhuang <haojian.zhuang@linaro.org> wrote:
[...]
>

>

> I think that we also need to append ArmMmuLib in

> ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf. Since ArmConfigureMmu() is

> used in MemoryInitPeim.

>


It is only used by MemoryInitPeiLib, which is used by MemoryInitPeim,
and I already added it to MemoryInitPeiLib.inf.

If you are having build problems due to this, it may be caused by the
fact that you are including MemoryInitPeiLib.c directly in
MemoryInitPeim.inf. This was fixed upstream in patch

d94a48c71a67 ArmPlatformPkg: do not fulfil MemoryInitPeiLib dependency
directly via .c file

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

Patch

diff --git a/ArmPkg/ArmPkg.dsc b/ArmPkg/ArmPkg.dsc
index df5be6e..f4ca3e1 100644
--- a/ArmPkg/ArmPkg.dsc
+++ b/ArmPkg/ArmPkg.dsc
@@ -38,6 +38,7 @@ 
   RELEASE_*_*_CC_FLAGS  = -DMDEPKG_NDEBUG

 [LibraryClasses.common]
+  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
   BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
   CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf