diff mbox series

[edk2,platforms:,8/8] Marvell/Armada: Add 32-bit ARM support

Message ID 1507736449-6073-9-git-send-email-mw@semihalf.com
State Superseded
Headers show
Series [edk2,platforms:,1/8] Marvell/Armada: Implement EFI_RNG_PROTOCOL driver for EIP76 TRNG | expand

Commit Message

Marcin Wojtas Oct. 11, 2017, 3:40 p.m. UTC
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>


Update the included components and library classes to make this platform
build for 32-bit ARM.

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

Signed-off-by: Marcin Wojtas <mw@semihalf.com>

---
 Platform/Marvell/Armada/Armada.dsc.inc | 3 +--
 Platform/Marvell/Armada/Armada70x0.dsc | 4 ++--
 Platform/Marvell/Armada/Armada70x0.fdf | 2 +-
 3 files changed, 4 insertions(+), 5 deletions(-)

-- 
2.7.4

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

Comments

Leif Lindholm Oct. 11, 2017, 5:58 p.m. UTC | #1
On Wed, Oct 11, 2017 at 05:40:49PM +0200, Marcin Wojtas wrote:
> From: Ard Biesheuvel <ard.biesheuvel@linaro.org>

> 

> Update the included components and library classes to make this platform

> build for 32-bit ARM.

> 

> Contributed-under: TianoCore Contribution Agreement 1.1

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

> Signed-off-by: Marcin Wojtas <mw@semihalf.com>


Very neat!
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>


> ---

>  Platform/Marvell/Armada/Armada.dsc.inc | 3 +--

>  Platform/Marvell/Armada/Armada70x0.dsc | 4 ++--

>  Platform/Marvell/Armada/Armada70x0.fdf | 2 +-

>  3 files changed, 4 insertions(+), 5 deletions(-)

> 

> diff --git a/Platform/Marvell/Armada/Armada.dsc.inc b/Platform/Marvell/Armada/Armada.dsc.inc

> index b0a8240..b9fc384 100644

> --- a/Platform/Marvell/Armada/Armada.dsc.inc

> +++ b/Platform/Marvell/Armada/Armada.dsc.inc

> @@ -132,7 +132,6 @@

>    CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf

>    FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf

>  

> -[LibraryClasses.AARCH64]

>    ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf

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

>    ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf

> @@ -362,7 +361,7 @@

>    # ARM Pcds

>    gArmTokenSpaceGuid.PcdSystemMemoryBase|0

>    gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000

> -  gArmTokenSpaceGuid.PcdArmScr|0x531

> +  gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|36

>  

>    # Secure region reservation

>    gMarvellTokenSpaceGuid.PcdSecureRegionBase|0x4000000

> diff --git a/Platform/Marvell/Armada/Armada70x0.dsc b/Platform/Marvell/Armada/Armada70x0.dsc

> index 946c93e..0396e8e 100644

> --- a/Platform/Marvell/Armada/Armada70x0.dsc

> +++ b/Platform/Marvell/Armada/Armada70x0.dsc

> @@ -39,8 +39,8 @@

>    PLATFORM_GUID                  = f837e231-cfc7-4f56-9a0f-5b218d746ae3

>    PLATFORM_VERSION               = 0.1

>    DSC_SPECIFICATION              = 0x00010005

> -  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)

> -  SUPPORTED_ARCHITECTURES        = AARCH64

> +  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)-$(ARCH)

> +  SUPPORTED_ARCHITECTURES        = AARCH64|ARM

>    BUILD_TARGETS                  = DEBUG|RELEASE

>    SKUID_IDENTIFIER               = DEFAULT

>    FLASH_DEFINITION               = Platform/Marvell/Armada/Armada70x0.fdf

> diff --git a/Platform/Marvell/Armada/Armada70x0.fdf b/Platform/Marvell/Armada/Armada70x0.fdf

> index a94a9ff..ec2c368 100644

> --- a/Platform/Marvell/Armada/Armada70x0.fdf

