git.linaro.org/landing-teams/working no longer seems to serve snapshots
in tar.gz format, breaking the N1SDP build for kirkstone.
Using same tag as the existing snapshot, fetch the binaries with a
conventional git clone, as per master.
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
GCC 11.4 has improved code generation and needs the __aarch64_cas4_sync
intrinsic from libgcc, but one of the modules here doesn't link to
libgcc.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
The poky commit 74f086529911bdaf07a8414d50de411e20739541 updates
the kernel to v5.15.103 which breaks the PCI quirk patch for the N1SDP.
Signed-off-by: Vikas Katariya <vikas.katariya@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
A recent commit compressed the kernel image (to Image.gz) and
by default enabled an initramfs image. In the case for when
such that (initramfs) is not desirable, the deploy step of the
Juno firmware will still try to install the Image file, (not
Image.gz), so this fails:
ERROR: firmware-image-juno-1.0-r0 do_deploy: ExecutionError('/oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477', 1, None, None)
ERROR: Logfile of failure stored in: /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/log.do_deploy.360477
Log data follows:
| DEBUG: Executing python function sstate_task_prefunc
| DEBUG: Python function sstate_task_prefunc finished
| DEBUG: Executing shell function do_deploy
| cp: cannot stat '/oe/build/tmp-glibc/deploy/images/juno/Image': No such file or directory
| WARNING: /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477:152 exit 1 from 'cp -L -f /oe/build/tmp-glibc/deploy/images/juno/Image /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/image/juno-firmware-19.06/SOFTWARE/'
| WARNING: Backtrace (BB generated script):
| #1: do_deploy, /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477, line 152
| #2: main, /oe/build/tmp-glibc/work/juno-oe-linux/firmware-image-juno/1.0-r0/temp/run.do_deploy.360477, line 163
NOTE: recipe firmware-image-juno-1.0-r0: task do_deploy: Failed
ERROR: Task (../meta-arm/meta-arm-bsp/recipes-bsp/images/firmware-image-juno.bb:do_deploy) failed with exit code '1'
This updates the else case for when an initramfs image is not
in use so that the right kernel image is deployed, by using
the KERNEL_IMAGETYPE variable, to use either version of the
kernel image.
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Change u-boot and machine config to default to booting a compressed
initramfs. This allows for easier testing. A compressed image is
needed as the image is too big for the storage, and the error notifying
of such is vague.
Signed-off-by: Jon Mason <jon.mason@arm.com>
The mailbox patches don't apply to 5.15.78 so until they can be rebased
and retested, pin the kernel to 5.15.72.
Signed-off-by: Ross Burton <ross.burton@arm.com>
The linux-yocto recipe in oe-core upgraded to 5.15.72, so rebase the
doorbell patches to apply correctly.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
To fit the kernel image into the allotted space, a compressed kernel
image is now needed. Use the Image.gz from the kernel build process
and change the relevant places to use the new image name. This also
necessitates adding an unzip command to u-boot to uncompress it to
memory (and the loadm is still needed to setup the efi mem boot device).
Also, the unzipped image is larger than before. So, increase the size
that loadm is copying.
This change shrinks the initramfs bundle size from 12MB to 4.8MB
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
When enabling trusted boot, the UEFI binary was replaced with a FIP image (which
contains the UEFI binary), therefore the SD card image should depend on
trusted-firmware-a rather than edk2-firmware.
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
NT_FW_CONFIG DTB contains platform information passed by TF-A boot
stage. This information is used for Virtual memory map generation
during PEI phase and passed on to DXE phase as a HOB, where it is used
in ConfigurationManagerDxe.
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
This commit configures N1SDP firmware for TBBR bootflow as follows:
* uefi.bin replaced with with fip.bin
* load address adjusted for FIP image
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
This commit configures scp-firmware for TBBR bootflow as follows:
* SCP FW upgraded to 2.10 for the N1SDP only
* Updates SCP FW src to master
* BL31 replaced in the SCP firmware image with BL1
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
This commit configures trusted-firmware-a for TBBR bootflow on N1SDP as follows:
* Trusted Firmware is upgraded to 2.7.0 for the N1SDP only
* Trusted boot is enabled.
* Generation of root-of-trust is enabled
* All TB images (BLx, DTBs) are built
* uefi.bin is specified as the BL33 image
* BL2, BL31, BL33 are signed and stored in the FIP
* N1SDP platform sources are patched to increase max size BL2 and reduce max size of BL1
Signed-off-by: Adam Johnston <adam.johnston@arm.com>
Create a new "linuxboot" test that uses the pexpect methods on
OEFVPSerialTarget to wait for a Linux login shell.
Switch to this test method for fvp-baser-aemv8r64, corstone500 and
corstone1000.
Issue-Id: SCM-4957
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Idd749652ee72e244b7a3831dd2295e0bfaed3bfa
Signed-off-by: Jon Mason <jon.mason@arm.com>
Arm generic timer provides different timers for different exception
levels and different secure states. Because Armv8-R AArch64 has secure
state only, the valid timer for hypervisor in EL2 is secure hypervisor
physical timer. But for platform fvp-baser-aemv8r64, before FVP 11.18,
the secure hypervisor physical timer could not work well in EL2, so we
had been using Non-secure physical timer in EL2 for hypervisor as a
workaround.
Since secure hypervisor physical timer issue has been fixed from FVP
11.18, we can use this correct timer in EL2 for hypervisor now. So we
update the device tree timer node to use secure hypervisor physical
timer interrupt for hypervisor.
About the interrupt assignments of FVP, please refer to
https://developer.arm.com/documentation/100964/latest/Base-Platform/Base---interrupt-assignments
Issue-Id: SCM-4596
Signed-off-by: Jiamei Xie <jiamei.xie@arm.com>
Change-Id: I9d4b9f4e0ed14c6c1567269c83696ceb9ff84ac8
Signed-off-by: Jon Mason <jon.mason@arm.com>
The new FVP includes the arch in the download filename, so refactor
FVP_ARCH in fvp-common.inc to make "Linux64" available in the recipe
file.
Update version and EULA URL in documentation.
Issue-Id: SCM-4388
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I3ddc29cd444b78634086f2aefe4f52799eb937b1
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add parameters required to boot with cache_state_modelled enabled:
* bp.virtio_net.secure_accesses=1
* bp.virtio_rng.secure_accesses=1
* bp.virtioblockdevice.secure_accesses=1
* cci400.force_on_from_start=1
Add bp.ve_sysregs.exit_on_shutdown=1 to match fvp-base.
Remove parameters that are not required to boot or are setting the
default value.
Alphabetize the list.
Issue-Id: SCM-4304
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I0a696eff5bb83206e5501f651c487f16f695aa4c
Signed-off-by: Jon Mason <jon.mason@arm.com>
Running the FVP_Base_AEMv8R model with the cache_state_modelled
parameter enabled exposed some defects in the U-Boot BSP patches for the
fvp-baser-aemv8r64:
* The MPU memory attributes are inconsistent with the existing MMU
attributes, causing a model hang when sending packets using
virtio-net in U-Boot.
* The instruction cache was left disabled after booting an EFI payload
at S-EL1, violating the UEFI specification and causing Grub to hang
when attempting to use dynamically loaded modules.
The cache_state_modelled FVP parameter is enabled by default in the
model (for simulation accuracy) but is disabled by default in the
machine conf (for simulation speed).
This patch adds two additional machine-specific U-Boot patches to fix
the above issues.
Issue-Id: SCM-4641
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I5ab13c9fdadd82456ac3f3e3703df36590d52fb7
Signed-off-by: Jon Mason <jon.mason@arm.com>
TFTF is TF-A tests that runs at NS-EL2. This is primarily developed to
test the TF-A interfaces exposed to NS code.
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
commit ab339b24d4 removed the reference to
these patches but did not remove them. Removing now to clean-up the
tree.
Signed-off-by: Jon Mason <jon.mason@arm.com>
commit 24db3b56ba removed references to
the patches, but did not remove the patches.
Suggested-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
ffa-debugfs-mod provides arm_ffa_user.h needed by psa-arch-tests source-code.
This commit sets the sysroot tasks dependencies.
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Enable the OF_LIBFDT_OVERLAY configuration flag so that U-Boot can apply
fdt overlays using the "fdt apply" command.
This can be used to modify the device tree at runtime to boot a
different payload without changing the firmware.
Issue-Id: SCM-4386
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I6e32c5ce833ca7c61f0f73fc256031564e55f1b8
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add additional fvp-baser-aemv8r64-specific patch for U-Boot, which fixes
an issue where U-Boot was ignoring the `memory` node in the device tree.
Issue-Id: SCM-4386
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I1382992fffa159c4bd6325db4f1b26c6478cf391
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add additional fvp-baser-aemv8r64-specific patches for
boot-wrapper-aarch64. These patches add a "function call" entry point
for the PSCI services, so that payloads starting at S-EL2 (e.g. Xen) can
boot the secondary cores.
Issue-ID: SCM-4386
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I961c78352987f711664e06ab39b00f6eb97a81de
Signed-off-by: Jon Mason <jon.mason@arm.com>
The final firmware design for the fvp-baser-aemv8r64 is pending further
discussion, so the current implementation contains several "temporary"
patches which are likely to be removed or replaced in the future. These
are already marked as "Inappropriate" to upstream, but amend the reason
to "Implementation pending further discussion" to avoid confusion.
Issue-Id: SCM-4304
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I7dc6eae73fbb18f4b7b63540fb45b6a62d455093
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add test configuration to machine config. Add testimage to Kas file, so
that testimage works out of the box.
Issue-Id: SCM-4304
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I27dc9760a2c58f43ea557efdc97d363b0d3c1447
Signed-off-by: Jon Mason <jon.mason@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
Signed-off-by: Jon Mason <jon.mason@arm.com>
To prevent a collision with u-boot, add the same PROVIDES from it. The
PROVIDES name need improvement, but this will work in the interim.
This causes a need for making TF-A more flexible. Add the ability to
reference the UEFI binary for the BL33 portion of the TF-A build
command. SGI575 is already doing this. So, it is really just making it
more generic for others to use.
Signed-off-by: Jon Mason <jon.mason@arm.com>
To setup juno to use either u-boot or edk2 in CI, abstract out the
relevant parts and setup the parts to allow for it to be done
dynamically.
Signed-off-by: Jon Mason <jon.mason@arm.com>
Bump version of u-boot from 2021.10 to 2022.01, as at it, take
the chance to squash some patches and reduce the number of
them.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
In preparation for SCP Firmware 2.10 being integrated, make this append
version-specific so that BSPs can select which SCP release they have
been tested with.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
A virtio-rng is available from FVP_BaseR_AEMv8R version 11.17, so add
to the device tree and enable the correpsonding FVP configuration flag.
This improves the boot time and removes the following warning in the
boot log:
random: udevd: uninitialized urandom read (16 bytes read)
Issue-Id: SCM-4304
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ic935d0b935e21965a489a55db09c4a5f9ac51366
Signed-off-by: Jon Mason <jon.mason@arm.com>
Update corstone500 documentation to reflect the new build
infrastructure (kas) and the in tree run of the fvp using the
runfvp command.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add kas and ci, including testimage support for corstone500
platform. And for all to work add also the FVP setup.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Add final wic image that is provider by corstone500-image
target. As at it, remove unnecessary specific filesystem
types.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Now that we have the wic_nopt class in meta-arm we can add the
the wks file to create the final image for this platform.
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
The 64-bit fvp-base machine uses the upstream fvp-base-recv devicetree,
but fvp-base-arm32 was accidentally using the old
fvp-base-gicv3-psci-custom that we patch into the kernel.
As the only difference between these platforms at a "hardware" level is
whether the cores boot in 32- or 64-bit mode, they should both use
fvp-base-revc.
This isn't trivial as devicetree files need to be under the correct
arch/ directory, so we need to symlink into arch/arm the right files
from arch/arm64.
This has several improvements, but primarily virtio networking works so
we can now use testimage with fvp-base-arm32.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
fvp-base pulls in features/net/net.scc, so fvp-base-arm32 should too.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Explicitly enable use of CRC instructions: we configure fvp-base to have
armv8.4 cores, but the default uboot config disables crc (see uboot 51d8367d8).
Keep fvp-base-arm32 on 2021.10 as the arm32-specific patches need
rebasing, and a trivial rebase doesn't boot successfully.
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>