[1/6] arm/fvp-base-r-aem: Automatically download FVP tarball

Message ID 20220422160900.1861031-1-peter.hoyes@arm.com
State New
Headers show
Series [1/6] arm/fvp-base-r-aem: Automatically download FVP tarball | expand

Commit Message

Peter Hoyes April 22, 2022, 4:08 p.m. UTC
From: Peter Hoyes <Peter.Hoyes@arm.com>

The FVP_Base_AEMv8R tarball is now available to download directly from
developer.arm.com without logging in. Therefore, remove the
FVP_BASE_R_AEM_TARBALL_URI env var (and references in the documentation)
and update the SRC_URI in the recipe.

Move fvpboot and userNetPorts to the machine conf, now that the
FVP configuration is no longer dependent on an external tarball.

Clarify the currently supported FVP version in the documentation.

Put the current PV in the recipe filename.

Issue-Id: SCM-4304
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I776277c690bf4466445ca2df17eedb202f172f58
---
 kas/fvp-baser-aemv8r64-bsp.yml                |  3 ---
 .../conf/machine/fvp-baser-aemv8r64.conf      |  2 ++
 .../documentation/fvp-baser-aemv8r64.md       | 20 +++++--------------
 .../recipes-devtools/fvp/fvp-base-r-aem.bb    | 17 ----------------
 .../fvp/fvp-base-r-aem_11.17.21.bb            | 10 ++++++++++
 5 files changed, 17 insertions(+), 35 deletions(-)
 delete mode 100644 meta-arm/recipes-devtools/fvp/fvp-base-r-aem.bb
 create mode 100644 meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.17.21.bb

Comments

Jon Mason April 25, 2022, 2:48 p.m. UTC | #1
On Fri, 22 Apr 2022 17:08:55 +0100, Peter Hoyes wrote:
> The FVP_Base_AEMv8R tarball is now available to download directly from
> developer.arm.com without logging in. Therefore, remove the
> FVP_BASE_R_AEM_TARBALL_URI env var (and references in the documentation)
> and update the SRC_URI in the recipe.
> 
> Move fvpboot and userNetPorts to the machine conf, now that the
> FVP configuration is no longer dependent on an external tarball.
> 
> [...]

Applied, thanks!

[1/6] arm/fvp-base-r-aem: Automatically download FVP tarball
      commit: 627f8b9f7d2b5a93c87facda8aa3cc8cbcac26a0
[2/6] ci,arm-bsp/conf: Add testimage for fvp-baser-aemv8r64
      commit: 1a684977718fc18b1eb0805753d45e4ed86cf89f
[3/6] arm-bsp/boot-wrapper-aarch64,u-boot: Clarify fvp-baser Upstream-Status
      commit: f2898f5c56a518f53168ebfeae11379b7fdfb391
[4/6] arm-bsp/boot-wrapper-aarch64: Add fvp-baser support for EL2 SMP payloads
      commit: 8c063543e087bf20378850aff191013e0af9a8cc
[5/6] arm-bsp/u-boot: Fix fvp-baser-aemv8r64 fdt memory configuration issue
      commit: d412c2a3fd70a2377e177fccb65ad6571abb665b
[6/6] arm-bsp/u-boot: Enable fdt overlays for fvp-baser-aemv8r64
      commit: c713908b7feb31067601e335222725e5ddcb6668

Best regards,
Jon Mason April 27, 2022, 11:48 p.m. UTC | #2
On Fri, 22 Apr 2022 17:08:55 +0100, Peter Hoyes wrote:
> The FVP_Base_AEMv8R tarball is now available to download directly from
> developer.arm.com without logging in. Therefore, remove the
> FVP_BASE_R_AEM_TARBALL_URI env var (and references in the documentation)
> and update the SRC_URI in the recipe.
> 
> Move fvpboot and userNetPorts to the machine conf, now that the
> FVP configuration is no longer dependent on an external tarball.
> 
> [...]

Applied, thanks!

[1/6] arm/fvp-base-r-aem: Automatically download FVP tarball
      commit: 627f8b9f7d2b5a93c87facda8aa3cc8cbcac26a0
[2/6] ci,arm-bsp/conf: Add testimage for fvp-baser-aemv8r64
      commit: 1a684977718fc18b1eb0805753d45e4ed86cf89f