> +++ b/Platform/Marvell/Armada/Armada70x0.fdf

> @@ -237,7 +237,7 @@ READ_LOCK_STATUS   = TRUE

>  #

>  ############################################################################

>  

> -[Rule.AARCH64.SEC]

> +[Rule.Common.SEC]

>    FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED {

>      TE  TE    Align = Auto              $(INF_OUTPUT)/$(MODULE_NAME).efi

>    }

> -- 

> 2.7.4

> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Ard Biesheuvel Oct. 11, 2017, 6:20 p.m. UTC | #2
On 11 October 2017 at 18:58, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Wed, Oct 11, 2017 at 05:40:49PM +0200, Marcin Wojtas wrote:

>> From: Ard Biesheuvel <ard.biesheuvel@linaro.org>

>>

>> Update the included components and library classes to make this platform

>> build for 32-bit ARM.

>>

>> Contributed-under: TianoCore Contribution Agreement 1.1

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

>> Signed-off-by: Marcin Wojtas <mw@semihalf.com>

>

> Very neat!

> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

>


There are two caveats though:

- it is up to ARM-TF to enter the non-secure world in the right mode
(EL2 or SVC)
- HYP mode cannot be used, since it mandates long descriptors, while
UEFI mandates short descriptors, so we lose KVM functionality when
booting 32-bit Linux via UEFI.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
diff mbox series

Patch

diff --git a/Platform/Marvell/Armada/Armada.dsc.inc b/Platform/Marvell/Armada/Armada.dsc.inc
index b0a8240..b9fc384 100644
--- a/Platform/Marvell/Armada/Armada.dsc.inc
+++ b/Platform/Marvell/Armada/Armada.dsc.inc
@@ -132,7 +132,6 @@ 
   CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
   FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
 
-[LibraryClasses.AARCH64]
   ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
   ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
   ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
@@ -362,7 +361,7 @@ 
   # ARM Pcds
   gArmTokenSpaceGuid.PcdSystemMemoryBase|0
   gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
-  gArmTokenSpaceGuid.PcdArmScr|0x531
+  gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|36
 
   # Secure region reservation
   gMarvellTokenSpaceGuid.PcdSecureRegionBase|0x4000000
diff --git a/Platform/Marvell/Armada/Armada70x0.dsc b/Platform/Marvell/Armada/Armada70x0.dsc
index 946c93e..0396e8e 100644
--- a/Platform/Marvell/Armada/Armada70x0.dsc
+++ b/Platform/Marvell/Armada/Armada70x0.dsc
@@ -39,8 +39,8 @@ 
   PLATFORM_GUID                  = f837e231-cfc7-4f56-9a0f-5b218d746ae3
   PLATFORM_VERSION               = 0.1
   DSC_SPECIFICATION              = 0x00010005
-  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)
-  SUPPORTED_ARCHITECTURES        = AARCH64
+  OUTPUT_DIRECTORY               = Build/$(PLATFORM_NAME)-$(ARCH)
+  SUPPORTED_ARCHITECTURES        = AARCH64|ARM
   BUILD_TARGETS                  = DEBUG|RELEASE
   SKUID_IDENTIFIER               = DEFAULT
   FLASH_DEFINITION               = Platform/Marvell/Armada/Armada70x0.fdf
diff --git a/Platform/Marvell/Armada/Armada70x0.fdf b/Platform/Marvell/Armada/Armada70x0.fdf
index a94a9ff..ec2c368 100644
--- a/Platform/Marvell/Armada/Armada70x0.fdf
+++ b/Platform/Marvell/Armada/Armada70x0.fdf
@@ -237,7 +237,7 @@  READ_LOCK_STATUS   = TRUE
 #
 ############################################################################
 
-[Rule.AARCH64.SEC]
+[Rule.Common.SEC]
   FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED {
     TE  TE    Align = Auto              $(INF_OUTPUT)/$(MODULE_NAME).efi
   }