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

Marcin Wojtas posted 8 patches 7 years, 2 months ago
There is a newer version of this series
[edk2] [platforms: PATCH 8/8] Marvell/Armada: Add 32-bit ARM support
Posted by Marcin Wojtas 7 years, 2 months ago
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(-)

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
Re: [edk2] [platforms: PATCH 8/8] Marvell/Armada: Add 32-bit ARM support
Posted by Leif Lindholm 7 years, 2 months ago
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
Re: [edk2] [platforms: PATCH 8/8] Marvell/Armada: Add 32-bit ARM support
Posted by Ard Biesheuvel 7 years, 2 months ago
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