[3/6] arm-bsp/boot-wrapper-aarch64,u-boot: Clarify fvp-baser Upstream-Status
      commit: f2898f5c56a518f53168ebfeae11379b7fdfb391
[4/6] arm-bsp/boot-wrapper-aarch64: Add fvp-baser support for EL2 SMP payloads
      commit: 8c063543e087bf20378850aff191013e0af9a8cc
[5/6] arm-bsp/u-boot: Fix fvp-baser-aemv8r64 fdt memory configuration issue
      commit: d412c2a3fd70a2377e177fccb65ad6571abb665b
[6/6] arm-bsp/u-boot: Enable fdt overlays for fvp-baser-aemv8r64
      commit: c713908b7feb31067601e335222725e5ddcb6668

Best regards,

Patch

diff --git a/kas/fvp-baser-aemv8r64-bsp.yml b/kas/fvp-baser-aemv8r64-bsp.yml
index 6871201..43ca36a 100644
--- a/kas/fvp-baser-aemv8r64-bsp.yml
+++ b/kas/fvp-baser-aemv8r64-bsp.yml
@@ -25,7 +25,6 @@  repos:
       meta-poky:
 
 env:
-  FVP_BASE_R_AEM_TARBALL_URI: ""
   FVP_BASE_R_ARM_EULA_ACCEPT: "False"
 
 local_conf_header:
@@ -34,8 +33,6 @@  local_conf_header:
     PACKAGE_CLASSES = "package_ipk"
     PACKAGECONFIG:remove:pn-qemu-system-native = "gtk+ sdl"
     EXTRA_IMAGE_FEATURES:append = " debug-tweaks ssh-server-openssh"
-    FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "8022=22"
-    IMAGE_CLASSES:append = " ${@oe.utils.ifelse(d.getVar('FVP_BASE_R_AEM_TARBALL_URI'), 'fvpboot', '')}"
     LICENSE_FLAGS_ACCEPTED:append = " ${@oe.utils.vartrue('FVP_BASE_R_ARM_EULA_ACCEPT', 'Arm-FVP-EULA', '', d)}"
 
 target:
diff --git a/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf b/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf
index db8c4fe..8646bdf 100644
--- a/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf
+++ b/meta-arm-bsp/conf/machine/fvp-baser-aemv8r64.conf
@@ -19,6 +19,7 @@  UBOOT_MACHINE ?= "vexpress_aemv8r_defconfig"
 
 SERIAL_CONSOLES = "115200;ttyAMA0"
 
+IMAGE_CLASSES:append = " fvpboot"
 IMAGE_FSTYPES += "wic"
 WKS_FILE ?= "efi-disk.wks.in"
 EFI_PROVIDER ?= "grub-efi"
@@ -61,6 +62,7 @@  FVP_CONFIG[gic_distributor.has-two-security-states] ?= "0"
 FVP_CONFIG[pctl.startup] ?= "0.0.0.*"
 FVP_CONFIG[bp.virtio_net.enabled] ?= "1"
 FVP_CONFIG[bp.virtio_net.hostbridge.userNetworking] ?= "1"
+FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "8022=22"
 FVP_CONFIG[bp.virtio_rng.enabled] ?= "1"
 FVP_CONFIG[bp.vis.rate_limit-enable] ?= "0"
 FVP_CONFIG[bp.refcounter.use_real_time] ?= "1"
diff --git a/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md b/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
index eeeb4fa..0b34d7f 100644
--- a/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
+++ b/meta-arm-bsp/documentation/fvp-baser-aemv8r64.md
@@ -27,6 +27,7 @@  The fvp-baser-aemv8r64 Yocto MACHINE supports the following BSP components,
 where either a standard or Real-Time Linux kernel (PREEMPT\_RT) can be built
 and run:
 
+ - FVP_Base_AEMv8R: v11.17.21
  - boot-wrapper-aarch64: provides PSCI support
  - U-Boot: v2022.01 - provides UEFI services
  - Linux kernel: linux-yocto-5.15
@@ -104,20 +105,11 @@  is 3.0, install it like so:
 
 For more details on kas, see https://kas.readthedocs.io/.
 
-To build the images for fvp-base machine, you also need to:
+To build the images for the fvp-baser-aemv8r64 machine, you also need to accept
+the EULA at
+https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms/end-user-license-agreement-for-fixed-virtual-platforms
+by setting the following environment variable:
 
- - download the ``FVP_Base_AEMv8R_11.17_21.tgz`` image AEM V8-R FVP Installer
-  (Linux) package from Arm's website:
-  https://silver.arm.com/download/download.tm?pv=4865959&p=4029857. You need
-   to have an account and be logged in to be able to download it
- - set absolute path to the ``FVP_Base_AEMv8R_11.17_21.tgz`` downloaded
-   package in ``FVP_BASE_R_AEM_TARBALL_URI``
- - accept EULA in ``FVP_BASE_R_ARM_EULA_ACCEPT``
-
-
-The variables should be set like so:
-
-    FVP_BASE_R_AEM_TARBALL_URI="file:///absolute/path/to/FVP_Base_AEMv8R_11.17_21.tgz"
     FVP_BASE_R_ARM_EULA_ACCEPT="True"
 
 **Note:** The host machine should have at least 50 GBytes of free disk space
@@ -142,14 +134,12 @@  Fetch the meta-arm repository into a build directory:
 Building with the standard Linux kernel:
 
     cd ~/fvp-baser-aemv8r64-build
-    export FVP_BASE_R_AEM_TARBALL_URI="file:///absolute/path/to/FVP_Base_AEMv8R_11.17_21.tgz"
     export FVP_BASE_R_ARM_EULA_ACCEPT="True"
     kas build meta-arm/kas/fvp-baser-aemv8r64-bsp.yml
 
 Building with the Real-Time Linux kernel (PREEMPT\_RT):
 
     cd ~/fvp-baser-aemv8r64-build
-    export FVP_BASE_R_AEM_TARBALL_URI="file:///absolute/path/to/FVP_Base_AEMv8R_11.17_21.tgz"
     export FVP_BASE_R_ARM_EULA_ACCEPT="True"
     kas build meta-arm/kas/fvp-baser-aemv8r64-rt-bsp.yml
 
diff --git a/meta-arm/recipes-devtools/fvp/fvp-base-r-aem.bb b/meta-arm/recipes-devtools/fvp/fvp-base-r-aem.bb
deleted file mode 100644
index f21ccae..0000000
--- a/meta-arm/recipes-devtools/fvp/fvp-base-r-aem.bb
+++ /dev/null
@@ -1,17 +0,0 @@ 
-require fvp-envelope.inc
-
-SUMMARY = "Arm Fixed Virtual Platform - Armv8-R Base Architecture Envelope Model FVP"
-LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
-                    file://license_terms/third_party_licenses.txt;md5=41029e71051b1c786bae3112a29905a7"
-
-# This FVP cannot be downloaded directly, so download the Armv8-R Base AEM FVP
-# yourself from the homepage and set FVP_BASE_R_AEM_TARBALL_URI appropriately
-# (for example, file:///home/user/FVP_Base_AEMv8R_11.17_21.tgz).
-FVP_BASE_R_AEM_TARBALL_URI ?= ""
-PV = "11.17.21"
-
-SRC_URI = "${FVP_BASE_R_AEM_TARBALL_URI};subdir=${BP}"
-python() {
-    if not d.getVar("FVP_BASE_R_AEM_TARBALL_URI"):
-        raise bb.parse.SkipRecipe("FVP_BASE_R_AEM_TARBALL_URI not set")
-}
diff --git a/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.17.21.bb b/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.17.21.bb
new file mode 100644
index 0000000..06bc370
--- /dev/null
+++ b/meta-arm/recipes-devtools/fvp/fvp-base-r-aem_11.17.21.bb
@@ -0,0 +1,10 @@ 
+require fvp-envelope.inc
+
+SUMMARY = "Arm Fixed Virtual Platform - Armv8-R Base Architecture Envelope Model FVP"
+LIC_FILES_CHKSUM = "file://license_terms/license_agreement.txt;md5=1a33828e132ba71861c11688dbb0bd16 \
+                    file://license_terms/third_party_licenses.txt;md5=41029e71051b1c786bae3112a29905a7"
+
+SRC_URI = "https://developer.arm.com/-/media/Files/downloads/ecosystem-models/${MODEL_CODE}_${PV_URL}.tgz;subdir=${BP}"
+SRC_URI[sha256sum] = "483ec3c2c6569e3e7e0c4c46329662c0d19475dee8e8947c24fa3de4b00da488"
+
+MODEL_CODE = "FVP_Base_AEMv8R"