1
0
mirror of https://git.yoctoproject.org/meta-arm synced 2026-07-18 04:27:08 +00:00

Compare commits

...

666 Commits

Author SHA1 Message Date
Ross Burton 2623e69db3 runfvp: check for telnet
Check for telnet on startup to avoid mysterious failures later when
telnet isn't available.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton 952e04cd58 runfvp: propagate the exit code correctly
runfvp could encounter an error but the exit code remained as 0.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton 4b8aeb6edc runfvp: fix undefined variable in terminal selection login
Since 10e60cc the terminal_map doesn't exist, this piece of code wasn't
updated.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton 0ffbe558a0 runfvp: refactor terminal selection
Rewrite the terminal code to have a priority list of terminals when
selecting a default, allow the user to pick a default with a
configuration file, and add gnome-terminal to the list.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton 5920774ada runfvp: don't use f-string when there's no expressions
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton 55453024ee runfvp: don't hide output when using terminals
Only pass a console_cb if we're hooking up a console, so that the output
from the FVP is visible on the terminal.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton c72527d6a5 runfvp: handle the fvp quitting before we kill it
Don't raise an exception if the FVP has quit before we get around to
killing it.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Ross Burton cc1c99f537 runfvp: add an asyncio TODO
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Harry Moulton 0ea4b2220f arm-bsp/machine: Add runfvp config for corstone1000
Add the runfvp config for corstone1000-fvp.

Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-26 09:00:09 -04:00
Emekcan Aras 2de4b3c893 arm-bsp/trusted-firmware-a: corstone1000: update Tfa SHA
This commit updates Tfa SHA to remove the patches from the
recipe since all of them are upstreamed now.

Signed-off-by: Emekcan Aras emekcan.aras@arm.com
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-25 16:00:25 -04:00
Satish Kumar 142ec9b8f9 kas/corstone1000.yml: refspec update for run-scripts
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-04-06 22:02:25 -04:00
Vishnu Banavath bca2dbf93f arm-bsp/u-boot: add SDCard support for corstone1000 FVP
This change is to add SDCard support for corstone1000 FVP

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
2022-04-01 16:47:13 +01:00
Harry Moulton 33bbdc67f2 arm-bsp/corstone1000: Add RDEPENDS to remove unwanted images.
Remove unwanted build images that push the binaries size over the size
limit for corstone1000.

Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-14 13:00:09 -04:00
Harry Moulton af33b41925 arm-bsp/linux-yocto: backport remove redundant kernel hacking
Backport of 7fc51c7c from master which removes some redundant code to
reduce the size of the resulting corstone1000 binary.

Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-14 13:00:09 -04:00
Jon Mason 7bc7872930 arm-bsp: update linux-yocto 5.4 to the latest version
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-11 16:44:39 -05:00
Jon Mason daa9abf065 arm-bsp: fix yylloc kernel build error
Backport patch from upstream to address the following error:
scripts/dtc/dtc-parser.tab.o:(.bss+0x20): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here

Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-11 16:44:39 -05:00
Peter Hoyes 90facd19a6 arm-bsp/docs,kas: Add SSH server to fvp-baser-aemv8r64 image
To make it easier for users to test and evaluate the FVP, including
testing inbound network connections, enable the openssh SSH server by
default and map to port 8022 on the host.

Update fvp-baser-aemv8r64 documentation accordingly in new "Networking"
section.

Issue-Id: SCM-3881
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I88329731418e198e2ef5d3449bfb38fde5ae77bb
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-11 09:17:42 -05:00
Harry Moulton 6dabbf1542 arm/fvp-corstone1000: backport: update to latest version
Backport patch from master to update the URL and checksums for the
new Corstone1000 FVP version 11.17.23.

Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-09 08:43:57 -05:00
Harry Moulton ed0e6cb0d3 corstone1000: backport: update meta-arm-image for kirkstone support
Backport patch from master to update the sha for meta-arm-image in
the corstone1000 kas file to add support for kirkstone.

Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-08 14:54:05 -05:00
Peter Hoyes 85fb0ee28a arm-bsp/docs: Minor fvp-baser-aemv8r64 fixes
* Include `--upgrade` in pip3 command to ensure latest kas version is
   installed
 * Ensure all underscores are either quoted or escaped
 * Fix P9 example command

Issue-Id: SCM-3881
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ie460dbd6b1f87f5f9ca2966329341d22da3606d3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-03-08 10:16:05 -05:00
Peter Hoyes d64e3e2178 arm-bsp/docs: Add -b honister instruction for fvp-baser-aemv8r64
Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I1874b0bd9dc5e3da9c40b46d9d002b83b41addcc
2022-03-04 09:21:22 +00:00
Peter Hoyes 2614c78f3b arm/fvp-base-r-aem: Update to version 11.17.21
Also update version and download link in meta-arm-bsp fvp-baser-aemv8r64
documentation

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I92ec616d25703ff74ed063918a1e4811bac9ff3f
2022-03-02 12:56:18 +00:00
Peter Hoyes b9f850fe0e arm-bsp/docs: Improve fvp-baser-aemv864 limitation
Add more details about the cache_state_modelled limitation, which can
worked around by setting cci400.force_on_from_start=1

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Idde23278a87316dae842c6c3793b9836482e8c3a
2022-03-02 12:56:03 +00:00
Peter Hoyes cc4fa4a11e arm-bsp/docs: Minor fvp-baser-aemv8r64 updates
* Add clarification on how to mount p9 device
 * Remove instruction to use ctrl + c to stop FVP
 * Add cache_state_modelled to Known Issues

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I122c5ae5b3ceee1d106205d93a006f75bdbfa2bf
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes 621cc45395 arm-bsp/docs: Update fvp-baser-aemv8r64 docs
Document U-Boot addition, add new architecture section and update the
change log.

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ie0e1ff35ade634f2b523c14bb058c9d775802632
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes c0e651acc8 arm-bsp/conf: Use real-time clock for fvp-baser-aemv8r64
Enable the bp.refcounter.use_real_time option, so that the CNTPCT_EL0
increments in real-time instead of simulator time.

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I197d6de4a7316e5299aee34e64e149cbd3d515a9
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes 2c3382d4d6 arm-bsp/kernel: Use 4 Gb of RAM in fvp-baser-aemv8r64
The FVP default configuration has bp.dram_size=4, which is sufficient
for development and testing purposes, so remove the FVP_CONFIG
override and set to 4 Gb in the device tree.

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I4a96062c9e94d36f5459f33c86aab4d4885bab43
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes 8c7c60fb3b arm-bsp/u-boot: Add U-Boot for fvp-baser-aemv8r64
This patch introduces U-Boot into the fvp-baser-aemv8r64 boot flow,
providing EFI services.

The fvp-baser-aemv8r64 does not have an EL3, so the system starts at
S-EL2. For now, U-Boot is running at S-EL2, alongside boot-wrapper.
Enable the --enable-keep-el option in boot-wrapper-aarch64 so that it
boots the next stage (U-Boot) at S-EL2. Additionally, tell
boot-wrapper-aarch64 to bundle U-Boot instead of the kernel.

Linux only supports booting from S-EL1 on the fvp-baser-aemv8r64, so
U-Boot is configured with CONFIG_SWITCH_TO_EL1, so that booti or bootefi
switch to S-EL1 before booting the EFI payload (unless an enviornment
variable - armv8_switch_to_el1 - is set to 'n').

Add patches to U-Boot, which:
 * Backports 53b40e8d54fcdb834e10e6538084517524b8401b, to disable
   pointer authentication traps.
 * Add board support for the fvp-baser-aemv8r64 (with a memory map
   which is inverted from the fvp-base).
 * Enable the configuration of U-Boot using the device tree passed from
   boot-wrapper-aarch64.
 * Enable virtio-net.
 * Disable setting the exception vectors at S-EL2 so that the PSCI
   vectors pass through to Linux.
 * Set up system registers at S-EL2 for Linux.
 * Configure the S-EL2 MPU for the EFI services.
 * Allows bootefi to switch to EL1 before booting Linux.

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I229d14b0717df412c1fe33772230ca779f79b32d
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes b63354017a arm-bsp/boot-wrapper-aarch64: Update patches for fvp-baser-aemv8r64
Update the SRCREV to a more recent revision for the fvp-baser-aemv8r64.

Update the machine-specific patches, which makes the following changes:
 * Add PSCI services to /memreserve/ in the device tree using libfdt.
 * Add --enable-keep-el option, which allows boot-wrapper-aarch64 to
   boot the next stage at the same exception level.
 * Update the counter frequency to 100 MHz.

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I41843e958cf629d69de644bb57b660fb542fc8b7
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes 69d11b64cb arm/boot-wrapper-aarch64: Upgrade to newer revision
Upgrade boot-wrapper-aarch64 to 1044c77062573985f7c994c3b6cef5695f57e955

Hold back gem5 at 8d5a765251d9113c3c0f9fa14de42a9e7486fe8a in bbappend.

Issue-Id: SCM-3871
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ia5ccca2234dd117d530970f9f90469dacbb778e3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Peter Hoyes db6223090e arm-bsp/fvp-baser-aemv8r64: Fix PL011 and SP805 register sizes
The Linux kernel expects the peripheral ID register to be just below the
end of the address range, which for the PL011 and SP805 is at 0xFE0 not
0xFFE0, so set the size to 0x1000.

Issue-Id: SCM-3881
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Iada28e8192d72b1647822c33d13deffe507043b5
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-25 09:09:09 -05:00
Emekcan Aras 6dd18c2a80 arm-bsp/security: move TS patches to corstone1000 directory
This commit moves all the trusted-services patches to a new
corstone1000 directory.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-21 10:26:53 -05:00
Emekcan Aras 43e5b037e8 kas/corstone1000-base: update meta-arm-image SHA
This commit updates the meta-arm-image SHA to drop psa-arch-test
from the build.

Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-17 18:15:53 -05:00
Vishnu Banavath 400bd5d5f4 arm-bsp/security: trusted-services to fix psa-arch-tests
These changes are to fix failures in psa-arch-tests

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-17 18:15:53 -05:00
Vishnu Banavath 2e388235cb arm-bsp/security: drop psa-arch-tests recipe
This change is to build and install psa-arch-tests using
trusted-services code and drop psa-arch-tests recipe.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-17 18:15:53 -05:00
Vishnu Banavath 8a6b6eb810 arm-bsp/tf-m: update git SHA
This change is to update TF-M git SHA to fix
psa-arch-tests test case failures.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-17 18:15:34 -05:00
Vishnu Banavath 68db42ec65 arm-bsp/security: replace mbedcrypto with mbedtls
This commit replaces mbedcrpyto with mbedtls on the trusted-service
recipe.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-02-17 18:15:34 -05:00
Ross Burton 51b728a52b CI: use the latest release of the Kas container
If we don't specify a tag name GitLab uses the 'latest' tag, which for
Kas is moved whenever an image build is made.

Instead explicitly use the latest-release tag, which is only updated
when a release is made.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-01-28 19:03:58 -05:00
Diego Sueiro 9653e905bd meta-arm: Make generic-arm64 kernel cfg based on linux-yocto standard kernel type
By having the generic-arm64 machine using the same kernel config as the
linux-yocto standard kernel type, application layers can rely on the same base
configuration, independently of the target machine.

Also, the kernel-yocto.bbclass searches for .scc files in the FILESEXTRAPATHS.
Hence, we don't need to list generic-arm64-standard.scc in the SRC_URI.

Issue-Id: SCM-3910
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I46889ce38b32521d8350534cc590b57b158ad573
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-01-28 19:03:31 -05:00
Vishnu Banavath ccf342afe1 arm-bsp/psa-arch-tests: change master to main for psa-arch-tests repo
master branch is renamed to main on psa-arch-tests github.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
2022-01-18 09:00:08 -05:00
Vishnu Banavath e15df2738e arm-bsp/uboot: fix null pointer exception for get_image_info
This change is to fix NULL pointer exception for get_image_info
API for corstone1000 platform

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
2022-01-17 14:00:08 -05:00
Vishnu Banavath c30d90a77d arm-bsp/tf-m: fix capsule instability issue for corstone1000
This change is to upgrade TF-M to latest git hash which contains
fix for capsule instability issue for corstone1000 platform.

Latest TF-M would also require v3.1 mbedtls. Also updated git hash
for mbedtls repo.
2022-01-17 14:00:08 -05:00
Ross Burton 9542161475 CI: track honister branch for clang and zephyr
These layers now have honister branches, so track those instead of master.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2022-01-17 13:36:30 +00:00
Vishnu Banavath eb48eea801 arm-bsp/uboot: send bootcomplete event to secure enclave
On corstone1000 platform, Secure Enclave will be expecting
an event from uboot when it performs capsule update. Previously,
an event is sent at exitbootservice level. This will create a problem
when user wants to interrupt at UEFI shell, hence, it is required
to send an uboot efi initialized event at efi sub-system initialization
stage.

Change-Id: I7d16e184675d537d790365e1b03a414ac802694a
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-01-06 08:58:41 -05:00
Vishnu Banavath 15815c7d49 arm-bsp/secure-partitions: add check for null attribute field
UEFI spec says that if 0 is passed in the attributes filed in
setVariable() API, it means that it's a delete variable call.
Currently smm gateway doesn't handle this case. This change
is to add above mentioned check.

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Change-Id: Id3a54601d403102da5c5617d7b4da8ec51029200
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-01-04 14:43:27 -05:00
Gowtham Suresh Kumar 3d1183ab54 arm-bsp/u-boot: corstone1000: Disable mm_communicate failure log
When a getVariable() call is made with data size set to 0,
mm_communicate should return EFI_BUFFER_TOO_SMALL. This is
an expected behavior. There should not be any failure logs
in this case. So the error log is commented here.

Change-Id: Id5b36928b1450ef9f83d34a3ab7feb4839ff9734
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2022-01-04 14:43:13 -05:00
Vishnu Banavath 6124334645 arm-bsp/u-boot: fix EFI image load alignment
This patch is cherry-picked from upstream to fix misalignment
of efi load image

Change-Id: If64e635a80cd0b6ecb8f09c62aa2b248d0e36f4e
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
2021-12-23 19:03:16 +00:00
Vishnu Banavath 6e16e76bf3 arm-bsp/u-boot: add ethernet device and enable configs for SCT
These changes are to add
* ethernet device SMC911x device and this is required to support
  bootfromnetwork SCT
* also enabled other config options to fix SCT issues

Change-Id: Ic6112c019cb08f77e29508ad47980f851f79088c
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
2021-12-22 09:00:08 -05:00
Gowtham Suresh Kumar b7b634a788 arm-bsp/secure-partitions: Add error cases to setVariable() and getNextVariableName()
This patch fixes the SCT errors seen for setVariable() and
getNextVariableName() functions. The existing implementation of these
functions does not cover certain error conditions which are listed in
the uefi specification. This patch adds these changes.

Change-Id: Idcddc799588339de6729b73c0ceada5c2018dd4b
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
2021-12-21 14:00:09 -05:00
Gowtham Suresh Kumar 2c084144c7 arm-bsp/secure-partitions: corstone1000: Change UID of variable index in SMM
This patch fixes the os_indications setVariable() failure. The variable
index UID in SMM gateway which was 1 is changed in this patch. TFM has a
special usage for variable with UID 1, which makes it write once only.
This is not required for SMM variable index.

Change-Id: I50d60b87d3ef44ffd50e71ec4f20d31fdacf7acd
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
2021-12-21 14:00:09 -05:00
Vishnu Banavath 7afe7d50f1 arm-bsp/u-boot: populate ESRT table with image_info
These changes are to support populating corstone1000 image_info
to ESRT table

Change-Id: I6e5cdd8a3477fbf3c480bf7a725198841ed79796
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
2021-12-20 10:00:09 -05:00
Gowtham Suresh Kumar 5661a1d614 arm-bsp/security: Revert set append write TS patch
Change-Id: I6e8aea102ea24271097efe92f4eb820c68ff70d5
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
2021-12-20 10:00:09 -05:00
Gowtham Suresh Kumar 9ac90c6b25 arm-bsp/u-boot: corstone1000: Fix SCT failures
This patch removes the CONFIG_CMD_DHCP and CONFIG_CMD_PING
config parameters from the defconfig. It also reverts the workaround
patch which disabled NV get and set on u-boot.

Change-Id: I80f41235dbca2e76003c28164b42f4403dadc499
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
2021-12-20 10:00:09 -05:00
Gowtham Suresh Kumar 5f69e4a51b arm-bsp/secure-partitions: corstone1000: Configure storage in SMM gateway
This patch will add a macro to configure the volatile and
non volatile storage in SMM gateway. Few useful logs are
also added to the secure world.

Change-Id: Ifdb405a09a9a72718df8b335b9f42509dd8c850c
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
2021-12-20 10:00:09 -05:00
Ross Burton 8613971bf0 arm/edk2-firmware: correctly set the target prefix in Clang builds
We set GCC5_AARCH64_PREFIX so the tools are prefixed correctly in GCC
builds, but didn't set CLANG38_AARCH64_PREFIX. This meant the clang build
used the host objcopy, which may not know about the target architecture.

Also these can just be the prefix and not a full path, as the binaries
are on $PATH.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-16 14:39:57 +00:00
Huifeng Zhang 33f5505b58 arm/fvpboot: change the execution order of do_write_fvpboot_conf
add the do_write_fvpboot_conf function into IMAGE_POSTPROCESS_COMMAND
so that this function can be called after the build system created the
final image output files.

It's possible that bitbake doesn't run start from the do_rootfs task but
run start from do_image_<type> at the stage of image generation.

For example, there are multiple partitions in the wic file and the
grub.cfg file is placed to the first partition and the rootfs is placed
to the second partition. At this time, if we change the content of
the grub.cfg file resided in the related recipe's directory and build,
the do_rootfs task won't be run by bitbake but a new wic file will be
generated. In this situation, the fvpconf file also won't be updated and
the 'bp.virtioblockdevice.image_path' is still pointing to a old image
file.

Issue-Id: SCM-3724
Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
Change-Id: I7a41afa1d7471d09b60d118c4a6c99c57a6b548c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-16 13:21:47 +00:00
Abdellatif El Khlifi 7410a7f621 kas: corstone1000: update the FVP script repo SHA
Setting the model script SHA to use the right FVP
options.

Change-Id: I7f92fb97466bf4f5f48b8d184a396bf87bdeb401
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-15 14:09:17 -05:00
Vishnu Banavath d34c55df6a arm-bsp/trusted-firmware-m: corstone1000: update TF-M SHA
This change is to update TF-M SHA which has fixes for capsule update.

Change-Id: I016381c2a95fcdd9629772671143a1e7332196e5
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 13:00:09 -05:00
Gowtham Suresh Kumar a5377f1569 arm-bsp/u-boot: corstone1000: Fix efi debug issue
This patch will fix the ffa mm communicate function behavior as
expected by efi_get_var() and also fix the com buffer size used by
u-boot.

Change-Id: I8ce28a2e51b8f52856d81ea6e3c1e2e72cfaa362
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Gowtham Suresh Kumar 5f7671d897 arm-bsp/u-boot: corstone1000: Remove GetVariable() fix
The efi_get_var() expects EFI_BUFFER_TOO_SMALL return value
from efi_get_variable_int() to just read the size of the data.
So when comm buffer is smaller than received buffer,
efi_get_variable_int is expected to return error code. This
functionality will be fixed in future patches.

Change-Id: I3e5119b1fdf18c965cc2ebc11056b6ca70d57e0f
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Vishnu Banavath bc8c92afab arm-bsp/secure-partitions: add capsule update interface to SE proxy SP
This change is to add capsule update interface to SE proxy SP.
This interface sends following events to secure enclave
* firmware update request - SE will read the capsule and will flash the
image to flash to previous active bank
* kernel boot event - SE will delete timer on reciption of this event and
marks all the images as accepted if in trial state

Change-Id: I7cf9b729128d1e07e891253661fcd891191e8024
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Gowtham Suresh Kumar fc6637b5e2 arm-bsp/secure-partitions: corstone1000: Increase SMM Gateway variable handling capacity
The maximum number of UEFI variables that can be supported by SMM
gateway is currently 40. When more than 40 variables are written,
or read SMM gateway returns error code. Currently this value is
increased to 100 to support more UEFI variables.

Change-Id: I3ebef8052fd01c5b1c19cdfe71ab3c02447a005b
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Emekcan Aras 075638cf00 arm-bsp/psa-arch-tests: corstone1000: configuring crypto and attestation test
This commit configures crypto and attestation tests for Corstone1000
platform.

It also fixes CMake issues on the current trusted-service CMake source
files to enable this configuration.

Change-Id: I334d661c1bc349e03f92611d6010360c08e6cc89
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Emekcan Aras c4ed1d1c21 arm-bsp/trusted-firmware-m: corstone1000: Aligning with TF-M master
Setting the last master branch SHA for openamp changes.

Change-Id: I20dfb1c12091f58576898c2a17e74aa71bab5651
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Satish Kumar 751ae8fe38 arm-bsp/secure-partitions: corstone1000: add psa ipc crypto backend
Add psa ipc crypto backend and attach it to se proxy
deployment.

Change-Id: I072cd3f0661be33773a2132c2222dc4c7b8c6cb4
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Satish Kumar 6e075adc0b arm-bsp/secure-partitions: corstone1000: Setup its backend
Setup its backend as openamp rpc using secure storage ipc
implementation.

Change-Id: I0329c87d11de7a721b3eaf004935befa6e7389c8
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Satish Kumar 9c83efa253 arm-bsp/secure-partitions: corstone1000: Add psa ipc attestation to se proxy
Implement attestation client API as psa ipc and include it to
se proxy deployment.

Change-Id: I0a1130d2013717c6499da5bb2cd6cd11a752bcce
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Satish Kumar 50304a2be6 arm-bsp/secure-partitions: corstone1000: Use address instead of pointers
Since secure enclave is 32bit and we 64bit there is an issue
in the protocol communication design that force us to handle
on our side the manipulation of address and pointers to make
this work.

Change-Id: Icb29fdec6928dba6da7e845b3a13d8a3560c5fe1
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Satish Kumar 12a5fd5cd5 arm-bsp/secure-partitions: fixes required to run psa-arch-test
Fixes needed to run psa-arch-test

Change-Id: Iba090e151298a216f8f1bf81a72bba4587bec389
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-14 07:00:09 -05:00
Abdellatif El Khlifi 42347ebaa2 kas: corstone1000: update for new Kas include semantics in kas folder
With Kas 2.6 included YAML files need to be relative to the repository,
not the including file:

https://kas.readthedocs.io/en/latest/format-changelog.html#version-11

Change-Id: I851c9137d1f70f754d1a70a1fc14828c39ff3de7
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:31 -05:00
Abdellatif El Khlifi 1e3cea589d kas: corstone1000: update meta-arm-image SHA
Aligning to the last meta-arm-image version to
add psa-arch-tests to the rootfs.

Change-Id: I40e945f814df4b6f7c30772d3dd6f91e6b6fcafc
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:31 -05:00
Emekcan Aras a56fdf4333 arm-bsp/psa-arch-tests: corstone1000: build the test applications
This commit adds support for building/installing the test
application.

Also fixing CMake issues on the current trusted-service CMake source files.

Change-Id: Iae0fc9bf9362cf5b7d65cd7b9f0445f62f3b83eb
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:31 -05:00
Abdellatif El Khlifi 0acbf59a8e arm/psa-arch-tests: introduce the recipe
This commit adds a recipe for psa-arch-tests linux
userspace application.

Included tests are; crypto, protected_storage,
internal_trusted_storage and attestation.

Change-Id: I6285aa2a6ae8fdd25f4327f1d301c59a88bce775
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:31 -05:00
Abdellatif El Khlifi a68fa362d2 arm/secure-partitions: remove the use of EXTRA_OEMAKE
EXTRA_OEMAKE is not needed since we are using CMake.

Change-Id: Ifc0dcc9313fe4e473cbba8eb3b716e11cf8e45ee
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:31 -05:00
Abdellatif El Khlifi d206e22c08 arm-bsp/u-boot: corstone1000: add the header file for invalidate_dcache_all function
The invalidate_dcache_all function has been implicitly declared.
This commit fixes that.

Change-Id: I83e985e219af8687c0679045f6a979c91923be69
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:03 -05:00
Abdellatif El Khlifi aaad1117ab arm-bsp/u-boot: corstone1000: arm_ffa: removing the cast when using binary OR on FIELD_PREP macros
When the GENMASK used is above 16-bits wide a u16 cast will cause
loss of data.

This commit fixes that.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Change-Id: I72e5e42971a50ce167500a92cc529c5cb3ff781f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:03 -05:00
Vishnu Banavath 4bb0d10188 arm-bsp/u-boot: corstone1000: make capsule guid check platform agnostic
This change is to delete a separate check for guid for corstone1000
target. Generic check of fmp guid check should suffice.

Change-Id: Idec92c9307f903e52985057404daac2e40d05295
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:03 -05:00
Vishnu Banavath c6de028d35 arm-bsp/u-boot: corstone1000: passing interface ID and event ID in register w4
Changing where to pass the SE Proxy interface and event IDs.

Now they are passed to the SE Proxy in register w4.

The events involved are kernel started and buffer ready
events.

Change-Id: Ib60897e9f01cd87b9923892198f8868e02cc830d
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:14:03 -05:00
Abdellatif El Khlifi 42061ba8ce arm-bsp/secure-partitions: corstone1000: using the default SHA
No need to set again the same SHA as the one provided
by the recipe.

Change-Id: I034aca31c1cc30868552be67a04400db20ad59b2
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Abdellatif El Khlifi b94c50d291 arm/secure-partitions: introducing a common file
Moving common settings that can be used by other
components to a common file: secure-partitions.inc

Change-Id: I81691ee52bef3dfbd72c59afe20b01a5cf2222ea
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Gowtham Suresh Kumar 37d646c3b9 arm-bsp/u-boot: corstone1000: Fix GetVariable data size issue
This patch fixes the GetVariable() issue which causes
mm_communicate failure when called with 0 data size. The comm buffer
is set to maximum size when 0 data size request is made to handle the
MM response from the secure world. This is a generic fix but used by
corstone1000.

Change-Id: Id50619816a924b4fa7597295f89d54827191fbb5
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Vishnu Banavath 9b0ddd606e arm-bsp/optee-os: cherry pick fixes from upstream integration branch
These changes are to fix missing error check during sp init
and add support for defining memory regions

Change-Id: I381ff9805288590809471494bdff5e7f62232f7c
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Vishnu Banavath e1c04fd924 arm-bsp/secure-partitions: rebase TS patches
These changes is to rebase patches to latest
SHA(a365a04f937b9b76ebb2e0eeade226f208cbc0d2) of integration branch.
Also cherry-picked other bug fixes with the exemption of adding
newlib changes. newlib changes brakes the build because of musl
libc, hence dropped those changes for now

Change-Id: If0131d00e63eb0f574fa41dd95cfee4351e696e8
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Abdellatif El Khlifi e53bc984f5 arm-bsp/optee-os: corstone1000: unpack sp_manifest_combined_se.dts in WORKDIR
When using devtool the S is no longer an unpack location.
Let's use the default unpack location WORKDIR that works
whether devtool is used or not.

Change-Id: I34dfb53feddddfba82ff68a43b6cfe89a60c7701
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Abdellatif El Khlifi 6ee207b520 arm-bsp/trusted-firmware-m: corstone1000: bump the version to 1.5
Setting TF-M version to 1.5

Change-Id: Ib04778ed46d5404f498ff4efd60f338e351e7ee9
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-13 18:13:34 -05:00
Jon Mason e0d2976011 CI: use matrix for more defined way of doing things and cleanup
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-12 10:36:48 -05:00
Ross Burton 97f9592eff CI: remove utility tasks
These tasks made some limited sense when there was only one runner, but
in a setup where there are N runners they arere pretty useless as you
can't control which runner is executing the jobs.

Disk usage should be managed out-of-band, so delete the jobs.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-12-12 09:39:37 -05:00
Vishnu Banavath 8649420ff5 arm-bsp/secure-partitions: Use secure storage ipc and openamp for se_proxy
Remove mock up backend for secure storage in se proxy
deployment and use instead the secure storage ipc backend with
openamp as rpc to secure enclave side.

Change-Id: I5225966ec621be9fa126b5af6ede0a1f6bbf469b
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Vishnu Banavath 1359423f0f arm-bsp/secure-partitions: add secure storage ipc backend
Add secure storage ipc ff-m implementation which may use
openamp as rpc to communicate with other processor.

Change-Id: I6707f3b0654fb255cacef930d9314662b106273c
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Vishnu Banavath 117dd9583a arm-bsp/secure-partitions: add common service component to ipc support
Add support for inter processor communication for PSA
including, the openamp client side structures lib.

Change-Id: Icb86045b7915c4b04d2ec73b88ed40a3d65be4af
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Vishnu Banavath fac6216f09 arm-bsp/secure-partitions: Add psa client definitions for ff-m
Add PSA client definitions in common include to add future
ff-m support.

Change-Id: I0860fa347fd882d6e99da136a4273a0ef5d7d684
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Vishnu Banavath 24ecb7cf18 arm-bsp/optee-os: add openamp-virtio
Adding openamp-virtio node to the SP manifest

Change-Id: I1123eab65f2f05d00433b7d940b74766457ac7cf
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Vishnu Banavath 9b4cd95b8c arm-bsp/secure-partitions: add openamp rpc caller
Add openamp rpc caller

Change-Id: Ifb69f3ea3cf84fa01566033f82ed1657490ba87d
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Satish Kumar 6a175f4b1c arm-bsp/trusted-firmware-m: corstone1000: Aligning with TF-M master
Setting the last master branch SHA.

Change-Id: I668868f991bc090cf0720ac940fe658aa253ed56
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Abdellatif El Khlifi d83f7c7955 arm-bsp/u-boot: corstone1000: remove the use of fdt_addr_r
The device tree is embedded in the u-boot binary
and located at the end of the DDR. Its address
is specified in fdtcontroladdr environment variable.

No need to use fdt_addr_r anymore.

Change-Id: I58b17fbcab36c7236d57eb2498c41b5f4960b6eb
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Abdellatif El Khlifi 4a66446a51 arm-bsp/u-boot: corstone1000: setting the boot console output
Setting stdout-path in the chosen node.

Change-Id: Ie0a6b140492f0c5fc323690d2f6bc921cbe76cb3
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-11 19:23:14 -05:00
Vishnu Banavath 8a02bd6796 arm-bsp/optee-os: add MHU device regions in the SP manifest
Declaring the MHU device regions nodes.

Change-Id: Idc9faf570b8b97193f69ed32fa71a4a3ca359409
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Vishnu Banavath 360c498f1e arm-bsp/secure-partitions: Implement mhu driver
This commit adds mhu driver (v2.1 and v2) to the secure
partition se_proxy and a conversion layer to communicate with
the secure enclave using OpenAmp.

Change-Id: I3800ce108cabf7e3652f96e39b9fed2435c53ca9
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Vishnu Banavath 0112ab00a6 arm/secure-partitions: pass TS_PLATFORM in the configure task
This commit passes the platform name to CMake through the
configure task.

Change-Id: I7aaf10e3709507c65dd81c31e0301df57bbdf4fc
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Abdellatif El Khlifi e52c719925 arm-bsp/secure-partitions: corstone1000: add openamp support in SE proxy SP
This change is to fetch and build openamp and libmetal
as part of SE proxy secure partitions

Change-Id: I251525f830535ceb1e1fc9f994c22a8b149fe7b6
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Abdellatif El Khlifi 0231b19372 arm-bsp/secure-partitions: corstone1000: add mbed-crypto and nanopb to platform code
Moving dependencies to the BSP.

Change-Id: I32abd6c0568030550dda0442a2a4f624967b561c
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Abdellatif El Khlifi a7a2469888 arm/secure-partitions: remove platform specific dependencies
Keeping the recipe platform independent.

Additional components can be added at the platform level.

Change-Id: Ib1b0dd8d50486a037257dd99fea0d0ba2c80c7fb
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Vishnu Banavath 48a646b5eb arm/optee-spdevkit: add missing header file in optee-spdevkit
This change is to add following header file to optee-spdevkit
and these are required by openAMP:

* features.h
* error.h

Change-Id: I51b801911b5a0131bf938ac1d520c4818e416637
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Vishnu Banavath d93bd3a130 arm-bsp/optee-os: increase core heap size
This change is to increase optee core heap size to 131072 bytes
from its default value to accomodate openAMP and smm-gateway

Change-Id: I40912334f59a50bb3baf853bb5ff4b01c3b23966
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 17:22:19 -05:00
Hugo L'Hostis bba8a89e29 kas: Update include syntax to kas 2.6
Using a path relative to a kas yaml file to include another kas yaml
file won't be supported in the future. This patch also updates the
documentation for fvp-baser to set the minimal supported version of kas
to 2.6.

Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I757103c5433bca7af9ab024370cd1e994d59fe0e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-09 12:08:07 -05:00
Satish Kumar 33a4153ca9 kas: corstone1000: update SE binary sizes
Update the size of bl2_signed.bin and tfm_s_signed.bin

Change-Id: I8312dd6d50faff53e1ca489cbf73c5f25671b21c
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:30 -05:00
Satish Kumar 7aed3db89a arm-bsp/u-boot: identify which bank to load kernel from
Secure enclave, based on the firmware update state of the
system, decides the boot bank. In this commit, u-boot
identifies the selected boot bank and loads the kernel
from it.

Change-Id: Ifcef126dc79c7808b30ef0319d83482d2d29fd13
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:30 -05:00
Satish Kumar 2a36efd547 arm-bsp/trusted-firmware-a: patch to identify which bank to load fip from
Secure enclave decide the boot bank based on the firmware update
state of the system and updated the boot bank information at a given
location in the flash. In this commit, bl2 reads the givev flash location
to indentify the bank from which it should load fip from.

Change-Id: I2f7518c82c1664355da2aa1596f4f65f7a49a53d
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:30 -05:00
Satish Kumar 6a4d8241de arm-bsp/u-boot: patch to change kernel flash address
More space in the flash is reserved up front for metadata
parser and UEFI variables. That requires change in the flash
base address of where images are present.

Change-Id: I2d23d06099ffbf15458afaeb21c5dd4bcc4ffecb
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:30 -05:00
Satish Kumar 6edb53ca86 arm-bsp/trusted-firmware-a: patch to change flash base address of FIP
More space in the flash is reserved up front for metadata
parser and UEFI variables. That requires change in the flash
base address of where images are present.

Change-Id: If6c048a6117023aae2e748c23ed52447857b0d04
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:30 -05:00
Satish Kumar a5f84f1174 arm-bsp/trusted-firmware-m: corstone1000: firmware update changes
The patchset perform the following changes:

a. Disable secure debug by default.
b. OTA Firmware Update Agent implementation.
c. Implementation of boot index propagation mechanism.
d. Openamp version/commit hash correction.
e. Implementation of host watchdog interrupt handler.

Change-Id: Ie5e1028bb29ce337d51ad8ef47d2bd8175187402
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Emekcan Aras 3866e8cf80 arm-bsp/u-boot: corstone1000: Implement autoboot storage device selection
This commit implements distro_bootcmd in config_bootcommand in u-boot.
This command traverses all the USB devices connected to the board and
finds a usb device that has bootable image to boot from it. If it cannot
find a usb device with the bootable image, it will boot the system using
the existing flash.

Change-Id: Ia05ca02d6f490a1b51fcf377afcc86ea0ed4e19c
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Emekcan Aras cc7196deed arm-bsp/trusted firmware-a: corstone1000: implement EFI reset system
This commit implements efi_reset_system for corstone1000 platform. In
order to reset the system, the host uses secure host watchdog to assert
an interrupt (WS1) on the secure-enclave side, then secure-enclave
resets the system.

Change-Id: I772181cd43e789f1d6508aaa433eb109d8f85b5d
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Emekcan Aras cf278f9ae8 arm-bsp/u-boot: corstone1000: Enable PSCI Reset
This commit enables PSCI Reset for corstone1000 platform. It configures
u-boot to use PSCI interfaces in efi_reset_system function.

Change-Id: I88ea55fde2b2c6e455a4b38e885e62a410b0b0e7
Signed-off-by: Emekcan Aras <emekcan.aras@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Harry Moulton e0e7256b5a arm-bsp/u-boot: corstone1000: Fix ISP1760 EFI boot issue
This patch does three things:
 - Add the CONFIG_EFI_PARTITION option to the corstone1000_defconfig
    to allow u-boot to detect EFI filesystems.
 - Add isp1760_get_max_xfer_size(), this fixes an issue where
    GPT partition info could not be loaded.
 - Fix the issue while detecting EFI filesystem, and loading GPT
    partition info.

Change-Id: Ic04c8710f4ea7e156aca196d7e54f090b9376c49
Signed-off-by: Harry Moulton <harry.moulton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Gowtham Suresh Kumar 40826eee73 arm-bsp/u-boot: corstone1000: Enable SMM gateway
This patch updates shared buffer address, disables get/set of NV
variables, and invalidates the cache after write to shared buffer as the
SPs have cache disabled.

Change-Id: Iead01edf3011e192df205236df098415e5bde9a5
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Satish Kumar eccb9a82d7 arm-bsp/imgtool: upgrade imgtool to 1.8.0
Change-Id: I6f24f058284d5bae244ea88989e922d92ff25d0a
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Ross Burton 1f79abb091 arm-toolchain: upgrade gcc-arm-none-eabi (GNU-RM) to 10.3-2021.10
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-06 09:32:29 -05:00
Maxim Uvarov d69ae1e000 optee: update optee-os.inc to support external TAs
Separate recipe for TA devkit is needed to solve
circular dependency to build TAs with the devkit
 and integrate it inside optee-os.

Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-12-03 10:28:05 -05:00
Gowtham Suresh Kumar c519482ce6 arm-bsp/optee-os: corstone1000: enabling smm-gateway partition
This commit enables smm-gateway in optee-os by making the following changes:

- Updating the existing SP manifest file with a combined manifest file
  that includes information about both se-proxy and SMM gateway SP.
- Including the SMM gateway SP makefile in optee include file
  to embed smm gateway sp binary into optee image.

Change-Id: Iebcf2c534a9e9ced411c943ff583b522ad9d69fa
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
2021-12-01 13:36:49 +00:00
Gowtham Suresh Kumar d0bbfca5a2 arm-bsp/secure-partitions: corstone1000: add smm-gateway partition
smm-gateway secure partition is a slim version of StMM for low memory
devices.

This commit adds support for smm-gateway for corstone1000 at the
secure partitions level by making the following changes:

- Configure TS_DEPLOYMENTS to include SMM Gateway SP, SMM gateway to use
  device region for shared buffer, and set the NV store macro.
- Updating secure partitions recipe to point to HEAD of integration
 branch to fetch stmm-gateway changes.

Change-Id: I56ff325cca250749448364e12ac06e3ea289fa29
Signed-off-by: Gowtham Suresh Kumar <gowtham.sureshkumar@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
2021-12-01 13:36:49 +00:00
Ross Burton 523f921eca CI: build optee-spdevkit for qemuarm64
To ensure that optee-spdevkit works in all configurations, but it in the
CI for qemuarm64 not just corstone1000.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-12-01 10:30:54 +00:00
Ross Burton a035205056 arm/optee-spdevkit: fix non-corstone1000 builds
This recipe was setting a default SRCREV which doesn't contain the
Secure Partition devkit, as this is only in the psa-development branch
on the trustedfirmware.org mirror which is set by the corstone1000
bbappend.

Use this branch/revision by default, and set the PV correctly: this
branch is currently based on optee-os 3.10 not 3.14.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-12-01 10:30:54 +00:00
Ross Burton 60a8389331 CI: build optee-test in qemuarm64-secureboot
This recipe doesn't get built through dependencies, so add it explicitly.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-12-01 10:30:54 +00:00
Ross Burton 26501daba0 arm/optee-test: change DEPENDS to optee-os-tadevkit
Now that the TA devkit has been split out of optee-os, the build
dependencies of optee-test need to be updated too.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-12-01 10:30:54 +00:00
Ross Burton 30a46c3347 arm/optee-test: use precise BSD license
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-12-01 10:30:54 +00:00
Abdellatif El Khlifi 9eb24631da arm-bsp/linux: setting the FFA_VERSION compatibility checks
This commit introduces a new kernel patch that aligns the FF-A
versions checks according to the FF-A specification v1.0.

Without this fix, the FF-A bus fails to initialize when the FF-A
framework is version 1.1 (comes with the latest TF-A).

The bus driver which is v1.0 rejects the framework v1.1 despite
the fact they are compatible according to the specification.

This kernel patch changes the logic of the version checking based on
the specification.

Change-Id: If9d7b6c0d5e24e73d4f42c6532cd56ff2d05fcec
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
2021-12-01 10:30:54 +00:00
Abdellatif El Khlifi a38e919e49 arm-bsp/u-boot: corstone1000: adjust the environment and heap sizes
env size set to 64 KB
heap size 64 KB + 32 MB

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Change-Id: I913862e855afa8864e91e0a7c0707279b7cbd987
2021-12-01 10:30:54 +00:00
Abdellatif El Khlifi 69dae93d84 arm-bsp/u-boot: corstone1000: introducing EFI capsule update
This commit implements capsule update for Corstone-1000.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Change-Id: I3031018eebb9aaae56c0823d24ee5c148857f2fa
2021-12-01 10:30:54 +00:00
Abdellatif El Khlifi d36a974ad3 arm-bsp/u-boot: corstone1000: introducing Arm FF-A and MM support
This commit provides these new generic u-boot features:

- The FF-A low-level driver implementing Arm Firmware Framework for Armv8-A (FF-A)
- MM communication using FF-A (compatible with StandaloneMM and smm-gateway)
- A new armffa command and a test module to test the FF-A helper functions to
  communicate with secure world.

It also enables FF-A and MM communication for the Corstone-1000 platform.

Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Change-Id: Ic71dcae2411aefae00557284c08be662bfe80b98
2021-12-01 10:30:54 +00:00
Vishnu Banavath 7d9d7603d7 arm-bsp/optee-os: add a rule in optee-os Makefile for secure partitions
These changes are to add a rule in optee-os Makefile to include
secure partitions as part of optee-os image

Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Change-Id: I2f6f93ffca9a2332cbe9ffe4e9903b8ec524df51
2021-12-01 10:30:54 +00:00
Abdellatif El Khlifi 6876e6e09c meta-arm-bsp/security: corstone1000: add trusted services support
These changes are to add support to build TrustedServices.
corstone1000 platfrom uses optee-sp option which will include
secure partitions into optee Image

Following changes are made to trusted-services code
* TS_PLATFORM should be set at the external build system level.
* fix EARLY_TA_PATHS environment variable
* se-proxy string and make it as child node

Change-Id: I58d76b5e25e7f285794c93dc92c1b93fdd77cfb9
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-29 11:30:24 -05:00
Abdellatif El Khlifi dcaa4c1ff2 arm/secure-partitions: introducing the recipe
Adding secure-partitions recipe.

Change-Id: I4320fb7087157a7c0f9305ce1d8f8574d4500fd0
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-29 11:30:24 -05:00
Abdellatif El Khlifi 79e699da13 arm/optee-spdevkit: introducing the recipe
Adding optee-spdevkit recipe.

Change-Id: Ib31d7f0a9fa2f72b71c2057f2752b1c52be6f890
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-29 11:30:24 -05:00
Arpita S.K cc63d474fd arm-bsp/u-boot: introducing corstone1000 MPS3 machine
Add support for corstone1000-mps3 machine which have a cortex-a35
aarch64, this will boot till u-boot prompt.

Change-Id: Ifdd81d35a5409cdd1563388a841885c14b748cad
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-29 11:30:24 -05:00
Arpita S.K cb37d9391b arm-bsp/machine: introducing corstone1000 MPS3 machine
This commit adds the corstone1000-mps3 machine.

Change-Id: I99f657574a693527d7763cb4cc9b0b05218bb316
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-29 11:30:24 -05:00
Arpita S.K 55ae0eb1a6 arm/trusted-firmware-a,fiptool-native: Fix fiptool execution wrt corstone1000
After http://git.yoctoproject.org/cgit/cgit.cgi/meta-arm/commit/?id=648571b113b39420735859461fcd69cfc6f66c76,
building the corstone1000-image fails with the below error.
    fiptool_platform.h:19:11: fatal error: openssl/sha.h: No such file or directory
    # include <openssl/sha.h>

Put back the inclusion of BUILD_LDFLAGS to fix this.

Change-Id: I57396eefe2c9a58e4c5c6a751b2ee7d32509cac5
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-23 20:00:24 +05:30
Arpita S.K 3dbaa6528b corstone1000: Introducing ci and kas files
Adding ci and yaml files to support
corstone1000-fvp.

Change-Id: I74ebc3570d4b0c8abae58be5ef69064fc33e5bea
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-23 19:59:22 +05:30
Abdellatif El Khlifi 601733b08c arm/ffa-debugfs: corstone1000: enabling FF-A Debugfs Linux driver
- This commit provides a recipe for the FF-A Debugfs Linux
   driver v2.1.0.

  The driver is an out-of-tree loadable modules. It exposes
  FF-A operations to user space and only used for development
  purposes.

- Create a dev package for ffa-debugfs-mod

  ffa-debugfs-mod recipe provides arm_ffa_user.h header for
  other recipes that need it at build time.
  The header is put in ffa-debugfs-mod-dev package.

Change-Id: I92f33e20b5fdfc9a32cff03ae2a137150d0328db
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi c64bdb3f09 arm-bsp/linux: corstone1000: integrating ARM_FFA_TRANSPORT in v5.10 kernel
This commit adds the Arm Firmware Framework for Armv8-A to the v5.10 kernel.

The integrated patches are cherry-picked from kernel v5.14-rc2 and
compatible with SMCCCv1.2

Change-Id: If8964b94ed83caa5e0fc5d2a8a9b6a21f8b378ec
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi 7512fc87fd arm-bsp/trusted-firmware-m: corstone1000: signing trusted-firmware-a binaries
This commit allows to sign trusted-firmware-a BL2 and FIP using MCUBOOT
tools.

Change-Id: Ide3045982f5f8515c1ccd59b6b0d29816fbfdd68
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi 16e585c6d8 arm-bsp/python3-imgtool: add the recipe
Until this is integrated into meta-python, hold a copy of
python3-imgtool in meta-arm-bsp used by trusted-firmware-m.

Change-Id: I2e86be503bee03de549f5714dc52921165afa2bf
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Rui Miguel Silva cdd0a9da56 arm-bsp/linux: corstone1000: enable efi
In an effort to setup capsule update and efi runtime service
handlers, enable the correspondent efi config options.

Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Change-Id: Ib068448564268dcacb9bcad3667a3b293f177a83
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Vishnu Banavath 54446b5d80 arm-bsp/u-boot: corstone1000: extend efi support
enable efi boot including secure config options, add a
load command which integrate with efi subsystem.

And as at it, enable the efi capsule options for future
use.

Change-Id: Iced8ab2b9bca41805f6201150760692b4b716d7d
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Vishnu Banavath d8cda67a95 arm-bsp/optee: introducing corstone1000 FVP machine
These changes are to add corstone1000-fvp machine
to optee-os.

Change-Id: I9ddfaca476234c0307a89d5444ae2d0e688a9b59
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi 4cb5f2ca10 arm-bsp/trusted-firmware-a: introducing corstone1000 FVP machine
This commit enables TF-A v2.5 with Trusted Board Boot support for the
Corstone1000 64-bit platform.

Disables Non-Volatile counters in the TBB.

Change-Id: Idb9e18df7066cb617df72b2e147147ce49db292c
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Rui Miguel Silva 939b0856fc arm-bsp/u-boot: introducing corstone1000 FVP machine
Add support for corstone1000-fvp machine which have a cortex-a35
aarch64, this will boot till u-boot prompt.

Remove kernel devicetree configuration and add the devicetree here and
enable it in the diphda defconfig.

Adds the build options required to support an RTC emulator which in
turn is required to support the UEFI functions GetTime()
and SetTime().

Change-Id: I0d66ece1193494bd2f59a9800d802dff1c4a0db6
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Vishnu Banavath 20b0d476e5 arm-bsp/trusted-firmware-m: introducing corstone1000 FVP machine
Enables trusted-firmware-m on the corstone1000-fvp machine.

Change-Id: Id38d565e1f2b2d0a80cbd58740e64f56ddbc4cee
Signed-off-by: Drew Reed <drew.reed@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi 430a482430 arm-bsp/linux: introducing corstone1000 FVP machine
This commit enables Linux kernel v5.10 for corstone1000-fvp
machine.

Change-Id: I882902bba273355428af06c29796358e17f9b379
Signed-off-by: Arpita S.K <Arpita.S.K@arm.com>
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Vishnu Banavath <vishnu.banavath@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Rui Miguel Silva <rui.silva@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Diego Sueiro 35fd34a134 arm/trusted-firmware-a,fiptool-native: Fix fiptool execution
After http://git.yoctoproject.org/cgit/cgit.cgi/meta-arm/commit/?id=648571b113b39420735859461fcd69cfc6f66c76
the fiptool create command fails with:
    tools/fiptool/fiptool: error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directory

Put back the inclusion of BUILD_LDFLAGS to fix this.

Issue-Id: SCM-3548
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I8bfddd0528d5c4dbf5dfd87c9ae17db4e0071b1c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Ross Burton bfe6da8c9b arm/trusted-firmware-a: improve OpenSSL build fix
Take a patch that is heading upstream to pass OPENSSL_DIR to the fiptool
build, removing the need to alter the Makefiles at build time.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Ross Burton 70bb3a0a3d arm/fiptool-native: improve OpenSSL build fix
Take a patch that is heading upstream to pass OPENSSL_DIR to the fiptool
build, removing the need to alter the Makefiles at build time.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi 4556fe3d77 arm/fiptool-native: bumping the version to v2.5
The commit provides the v2.5 recipe for fiptool-native
and removes the older versions.

Change-Id: Ie87ca97bc63bfe7ba2337b1bf05d9658921bab83
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:58 +05:30
Abdellatif El Khlifi a166e092bf arm-bsp/trusted-firmware-a: remove TARGET_FPU build argument
TARGET_FPU passed to TF-A Makefile but is not used in TF-A source code.

Change-Id: I7c275711ed1e9fb9ee4e4df2b9c1606cacc4138c
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:57 +05:30
Satish Kumar 0e6eb300f8 arm/trusted-firmware-m: upgrade to 1.4.0
Update TF-M to version 1.4.0, mbed TLS to 3.0.0, TF-M tests to 1.4.0,
and MCUBoot to TF-Mv1.4-integ tag.

Change-Id: I9172ed9fbf6c6c2ed88303256ef2452dafc665be
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-22 16:25:35 +05:30
Ross Burton b46330d783 CI: disable use of Yocto sstate server
The public sstate server isn't up to the load just yet and often-enough
will take a very long time to respond, causing build failures.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-11-16 12:49:14 +00:00
luca fancellu 27e102a430 arm-autonomy/xen-devicetree: change Xen dts and n1sdp dtsi
The current Xen dts produced by the layer is using an old
way to specify the dom0 kernel module that won't be supported
anymore in Xen 4.16 when booting through UEFI.

Change xen.dtsi.in to have the Dom0 kernel module as a
direct child of /chosen node.

For the n1sdp, Grub2 is responsible to create the Dom0
kernel node and properly setup the #address-cells and
the #size-cells properties, so modify the dynamic layer
dtsi for n1sdp to remove these node and properties from
the yocto generated dtb for Xen.

Issue-Id: SCM-3647
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Change-Id: I35236bbb3fe97e4237bc5c45fb521efdaa472ef1
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-11-11 15:48:56 +00:00
Ross Burton 57e683eb80 arm/hafnium: fix kernel tool linking
We need to be sure that the host linker flags are passed to the kernel
build, as otherwise it is possible that binaries are incorrectly linked.
For example:

HOSTCC scripts/extract-cert
ld: .../recipe-sysroot-native/usr/lib/pkgconfig/../../../usr/lib/libcrypto.so: undefined reference to `pthread_once@GLIBC_2.34'

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-11-10 15:52:11 +00:00
Ross Burton 3236ebeb89 arm/trusted-firmware-a: ensure native cert_create has -rpath
Patch in BUILD_LDFLAGS into the cert_create Makefile so that the -rpath
arguments are passed to the native build, meaning it can find libssl
correctly.  This somewhat worked previously as the host libssl and
sysroot libssl matched, but now that OE has OpenSSL 3 that often isn't
the case.

Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-11-09 20:26:08 +00:00
Peter Hoyes 8bccb38744 runfvp: Ensure new process group is in the foreground
When a new process group is created, it is launched in the background
and any attempt to access the session terminal triggers a SIGTTIN (for
stdin) or SIGTTOU (for stdout) signal. These are ignored in an
interactive shell, but the default signal behavior in a new job is to
send a SIGTSTP to the whole process group. This causes runfvp to hang
when executed via a subprocess when stdin is accessed.

After creating a new process group, use tcsetpgrp to make the new group
the foreground process for the terminal associated with stdin/stdout,
but only if stdin is a tty.

The documentation for tcsetgrp states that tcsetpgrp itself raises a
SIGTTOU signal, so set this signal to SIG_IGN.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I349a825df7fcb8a3cedb81762b901c6f50fa53b5
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-11-01 21:01:40 -04:00
Abdellatif El Khlifi 2e2dbc2587 arm/trusted-firmware-m: setting the toolchain file path in PACKAGECONFIG
Toolchain files toolchain_GNUARM.cmake and toolchain_ARMCLANG.cmake are
located at trusted-firmware-m source directory.

This commit sets that.

Change-Id: If9c26f65b0c8111a6ff1f1a7d56610563efd501b
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:18 -04:00
Abdellatif El Khlifi ab574b084e arm/trusted-firmware-m: enabling PACKAGECONFIG when using CMake
In case of CMake, PACKAGECONFIG configs take effect when passing
PACKAGECONFIG_CONFARGS to the configure task.

Change-Id: I126ba089c9a5db8e895b8a9545e96ef9fa98ce0d
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:18 -04:00
Ross Burton b4f52f2642 arm/lib/oeqa: fix module lookup
As multiple paths can and do provide modules under oeqa.controllers, all
of these paths need to call pkgutil.extend_path() so the lookup works
correctly.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:18 -04:00
Ross Burton 2d22a1f7ae CI: enable testimage for fvp-base
Inherit fvpboot so that the FVP binary is fetched and configuration
generated.

Configure the FVP to forward host port 8022 to port 22 locally, and
tell testimage to SSH to localhost:8022. This has the limitation that
only one testimage can run per machine, but this will be removed shortly.

Disable the parselogs test case, as there are some harmless warnings in
the dmesg which cause it to fail.  Currently meta-arm can't extend the
whitelist of ignorable warnings.

The FVP binaries are x86-64 only, so tag the job appropriately.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton ba86aeb31f CI: install telnet into the images
runfvp currently needs telnet to communicate with the guest, so install
telnet into the image.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton 48524c32d5 arm-bsp/fvp-common: set TEST_TARGET to OEFVPTarget
Set TEST_TARGET so that all FVP machines use the new FVP target out of
the box, instead of attempting to use qemu.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton 4b1a0c7484 arm-bsp/fvp: enable virtio drivers
All FVPs can use virtio networking devices, so enable virtio in all of
the FVP kernels.

Remove our fvp/fvp-virtio.cfg as there's cfg/virtio.scc we can use.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton 2824f6a58b arm/oeqa: add FVP testimage controller target
Add a new oeqa.core.target.OETarget subclass for testimage which starts
a FVP using runfvp. This uses --console to connect to the console so
telnet is needed on the host.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton 0a64644bc9 runfvp: reset the process group on startup
So that it is easy to kill runfvp and everything it starts (such as
telnet or the FVP itself), reset the process group on startup.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton 491cac17fe gem5/gem5-native: add missing m4-native DEPENDS
Latest oe-core has less implicit DEPENDS, so gem5 fails to configure:

Error: Can't find version of M4 macro processor.  Please install M4 and try again.

Explicitly add m4-native to DEPENDS.

Change-Id: I2e107ea6448eec399619e0d1922fd29930a95fd8
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-20 14:07:11 -04:00
Ross Burton 328d95e27d CI: use http: to access sstate mirror
The sstate mirrors are not available over HTTPS currently due to a
certificate problem, so use plain HTTP instead.

Change-Id: I5b974d67bc13f7c7234927c6bc62a8c733e454c3
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-10-19 16:39:48 +01:00
Hugo L'Hostis 99b9ee4470 kas/fvp-baser-aemv8r64: use honister as default branch
Issue-Id: SCM-3532
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I05b529da0f5bbdcee038476d07c42f1b6ac0526f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-15 10:16:14 -04:00
Ross Burton b4bcb3d986 runfvp: use asyncio instead of selector
Using asyncio makes the code easier to understand.  Also start to expose
a callback for when consoles are opened.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-15 10:16:01 -04:00
Ross Burton 3293644cd6 layer: add telnet for testimage/runfvp
Change-Id: Ic31a3bf8ad981c7380339499a377e3f9d676cb15
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-15 10:16:01 -04:00
Hugo L'Hostis 69a36958f0 arm-bsp/fvp-baser-aemv8r64.conf: Use virtio_net User Networking by default
This patch adds config parameters to support virtio_net user networking by
default fvp-baser-aemv8r64 and updates the documentation to remove the old
instructions about setting up tap networking.

Issue-Id: SCM-3536
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I4f3b74c5ba8b8e0b4205fca643a35affbe50a18c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-15 08:07:13 -04:00
Hugo L'Hostis e487392975 arm-autonomy/docs: Update docs instructions to use honister
Issue-Id: SCM-3549
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Ie8537e6574f81f90af254b19d1b38f80ef9aa6fd
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-14 19:15:03 -04:00
Ross Burton 3e39f58630 CI: build against Honister until release
oe-core has branched Honister off and master is taking breaking changes.
As we're still stabilising for release, we should pin to the honister
branches where possible.

Change-Id: Icb05bee45dcc88ca9cbac72b7c18cbaeb89a7491
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-12 12:54:14 -04:00
Khem Raj 363672c8a4 gn: Disable for riscv32
Architecture not supported yet

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-10 13:34:40 -04:00
Jon Mason 98193f3b61 CI: Add zephyr testimage
Add the ability to run testimage against zephyr machines.
Unfortunately, this exposes a bug in meta-zephyr with TESTIMAGE_AUTO not
working correctly.  So, work around this until it can be fixed upstream.
Also, qemu-cortex-a53 does not successfully pass any of the tests it
successfully builds.  So, don't run testimage until that can be
addressed.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-08 12:34:13 -04:00
Jon Mason 335104d6cb ci: use YP sstate mirror
To speed up build times, use the global Yocto Project sstate mirror.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-08 12:34:13 -04:00
Ross Burton 19d4ec05af arm/gn: don't statically link libstdc++
As we're building whole systems and not binaries that are expected to
be copied around, we can dynamically link to libstdc++.

Change-Id: I1e54ca519b069388226f40c489c9194b870a6d3c
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-06 11:51:36 -04:00
Ross Burton 5f90cc4fb1 arm/gn: map the platform identifiers
GN uses its own platform identifiers, so map from our GNU-style names to
the names it expects.

Change-Id: I361536c43f2a9cc5c6dc0a9ad4138433399781d2
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-06 11:51:36 -04:00
Ross Burton 8edc8361b6 arm/gn: remove nativesdk
Building GN in a SDK environment isn't as trivial, as it needs to know
the target configuration it should inherit cross-canadian. Also, building
for mingw32 hosts breaks the build.

For now there's no immediate need for GN in nativesdk, so remove it.

Change-Id: I3b969639fa8ad7780c53ae2bc8a3f166773ee4b9
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-06 11:51:36 -04:00
Ross Burton 8df8b5fab3 arm/gn: don't build with clang
It appears that GN doesn't like to be built with Clang, so disable that
for now.

Change-Id: I01d1d2bf0d646d0841c5f291f07de80837a9a998
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-06 11:51:36 -04:00
Jon Mason 13445dc9b5 arm-toolchain: use better variable name
GCC_VERSION is too similar to existing variable GCCVERSION.  Replace it
with ARM_GCC_VERSION.

Suggested-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-06 11:50:50 -04:00
Ross Burton c2817745c9 CI: reformat .gitlab-ci.yml
Change-Id: Ia4ad65a32a4d09bae05a8f2ab18adc6cf3f820bd
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-10-06 16:30:39 +01:00
Hugo L'Hostis 8f8de6f808 arm-bsp/fvp-baser-aemv8r64: Update to linux-yocto 5.14
Updating the linux kernel version to 5.14 for fvp-baser-aemv8r64.

Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Iad76939460a32d8e34212e86a45905ffd51deb60
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-05 09:47:29 -04:00
Hugo L'Hostis f3763c5c20 kas/fvp-baser-aemv8r64: Use the HEAD of master for meta-arm and poky
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I0db7d208146f22020ca56b5618b4c29cd19089a3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-05 09:47:29 -04:00
Hugo L'Hostis 59809b8111 arm-bsp/fvp-baser-aemv8r64/docs: Add instructions to build previous versions
This patch adds instructions to fetch and build previous versions of the
software stack for fvp-baser-aemv8r64 instead of the ongoing
development.

Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I430196c0ca80c7f1e4b9f8349cdc957c86f384ee
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-05 09:47:29 -04:00
Ross Burton b3e29e60e7 CI: build a proper TC0 image on x86-64
Change-Id: Id3da3b6efd620c2052ef59dc731e4b159830e805
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton 3d935719c8 arm/hafnium: use our gn/ninja/dtc
Instead of relying on the prebuilt GN/Ninja/dtc binaries that come with
Hafnium via the hafnium-prebuilts repository, use the recipes that we
build.

We still need to use the prebuilt compilers, but that is being worked
on upstream.

Change-Id: Ife4172d74f7877eaee3c4c414d7afda61332f220
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton b277050bc9 arm: add recipe for gn
This is a Google build tool used by Hafnium. It will end up in meta-oe
eventually, but until then it can live here.

Change-Id: I7a3df84624664117a6a72e2d93e86036cb483c39
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton 55e845b3e7 arm/hafnium: package the ELF in hafnium-dbg
The .elf is only useful for debugging, so put it in the dbg package.

Change-Id: If2802e4cf8303e7e8258e81b580a43bdecfa3a0a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton dc1a435f00 arm/hafnium: clean up install
Hafnium hard-codes a lot of this logic, so do_install can be simplified.

Change-Id: If4f941dff392a6e8d0b7ee9fff68a9836a7fd806
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton 3f48159b3b arm/hafnium: do out-of-tree builds
Set OUT_DIR to do out-of-tree builds in a directory we control, so we
can wipe it on rebuilds.

Change-Id: I5b96427b6e9d510997de5f2b1947505ad31199dc
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton f225404c69 arm/hafnium: remove python symlink workaround
Hafnium drops a python symlink into HOSTTOOLS_DIR, which is visible to
all recipes, so building hafnium changes the build environment.

Hafnium, since 6c63a26 (2.4 onwards), uses python3 in its own hashbangs.
The prebuilt clang currently uses python hangbangs but this is fixed in
git, and can be temporarily worked around with a patch instead.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Ross Burton 7c3b428f17 arm/hafnium: add missing pkg-config dependency
pkg-config-native is used, so we best depend on it.

Change-Id: Iad57fa306a813828136d2afeefb16c5101512f5b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-10-04 18:26:23 -04:00
Jon Mason 6bdc3553c4 arm-toolchain: use variables
Use variables to make it easier to upgrade when the time comes.

Change-Id: I9f2575279fe79bc0d895d47fdaffd2d5edd4aa59
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton 2ead4e6caa runfvp: exit cleanly if tinfoil cannot be imported
If bb.tinfoil cannot be imported, display a nice error instead of a
backtrace.

Change-Id: I20dab9dfdbd57c8e90c8321072bab4f70b8ace47
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton cdc91df4fc runfvp: ensure the default terminal is usable
Pick a default terminal which will actually work, instead of defaulting
to xterm even if xterm isn't installed.

Also show the default in the --help output.

Change-Id: Ib3e7c32917725f404a171248549b6f9c0afe8158
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton 7cb1866728 runfvp: refactor argument parsing
No behavioural changes, just cleanup.

Change-Id: I04d82512493a2f90e810198e520f672284cd3eb2
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton c5465209c1 runfvp: handle control-c cleanly
If the script receives control-c, don't display the stack trace.

Change-Id: Id0ebf9476ecd685302723fde6a36c2e899d0f3eb
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton 7819d6bed8 arm/fvpboot: clean up fvpboot_vars
Change-Id: I43a04cd1b977fbf7d0050b2ab9e7509c0439dca5
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton 67000ba030 arm-bsp/fvp-base: enable user-mode networking in runfvp
Enable user-mode networking with virtio out of the box.  This way port
forwarding can be configured easily without needing to setup host tap
ports.

Moving forward this may be controlled more by runfvp with the machine
configuration simply saying what configuration parameter to use (in this
case, bp.virtio_net), but this is a good starting point to iterate from.

Change-Id: I0b610df87c7dd2c8e3e213daaa967618babbdc7c
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton 3fd69019e5 arm-bsp/fvp-base: tell FVP to exit on shutdown
Pass bp.ve_sysregs.exit_on_shutdown=1 so that the FVP exits if the
emulated machine shutsdown, which is typically the desired behaviour.

Change-Id: Id2f92df4af67ca5cadc645948eccf9c93af3f8f9
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Ross Burton 9fa908a67a arm: add back linux-yocto defconfig changes
linux-yocto has moved to 5.14, which still needs defconfig tweaks to
build without warnings.

Change-Id: Ia14c02562cf0ccb5fb8fd8544901530a0cfb487b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-27 09:38:53 -04:00
Hugo L'Hostis c1755d99af arm-bsp/n1sdp: remove debug and verbose kernel cmd line parameters from grub cfg
By removing the verbose and debug kernel command line parameters from the grub
menu entries we prevent the console printing unnecessary messages and slowing
down the boot process.

Issue-Id: SCM-3027
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Ieb68c606b7ed5b20191f6989aea84963b8cda778
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-21 09:13:05 -04:00
Ross Burton 898aa08df6 CI: add a job to build the FVP packages
This doesn't execute anything but simply checks that the publically
available FVPs can be downloaded and packaged.

Change-Id: I13895faa6fe6b19363854c33275a3febf61b7132
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 35acf44b39 CI: add FVP-EULA to the license whitelist
So that we can build and use FVP packages in the CI, agree to the FVP
EULA.

Change-Id: Iaff2398000c30782f48f70714846d3f1028b34bb
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 730fcd5bbf arm/fvp: add Total Compute FVP
Change-Id: Iaeff2027ac055519d30d160c97b905974b85567b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 41485dbea4 arm/fvp: add corstone700 FVP
Change-Id: Ia3a80cf34aeb2e4473bc6b6317852e152a5cbcff
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 0a1e13dbd5 arm/fvp: add corstone500 FVP
Change-Id: I70e745a2bb7328c8abcb950340d99e9fc39d754a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 7347a47af4 arm/fvp: add upstream version checking
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 5bfe52b5cf arm/fvp-ecosystem: use all-dots versions
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 91717b4871 arm/fvp-base-*-aem: use all-dots versions
Change-Id: Ie1a5f2de6dcdd1331914798f072ce752e4de1532
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton f8ec2709a1 arm/fvp-common: store the mangled PV as PV_URL
FVP versions in the download URLs are expressed as 11.12_13, but ideally
we'll use a rationalised 11.12.13 form as it's more consistant.

Add a function to transform from a all-dots form to use underscore for
the final portion, and expose this version as PV_URL.

Change-Id: I632b33913baba0f0847440595ef0699d0a769166
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 9a09fadc11 arm/fvp-base-a-aem: use public SRC_URI
This FVP is now freely available without a login, so we can download it
directly.

Change-Id: I8ba041c44233cfbba5e3c223f07acc531a2e5f5c
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton c9eaf80eeb arm/fvp-base-*: factor out commonality to fvp-envelope.inc
The fvp-base-a-aem and fvp-base-r-aem recipes have a lot in common, so
extract that into a fvp-envelope.inc file.

Change-Id: I9390f05e98bec0c1a236bc3c5d55b7144da1e1fd
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton dd0c457ce2 arm/fvp: don't inhibit default dependencies
The FVPs are precompiled binaries so we can theoretically avoid the
default dependencies (gcc and friends), but this means that packaging
doesn't succeed for non-native builds as objcopy (from binutils-cross)
is needed during do_package.

Until oe-core is fixed to depend on binutils-cross, don't disable the
default dependencies.

Change-Id: I9ec292d21c4f9db4e02587b7f58f46852cbc2c3d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 15:56:32 -04:00
Ross Burton 9c15d29a63 CI: don't build the binary toolchains in bootstrap
This job just exercises the binary toolchain packages, so there's no
need to do it in the bootstrap stage.

Change-Id: I9d1697791a1e427d594bd8d99c5cad45961f4c5b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 11:28:07 -04:00
Ross Burton 6d5c14a64a arm-toolchain/gcc-aarch64-none-elf: upgrade to 10.3-2021.07
Change-Id: Ie58f448511ef4f1d23cfd4a9d1dc275f7a216a50
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 11:28:07 -04:00
Jon Mason 88343979fd README: Add root directories
Add ci, kas, and scripts to the README to document their intended uses.
Also, alphabetize the layer entries.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 11:01:24 -04:00
Kamil Dziezyk 71df1d2f82 arm-autonomy/n1sdp: Fix xen build after tunes files update
After update f9cd6797d2 xen build ends with:
| cc1: error: switch '-mcpu=generic' conflicts with '-march=armv8.2-a+crypto' switch [-Werror]
| cc1: all warnings being treated as errors

This patch removes '-march=*' build flag for xen build.

Issue-Id: SCM-2987
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: I526c412a0174cdf715b87fcac077b314bf368b8a
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 11:01:24 -04:00
Kamil Dziezyk 344a5edab2 arm-bsp/n1sdp: Pin linux-yocto-rt to 5.10
This pins the rt kernel to the same version as the standard kernel.
Poky has recently upgraded to 5.13, which has not yet been validated
on the n1sdp.

Issue-Id: SCM-2987
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: Ie53c27e46f529f5e5dc5a6a6b32d2c021ca22651
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 11:01:24 -04:00
Kamil Dziezyk d857095f79 arm-autonomy: Add missing new override syntax
Issue-Id: SCM-2987
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: I8d200f1594005f0f9288683d4f1a5f31c2f29b44
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-20 11:01:24 -04:00
Jon Mason e7d2c8eea4 arm: drop linux-yocto defconfig patch
defconfig patch was upstreamed and is no longer necessary here.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-15 10:55:57 -04:00
Hugo L'Hostis 7a7ab05e57 arm/fvp-base-r-aem: Remove unused FVP_BASE_R_ARM_EULA_ACCEPT variable
The FVP_BASE_R_ARM_EULA_ACCEPT variable is set by kas and doesn't need
to be initialised in the bb recipe.

Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Idbaa8b9fb7753e3c1f77e88710109324322aaf05
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-15 09:00:10 -04:00
Jon Mason eba91cc15b ci: update binary gcc version to 10.3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-14 11:47:44 -04:00
Jon Mason bf5ec4f203 ci: make get-binary-toolchain run per build
In a distributed, non-homogeneous CI setup, the binary-toolchain setup
script might not run on the machine that needs the toolchains.  Make
this per-build and it will always be there, at the expense of running on
builds that might not need it (though it still should be fast).

Also, there is an issue with the directory where the binary toolchain is
located being global, and racing against other systems using, setting up,
and tearing down.  Link this to a local directory to avoid any races.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-14 11:47:44 -04:00
Jon Mason 6566abf9d7 arm: move linux-yocto bbappend to be generic
Remove anything that fixes the kernel version to being 5.10 and let it
float.  Currently, qemuarm64-sbsa was not using the 5.10 kernel, which
means the defconfig patch wasn't even being applied.  Remove patches
that don't apply to 5.13.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-13 13:46:08 -04:00
Anders Dellien e3943b4c50 arm-bsp/tc0: Update kernel configuration to support Android S
Android has deprecated ION and moved to dmabuf instead.
Update the kernel configuration accordingly.

Also, enable "CONFIG_DEVFREQ_THERMAL" as this is required by
the GPU libraries

Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Change-Id: I7ee3659792984f71cf818ef175d7e5ecc25c6d93
2021-09-10 07:41:11 -04:00
Peter Hoyes da848fd7ef arm-bsp/fvp-baser-aemv8r64: Pin linux-yocto-rt to 5.10
This pins the rt kernel to the same version as the standard kernel.
Poky has recently upgraded to 5.13, which has not yet been validated
on the fvp-baser-aemv8r64.

Issue-Id: SCM-2987
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Id7cd02bb9610d82adbe590777517649596d32172
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-07 21:26:19 -04:00
Usama Arif 46e8fc6a67 arm-bsp: Update TC0 components
This makes them common with TC1 and also adds support for FFA v1.1.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-01 13:11:29 -04:00
Peter Hoyes ba55d78916 arm-bsp/docs: fvp-baser-aemv8r64 change log fixes
* change Changelog to Change Log.
 * change armv8r64 to Armv8-R64.
 * ensure all log entries have a period.
 * change the order of the entires to highlight key release features.

Issue-Id: SCM-2987
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Id77ec01c455ac8954a965af8659421cc485e4778
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-01 10:59:49 -04:00
Ross Burton a6ff8238d9 Revert "CI: use the kas:next image"
The kas:latest image now has the updated build dependencies, so use that
again instead of the potentially unstable next image.

This reverts commit 6b1d8abb3b.

Change-Id: I28409bb176df91b7e8ebb558814b3d65dec78724
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-09-01 10:59:49 -04:00
Sumit Garg 13972eed3c arm-toolchain: Uprev 10.2 -> 10.3
Update Arm GCC toolchain recipe and patches accordingly.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>

Changes in v2:
- Drop support for 10.2 release.
- Update CI to use 10.3 release instead.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-25 19:16:04 -04:00
Peter Hoyes 9a2078a107 arm-bsp/docs: fvp-baser-aemv8r64 readme updates
* Add missing net-tools to apt-get install list
 * Use export to set FVP_BASE_R_AEM_TARBALL_URI and
   FVP_BASE_R_AEM_EULA_ACCEPT and make kas build its own command.
 * Change bp.hostbridge.interfaceName=tap0 to
   bp.virtio_net.hostbridge.interfaceName=ta0 for runfvp, so that the
   FVP can access the external network.

Issue-Id: SCM-2987
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: If9052400d2ae199861bc00ce119d28069f476f7e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-23 18:06:10 -04:00
Peter Hoyes 65c935141d arm-bsp/docs: Reword fvp-baser-aemv8r64 known issues
The wording implied they were limitations of the architecture, so
rewrite to make clear they are software restrictions.

Issue-Id: SCM-2987
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I79ca1ac7cdce709015de1c539a6ec7fe1650d384
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-23 18:06:10 -04:00
Peter Hoyes 4865a2ceee arm-bsp/docs: Add fvp-baser-aemv8r64 changelog
Issue-Id: SCM-2987
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I1caeb64ab50d54869a9629ac74fcc1399279c41d
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-23 18:06:10 -04:00
Jon Mason 9e2829a30c gem5: re-add Xen support to 5.4 kernel
The meta-virtualization support for the 5.4 kernel was removed in favor
of the 5.10 kernel.  This file was only a versioned include of a generic
file, which can be readded in the kernel bbappend.

Change-Id: I922e847a89e9f29fc69c1f537f9da088685b3de4
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-21 17:25:03 -04:00
Jon Mason d6d1edd9c1 arm-bsp: remove tunes that are now upstream
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-21 16:55:58 -04:00
Ross Burton 203ee49cc4 arm-bsp/scp-firmware: unify TC versions
The base version is 2.8.0, so these should be 2.8.0+git.

Change-Id: Ief7c3176e46f6ec8b4549375f9be776a7ffbd4d7
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-21 10:55:36 -04:00
Ross Burton 6b1d8abb3b CI: use the kas:next image
OpenEmbedded Core master now depends on a few more build tools, so use the
kas:next image until these have been merged into kas:latest.

Change-Id: Ib4c36037d74ec6febca120346bd5bcb08acfccf6
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-20 09:29:10 -04:00
Jon Mason 912901ba53 arm/qemuarm64-secureboot: use 5.10 kernel
qemuarm64-secureboot is failing to boot with the 5.13 kernel.  Use the
5.10 kernel until this can be addressed.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-19 12:17:02 -04:00
Jon Mason 729c01ad2e arm-bsp/linux-yocto: Add 5.4 kernel
Temporary hack to allow for things to continue to work, while waiting
for the platforms to migrate to a newer kernel.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-18 13:10:22 -04:00
Jon Mason 54f5f1c074 arm/machine: update to new tunes locations
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-18 13:10:22 -04:00
Jon Mason d6538126ff arm-bsp/linux-yocto: migrate corstone700 to the common file
The Linux kernel entries for corstone700 are not much more than any
other BSP.  Migrate them to the common file for easier development and
debugging.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-18 13:10:16 -04:00
Jon Mason 5f73b570bb arm-bsp/linux-yocto: Alphabetize platform inc file
This file was mostly alphabetized from previous attempts.  Restore them
to being alphabetized again.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-18 11:55:10 -04:00
Ross Burton b7d161b23f arm-bsp/linux-yocto: drop upstreamed N1SDP patch
This patch was upstreamed in 5.10.54.

Change-Id: Iacf6345c4d4ffa8e512e2f812876fdd50a057f96
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-18 11:10:25 -04:00
Diego Sueiro 60e0b0a9c9 kas/fvp-baser-aemv8r64: Pin meta-arm to a stable build revision
Issue-Id: SCM-2989
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Id3e1362a6a727102ca5986e5e781280442348cf7
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-18 09:53:47 -04:00
Jon Mason a23f2da8ab qemu-cortex-r5: add support
Mostly for testing out cortex-r tunes...mostly

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-16 17:35:49 -04:00
Jon Mason f0685a0c38 arm-bsp: cortex-r tunes
Add support for all of the Cortex-R CPUs currently supported in GCC.
Having to get creative here to properly use the GCC extensions.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-16 17:35:49 -04:00
Jon Mason 33328d26c5 arm-bsp: remove upstreamed cortex-m tunes
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-16 17:35:49 -04:00
Diego Sueiro ce6c4936e5 arm-bsp/fvp-baser-aemv8r64: Update documentation
Add information about PSCI support as well as known issues and limitations.

Also, update the fvp-baser-aemv8r64 kas config file to fetch the layers under
the layers directory and pin poky to a stable build revision.

Issue-Id: SCM-2989
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I8e2b30ba708f6ff7fdf43f29eede0e65aa3685ca
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-16 11:16:05 -04:00
Usama Arif e8c1001068 arm-bsp/tc1: Add support for new TC1 platform
The same patches are used by tc0 and tc1. Hence rename the folders
that contain the Total Compute patches to be called "tc". The
artifacts image is used by both tc0 and tc1, hence renamed to
tc-artifacts-image.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Change-Id: Ib0b4fbca9a009c432c1e6696c5437a7d24a25d1f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-16 11:16:05 -04:00
Denys Dmytriyenko 45642fca29 arm-toolchain: grub: fix do_configure() breakage with external-arm toolchain
grub and grub-efi break in do_configure() when using external-arm toolchain:

| checking for aarch64-poky-linux-objcopy... no
| checking for objcopy... objcopy
| checking for aarch64-poky-linux-strip... no
| checking for strip... strip
| checking for aarch64-poky-linux-nm... no
| checking for nm... nm
| checking for aarch64-poky-linux-ranlib... no
| checking for ranlib... ranlib
...
| checking whether objcopy works for absolute addresses... configure: error: objcopy cannot create binary files

That is due to external-arm toolchain's target triplet aarch64-none-linux-gnu
being different from OE triplet like aarch64-poky-linux and configure script
trying to use it to find binutils binaries like objcopy, falling back to host
ones.

Help configure script to find correct objcopy and other binaries by passing
the correct target triplet with --target parameter set to EAT_TARGET_SYS,
overriding the default OE one.

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Cc: Tom Rini <trini@konsulko.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-14 20:52:38 -04:00
Jon Mason c561f356ed ci: move meta-virtualization back to master branch
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-13 11:11:43 -04:00
Ross Burton b1d667c396 scripts: add machine summary report tool
machine-summary.py is a tool to generate a report of what recipes and
versions are used for what machines, and what the latest upstream release
is.

Change-Id: Iecf21a14057df0fd1cb05be9b54c621dfbaddd94
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-12 09:49:19 -04:00
Ross Burton 8f204c28da ci/check-machine-coverage: use listmachines.py
Change-Id: I5a7e706ae29b76a39aed8acfc0cd825e942b1cfe
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-12 09:49:19 -04:00
Ross Burton abe47cb981 ci/listmachines: add helper to list machines in a layer
Instead of duplicating this logic, put it in a little helper module.

Change-Id: I2ca881c8de7e6ec6d4a940255d9ba97226e78d87
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-12 09:49:19 -04:00
Diego Sueiro 1bd54eee7d arm-autonomy/arm64-autonomy-guest: Add tar.bz2 by appending to IMAGE_FSTYPES
This wil prevent default values assignment (?=) to be ignored depending on the
config files parsing order.

Issue-Id: SCM-3027
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I0629b52ad100c10eaac9f7004bcdfc778de678f0
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-11 14:26:04 -04:00
Kamil Dziezyk 209c46bd5b arm-autonomy/xenguest-network: add missing new override syntax
Issue-Id: SCM-3027
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: Idf757266faf655527179b0d23a0ff8bafc90ff2f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-11 14:26:04 -04:00
Jon Mason e564544a68 arm-bsp: tune file clean-up
Remove tune files that are already in oe-core, and move ARMv8 ones to
their theoretical location.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-11 14:26:04 -04:00
Jon Mason 181abb1737 CI: Remove qemuarmv5 parselog workaround
qemuarmv5 parselog fix is now upstream.  Remove the workaround.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-10 09:18:28 -04:00
Jon Mason c3e3a2fd96 arm: remove support for hardknott and older
No testing is being done against older branches.  Only have the
compatibility set to honister to prevent any issues.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-10 09:18:28 -04:00
Jon Mason f9cd6797d2 n1sdp: use upstream tunes file
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-10 09:18:28 -04:00
Jon Mason 99f40454ad sgi575: remove redundant entry
sgi575 already has the defconfig entry in the include file.  Remove the
redundant entry from the machine config file.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-10 09:18:28 -04:00
Jon Mason c72389f633 arm-bsp: update 5.6 Linux kernel recipe to 5.6.19
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-10 09:18:28 -04:00
Jon Mason ae7ed6c9db arm-bsp: Update kernel recipes to match upstream format
Using recipes-kernel/linux/linux-yocto_5.4.bb as a guide, format the
kernel recipes to match.  This enables easier diffing and updating.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-10 09:18:28 -04:00
Jon Mason c0bc7e9e8f CI: move xen specific changes out of gem5-arm64-xen.yml
Move the xen specific changes out of gem5-arm64-xen.yml.  This allows
for other xen machines in the CI.  Adding Xen machines for qemuarm and
qemuarm64 allows for more testing, which should be expanded when the Xen
Test Framework in meta-virtualization is expanded to work on arm
machines.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-06 12:47:35 -04:00
Jon Mason e62567a386 CI: rename meta-python to meta-openembedded
Rename the meta-python.yml file to be meta-openembedded.  This allows
for more usage of the layers present there (as meta-python is housed
under meta-openembedded).

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-06 12:47:19 -04:00
Jon Mason 8f259bf092 corestone500: clean-up kernel entries
Correct an override syntax issue with the kernel and move the relevant
kernel entries from the machine config to the kernel include file to
match the other machines in meta-arm-bsp

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-06 12:46:51 -04:00
Jon Mason cc42e5499d juno: temporarily pin 5.4 kernel version
Recent changes in the 5.4 kernel are preventing the juno patches from
applying.  Temporarily pin the kernel to the version prior to this until
the patches can be rebased.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-05 19:12:41 -04:00
Jon Mason cff87446d2 CI: use meta-virtualization master-next branch
Use master-next for meta-virt while waiting for the syntax change
patches to make it into master

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-05 19:12:41 -04:00
Jon Mason 6df2c5c882 CI: fix check-layers
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-05 19:12:41 -04:00
Jon Mason 6c7d6b80f2 gem5: Fix xen override syntax bug
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-05 19:12:36 -04:00
Jon Mason 8dfdacd75c meta-arm: Convert to new override syntax
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-04 12:29:51 -04:00
Jon Mason 3899adac99 CI: increase CONF_VERSION
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-04 12:29:51 -04:00
Jon Mason 239e939340 meta-arm: Add honister layer compatibility
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-08-04 12:29:21 -04:00
Hugo L'Hostis 1b7c5b2010 arm-bsp/fvp-baser-aemv8r64: add support for virtio-9p
This patch adds a device tree entry and kernel configs to enable file
sharing between the host and the FVP using the virtio P9 device
component.

Issue-Id: SCM-2299
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Icd757e3c6281e5e84985a3caac72e860a4aeee7f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-31 22:38:03 -04:00
Anders Dellien 4371f0daee arm-bsp/tc0: use config fragment for kernel command line
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Change-Id: Iabd84ff5a07b78503e45203542aafac738c9c324
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-29 16:10:47 -04:00
Ross Burton 8e511f1acf arm/linux-yocto: re-generate defconfig.patch for qemuarm64-sbsa and generic-arm64
This patch was getting confusings, so regenerate the minimal form and
explain what each change is for.

Change-Id: I313249d46d55399626151cb22a9bc11bec9fb253
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 14:36:21 -04:00
Ross Burton 6dc5a85dba arm/linux-yocto: remove SRCREV pin
This SRCREV pin isn't needed anymore, so remove it.

Change-Id: I39a02617840cfccb006b2e1e77cd2ce4f4e942e4
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 14:36:21 -04:00
Ross Burton 5ca4159db6 arm/generic-arm64: recommend kernel modules and firmware
The generic-arm64 machine is meant to be generic, so pull in all the
kernel modules and firmware we have to increase the chances of hardware
working out of the box.

Change-Id: I51f500f6a6f821fa8df5bee062a52077dcf8e564
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 14:36:21 -04:00
Ross Burton 59d574a1e4 arm/linux-yocto: enable USB Type-C Port Controller Interface in generic-arm64
This is needed for hardware with USB Type C ports to work properly, so
enable it in generic-arm64 kernels.

Change-Id: I61e8dafde8ccdbacf35f58da8aef07d35a70193c
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 14:36:21 -04:00
Jon Mason 9bdfd40ffd CI: add ssh tests
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 13:56:38 -04:00
Hugo L'Hostis 23a1149304 arm-bsp/fvp-baser-aemv8r64: Add support for runfvp
This patch adds support for runfvp to fvp-base-r:
- Add necessary parameter to the fvp-baser-aemv8r64.conf
- Add fvp-base-r-aem bb file
- Add kas support

Issue-Id: SCM-2953
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I252b445297f2d61a90e3cd8f0ec1816890cf733b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 09:49:56 -04:00
Hugo L'Hostis 4cfddc2b26 arm-bsp/fvp-baser-aemv8r64: Use master as kas default refspec
the default refspec for the repos used by kas is now master.

Issue-Id: SCM-2953
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I9a68ca36f107e0b72c97b7a402829fec850d8acc
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 09:49:56 -04:00
Jon Mason ba3c2eead6 CI: add qemuarm clang testimage
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 08:07:51 -04:00
Jon Mason e74bfb3977 CI: Add bootstrap for clang
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 08:07:51 -04:00
Jon Mason 109d594b84 CI: merge testimage into the build stage
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-28 08:07:51 -04:00
Ross Burton 2e4114a869 arm/hafnium: use sysroot libcrypto
Hafnium's build of the kernel needs libssl-dev to be installed on the host.

Instead, DEPEND on openssl-native and patch the lookup to use pkg-config-native.

Change-Id: Id184865183cde487cacd73740a916166c2900a66
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 14:23:42 -04:00
Arunachalam Ganapathy 3f9d822025 arm-bsp/tc0: add managed exit patch for optee
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I2a8db6024af35bf95e94963b58011daebb3c666b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:43:01 -04:00
Arunachalam Ganapathy e5f3ae665d arm-bsp/trusted-firmware-a: update SHA for tc0
This SHA contains fix for SVE and AMU extension

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Iefa3e8f9bee41098ea49304d88dc04df74ddcb9c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:43:01 -04:00
Arunachalam Ganapathy 44ba4315dd arm-bsp/scp-firmware: update SHA for tc0
This SHA contains fix for IRQn type conversion issues

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I10cc4729df3e12c549413f40d390c24f318c4577
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:39:21 -04:00
Arunachalam Ganapathy c17dfab3aa arm-bsp/tc0: update Hafnium to 2.5
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I2da38cff515cb543a31c7d8e2c50b51ff94ca8d3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:39:21 -04:00
Arunachalam Ganapathy 001668e2ac arm/hafnium: update to version 2.5
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I1405bd4df424e70af1286ccc675001bd79726b48
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:39:21 -04:00
Arunachalam Ganapathy 640600304b arm-bsp/tc0: Update optee to 3.14.0
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Ic70bcab5a3e0b7ccf6deb9a0dc3efe21112995fa
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:39:21 -04:00
Arunachalam Ganapathy 9a20a5cc10 arm-bsp/linux: add ffa driver to TC0
This includes the initial version of ffa driver and optee driver
support for FF-A to ACK 5.10

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I8a2c6d0e26422bd2183f3c1f370b0c08eeba7c1e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:39:21 -04:00
Anders Dellien 7612faf780 arm: update Android common kernel
Update ACK to 5.10 and remove the 5.4 recipe

Change-Id: I7a0cc0bc95d02bed965530d36aedaf544045fee4
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:39:21 -04:00
Sumit Garg 2f5216c45f arm/optee: version uplift 3.11.0 -> 3.14.0
Brief description of changes:
- Version uplift 3.11.0 -> 3.14.0.
- Removed OP-TEE patches that has already been accepted upstream.
- Added support for tee-supplicant plugin framework testing.

Tested on qemuarm64_secureboot:
$ xtest -l 15
$ optee-examples_*

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-27 09:38:30 -04:00
Qi Feng a37655b523 arm-bsp/linux: Add PMU support to fvp-baser-aemv8r64
Set Shared Peripheral Interrupts (SPIs) for PMUIRQ so that profiling
tools (such as perf) can use PMU events.

Issue-Id: SCM-3164
Signed-off-by: Qi Feng <qi.feng@arm.com>
Change-Id: Idcfee3f33d9f9e15578405dd39be4f434f3faa06
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-26 10:04:22 -04:00
Hugo L'Hostis be58ae8134 arm-autonomy/fvp-base: Add support for runfvp for arm-autonomy-host
Expand the FVP_DATA variable used by the fvpboot.bbclass to load both Xen
and its device tree when building arm-autonomy-host image for fvp-base.

Issue-Id: SCM-2718
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Ia6e2f6a13e84c8e762d297ac34ccbe5417a7793b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-26 10:04:00 -04:00
Ross Burton 3615b2f671 CI: set interruptible on all jobs
The previous attempt at setting interruptible didn't work as it needs to
happen on all tasks, as once a single uninterruptible job has executed
the pipeline cannot be cancelled.  Unfortunately the setup jobs were
not interruptible, so the pipeline could never be cancelled.

Change-Id: I5416bc3f9a883ace24c12607b2ebc24bc428b50b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-21 09:46:31 -04:00
Ross Burton 6e260464be arm/generic-arm64: set machine features
Set a slew of generic machine features that other parts of oe-core will
respect.

Change-Id: I47ea187128c7e3a9f8b711b74467b20b9cb4fcee
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-20 10:43:22 -04:00
Ross Burton 001be1911e arm/generic-arm64: use a custom EFI wic file
Instead of using the pre-canned Wic kickstart file, provide our own.
This lets us specify that UUIDs should be used in the fstab, meaning
that the image is agnostic to the device type.

Change-Id: If9c0083c16f8bd2ad7d573a0d356383553aa8936
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-20 10:43:22 -04:00
Ross Burton 7a2933483e arm/generic-arm64: don't set SERIAL_CONSOLES
This machine expects something approximating SystemReady, which means
the firmware should be capable of telling the kernel where the console
is.

Remove SERIAL_CONSOLES so the kernel does what the firmware is told, and
doesn't try to use serial consoles that don't exist.

Change-Id: Ib0b008fececf4c046112bdede9d0d3ebf9dc332b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-20 10:43:22 -04:00
Ross Burton 9efa3b5683 arm-bsp/fvp-baser: use common fvp-base.wks file
fvp-baser-aemv8r64.wks is identical to fvp-base.wks, so just reuse it.

Change-Id: Ib7db425b35cfd68494beb167fe167c46cdd32b3d
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-07-15 15:24:52 +01:00
Ross Burton 3277f66980 arm-bsp/fvp-base: use the mainline linux devicetree
When the FVP Base machine was first added the mainline kernel didn't
have a usable Devicetree.  This is no longer the case, so use the
fvp-base-revc devicetree in the kernel.

Change-Id: Ib1c4dc332776b393869c6fb3f11be1811a6544f5
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-07-15 12:05:26 +01:00
Ross Burton 8ec7d455a6 arm-toolchain/armcompiler: add EULA comment
Change-Id: I9a46986f0ce23d60acc60a35a8b43d55cf6a512e
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-07-14 12:05:38 +01:00
Anders Dellien 6bf368c4db arm-bsp/tc0: move to u-boot 2021.07
Also add necessary patches.

Change-Id: I7ef31832e3bd0521c03a3945e8b70596d2ef0f73
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
2021-07-13 18:24:10 -04:00
Jon Mason 709b5de7e0 arm-bsp/fvp-base*: update to u-boot 2021.07
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-13 08:10:47 -04:00
Huifeng Zhang a84f37cb8d arm-bsp/boot-wrapper-aarch64: Enable SMP support for fvp-baser-aemv8r64
Downstream patch "Allow --enable-psci to choose between smc and hvc"
from boot-wrapper-aarch64. With this patch, kernel can bring up
secondary core successfully through hvc call.

Issue-Id: SCM-2949
Signed-off-by: Huifeng Zhang <Huifeng.Zhang@arm.com>
Change-Id: Iecc99d925317ab7981284671cb8cc4ef1894e6d6
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-08 15:39:45 -04:00
Damodar Santhapuri b05378f479 arm/scp-firmware: Fix secondary cpus boot issue
The below assertion is observed in linux kernel booting secondary cpus.
fix is available in scp-firmware's master.

ASSERT: drivers/arm/css/scmi/scmi_pwr_dmn_proto.c:48
BACKTRACE: START: assert
0: EL3: 0x400557c
1: EL3: 0x40031b8
2: EL3: 0x400abec
3: EL3: 0x4006898
4: EL3: 0x4008c70
5: EL3: 0x4008a48
6: EL3: 0x4009d60
7: EL3: 0x400af74
8: EL3: 0x40053e8
BACKTRACE: END: assert

Change-Id: I79ec7007aadbe9947368cb471da159cbb965e04c
Signed-off-by: Damodar Santhapuri <damodar.santhapuri@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:27:56 -04:00
Diego Sueiro 1cb359f767 arm-autonomy: Bump Xen to 4.15
Also remove disabling CONFIG_ARM64_SVE in the kernel since it is now supported
in xen 4.15+

Issue-Id: SCM-3027
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I8fa09a10d16e892ea24e6abc77678d2fb1947e43
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:27:56 -04:00
Ross Burton c3761f6a24 CI: add packaging test for the binary Arm compilers
Add a trivial job that verifies the binary Arm compiler packages all
fetch and package correctly for both x86-64 and arm64.

Change-Id: I1e29cc175d66d418630505dcac1a87cdf5c0024a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Reviewed-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:27:47 -04:00
Ross Burton 339420ae77 arm-toolchain/armcompiler: fix checksums and installation on arm64
The tarball has been regenerated with new license texts, so the
checksums are different.

Also, patch out the host architecture test in the installer: we might
want to package the armcompiler for a x86 target on a arm64 machine.

Change-Id: Iedf0113c53b6567e3e4e716e2a0db98776d1da6d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:22:51 -04:00
Ben Horgan 40e3391fa5 arm-toolchain/gcc-aarch64-none-elf: Fix license checksums
Signed-off-by: Ben Horgan <ben.horgan@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:20:06 -04:00
Ross Burton a915532234 ci/check-warnings: ignore warnings that we're using the mirror
SourceForge in particular doesn't like multiple connections from the
same IP, but when a source mirror is being populated for the first time
this will happen. Our fetch falls back to the Yocto mirror so it doesn't
cause a failure, but there is a warning logged which our CI then fails
because of.

As we don't care about these warnings, filter them out of the log before
checking if there were any errors.

Change-Id: I36c97c5d9923f1c4d14c4588f3780211cccb57b2
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:20:06 -04:00
Ross Burton 427c728915 README: update
Change-Id: Ia28bbbbe07108cd8442a93b50cee8b647c03643b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-07 09:20:06 -04:00
Peter Hoyes 079f34ce9f arm-bsp/arch-armv8r64: Introduce armv8r64 compiler flags
Introduce the proper compiler flags for armv8r64, and also
disable -march=armv8-r for boot-wrapper-aarch64

Issue-Id: SCM-2342
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I3d2fac232139b057a5d1a3a8c6f5b825f95d709a
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-07-02 13:54:49 -04:00
Diego Sueiro 7f30fad6ef ci: Add meta-arm-autonomy to check-layers job
Issue-Id: SCM-2625
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: If6ea3b3ed2915d540eb30632e33bb29882a36b67
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-30 16:54:40 -04:00
Diego Sueiro 1d7d30f98d arm-autonomy: fixes for yocto-check-layer
Add fixes for yocto-check-layer with no new functionality introduced.

Issue-Id: SCM-2625
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I4f7dc30e7ca27f88dfe140ac84ff2b73fe99b728
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-30 16:54:40 -04:00
Timothy Mertz af10576f9f external-arm-sdk-toolchain: Fix parsing error with INCOMPATIBLE_LICENSE
This change fixes parsing error that occurs when INCOMPATIBLE_LICENSE =
"GPLv3" by defining EAT_BFD_LICENSE, EAT_GDB_LICENSE and EAT_RLE_LICENSE
in license.inc and requiring it in external-arm-sdk-toolchain.bb

Definitions in external-arm-toolchain-versions.inc are made redundant so
they are removed.

Signed-off-by: Timothy Mertz <timothy.mertz@garmin.com>
Signed-off-by: Joshua Watt <Joshua.Watt@garmin.com>
Reviewed-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-30 10:58:15 -04:00
Khem Raj 453f4094e1 gator-daemon: Do not specify header files in GATORD_CXX_SRC_FILES
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-29 09:14:41 -04:00
Jon Mason 2928fafcbb CI: add testing and testimage
Add a testing task to the gitlab CI and run testimage in that job.
Currently, it only runs against some of the qemu based machines.
Using slirp, there is no need for a privileged container or tun/tap
devices.

Change-Id: Ia85a3d0089f7d4dc7595c3a45d328c79d8e675f1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-25 13:37:28 -04:00
Clément Péron df36289f44 arm/gator-daemon: Add new package
To communicate with the target device, Streamline requires the
gator daemon, gatord, to be running on the device.

Signed-off-by: Clément Péron <peron.clem@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-25 13:36:59 -04:00
Anastasios Kavoukis 70320d9dfc CI: enable debug-tweaks IMAGE_FEATURE
This makes the images suitable for development and test,
debug-tweaks includes settings like empty root password.

All CI image builds inheriting from base.yml will
have this include this setting.

Signed-off-by: Anastasios Kavoukis <anastasios.kavoukis@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-21 14:52:38 -04:00
Ross Burton 3168767bb4 arm/opencsd: upgrade to 1.1.0
Change-Id: I0f8004b3f75eb45fa45ac3d1355fbb12b297808b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-18 20:09:00 -04:00
Ross Burton 14b2b0b7cd arm/edk2-firmware: apply VLA fix to all edk2 builds
sbsa-acs was fixed to solve the VLA compiler error with GCC 11, but the
problem is in EDK2 and not specific to sbsa-acs.

Apply the patch in edk2-firmware.inc so that all recipes get the fix.

Change-Id: I56b07fa0610d47bd89c1ce37cfac1205a90a4083
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-18 11:42:33 +01:00
Ross Burton 223323bc0c arm/sbsa-acs: move alongside edk2-firmware
As sbsa-acs is just a EDK2 application, it makes things easier in the
recipes if they're in the same directory.

Change-Id: I4b6d715213681bb2d942589ad85bbc399721df97
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-18 11:42:33 +01:00
Ross Burton eb50c4b785 ci: add yocto-check-layers step
Add a job to run yocto-check-layers to validate a selection of layers
are Yocto Project Compatible.

Right now we validate:
- meta-arm
- meta-arm-bsp
- meta-arm-toolchain
- meta-gem5

meta-atp and meta-arm-autonomy are currently skipped: meta-atp fails and
meta-arm-autonomy has a larger set of dependant layers and will be added
later.

Change-Id: Ia0c8c16e4228eeb461bd213b30703e950ede656f
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-17 13:47:34 +01:00
Ross Burton e3753bdade arm/trusted-firmware-a: disable -Werror
-Werror is typically a bad idea in distribution builds, as changes to
the compiler or other libraries can cause new warnings to appear.

For example, when building the N1SDP platform:

  error: "GIC-600 Multichip driver is currently experimental and the API
          may change in future." [-Werror,-W#warnings]

Set E=0 so that -Werror is not used in the build.

Change-Id: I8905fc9d4e95edb42970fe3839b9ab6b5384a123
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-16 11:04:02 -04:00
Ross Burton a717375630 arm/trusted-firmware-a: update TC0 to 2.5
TC0 has been using an intermediate SHA post-2.4 as it needed some commits
that were only in the integration branch.

We now have 2.5 which includes these commits, so move to that release.

Change-Id: Ic56c3daa9a408e837219c4f81d22081bbcc5c56d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-16 11:04:02 -04:00
Ross Burton 7edf8de381 arm/trusted-firmware-a: drop clang tweaks
These Clang patches don't appear to be needed anymore.  TF-A doesn't
build for various platforms but the unusual errors these patches work
around are not the cause.

Change-Id: I41dffc4f19d298d5861bb0274e6ffef6c24f4ca3
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-16 11:04:02 -04:00
Ross Burton f5e82358d0 arm-bsp/boot-firmware: fix build race
As boot-firmware is heavily based on SCP-firmware it has the same build
race.  Luckily, the patch in SCP-firmware[1] applies cleanly to
boot-firmware.

[1] https://github.com/ARM-software/SCP-firmware/commit/34e1c04534607f5605255f39fb46e26261fc9c4e
Signed-off-by: Ross Burton <ross.burton@arm.com>

Change-Id: Iaa2f1bb71fce66589db530ea378d4ce995a6bed9
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-14 14:40:00 -04:00
Hugo L'Hostis 6b653b1747 arm-autonomy/xenguest-network: add "none" network type to xenguests
This patch adds a new "none" network type that can be set for xenguests
using XENGUEST_IMAGE_NETWORK_TYPE in their configuration.

Issue-Id: SCM-2338
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: If4f6de282b0048e5c68d293a3db5b56cd5adce66
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-14 10:27:42 +01:00
Khem Raj e969101aac sbsa-acs,edk2-firmware: Adjust target tuple for clang
Current settings assume glibc tuples and hence when building with musl C
library clang can not find correct cross tools and system headers and
libraries, really we should be using exact tuple that is in play so
using HOST_SYS is right replacement for OE

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Jon Mason <jon.mason@arm.com>
Cc: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-13 14:17:55 -04:00
Hugo L'Hostis a3700f8850 arm-autonomy/n1sdp: add kernel modules to mount FAT filesystem
This patch adds kernel modules necessary for n1sdp to mount the FAT filesystem
codepage 437 and NLS ISO 8859-1.

Issue-Id: SCM-2682
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I2d4fede311544917050326564b2b0a7d0123cb21
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-13 14:17:55 -04:00
Ross Burton 31458a1046 runfvp: drop --parameter, users can use -- --parameter
Now that arbitrary parameters can be passed to the FVP binary, runfvp
doesn't need to handle --parameter itself.

Anyone using runfvp --parameter should simply use runfvp -- --parameter.

Change-Id: I8a79200fe927c253308731e7e0cb228e53cd989a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-13 14:17:55 -04:00
Ross Burton 56b0a992e1 runfvp: pass arbitrary options after -- to the FVP binary
To allow passing arbitrary options to the FVP binary, split the passed
options on --.  Anything before the separator is handled by runfvp,
anything afterwards is passed as-is to the FVP binary.

Change-Id: I686b2fb79d217e26988753be7bd067c638d69eac
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-13 14:17:55 -04:00
Ross Burton be0e4ca455 runfvp: exit with the return code of the FVP binary
Change-Id: If79e31e61110161c9a13dd512b0146d1d515d77a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-13 14:17:55 -04:00
Ross Burton 6c3d62c776 arm/trusted-firmware-a: disable branch protection on SGI575
oe-core master's gcc is built with branch protection on by default. However,
this results in slightly larger binaries which mean the SGI575 build is now
too large.

Until this is investigated properly, we can just disable branch protection
for the SGI575 build.

Change-Id: I9a8b0a8e569b944c274199ce306a3864c94c8c5c
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-09 15:04:12 +01:00
Ross Burton 6aeef23f3d gem5/gem5: upgrade to 20.1.0.5
This is the latest point release in the 20.1 series, and also fixes the build with
scons 4.1 (which is now in master).

Change-Id: I31b8aabc8af47cc64af68f2fd0ee2b9b9b656e89
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-06-09 15:04:12 +01:00
Jon Mason 40611d12f5 ci: clean regularly to reduce size
The Gitlab CI executors do not clean-up after each run, which will
result in a ballooning size over time. Remove all files in the work
tree, removing the problem.  SSTATE should prevent this from causing
any performance by not having the files there.

Change-Id: I57df3cf470c519286fe194739a0a7722794f3b25
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-08 11:29:11 -04:00
Hugo L'Hostis 95b66f048e arm-autonomy/xenguest-manager: fix xenguest initscript stop sequence
This patch fixes an issue where xenguest initscript stop sequence was not
properly identifying the running guests.

Issue-Id: SCM-2772
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: I3ad88e00f48fab07f99936a10c0d1deb7459e83b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-07 09:41:54 -04:00
Khem Raj 30143c26fb sbsa-acs: Fix build on hosts with gcc11
Backport a brotli patch which fixes a VLA warning seen with gcc 11

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-03 11:13:30 -04:00
Hugo L'Hostis 6c857d39a6 arm-bsp/docs: documentation improvements for fvp-baser-aemv8r64
This patch updates the documentation for fvp-baser-aemv8r64 :

- Update link to the yocto documentation.
- Add details about what Host OS version are supported. Add Ubuntu
20.04 specific instructions.
- Warn user about disk space.

Issue-Id: SCM-2665
Signed-off-by: Hugo L'Hostis <hugo.lhostis@arm.com>
Change-Id: Ie93a42c2a1ec595707fa7496edbf024650f7eb85
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-01 11:01:19 -04:00
Diego Sueiro 1a46824760 arm-bsp/u-boot/fvp-base: Make usage of config fragments to set CONFIG_BOOTARGS
Since u-boot recipe supports using config fragments let's use it instead of
patching the vexpress_aemv8a_semi_defconfig file.

Issue-Id: SCM-2329
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I7feba5d23a6eab501cade38c188cb8414d0b86bd
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-01 10:59:16 -04:00
luca fancellu 46dcae5cbf arm-autonomy: fix building for xen-tools >=4.15
The 0001-vif-nat-fix-hostname.patch is merged in xen-tools
4.15, so fix the layer to apply the patch only for 4.14.

Issue-Id: SCM-2608
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Change-Id: I1306955ab0b1ee435a8da42e953e142270c4b2d3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-06-01 10:59:16 -04:00
Ross Burton a3c4201aeb arm-bsp/fvp-base: set FVP_ variables
So that a fvp-base image can be tested easily, set the relevant FVP_*
variables.

After setting IMAGE_CLASSES += "fvpboot" in local.conf, this will show
the firmware start and Linux boot:

$ MACHINE=fvp-base bitbake core-image-base
$ runfvp fvp-base --console

Change-Id: Id1bd6cea57958117103e53ab9f78a58ce92b6a2e
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-28 17:15:01 +01:00
Ross Burton 0da1865ac8 scripts: add runfvp
runfvp is a script that reads existing .fvpconf files (as written by
fvpboot.bbclass) and executes the FVP binary appropriately.

By default the behaviour is the same as running a FVP by hand, but by
passing --console the first serial port is connected to stdin/stdout.

Change-Id: Ibd26867c09e8692be4c02a7ea13571dcfe36db9b
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-28 17:15:01 +01:00
Ross Burton 5c3f891151 arm/fvpboot: add class to write FVP boot configuration
The fvpboot class is used to write a machine-readable file that describes
how to boot a given machine image inside a FVP, similar to how qemuboot
writes files for runqemu.

BSPs should set the FVP_* variables as appropriate in their machine
configuration, but let the user opt-in to adding fvpboot to IMAGE_CLASSES.

Change-Id: I2d1cd86ec4affc1d688a293987890d6a89124d94
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-28 17:15:01 +01:00
Ross Burton 68c3c72702 arm/fvp-library: add recipe for the FVP Library
Add a recipe for the FVP Library:

https://developer.arm.com/tools-and-software/simulation-models/fixed-virtual-platforms

This is free to download but is behind a login-wall, and the FVPs are
license managed.

Change-Id: Ia0e7b1bfac54e06faf9d517d5b769acf9670724a
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-27 11:41:45 +01:00
Ross Burton b1f7bd8356 arm/fvp-base-a-aem: add Architecture Envelope Model FVP for Arm v8-A
Add a recipe for the general purpose Armv-A Base RevC AEM FVP.

This FVP is behind a login-wall so the user has to download it themselves,
but the FVP is free to use.

Change-Id: I14d7b965a05ff9f405a2a12d4da2afd3dd2ecb87
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-27 11:41:45 +01:00
Ross Burton b07c008e41 arm/fvp: add recipes for Ecosystem FVPs
Add recipes for the SGI-575 and N1-Edge reference designs from the
Ecosystem FVP collection:

https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps

These FVPs are free to download and use.

Change-Id: Ia645e4a7264f73ec42ee61ab2907a9bfdbe7c25d
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-27 11:41:45 +01:00
Diego Sueiro a21d9a360a arm-autonomy: Move fvp-base u-boot bbappend to dynamic layers
Issue-Id: SCM-2329
Signed-off-by: Richard Neill <richard.neill@arm.com>
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Ifaa06c88bb032bd3296fca13adb66fdf6b91632a
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-27 11:36:23 +01:00
Ross Burton 62bb67b1e7 arm/trusted-firmware-a: fix incorrect license checksum
TF-A 2.5 has a tweaked license.rst file but the checksum wasn't updated.
The CI didn't catch this because of an attempt at making warnings fatal,
which has the side effect of masking some warnings.

Update the checksum for that file, and add MIT explicitly to the license
list as all of the embedded projects are used under the MIT.

Change-Id: Id39b4c49c0efae30c6452e77b1cdf56e43b792d4
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-25 10:35:05 +01:00
Ross Burton 12a96ea774 ci/base: don't try to make warnings fatal
The generated local.conf has ERROR_QA=${WARN_QA} in an attempt to make
warnings fatal, but this appears to be just disabling some warnings and
error instead.

As we already have warning detection in the GitLab CI script, this is
redundant and can be removed.

Change-Id: I393874edbae148ee338a7069bbf800603c028242
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-25 10:35:05 +01:00
Jon Mason f7cc8f22dc arm/trusted-firmare-a: update to version 2.5
Update to TF-A v2.5 and MBED TLS 2.26, and all machines using 2.4 to the
newer version.  Also, n1sdp was using an intermediary SHA, but is now
updated to the latest (which includes that intermediary SHA).

Change-Id: Ia5ec3cecf9090fd5f5da28efff4c1d6cce1efc19
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-24 16:51:04 -04:00
Anders Dellien 5832d2738d arm-bsp/fvp-base*: move to u-boot 2021.04
Remove fvp-base patch that has been merged upstream and rebase
fvp-base-arm32 patch

Change-Id: Iac16598933b94c1db13d3e40f1d5b3a137c8bd4c
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-24 16:48:09 -04:00
Jon Mason 2b887e62f3 arm/linux-yocto: additional workaround for qemuarm64-secureboot ZONE_DMA
Reverting additional ZONE_DMA patch 2281df0b0226610e235f49ed75bf6ad57cb04762
which was added in v5.10.37

Change-Id: I3700b95247a4224f4b56a403bc3dc10dde7dd5b5
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-20 11:04:28 -04:00
Sumit Garg b7e0263eed arm/qemuarm64-secureboot: Enable kernel TEE drivers
Add a config fragment to enable kernel TEE drivers.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-19 11:49:32 -04:00
Jon Mason c2fb4c1179 arm-bsp/u-boot: free float the u-boot bbappend
Since the u-boot recipe will be updated in the near future, decouple the
bbappend from the current version to allow for it to work on both
versions (and keep backward compatible with hardknott).

Change-Id: Ia2447a80868f2e5011bf53fafb939b6a4566b662
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-18 18:07:03 -04:00
Filipe Rinaldi dcc245ef29 arm-bsp/docs: Updated documentation fvp-baser-aemv8r64 MACHINE
This update has mainly format related changes (no functional changes) to
improve readability when reading the non-rendered version of it.
- Use underlined style for headers level 1 and 2
- Use indentation to create blocks
- Use double space at the end of each section
- Add indentation to the FVP parameters
- Add pip command to install the kas tool

Signed-off-by: Filipe Rinaldi <filipe.rinaldi@arm.com>
Change-Id: I9d4b4dbcef6dc13638b62563ebdf90b6b9d5b686
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-17 10:17:11 -04:00
Ross Burton 14313a5b11 arm/scp-firmware: install .elf into scp-firmware-dbg
Alongside the .bin files, also install the .elf files for debugging and
package them into scp-firmware-dbg.

The architecture QA test needs to be skipped as the SCP can be 32-bit
Arm when the main processor is 64-bit.

Change-Id: I82a57d6cc80f7d7e20028cced83481322803fc13
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-12 11:49:14 -04:00
Ross Burton a517677e90 arm/trusted-firmware-a: put .elf output into trusted-firmware-a-dbg
The .elf output files are for debugging purposes, so put them into the
-dbg package to make this clear.

Change-Id: I5d70b2421b06eed0483f8ef508cf535ec70abc63
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-12 11:49:14 -04:00
Ross Burton 932c6ee8cc CI: build against master branches again
Change-Id: Iecd620883ced9c02fb085d38735764028604bc46
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-12 08:43:57 -04:00
Jon Mason 3f40757bb0 arm/trusted-firmware-m: upgrade to 1.3.0
Update TF-M to version 1.3.0, mbed TLS to 2.26, TF-M tests to 1.3.0
(previously untagged), and MCU Boot now has a new git repo location and
updated to 1.7.2.

Change-Id: I7ff2756cacff02abd31bb54048f8846b6a58cd01
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 16:32:26 +01:00
Ross Burton 3db7302e64 arm/linux-yocto: add missing LINUX_VERSION to qemuarm64-sbsa
As the SRCREV is pinned to a specific SHA we should also set LINUX_VERSION, as future kernel
upgrades in oe-core master will change both SRCREV and LINUX_VERSION.

Change-Id: Iafababe83ff54625112d2fae859d8a3938001cd5
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 15:56:48 +01:00
Ross Burton 48718393ad CI: mark build jobs as interruptible
Mark the build jobs as interruptible, as they don't write to shared
resources (unlike update-repos or get-binary-toolchains). This means
that if the same branch is pushed again GitLab is likely to be able to
abort the obsolete pipeline to start the new build sooner.

Change-Id: I9284273e9b3118b616d3cb062cb957d98fc5e37e
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 15:56:01 +01:00
Ross Burton c310e591d6 autonomy/u-boot: fix malformed Upstream-Status tag
Change-Id: I5728d9f268db9ce0e18ada9982310431c0c99e89
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 15:55:57 +01:00
Ross Burton 07d28bbaea arm-toolchain/armcompiler: remove pointless PROVIDES
There is only one provider for the armcompiler, so remove the virtual
provider.

Change-Id: I3492c49f5cf6eb6f3d3156adb3d87e315ed8183d
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 15:30:21 +01:00
Ross Burton 427912d75a arm-toolchain/armcompiler: add upstream release checking
Change-Id: I2eb94f99a0c828a4d5f2f68756e83ebc1f6499c2
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 15:30:21 +01:00
Ross Burton 8af7923c94 arm-toolchain/external-arm-toolchain: inhibit build dependencies
These recipes don't build anything, so there's no need to depend on a
toolchain.

Change-Id: I49b641fb54839c30255a11a7c9d5798c8e4afd2a
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-11 15:30:21 +01:00
Richard Neill 4c3c2fda93 arm-bsp/linux: Add preempt-rt support for fvp-baser-aemv8r64
Add kernel configuration necessary to build an image with preempt-rt support
for fvp-baser-aemv8r64, together with a build configuration file to build it via
kas.

Update BSP documentation for RT linux support on the machine.

Issue-Id: SCM-2343
Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I11e3ba3ad7da00db1810c70fa4f98bfffd4b8254
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-05-10 19:07:22 +01:00
Diego Sueiro 18e2967aab arm-autonomy/sysvinit-inittab: Fix console login for host and guest
In meta-virtualization master branch the sysvinit-inittab_virtualization.inc
was introduced to handle the installation of the getty-wrapper for spawing the
console login for /dev/hvc0.

Since we don't make usage of the virtualization DISTRO_FEATURES we have to
manually include the mentioned file when building with arm-autonomy-host and
arm-autonomy-guest DISTRO_FEATURES.

Also, since arm-autonomy-guest doesn't include the xen DISTRO_FEATURES we have
to manually include sysvinit-inittab_xen.inc to append the getty-wrapper entry
to /etc/inittab.

Issue-Id: SCM-2329
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I0f92565de8a9053c0541928c30b8f979757bfbca
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-07 00:33:03 -04:00
Diego Sueiro b2031ed7ca arm-autonomy/fvp-base: Make usage of wic images
In meta-arm-bsp fvp-base switched to wic images. Hence, make the appropriate
changes to also use wic images in meta-arm-autonomy.

Change-Id: I34d68fee11ea339fb52a97d7593e373aa69faa1c
Issue-Id: SCM-2329
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-07 00:33:03 -04:00
Jon Mason f619eb87f5 arm-toolchain/external-arm-toolchains: Update to the latest
Change-Id: Ifb5933b08acf13663c7a6231582ee21032b92327
Signed-off-by: Jon Mason <jon.mason@arm.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
2021-05-07 00:08:56 -04:00
Anders Dellien f614d579dc arm-bsp/fvp-base*: Introduce WIC support for fvp-base* machines
Add wks script, modify documentation and kernel command line.
Remove 'image_types_disk_img.bbclass' as it is no longer used.

Change-Id: I2a95349adc038e8484d7b9f578ad3ce698b1f528
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-05 22:50:39 -04:00
Jon Mason b8860852dd arm/scp-firmware: Add SCP v2.8.0
Add new recipe for SCP version 2.8.0 and remove the old 2.7.0 recipe.
Change TC0 and N1SDP to use the latest tag, and not their previous
intermediate SHA (which are in the 2.8.0 release).

Change-Id: Id3f0af549790969ce6fd3b315f94177726f24d73
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-04 10:56:00 -04:00
Jon Mason d750206a1d arm/kernel: fix previous patch
The previous patch broke for qemuarm64-sbsa, ebcause they share the same
defconfig patch but now the upstream kernel SHAs are different.  Change
them to have the same SHAs.

Also, the previous patch lost the patch header.  So re-add that.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-02 11:08:36 -04:00
Jon Mason 03507b9cd9 arm/kernel: fix broken defconfig patch
Upstream kernel is now being patched, which prevents the patch being
fixed here from applying cleanly.  Rebase it on top of the existing one
to resolve the issue.

Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-01 18:35:58 -04:00
Jon Mason 10b900d742 CI: enable non-arm64 builders
Abstract away all of the things preventing the current setup from
working on only internal, arm64 build hardware.

Change-Id: Ib8d0e8e76602d4553e044520a91349015b1aa19b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-01 07:50:12 -04:00
Jon Mason 558f57b3a5 CI: use public KAS image
Use the KAS docker image provided by the KAs project for Gitlab CI.
This allows for the external (non-Arm Corp) users/developers to run
Gitlab CI.

Change-Id: I9fee9a0d571e3fd60862d4ccd36176f9e583fc91
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-01 07:50:12 -04:00
Jon Mason 7deff39751 CI: Reorder manual tasks to be alphabetical
Change-Id: I2e5bfdf5794c99da530bc2645fb56a5444444be3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-01 07:50:12 -04:00
Ross Burton 01a60a10db scripts: add tool to generate a layer overview
Change-Id: Icb4e29d80f1db9791ce801910563695c9fdc76b3
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-05-01 07:50:12 -04:00
Ross Burton 58ea81b718 CI: report disk usage before/after pruning sstate
Change-Id: I66853ce1bf5e33c37094cc8fff04cbd4daaadf91
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-28 10:30:58 -04:00
Ross Burton 3b62a60926 arm/linux: guard FILESEXTRAPATHS changes in overrides
Because of how the kernel class searches for files any changes to
FILESEXTRAPATHS should be done in an override so it doesn't potentially
impact unrelated builds.

Issue spotted by running yocto-check-layer.

Change-Id: I3e915a0cafc850d4b2594b655a849977d389465a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-28 10:30:58 -04:00
Ross Burton a4f9f60579 arm-bsp/linux: guard FILESEXTRAPATHS changes in overrides
Because of how the kernel class searches for files any changes to
FILESEXTRAPATHS should be done in an override so it doesn't potentially
impact unrelated builds.

Issue spotted by running yocto-check-layer.

Change-Id: Id3b741d184a024d0cc6d2d5031e150a8f0ae4b0d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-28 10:30:58 -04:00
Jon Mason 24c5cfbe80 arm: combine linux-yocto bbappend files
Combining linux-yocto bbappend into a single file.

Change-Id: Ica4fc2d0edc9939451c572e5eb65f34e4002c26f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-27 18:46:49 -04:00
Ross Burton 2569535de7 arm-bsp/tc0-artifacts-image: restrict to TC0
This recipe is for TC0, so set COMPATIBLE_MACHINE appropriately.

This is both logically correct, and fixes a Yocto Compatible test failure
where tc0-artifacts-image isn't buildable for arbitrary machines.

Change-Id: I6381fc08076d4ddea254f7efc84f90c4a7f65d26
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-27 18:45:34 -04:00
Peter Hoyes 17f08ff365 arm-autonomy/linux-arm-autonomy: Remove Xen irq lock patch
The following patch has been backported to kernel 5.10.30:
    0001-xen-evtchn-Change-irq_info-lock-to-raw_spinlock_t.patch

Issue-Id: SCM-2307
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I9cef017b60891780176dff944e3eca5986746d8a
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-26 09:37:43 -04:00
Khasim Mohammed 2d8a7cbd16 arm-bsp/n1sdp/scp-firmware: Enabling coresight debug non-secure access
This patch enables coresight to work with n1sdp c2c profile.

Change-Id: Id3a5f92cc1f99cd907111ea858aad4efe561179e
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-23 09:31:41 -04:00
Adrian Herrera cec4d317e9 CI: add kas file and job for gem5-atp-arm64
Change-Id: Iee0d27c15fe00a4363ed832c06cb502c54299cd5
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-22 12:33:06 -04:00
Adrian Herrera bcbd365cfe atp: initial layer
meta-atp layer provides support for building AMBA Adaptive Traffic
Profiles (ATP) Engine. It provides the following recipes:

- ATP Engine native standalone build.
- ATP Engine with gem5 as host platform.
- ATP Linux kernel modules.
- ATP Linux user API.
- ATP Linux tests.

The layer provides a "gem5-atp-arm64" machine with ATP device and
adapter support.

Change-Id: Ib86c7502d62d5707d0d4bbdd7d179f231cf96f57
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-22 09:48:22 -04:00
Ross Burton f723b6b593 layer.conf: don't claim compatibility with Gatesgarth
We don't test this, and don't expect it to work, so don't claim it does.

Change-Id: I045930e690edba5a5b0b8cb810130c8c6733623f
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-21 22:23:55 -04:00
Peter Hoyes 696773771f arm-autonomy/docs: Change quickstart instructions to hardknott
Issue-Id: SCM-2307
Change-Id: Ieb7a6d3280a7eba573a57b4e52e275adb0a208df
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-21 22:23:55 -04:00
Jon Mason 5c5cd66675 CI: Add repo dir to disk usage and ability to purge everything
Add the newly added repo dir to the disk usage calculation and add the
ability to remove each of the persistent directories.

Change-Id: Ib922ad42c62efdeccf01851ac751742ed67748ae
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-20 13:57:39 -04:00
Diego Sueiro 65382e51b7 arm-bsp/docs: Updated documentation fvp-baser-aemv8r64 MACHINE
Added quickstart instructions on how to build a BSP evaluation image using kas.
Updated FVP naming convention as well as information about where to download
and how to run the FVP.

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Ia6056194ed23d6e38769a3e300eadf77fc41beb2
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-20 13:57:39 -04:00
Diego Sueiro b43c30089c kas: Add fvp-baser-aemv8r64 BSP evaluation build
The kas/fvp-baser-aemv8r64-bsp.yml is intended to be used as an evaluation
build for the BSP components.

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Idce501224f4c8fbd6c53dc318db73dcd3100b57b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-20 13:57:39 -04:00
Diego Sueiro 8baef3984a arm-autonomy/arm-autonomy-host: Set Xen to 4.14+stable version
Since meta-virtualization master branch bumped to 4.15+stable we need to force
the 4.14+stable until we validate the new version.

Issue-Id: SSCM-2307
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Id204314af9c87615d88dfc60702867380225b491
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-20 13:57:39 -04:00
Jon Mason 70e9b1ffde arm: workaround qemuarm64-secureboot ZONE_DMA issues
Upstream stable patches for ZONE_DMA size and dma-ranges are causing:

Segmentation fault
[    3.156012] Internal error: synchronous external abort: 96000050 [#15] PREEMPT SMP
[    3.156172] Modules linked in:
[    3.156247] CPU: 0 PID: 139 Comm: rc Tainted: G      D           5.10.21-yocto-standard #1
[    3.156391] Hardware name: linux,dummy-virt (DT)
[    3.156490] pstate: 00000005 (nzcv daif -PAN -UAO -TCO BTYPE=--)
[    3.156619] pc : copy_page+0x40/0xc0
[    3.156691] lr : copy_highpage+0x58/0xe0
[    3.156786] sp : ffffffc01192bc10
[    3.156855] x29: ffffffc01192bc10 x28: ffffff804036a880
[    3.156958] x27: 0000000000000000 x26: ffffff80432e56f0
[    3.157063] x25: ffffff8043955c38 x24: 000000557a600000
[    3.157167] x23: ffffff80432e5680 x22: ffffffff00e4e940
[    3.157268] x21: ffffffff00180600 x20: ffffff800e018000
[    3.157378] x19: ffffff80413a5000 x18: 0000000000000000
[    3.157495] x17: 0000000000000000 x16: 000000557a5ffc48
[    3.157611] x15: 0000000000000001 x14: 0000000000000000
[    3.157715] x13: 000000557a60ae08 x12: 0000000000000000
[    3.157832] x11: 0000000000000000 x10: 0000000000000000
[    3.157920] x9 : 000000557a5fd010 x8 : 000000000557a600
[    3.158033] x7 : 0000000000000161 x6 : 0000000000000000
[    3.158140] x5 : 0000000000000000 x4 : 00005b0000000002
[    3.158238] x3 : 000000557a5fa550 x2 : 0000000000000000
[    3.158348] x1 : ffffff80413a5080 x0 : ffffff800e018100
[    3.158451] Call trace:
[    3.158501]  copy_page+0x40/0xc0
[    3.158572]  copy_user_highpage+0x24/0x40
[    3.158654]  wp_page_copy+0x90/0x790
[    3.158723]  do_wp_page+0xa4/0x490
[    3.158786]  handle_mm_fault+0x7b8/0xc30
[    3.158867]  do_page_fault+0x15c/0x400
[    3.158937]  do_mem_abort+0x4c/0xac
[    3.159004]  el0_da+0x3c/0x50
[    3.159070]  el0_sync_handler+0x168/0x1b0
[    3.159153]  el0_sync+0x174/0x180
[    3.159224] Code: 91040000 91020021 f2402c1f d503201f (a8300c02)
[    3.159343] ---[ end trace 06748391c33610de ]---

Temporarily revert these patches to allow for qemuarm64-secureboot to
continue working while the root cause is being investigated.  The
patches in question are:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=35ec3d09ff6a49ee90e1bfd09166596f017eb5bb
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8eaef922e9381af7b923c4e3c57a632a87101acb

Change-Id: I3cdea9469d940f6458d0ef65460f945c55eef3e3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-20 11:32:28 -04:00
Yann Dirson 2354c9e06e arm/optee-os: deploy tee.elf for u-boot
Integration of OP-TEE in the u-boot image is done with `TEE=tee.elf`,
so this build artifact must be exported.

U-boot integration can now be done in a BSP layer with something like
this in `u-boot_%.bbappend`:

 # OP-TEE, dependent on "optee" DISTRO_FEATURES

 OPTEE_OEMAKE ?= " TEE=${DEPLOY_DIR_IMAGE}/optee/tee.elf"

 EXTRA_OEMAKE_append = " ${PACKAGECONFIG_CONFARGS}"
 PACKAGECONFIG[optee] = "${OPTEE_OEMAKE},,optee-os"
 PACKAGECONFIG_append = " ${@bb.utils.filter('DISTRO_FEATURES', 'optee', d)}"

Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-20 08:07:15 -04:00
Jon Mason 587b8ab87d Revert "arm/optee-os: deploy tee.elf for u-boot"
This reverts commit 4b3343b4a9.
2021-04-19 22:26:23 -04:00
Ross Burton 850c324189 CI: track hardknott branch, not master
Hardknott has released and upstream oe-core master has diverged. We will
also be releasing shortly so track hardknott not master for the CI.

Change-Id: I68f8b1c4cc5ac0686c3db9259b44d16f367d82d6
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-04-19 13:17:30 +01:00
Ross Burton e3bfb5d746 Rename top-level kas/ to ci/
The files in kas/ are not generic Kas files, but instead designed
specifically and solely around the CI system.

Change-Id: I30082392ad2231a4c1c41e54a292595adf81715b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-19 08:12:27 -04:00
Ross Burton f88a69768a CI: don't disable uninative
We previously disabled uninative[1] because it broke builds in the
Docker containers. This has now been fixed in oe-core with uninative 3.0
so this workaround can be removed.

[1] e5523d626f

Change-Id: I40975eb46737e66dab9f9b8cc63a9283d79918fb
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-19 08:12:27 -04:00
Ross Burton 1c151dba07 CI: make update-repos a bit more verbose
Change-Id: Ibb7b652b13b6d036c36fce076e7c1807f2ff37d7
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-19 08:12:27 -04:00
Ross Burton 0519634f2d kas/base.yml: rename ptest fragment to noptest
Change-Id: Ib670ba8715ff128345e631652d4cae8d76ba0812
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-19 08:12:27 -04:00
Yann Dirson 31e1428ea5 optee-os: don't override upstream TA_LOG_LEVEL setting
Aside from diverging from upstream, appending such a change it at the end of
oe_runmake makes it hard to override it in a bbappend.

This value does not seem to be inherited in TA builds, and
eg. optee-examples do use the the values set in their individual
Makefiles.  Setting this to 0 however seems to cause the TA traces not
to be relayed to the console, so the examples end up less
self-illustrative than they should.

This patch restores the upstream choice, while allowing downstream layers to
choose to set it to zero if they wish to do so.

Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-16 10:28:39 -04:00
Yann Dirson 0f29c11d2a optee-client: use /var/lib/tee instead of /data/tee for persistent storage
This is more FHS-conformant, and allows tee-supplicant to work on a
readonly rootfs setup (although then it uses volatile storage by
default, and it is still a matter of distro policy how to arrange for
that storage to be persistent in a readonly setup).

Signed-off-by: Yann Dirson <yann@blade-group.com>
Suggested-by: Ricardo Salveti <ricardo@foundries.io>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-16 10:28:39 -04:00
Yann Dirson 4b3343b4a9 arm/optee-os: deploy tee.elf for u-boot
Integration of OP-TEE in the u-boot image is done with `TEE=tee.elf`,
so this build artifact must be exported.

U-boot integration can now be done in a BSP layer with something like
this in `u-boot_%.bbappend`:

 # OP-TEE, dependent on "optee" DISTRO_FEATURES

 OPTEE_OEMAKE ?= " TEE=${DEPLOY_DIR_IMAGE}/optee/tee.elf"

 EXTRA_OEMAKE_append = " ${PACKAGECONFIG_CONFARGS}"
 PACKAGECONFIG[optee] = "${OPTEE_OEMAKE},,optee-os"
 PACKAGECONFIG_append = " ${@bb.utils.filter('DISTRO_FEATURES', 'optee', d)}"

Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-16 10:28:39 -04:00
Yann Dirson 976cebdf6e arm/optee-os: mark LDFLAGS patch as submitted
Signed-off-by: Yann Dirson <yann@blade-group.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-16 10:28:39 -04:00
Yann Dirson d45c837137 arm/optee: use pycryptodome rather pycryptodomex
Recent versions of OP-TEE perfectly build with pycryptodome, no need for
the pycryptodomex transition package any more.

Signed-off-by: Yann Dirson <yann@blade-group.com>
Reviewed-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-16 10:28:39 -04:00
Ross Burton cbf547e222 arm/sbsa-acs: update patch status
Change-Id: I75d7c6c098edaa30b009c9586ed7ce23994b0f2a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-16 10:28:39 -04:00
Richard Neill c1123c3d63 arm-autonomy/linux-arm-autonomy: Do not apply xen IRQ patch for 5.12+ kernels
As the xen event channel kernel patch is mainlined in 5.12, this patch ensures
it is only applied to the applicable versions earlier than 5.12.

Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I03a3dc51281fdc94cd7e9a9da2540b34668a6ad1
2021-04-16 10:34:51 +01:00
Khem Raj 738c20d752 sbsa-acs: Always use BFD linker
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-07 08:59:48 -04:00
Khem Raj 43203a464d sbsa-acs: Fix build with clang 12
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-07 08:59:48 -04:00
Khasim Syed Mohammed 219fd34b76 arm-bsp/edk2-firmware: remove references to 201911 tag
edk2-firmware for n1sdp is ported and upgraded to 202102 version and since
no other platform is using 201911 version of edk2 firmware. This patch removes
the corresponding bb files.

Change-Id: I91b0e98a3df499fa86c5ea836c96de193f18990e
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
2021-04-06 10:23:06 -04:00
Khasim Syed Mohammed 2f2258d1d2 arm-bsp/edk2-firmware: upgrade n1sdp to 202102
edk2-firmware for n1sdp is ported and upgraded to 202102 version.

Change-Id: I08dcc7d1442ec9a9121ce648e68872d63169346a
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
2021-04-06 10:14:28 -04:00
Ross Burton a7f4f7d2bd CI: build sbsa-acs in the qemuarm64-sbsa job
Change-Id: I10dcd2b6332db281f969981a44edc22d0750a79b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-06 10:12:43 -04:00
Ross Burton 2261d39412 arm/sbsa-acs: add COMPATIBLE_HOST
This recipe is only valid on aarch64 targets, so set COMPATIBLE_HOST.

Change-Id: I15595d307d1dab18b315b397a0751eaf4e109e68
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-06 10:12:34 -04:00
Ross Burton 77ac287518 arm/sbsa-acs: add SBSA Architecture Compliance Suite
Add a recipe for SBSA Architecture Compliance Suite, a test suite for
SBSA.

As this is implemented as a module for the EDK2 Shell application, this
can include the edk2-firmware recipe to do the heavy lifting.

Change-Id: I890ea41d7d1068d74a541c06411aad894728f44d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-04-01 15:52:34 -04:00
Diego Sueiro 8b123ffe85 kas: Add fvp-baser-aemv8r64 build
Issue-Id: SCM-2121
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I983b0a433be9087663006cce366631815759febe
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Diego Sueiro 885415312b arm-bsp/machine: Introduce fvp-baser-aemv8r64 machine and its BSP
This patch adds the fvp-baser-aemv8r64.conf machine definition for the
FVP BaseR AEMv8r64 Platform alongside the following BSP components:

* boot-wrapper-aarch64
* Kernel: linux-yocto-5.10
* Devicetree for bootstrapping
* wic image

Issue-Id: SCM-2121
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Ia9e400db8c78e5e57a6fa2241b81fdd42a00dd53
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Diego Sueiro 16b93fa033 arm-bsp/linux: Introduce FVP common config fragment
Issue-Id: SCM-2121
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Ic829801d2d32d6702f49adcd79f0f24a4595bbe1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Diego Sueiro 3032b80ed3 arm-bsp/linux: Introduce arm64 generic config fragment
Issue-Id: SCM-2121
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I6bead3d86747874af5db3a4d6ae57b74abf4f796
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Diego Sueiro d1cb358f52 arm-bsp/arch: Introduce support for armv8r64 arch
We are temporarily using armv8-4a until GCC 11 is released and supported by
oe-core.

Issue-Id: SCM-2121
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I7e41105a1e99f5a71ea927d1b84c9a9fa9762aaf
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Diego Sueiro 7b0e704dfd arm-bsp/arch: Introduce support for armv8-4a arch
Issue-Id: SCM-2121
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Ieaf6b41fddb819e32a40c641ab3f6231fb1de9e6
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Nathan Dunne f65c5c4217 autonomy/docs: Documentation updates and fixes
Issue-Id: SCM-2038
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ida94958b63c78097be6402be019d65a80260f297
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-31 08:53:44 -04:00
Ross Burton a52d805faf CI: move utility tasks to prep so they don't cause a fetch
Re-order the tasks so that the utility tasks don't cause update-repos to
run.

Change-Id: I86a528c98fe32e20428f9efbd5fb82c374aefc8a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 15:45:38 -04:00
Ross Burton d2f8a13d3c CI: maintain centralised repositories to speed fetching
Kas supports 'reference repositories' which are used as a local source
of git objects to speed up fetches.  At the beginning of the CI run we
can update these repositories once to speed up later fetches.

Change-Id: I138051fd3cf9b5675e0fa5007cd8088abd17db4e
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 15:45:38 -04:00
Ross Burton e5ed951abe arm/edk2-firmware: upgrade to 202102
The edk2 SRCREV is the tag, has edk2-platforms doesn't tag releases the
SRCREV is approximately the same date.

Also remove the PREFERRED_VERSION from SGI575 so it doesn't need to be
updated in the future.

Change-Id: I5ac544e70b404081bf0638a54514a412d87fb3d3
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 15:45:38 -04:00
Ross Burton 95087cf374 arm-bsp/scp-firmware: correct PV
These are git snapshots after 2.7.0, not 2.7.

Change-Id: I6371dd12f5d17f432839b3673331b3153c1c4b6a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 15:45:38 -04:00
Jack Davison e45cfb9e8f arm: Enable ptest for optee xtest
Provides a run-ptest script for running xtest under ptest-runner. This
script parses the output of xtest and converts it to Automake's test
format.

Change-Id: I7c981422034b39701ddd74e176f2f5134ae607e6
Signed-off-by: Jack Davison <jack.davison@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 09:08:38 -04:00
Peter Hoyes de5dc9be14 arm-autonomy/linux: Remove patches for booting Dom0 with preempt_rt
With the linux-yocto version update to 5.10.25, the following
backport patches are being removed:
0001-xen-events-reset-affinity-of-2-level-event-when-tear.patch
0002-xen-events-don-t-unmask-an-event-channel-when-an-eoi.patch
0003-xen-events-avoid-handling-the-same-event-on-two-cpus.patch

Issue-Id: SCM-2064
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Iaf313440f85ab18211cc1a786d84c1f83950699f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 09:08:31 -04:00
Jon Mason 682c330600 CI: fix order
Machine order should be alphabetical

Change-Id: I83b1f1802d4db62cda7e49a591c7f26c4d22dd9a
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-30 00:02:05 -04:00
Jon Mason d6e18c885d arm/machine: add zephyr machine confs for a53
Zephyr supports QEMU based machine for Cortex a53.  Add machine confs
for this.  This enables us to verify a53 tunings.

Change-Id: I398bc5b3e8bd77b7269bba056a0f75229f04c7a7
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:15:53 -04:00
Ross Burton 8855e397bc arm/trusted-firmware-a: remove unused trusted-firmware-a 2.3
Change-Id: Ifb0bed130a6db8146f37a866385727805e00cd43
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:16 -04:00
Ross Burton 452bc97276 arm/trusted-firmware-a: remove unused trusted-firmware-a 2.2
Change-Id: If2c92878e63614cfc91cf500a11fe39e5a82fe46
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:16 -04:00
Ross Burton 465471fbb9 arm/scp-firmware: remove unused 2.6 version
Change-Id: I3662f139ede7b60d8f0b929cbc40fbdb67be0d72
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:16 -04:00
Ross Burton e37127939b arm-bsp/trusted-firmware-a: upgrade SGI575 to trusted-firmware-a 2.4
Change-Id: I7a3e50a0f5558a135b318d70d6d75eefc570ea2f
Tested-by: Thomas Abraham <thomas.abraham@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:16 -04:00
Damodar Santhapuri 205e4bb760 arm-bsp/juno: move scp-firmware version from 2.6 to 2.7
Move scp-firmware version to 2.7 for juno platform

Change-Id: I7ff1132c1e6a6fee047a268da2d991f81074e672
Signed-off-by: Damodar Santhapuri <damodar.santhapuri@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:16 -04:00
Damodar Santhapuri e6770c2160 arm-bsp/juno: move tf-a version from 2.3 to 2.4
Move trusted-firmware-a version to 2.4 for juno

Change-Id: Ib6e6e5537a7ecb2246d3f96b4beb8893cea605dc
Signed-off-by: Damodar Santhapuri <damodar.santhapuri@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:16 -04:00
Luca Fancellu 92da257b83 arm-autonomy/linux-arm-autonomy: Fix Dom0 boot issue with preempt_rt kernel
To fix Dom0 with PREEMPT_RT kernels older than 5.10.24, backport the
following patches:
    0001-xen-events-reset-affinity-of-2-level-event-when-tear.patch
    0002-xen-events-don-t-unmask-an-event-channel-when-an-eoi.patch
    0003-xen-events-avoid-handling-the-same-event-on-two-cpus.patch

Also, add the following fix (waiting to be merged upstream):
    0004-xen-evtchn-Change-irq_info-lock-to-raw_spinlock_t.patch

Issue-Id: SCM-2147
Signed-off-by: Luca Fancellu <luca.fancellu@arm.com>
Change-Id: I0b3a93139b0229ceb6001d87b545704b9bfc581e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 11:10:01 -04:00
Peter Hoyes 66939c8f35 arm-autonomy/n1sdp: Remove support for linux-linaro-arm_5.4
* Remove linux-linaro-arm and associated patches
 * Use linux-yocto for N1SDP

Issue-Id: SCM-1506
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I6e0ebf7de42af98e7427132590fe813c1703d1c6
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-26 09:27:25 -04:00
Nathan Dunne 943dd5943a arm-autonomy/images: Introduced xenguest-extern-guests recipe
Seperated guest inclusion for image into seperate recipe, allowing
a do_install task to be used rather than directly copying from the
local path.

This allows all bitbake fetcher types to be used rather than only
local files. Alternate fetchers are enabled through parsing
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS with set_src_uri_from_var.bbclass

Issue-Id: SCM-2225
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Iff5483926a5cde8ce7519da60f1b9119946a7f4e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-25 09:33:22 -04:00
Nathan Dunne 8195b2c953 arm-autonomy/docker: Updated fetcher to use set_src_uri_from_var.bbclass
Use new class to parser CONTAINER_IMAGE_FILES variable and add entries to
the SRC_URI, as well as to generate the manifest.

Issue-Id: SCM-2225
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Idd34f564844c725f1b38a20e1e33d9aba6195e43
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-25 09:33:22 -04:00
Nathan Dunne 5e3d09e234 arm-autonomy/classes: Introduced set_src_uri_from_var.bbclass
Introduced set_src_uri_from_var.bbclass to add entries to the
SRC_URI based on a named variable, and generate a manifest
file alongside fetched items containing a number of parameters
for each entry.

Parameters can have an optional default value, or cause an error
if omitted.

Issue-Id: SCM-2225
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ia85b3f4bc3fa666fa7e7aec2d670979ac9348f52
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-25 09:33:22 -04:00
Nathan Dunne 1a77ae9d5f arm-autonomy/u-boot: Modified kernel_addr for fvp-base with xen
Modified the default booti command for fvp-base with xen to boot
into xen at 0x84000000, rather than requiring the user to break
into the u-boot prompt.

Issue-Id: SCM-2195
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I91f324ce77716474596a78f97e74f432969d9803
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-25 09:33:08 -04:00
Ross Burton e74b3c2f24 arm-bsp/corstone500: use trusted-firmware-a 2.4
Change-Id: Ie3014bdb07dc4f9e6ba28750fda7b5408fb7508a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-24 08:58:44 -04:00
Ross Burton 7fd85df7d7 arm-bsp/corstone700: use trusted-firmware-a 2.4
Move to the release of 2.4 instead of a snapshot between 2.3 and 2.4

Change-Id: Ie7bd5a8de310186de14bee9e8f10c1aaae6194e6
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-24 08:58:44 -04:00
Ross Burton e875122778 arm/edk2-firmware: support extra arguments passed to build
Add EDK2_EXTRA_BUILD which is passed to build, so that recipes can add
more arguments to e.g. enable modules.

Change-Id: I10d0fcb92e823be79ccb8c2bd47e40694c1bfbd9
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-24 08:58:44 -04:00
Ross Burton 79d60476bb arm/edk2-firmware: clean up build invocation
Add some comments to make it clear what variables are being passed as
what arguments to build.

The build tool is on PATH, so there's no need to use an absolute path.

Change-Id: If9229d4927205e1b9a9a0bf7f7526e33006a03fd
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-24 08:58:44 -04:00
Ross Burton 01a13b11ad arm/hafnium: refuse to build on non-x86-64 hosts
For reasons, hafnium doesn't use host binaries for stuff like GN, Ninja,
Clang, GCC, or Qemu. Instead it ships binaries that it uses during the
build, but these binaries are only available for x86-64.

Attempts to use external tools (so the recipe can just DEPENDS as usual)
were not successful (clang being the problem) so just forcible stop the
recipe building on anything but x86-64 for now.

Change-Id: I144309d15fa1265b2b105981cd2bfcd376aab7ad
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-23 09:47:18 -04:00
Jon Mason ac1dc0b894 arm: remove python3-intelhex
python3-intelhex is now upstream.  Remove this and use that one.
musca already has a dependency on meta-python.  So no need for new deps
to use the existing one.

Change-Id: I7a586db3a3a3b653656366c34c990d52c0fd4f7c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-22 09:08:59 -04:00
Khasim Mohammed 950c68dbab arm-bsp/n1sdp/trusted-firmware-a: bump to latest master branch
The current version is 2.4, there are quite a few new features added to the master
branch of the repository and these are required for N1SDP.

Change-Id: If45402b567b786b072583c13ee9fe95bb52d27bd
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-18 09:00:34 -04:00
Khasim Mohammed 61291f6d80 arm-bsp/n1sdp/scp-firmware: bump to latest master branch
SCP firmware recipes are updated to build latest SCP firmware,
the previous release version is 2.7.0.

New features required for N1SDP are integrated in SCP firmware repository, this mandates
us to migrate to latest master.

Change-Id: I1fb44ed790ca17f713333a0e371dce10c9399424
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-18 09:00:34 -04:00
Ross Burton 4f1f77d660 layers: add hardknott to compatible release branches
Upstream oe-core is preparing to be the Hardknott release, so add
hardknott to our compatible release list.

Once hardknott is public we should remove gatesgarth.

Change-Id: Ia5c59e703910db96a3967a1ecad074ac80d03ee9
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-16 19:00:10 -04:00
Jon Mason 403de1121e arm/machine: create generic-arm64 machine
Create a generic Arm64 system for creating a SystemReady file system.
Due to it being as generic as possible, the image created
by this should run on any hardware that already has the requisite
firmware present.

Change-Id: Ie0d71f91145311e90d228bc403e653a7ef059838
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-16 08:22:58 -04:00
Jon Mason d4f7fd1788 arm/machine: Create QEMU SBSA machine
Add a QEMU machine for Server Base System Architecture (SBSA)
development.

Change-Id: Ic4e286a6583b38aee2a78ab4b53669048136f1a1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-16 08:22:58 -04:00
Jon Mason f8d65dddc8 arm: tf-a and edk2 cleanups
Do some preparatory moving of code for add QEMU SBSA machine support.
Pulling out the qemuarm64 specific enablement from the universal inc
file into a bbappend.

Change-Id: I445132337f7851d666214f87e3250b2f0db84406
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-16 08:21:35 -04:00
Richard Neill debff92415 arm-autonomy/linux-arm-autonomy: Drop mainlined kernel patch for xenbus probe
The xenbus_probe patch to fix xen initialisation was mainlined in yocto-linux
v5.10.17. As oe-core has upgraded past this version, the patch can now be
dropped.

Issue-Id: SCM-2263
Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I40e154cdc4dbabfa531a6886d724ecd400657dd9
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-15 22:59:26 -04:00
Ross Burton 67faf6c7dc CI: add qemuarm and qemuarmv5
Change-Id: Ie5e1fdf0870ed578faaf6ca2d6c6e73bad340f1e
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-12 11:37:47 -05:00
Peter Hoyes 4f8766b081 arm-bsp/linux: Add support for linux-yocto-rt for N1SDP
* Enable linux-arm-platforms.inc for N1SDP
 * Create n1sdp-preempt-rt.scc config
 * Disable KVM as incompatible with preempt-rt
 * Disable kconf audit warnings as preempt-rt.scc clashes with
   defconfig

Issue-Id: SCM-1506
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I4f9c61c7fe2400858578576aad7c5d1c958e9a2e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-12 09:14:12 -05:00
Nathan Dunne a949ebfd06 kas: Added yaml to test xen support in meta-gem5
Created yaml file "gem5-arm64-xen.yml" to build the target xen-image-minimal
for gem5, with required DISTRO_FEATURES 'xen' and 'virtualization'.

Issue-Id: SCM-2091
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: If21d446ca36ba01657d6b48e4b3370e9d905fd1b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-11 09:26:19 -05:00
Nathan Dunne a82ed3cfc9 arm-autonomy: Moved dynamic-layers/meta-gem5 to meta-gem5
Gem5 xen support in meta-arm-autonomy moved to meta-gem5 under
dynamic-layers/meta-virtualization. Any dependencies on 'arm-autonomy-host'
or 'arm-autonomy-guest' in DISTRO_FEATURES replaced with 'xen'.

Issue-Id: SCM-2091
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ia2db68e2cd88c4277e8edc213aebb88d90c0cd23
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-11 09:26:19 -05:00
Nathan Dunne 255ca59858 arm-autonomy: replace xen distro feature dependencies with arm-autonomy-host
Features in meta-arm-autonomy should depend on the 'arm-autonomy-host'
DISTRO_FEATURES entry rather than 'xen'

Issue-Id: SCM-2040
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ib39b761827dbeaf80635c748e6fc3a6d6109a1a1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-11 09:26:19 -05:00
Nathan Dunne 2bc44548b9 arm-autonomy/host-image-minimal: use XENGUEST_MANAGER_GUEST_DIR in image recipe
Created conf/xenguest.conf which defines XENGUEST_MANAGER_GUEST_DIR for both
arm-autonomy-host-image-minimal and xenguest-manager to ensure the value is
aligned.

Issue-Id: SCM-2168
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I9cd5a351b5910bb122b275f47d542798b2df7b1f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-11 09:26:19 -05:00
Nathan Dunne 1682eb1f44 arm-autonomy/containers: Allow multiple docker images to be included
Added docker_extern_containers bbclass that installs external docker images
that have been exported. The import-docker-image recipe has been renamed to
import-docker-containers and updated to install a new init script that imports
all of the docker containers when the image boots. The new init script now
attempts to start the docker daemon if it is not already running.

Issue-Id: SCM-1811
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Icd8222775ca9f640856a4ad4b51b18de17e5680d
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-11 09:26:19 -05:00
Nathan Dunne 7c1cb547b9 arm-autonomy/xenguest: Generate xenguest.env containing variable values
Added task "do_deploy_xenguestenv" to xenguest_image.bbclass which creates
intermediary files for each recipe that inherits xenguest_image. These files
are merged into the main xenguest.env file in DEPLOY_DIR_IMAGE by the task
"do_merge_xenguestenv" in image_types_xenguest.bbclass, which has a dependency
on all do_deploy_xenguestenv in recipes it depends on.

Variables to write to the file are listed in XENGUEST_IMAGE_VARS, and any
extra variables in child recipes should be added to XENGUEST_IMAGE_VARS_EXTRA

xenguest-image had to be renamed xenguest_image to use EXPORT, since dash is
illegal in bash function names.

Issue-Id: SCM-2035
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I6fe45b8a5db6eb7a757c6150515da0b4de8a7205
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-11 09:26:19 -05:00
Jon Mason 4865c69658 arm/qemuarm64-secureboot: removed unused -dev kernel
The change of the qemuarm64-secureboot kernel to the generic one didn't
remove the no longer necessary kernel.

Change-Id: Id6d49084e2bee0956b986958a5d990f9ec41ea5a
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-09 14:51:08 -05:00
Peter Hoyes 676caf30d0 arm-autonomy/linux: Move linaro recipes to arm-autonomy layer
The n1sdp has been upgraded to the linux-yocto 5.10 kernel in
meta-arm-bsp, but Xen + PREEMPT_RT is currently broken in 5.10, so
autonomy builds cannot upgrade.

Therefore, move the linux-linaro-arm configuration and recipes to
meta-arm-autonomy as they are now only required for autonomy
builds.

Issue-Id: SCM-2185
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ibe918bc39ffef0d9c92c19ed0a0815c83e48a2be
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-09 14:44:17 -05:00
Peter Hoyes 5d401b9a77 arm-autonomy/n1sdp: Use anonymous function to set kernel provider
Only set PREFERRED_PROVIDER_virtual/kernel in arm-autonomy to
linux-linaro-arm if it is set to linux-yocto. Allows it to be
modifed from local.conf, e.g. for RT builds.

Issue-Id: SCM-2185
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ied871389ccaa017437babb4f0cb48d23862eb7bd
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-09 14:44:17 -05:00
Peter Hoyes 214e3eb43a arm-bsp/linux: Include standard.scc for n1sdp builds
Follow same pattern as juno and fvp-base, by including
arm-platforms-kmeta and creating a scc file for n1sdp-standard.
Without this, warnings are being generated when including scc
fragments from other layers.

Issue-Id: SCM-2130
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Ibf7827c86bc59c728773720e510b44d02b837c1b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-09 14:44:17 -05:00
Khem Raj aaaf3fac58 optee: Check for meta-clang for TOOLCHAIN variable
This covers the case when meta-clang is not in layers but TOOLCHAIN
variable is defined ( via config metadata e.g. local.conf ), the value
for TOOLCHAIN should be discarded in this case.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Jon Mason <jon.mason@arm.com>
Cc: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-08 09:11:52 -05:00
Richard Neill e06ae8431c arm-autonomy/xen: remove patches that have been mainlined in xen 4.14.1
Remove the 4 patches from recipes-extended/xen/xen_4.14.bbappend that
have been integrated in xen 4.14.1

Issue-Id: SCM-2133
Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: If38262d17699794eb600b11e131c168ed4de4391
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-08 09:11:52 -05:00
Richard Neill d0de844df6 arm-autonomy: Add meta-networking dependency to autonomy layer config
meta-arm-autonomy requires the bridge-utils package, which is provided by the
meta-openembedded/meta-networking layer. This patch adds the explicit
dependency.

Issue-Id: SCM-2166
Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I3a43eb78fe1f40a9a2fb5116b5dbaf3ebfc9af7d
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-04 15:16:45 -05:00
Anders Dellien af36a66128 arm-bsp/fvp-base*: Fix the MPIDR values in the device tree
The MPIDR values are incorrect, which means that only two CPUs start.
With this patch, all 8 CPUs start.

Change-Id: I4baa8738948ec756d6902bc75d0a56edf15e23f8
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-04 15:16:30 -05:00
Richard Neill 9b830fbd97 arm-autonomy/linux-arm-autonomy: Add Xen per-cpu address translation patch
Adds a kernel patch to avoid Xen guest initialisation failure when converting a
virtual address to a frame number when the initial address space has a
non-contiguous physical layout.

The patch is mainlined for kernel versions >= 5.9, so we only apply it for
earlier versions.

Issue-Id: SCM-1910
Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I3fd2aef88f57c928400389b6c4bb0b5eb5666e48
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-03 15:09:44 -05:00
Richard Neill 856291f071 arm-autonomy/linux-arm-autonomy: Drop XenStore initialisation patch
With the linux-yocto version upgrade, the xenstore initialisation patch is no
longer necessary.

Signed-off-by: Richard Neill <richard.neill@arm.com>
Change-Id: I38d81172d5da97a87d41a76f26fe81d5c3b3f83e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-02 09:13:58 -05:00
Peter Hoyes a915ff3931 arm-autonomy/xenguest: Fix issues raised by shellcheck
Ignore issues in xenguest-manager and xenguest-mkimage as these
will soon be rewritten.

Issue-Id: SCM-1526
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I733b4bfaaa5002f7a64c577e16548af62c425ebf
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-03-01 19:26:51 -05:00
Diego Sueiro b4659361b3 arm-bsp/fvp-base/u-boot: Set DRAM to 4G to match with kernel devicetree
Add 0001-vexpress64_fvp-Set-DRAM-to-4G-to-match-with-kernel-d.patch backport
patch for u-boot 2021.01.

Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I0c3d48fcf43ff3eab9b5a547d8d792572908e978
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-27 11:02:19 -05:00
Anders Dellien 50850e8eca arm-bsp: fvp-base-arm32: Correct load address for device tree
This commit ensures that we are using the device tree from the
Yocto build and not the one bundled within the FIP image.

Change-Id: I9592550f24867b04381e4eb962e3d942286bf480
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-27 11:02:19 -05:00
Anders Dellien 9eeeda7169 arm-bsp/fvp-base*: move to u-boot 2021.01
Move both FVP platforms to u-boot 2021.01

Change-Id: I764ff964025bb1a0266f4c91469372ed5ffffde2
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-27 11:02:19 -05:00
Diego Sueiro d38e10e58b arm-autonomy: Fix xenbus probe for guest kernels < 5.10.17
The arm64-autonomy-guest kernel from commit 3499ba8198ca ("xen: Fix event
channel callback via INTX/GSI") are hanging at `xen🎈 Initialising
balloon driver`.

The arm-autonomy-guest kernels older than 5.10.17 need to backport the
0001-arm-xen-Don-t-probe-xenbus-as-part-of-an-early-initc.patch in order
to be able to boot.

Issue-Id: SCM-2151
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I74f58366f42733be4f67ab3841584efa1636abbb
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 22:49:51 -05:00
Diego Sueiro 0d50124e51 arm-autonomy: Fix XenStore initialisation for host kernels < 5.10.13
The arm-autonomy-host kernels older than 5.10.13 need to backport the
0001-xen-Fix-XenStore-initialisation-for-XS_LOCAL.patch in order to be able to
use the `xl block-attach` and fix this issue:
```
xl block-attach 0 "phy:/dev/vg-xen-vda3/base" xvda w
libxl: error: libxl_xshelp.c:201:libxl__xs_read_mandatory: xenstore read failed: `/libxl/0/type': No such file or directory
libxl: warning: libxl_dom.c:52:libxl__domain_type: unable to get domain type for domid=0, assuming HVM
libxl: error: libxl_disk.c:314:device_disk_add: device already exists in xenstore
libxl: error: libxl_device.c:1407:device_addrm_aocomplete: unable to add device
```

This issue is not present in linux-linaro-arm[-rt] 5.4.0 used by N1SDP, hence
we do not apply this patch for it.

Issue-Id: SCM-2151
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I1a38e22084161fb4b6028ef12443707cc566d56e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 22:49:51 -05:00
Ross Burton 78c8bfdd34 arm-bsp/musca*: update TFM_PLATFORM
trusted-firmware-m 1.2.0 uses different naming for the platforms, so
update the BSPs as appropriate.

Change-Id: I3b67b629d821a6b65f39bc89db768e791f173d93
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 09:36:27 -05:00
Ross Burton 977c7e6613 arm/trusted-firmware-m: upgrade to 1.2.0
Upgrade trusted-firmware-m to 1.2.0.  This has been tested by executing
the integrated regression tests inside qemu for the MPS2-AN521 platform.

How the build is configured has changed:
- The build type uses the standard CMAKE_BUILD_TYPE variable
- The compiler selection is done using PACKAGECONFIG to neaten the
  argument and dependency handling.

Add PACKAGECONFIGs to enable the regression tests which can be executed
inside a qemu for quick validation.

The configure stage will fetch external dependencies by default, so tell
it where we have placed the dependencies. TF-M also requires a patched
mbedcrypto (some patches are integrated into 2.25, but not all) so apply
the patches in a do_patch[postfunc].

No longer deploy files into a redundant directory.

The QA test whitelist for text relocations appears to have been fixed
upstream, so remove.

Change-Id: I11994fd0379da0e1f115ff5af0885926d2b3a055
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 09:36:27 -05:00
Ross Burton a8cb17f982 arm/python3-intelhex: add recipe for new trusted-firmware-m
Until this is integrated into meta-python (patches sent), hold a copy of
python3-intelhex in meta-arm for trusted-firmware-m 1.2.

Change-Id: I3e7b765cf44b3d6db7fe066bc24415190a33c97c
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 09:36:27 -05:00
Ross Burton 46bb624631 arm-bsp/musca-b1: disable qemu RNG
By default runqemu adds a virtio RNG, but the Musca platform doesn't
support this.

Change-Id: I61e486f02e106a2d3bb4a7ec9ff3dd0b06c9c369
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 09:36:27 -05:00
Nathan Dunne fc0bed464e arm-autonomy/documentation: Update multiconfig docs with mc name requirements
Update documentation to mention that hyphens are illegal in multiconfig
conf file names

Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I0c0c16063cc66f1d0d66b5458ee0eea5da4d2ee4
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 09:35:28 -05:00
Sumit Garg 2c44ddd93a arm-toolchain: Drop support for GCC 9.2 toolchain
As OE core has moved to GCC 10.2 toolchain, so remove support for
legacy Arm 9.2 toolchain.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Acked-by: Denys Dmytriyenko <denis@denix.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-18 09:35:28 -05:00
Jon Mason 957fefc816 arm-toolchain: Update Denys' email address
Signed-off-by: Jon Mason <jon.mason@arm.com>
Acked-by: Denys Dmytriyenko <denis@denix.org>
2021-02-18 09:35:28 -05:00
Jon Mason 2720a1b32b arm-toolchain: Fix potential runtime crash
GCCv9 tree vectorization code is faulty and can cause random crashes at
runtime (when using -O3).  Add the backported patch to address this
issue.

Change-Id: If7bb0ba0720bab42e7d34f3679d988934f657392
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-12 10:07:38 -05:00
Diego Sueiro 808115fe13 arm/boot-wrapper-aarch64: Bump to the latest SHA
Issue-Id: SCM-2080
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: I823114be82efd02ff7b14fda304668e29facd092
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-12 10:07:38 -05:00
Diego Sueiro 0cec3e584d arm/gem5/boot-wrapper-aarch64: Move main recipe to meta-arm
Move boot-wrapper-aarch64 recipe from meta-gem5 to meta-arm and merge the
contents of the .bb and .inc into a single recipe file.

Also, create a boot-wrapper-aarch64_%.bbappend for the gem5-arm64 machine.

Updated documentation for gem5-arm64 where meta-arm-toolchain and meta-arm
layers need to be included in the bblayers.conf.

Change-Id: Ia8193f4f0bf98069edcbf1661cb3e9b2105d12a3
Issue-Id: SCM-2080
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-12 10:07:38 -05:00
Jon Mason aa63e31b6e kas: microbit-v1 testing
Change-Id: I8043c7be32a1e4029e73c3c9f603ae77c78ddf3c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-10 21:58:30 -05:00
Jon Mason fdcf7b7b3b arm/microbit-v1: Fix build break
KAS is seeing build breaks on microbit-v1.  This can be fixed by either
setting the distro to zephyr or using newlib.  Opting for the latter to
match musca machines.

Change-Id: I25f1cca3f7054f6c44974877350f8612643d55e6
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-10 21:58:30 -05:00
Jon Mason d3c35b4a0e arm-bsp: create u-boot 2020.10 to resolve warning
Poky, etc master branches updated the u-boot recipes to use 2021.1,
causing bbappends for 2020.07 to no longer function.  Create a temporary
recipe for 2020.10 until all the BSPs can update to support the latest
version.

Change-Id: I6046b420a8d0b3cc2125004444683ecd51f3499b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-10 21:58:30 -05:00
Ross Burton e5523d626f kas: disable uninative to work around uninative-2.33 failures
For some mysterious reason the kernel build fails on Ubuntu hosts with the
latest uninative release. Until this is resolved we can just disable
uninative.

Change-Id: I3b2583106844d43e0ef14cdeda24ef8d5d1ae117
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-02-10 17:07:11 +00:00
Arunachalam Ganapathy a9644d39c5 arm-bsp/tc0: add Theodul DSU support
- Adds patches required to support Theodul DSU in optee-os, hafnium
- Updates SHA of TF-A, SCP with revision that has Theodul DSU support

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I62f0990b7de919839be9ab0e3234914624c8afde
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-09 11:12:06 -05:00
Arunachalam Ganapathy 1f872c3c83 arm-bsp/linux: add asymmetric AArch32 EL0 support for TC0
This adds patches for asymmetric AArch32 EL0 configuration support for
android11-5.4-lts kernel. And enables CONFIG_ASYMMETRIC_AARCH32 and
disables CONFIG_KVM in TC0 defconfig.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Iab94b5c48b60aca4a71267ba1be1cb1836002d10
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-09 11:12:06 -05:00
Ross Burton 3be0996065 CI: delete-sstate needs to delete contents
Change-Id: I278d470540e20db8d789a1428e927356e3a5d8b1
2021-02-08 20:16:16 +00:00
Ross Burton 101abf89c6 CI: add task to delete all sstate
Change-Id: If89c6c27cafe6ae7e93b5db5d37b9e8ecdaee131
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-02-08 18:55:21 +00:00
Adrian Herrera 549f362d2f gem5/gem5-aarch64-native: use oe-run-native
Persist gem5 binary in native sysroot. This allows executing the binary
with the standard oe-run-native script. We can also remove the wrapper
creation and the ".real" versioning, since paths are setup by oe-run-native.

Change-Id: I9fd46725c78e1a09a7142a9d343b140bb5a77088
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-04 14:16:47 -05:00
Adrian Herrera cb4c230b56 gem5/gem5-m5ops: initial recipe
m5ops provide pseudo-instructions to trigger gem5 functionality.
m5 utility provides a CLI for m5ops.
libm5.a provides a C library for m5ops.

Change-Id: Ib06dcb539648407522e31aeb1ed392fb5232675e
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-04 14:16:47 -05:00
Adrian Herrera 460210f4a8 gem5/gem5-m5term-native: initial recipe
m5term enables users to connect to the simulated console. Useful in
development environments.

Change-Id: I6096be9fbf44da280272656f3e15d1ba19593e50
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-04 14:16:47 -05:00
Ross Burton 568d4d7f9c gem5/gem5-aarch64-native: backport a patch to reduce warnings
With Python 3.9 the build produces a huge number of warnings, resulting in a
do_compile log that is 17M long.

Backport a patch from pybind11 upstream to silence this warning.

Change-Id: Ie4c71f8e5dd6c07c8be0a563778029a9859e1726
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-04 14:16:47 -05:00
Jon Mason 1350f983ae gem5/gem5-aarch64-native: update to v20.1.0.3
Update to the latest tagged version of gem5. Previously included
patches are now part of that release.
Upstream patch backported to enable boot with SMMUv3 model.

Change-Id: I7d7ad6f9681eb1f06743d214abbe901e9f8aa74e
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-04 14:16:47 -05:00
Ross Burton 15512adf39 gem5/gem5-aarch64-native: don't build gem5 three times
The recipe currently builds gem5 binaries in optimised, fast, and
debug mode.  There is no need to build three at once (and triples the
build time), so simply build the optimised variant by default (as recommended
by upstream) whilst letting the variant be altered by setting
GEM5_BUILD_VARIANT.

Change-Id: I23baeee438d1ff08d1e2a54282141b55500f2ac1
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-04 14:16:47 -05:00
Anders Dellien 63c9974493 arm-bsp/fvp-base*: move to linux yocto kernel 5.10
Move both FVP platforms to linux yocto kernel 5.10

Change-Id: Idc0b35d201a188d69c2e475f2f864f5bb0f06341
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 15:58:22 -05:00
Peter Hoyes a6de147dc0 arm-autonomy: Use busybox instead of GNU tar
Switch out the tar used by xenguest-manager and xenguest-mkimage.
xenguest-mkimage requires the --exclude flag so enable the Busybox
CONFIG_FEATURE_TAR_LONG_OPTIONS option.

Issue-Id: SCM-2034
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Iceed017ef8ebd058e6c06156989aaa2a4bff9103
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 07:36:33 -05:00
Peter Hoyes ea931f83e3 arm-autonomy: Use correct PACKAGE_ARCH in recipes-extended
xen-devicetree should be $MACHINE_ARCH.
xenguest-* should be allarch

Issue-Id: SCM-2039
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Id5666e1dc02a174e74bb8e843cb588287717d136
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 07:36:33 -05:00
Nathan Dunne d692df24cd arm-autonomy/xen-devictree: Update dom0_mem default inline with best practices
Updated default value for XEN_DEVICETREE_DOM0_MEM from "1024M" to
"1024M,max:1024" to match best practice for dom0_mem command line
argument. Documentation also updated to refer to new default value

Issue-Id: SCM-2037
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ifa7e78bf22b024cb7fe4b782f628860ff44860ad
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 07:36:33 -05:00
Nathan Dunne e0c74f3b3b arm-autonomy/xen-devicetree: Check for empty/invalid variable values
Added check to xen-devicetree to validate values of required variables:
XEN_DEVICETREE_DOM0_ADDR
XEN_DEVICETREE_DOM0_SIZE
XEN_DEVICETREE_DOM0_MEM

Issue-Id: SCM-2037
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I31bfcdb9d064f6e91beb1500d0a18f2a30a42028
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 07:36:33 -05:00
Nathan Dunne 82b31654b0 arm-autonomy/xen-devicetree: Allow hex or decimal Dom0 Size
Check whether XEN_DEVICETREE_DOM0_SIZE begins '0x' and cast from hex
or decimal accordingly, rather than assuming hex.

Issue-Id: SCM-2037
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I3a1c7c7ae6711b3d645cdb66bcd9c2c27196b054
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 07:36:33 -05:00
Nathan Dunne 57192fd8a5 arm-autonomy/xen-devicetree: Lower log level for incorrect kernel size
Reduced the level at which messages relating to overriding the user provided
value for XEN_DEVICETREE_DOM0_SIZE when it is too small are logged at from
'warn' to 'note'

Issue-Id: SCM-2037
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I1436dac2c347d40c897291220fe30a95a57f2fa1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-02-02 07:36:33 -05:00
Diego Sueiro 67f57f35da gem5/gem5-native: Fix INSANE_SKIP mechanism for native-last QA check
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Change-Id: Ic1c92e145694abd30fdd99fd073eeacce917c55e
2021-02-01 16:48:44 +00:00
Nathan Dunne 0978f5a74c arm-autonomy/xenguest-manager: Make stop by default a blocking action
Added -w parameter to xl shutdown to force it not to return until
the action is completed, and modified logging to reflect this

Stop operation can be configured to return immediately using
--nowait parameter, or to force destroy the guest if the graceful
shutdown fails using --kill. Both are now documented in usage().

Issue-Id: SCM-1861
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I664acc8a6a1eb17619fa2fd9b372ea661e537923
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-25 11:06:29 -05:00
Peter Hoyes 232b411b47 arm-autonomy: Use 5.10 kernel for autonomy-guest
Issue-Id: SCM-2054
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I8bcb464f0fd960cd01cce328c51be538cc705e84
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-25 09:26:11 -05:00
Peter Hoyes 98f3779210 arm-autonomy/n1sdp: Use 5.4 kernel for autonomy n1sdp builds
meta-arm-bsp has been updated to use 5.10 kernel but further validation
required before upgrading the autonomy n1sdp kernel.

Issue-Id: SCM-2053
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: I3848a03d7d01dc3a1c27530ec395e1db083a9e35
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-25 09:26:11 -05:00
Peter Hoyes 7ae8a30b6b arm-autonomy/linux-arm-autonomy: Add explicit dependency on bridge.cfg
xenguest-network depends on CONFIG_BRIDGE_NETFILTER, but the default
value changed to 'n' in Linux 5.6
(http://git.yoctoproject.org/cgit.cgi/linux-yocto/commit/?id=98bda63e20daab95bdc084ce00459a4f622a0505).
Include bridge.cfg to define CONFIG_BRIDGE_NETFILTER manually for Xen
host builds.

Issue-Id: SCM-2057
Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Change-Id: Id920d14f87a95214ee722007de923fd27b61afb3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-21 09:27:37 -05:00
Nathan Dunne 933df12da8 arm-autonomy/arm-autonomy-host-image-minimal: Use REQUIRED_DISTRO_FEATURES
Make use of REQUIRED_DISTRO_FEATURES rather than anonymous python for
determining that both arm-autonomy-host and xen are present in
DISTRO_FEATURES

Issue-Id: SCM-1862
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Id21086ac4f4c45a89fa8fa8a2da28f04919f6b26
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-21 09:27:37 -05:00
Nathan Dunne bc4cd77370 arm-autonomy/documentation: Remove references to meta-kernel
Since meta-arm-bsp doesn't depend on meta-kernel anymore
it has been removed from the appropriate documentation.

Issue-Id: SCM-2005
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: If3548b84c4cffc5cc105a1fc07a656dc814699f3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-21 09:27:37 -05:00
Nathan Dunne 5b823a1eb4 arm-autonomy/xenguest: Add guestcount support
Add guestcount parameter to ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS,
to create multiple guests with the same config. Symlinks are created
in the host rootfs pointing to the original xenguest file

Parameters for ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS are now
retrieved using python regex rather than split, so that they can
appear in any order

Issue-Id: SCM-1863
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ifa5f5ab3b284815427c94979b3f1a5eed592ec3c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-21 09:27:37 -05:00
Adrian Herrera a8f32f990a gem5: centralise v20 sources
Both simulator and bootloader now fetch from a single include file
defining the sources. This is in preparation for m5term recipe.

Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Change-Id: Ia4f6b6d99401ddb0c726d913ceff4ced90f41f6b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Adrian Herrera 51e014fd47 gem5: use GEM5_RUN_PROFILE in DTB generation
Allows to generate DTBs from profiles other than baremetal.py, which is
the default established by the layer.

Signed-off-by: Adrian Herrera <adrian.herrera@arm.com>
Change-Id: Ic990bd6751e473756d0739f421dce4b8f98248d7
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy f8e79562f9 arm-bsp/tc0: Enable spmd and SEL2 SPMC with optee as SEL1 SP
- Set SPD to spmd with SEL2 SPMC. Set optee as SP
- Assign SP layout and spmc manifest file that corresponds to optee
- Move TF-A version from 2.3 to 2.4

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I3da3bf7f95ba42716b731f92e2cdfb928b1ab77f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy 980f559e87 arm-bsp/linux: add ffa transport in optee driver for TC0
This patch adds FF-A transport driver for optee driver. This is based
on prototype version released by Arm and its port for android11-5.4-lts
kernel.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I991895881c069767854ae8a0722cdc282b221dd9
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy 44a3c5cf80 arm-bsp/linux: enable ffa driver for TC0
Enables ffa driver. Sets CONFIG_ARM_FFA_TRANSPORT=y

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I71ffeb6b3bc5b28c34bfab09cdcc66227203c74c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy 603a7657e2 arm-bsp/linux: add ffa driver to TC0
This patch contains initial version of ffa driver adopted for
android11-5.4-lts kernel.

This is based on prototype ffa driver released by Arm.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Idb198cc77368a95257f1b5bff37b17bd13144109
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy 7453f06afc arm-bsp/tc0: Enable optee core with SPMC at SEL2
Sets config flag CFG_CORE_SEL2_SPMC. Copies optee manifest file and
sp_layout files to deploy directory.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: If2104e2d588cbc9fbd9db3d8c4ba9fb74732901b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy b595d1ea47 arm-bsp/tc0: Add tc0 platform support patches for optee
These patches in optee-os adds support for
      - tc0 platform
      - SEL2 SPMC support in optee core
      - support for tc0 SEL2 SPMC config

The patch in optee-client adds support for
    - allocating page aligned shmem buffers

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I1cfe134bdcedc45adf446f46af0d2881815b98f6
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy a3481e5016 arm-bsp/tc0: Add support for optee
This patch adds optee-os, optee-client, optee-test support in tc0 bsp.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: I65f795b7ec2b4def4778b286b2f744b06b177157
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy 9fdf9297ac arm-bsp/tc0: Add hafnium support
Enables hafnium support for tc0.
Adds pending patches for SEL1 SP support.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: If5c12b7e7b7a301ae9a48a88223be3e51f38d3aa
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy 9e00b6b884 arm/trusted-firmware-a: Add support for spmd build option
This patch adds generic dispatcher 'spmd' option for SPD along with
SPMD_SPM_AT_SEL2 build option.

 Config: SPD=spmd and SPMD_SPM_AT_SEL2=1. Indicates the SPMC component
 runs at the S-EL2
   - Add hafnium dependency
   - Set CTX_INCLUDE_EL2_REGS=1 and ARM_ARCH_MINOR=4
   - Set BL32 to hafnium image
   - Set SP_LAYOUT_FILE and ARM_SPMC_MANIFEST build parameters

 Config: SPD=spmd and SPMD_SPM_AT_SEL2=0. Indicates the SPMC component
 runs at the S-EL1 execution state.

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Icd3970e5132e75de67ef7f41dbfc8f9e1cdde7f3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Arunachalam Ganapathy ee8a242e7a arm: Add hafnium support
Initial recipe for hafnium[1]. This enables build for reference Secure
Partition Manager (SPM) for systems that implement the Armv8.4-A
Secure-EL2 extension.

Link: [1] https://www.trustedfirmware.org/projects/hafnium/

Signed-off-by: Arunachalam Ganapathy <arunachalam.ganapathy@arm.com>
Change-Id: Ib256d8ca03c94131e308d962d786d5d6a656c256
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-14 09:37:35 -05:00
Ross Burton 43a25b2e96 arm/opencsd: upgrade to 1.0.0
Change-Id: I7c88e60bbeb6d9149d6d6178067bcd149405c111
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:30:40 -05:00
Khasim Mohammed e25c325197 arm-bsp/n1sdp: port and migrate to linux yocto kernel 5.10
This commit includes :
    - rebased and fixed kernel 5.4 PCIe quirk patches to apply on 5.10
    - pci probe in n1sdp driver is modified to use 5.10 structure
    - USB_CON_GPIO config is added to remove build time warning
    - Updated n1sdp conf to use 5.10 yocto kernel
    - Fix defconfig to not use obsolete symbols (RB)

Change-Id: I9e3d3945057ac09768a4a4e4d7a3033138925955
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:53 -05:00
Jon Mason 761bcbb365 arm/machine: add zephyr machine conf for microbit
Zephyr supports QEMU based machine for Cortex M0 (qemu-cortex-m0).  This
is actually using the BBC Microbit v1 machine in QEMU.  Use this more
accurate name for the machine conf.  This enables us to verify m0
tunings.

NOTE: qemu-cortex-m0's zephyr config has SRAM too small to run
zephyr-kernel-test-all, but can run zephyr-philosophers and
zephyr-kernel-test-sleep (and possibly others).

Change-Id: Ia997a162c10cf1a6b8fea244cb1960f4d4c66adc
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:30 -05:00
Anders Dellien d9fe9a3eac arm-bsp/fvp-base*: move to u-boot 2020.10
Move both FVP platforms to u-boot 2020.10

Change-Id: If94bb5a343e2709574f84283f39d8d227b32d84d
Signed-off-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:30 -05:00
Ross Burton e627b698e7 kas: add a test for the external toolchain support
meta-arm-toolchain supports using an external binary arm
toolchain[1] instead of the gcc-cross built by oe-core.

Add a test case to exercise this build in the CI.  Currently this
is only for the Aarch32 target as our CI runs on aarch64 and there
is no binary or aarch64 target on aarch64 host.

This depends on the image used by the CI having the relevant
compilers installed into /usr/local.

[1] https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a

Change-Id: I9f7ea66786e98a40cbd490386497e2d3aaa47e80
Signed-off-by: Ross Burton <ross.burton@arm.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:30 -05:00
Ross Burton 84683227ed kas: rename armgcc fragment to avoid conflicting with musl
The armgcc fragment was labelled 'libc', which means it would be
impossible to armgcc+musl.

Change-Id: I96f1d6e1a77bcd05fe373315f575c57c36417852
Signed-off-by: Ross Burton <ross.burton@arm.com>
Acked-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:30 -05:00
Usama Arif 312a25202b arm-bsp/images: artifacts image for tc0
Trusted-firmware-a is the final component to be built with the rest of the
components dependent of it, therefore building tc0-artifacts-image
which depends on trusted-firmware-a will build all the required binaries.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Change-Id: I57760a339da1601bd66e3dd752a7b2814e84bbb8
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:30 -05:00
Diego Sueiro 1f548fce10 arm-autonomy/linux-arm-autonomy: apply runstate fix to kernels older than 5.10
The patch introduced in 82ffc86 is a backport from the 5.10 version. Hence,
just apply it for kernels older than 5.10.

Change-Id: I6f442f540913b5e24bea533a436b4a3104d098e9
Issue-Id: SCM-2033
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-13 17:29:30 -05:00
Ross Burton 75c9cc3bf8 CI: don't retry jobs
We can't retry jobs blindly because if a build fails with warnings we want
to fail the job.  With retries enabled the job fails, but is immediately
retried and builds quickly from sstate without any warnings.

Thus, all and any warnings are hidden.

Disabling retries. We may get occasional failures from Docker, we'll have
to see how bad they are.

Change-Id: Ib726f14a264c029fdf372fc1b8a02aca52bf5e4c
Signed-off-by: Ross Burton <ross.burton@arm.com>
2021-01-12 18:05:41 +00:00
Ross Burton 9e2ff72858 arm-toolchain/external-arm-toolchains: add upstream checking information
Change-Id: I08168f5369eafb590d7cdbc972320c852d4252b3
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-07 10:55:12 -05:00
Ross Burton 68a113c0a0 kas: add testing of gcc-arm
Add a build to verify that setting GCCVERSION to arm-10.2 works.

Change-Id: I086fa786b11560a8e94ee646859c59288bacba5d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-07 10:55:12 -05:00
Nathan Dunne f14be5995f arm-autonomy/xenguest-manager: Document VOLATILE_LOG_DIR in recipe
Added a comment to the xenguest-manager recipe to inform the user that
the default state is a volatile log dir, and how to persist logs across
reboots.

Issue-Id: SCM-1860
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ie0c92b05d11543a1524cbb7a53cd845bc63ecd3d
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-07 10:55:12 -05:00
Sumit Garg eb3a6b74b7 external-arm-toolchain: Misc. fixup for GCC 10.2 support
Arm GCC 10.2 prebuilt toolchain comes with ldd and tzselect scripts
which uses "/usr/bin/bash", so replace this with "/bin/sh" as the
default shell.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-07 10:55:12 -05:00
Sumit Garg a56011bf30 arm-toolchain: Drop support for GCC 8.x toolchain
As OE core has moved to GCC 10.2 toolchain, so remove support for
legacy Arm 8.x toolchain.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-07 10:55:12 -05:00
Sumit Garg 0a1d96948f arm-toolchain: Add support for GCC 10.2-2020.11
Add support for GNU-A toolchain version: 10.2-2020.11.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2021-01-07 10:55:12 -05:00
Ross Burton 6dbf49d633 arm/trusted-firmware-a: remove git-specific recipe
This recipe isn't used by any machines and isn't tested, so remove it.

Machines that use a git snapshot should extend the closest versioned recipe
instead.

Change-Id: Ia0970f2d0491204c23d171c065e85c9f65f9472f
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-22 09:53:33 -05:00
Ross Burton e454387d9f arm/trusted-firmware-a: remove unused 2.1 recipe
No machines in meta-arm are using this old release.

Change-Id: I8b56b1cc3eb603ee423acc52950d1e7661502d0e
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-22 09:53:33 -05:00
Ross Burton b566fbce82 arm/edk2-firmware: remove unused 202008 version
Now that SGI575 has upgraded, this can be removed.

Change-Id: Ib8bdd9430b66a4b83524b21ad2a300a048c218eb
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-22 09:53:33 -05:00
Jon Mason 756e695b48 arm-bsp/linux: remove unused kmeta variables
gem5 is no longer in meta-arm-bsp, and kmeta entry should be removed.

sgi575 has no usage of the meta-arm-bsp kmeta and would be better suited
to use the generic one.

corstone700 is defining kmeta, but that variable is only used in the
generic kmeta src_uri, and not the meta-arm-bsp that it is using.

Change-Id: I01e80c433a9a02bad1f6337b0df27cbf6a96231f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-21 09:55:52 -05:00
Jon Mason 1f6d3f6ef2 arm-bsp: fix sgi575 kernel compile warning
SGI575 throws a config warning when compiling the 5.7 kernel.

WARNING: linux-yocto-5.7.19+gitAUTOINC+b9e6fd082d_6b9830fecd-r0 do_kernel_configcheck: [kernel config]: specified values did not make it into the kernel's final configuration:

    [NOTE]: 'CONFIG_USB_CONN_GPIO' last val (m) and .config val (y) do not match
    [INFO]: CONFIG_USB_CONN_GPIO : y ## .config: 5334 :configs///defconfig (m)
    [INFO]: raw config text:

        config USB_CONN_GPIO
        	tristate "USB GPIO Based Connection Detection Driver"
        	select USB_ROLE_SWITCH
        	depends on GPIOLIB && USB_SUPPORT
        	help
        	  The driver supports USB role switch between host and device via GPIO
        	  based USB cable detection, used typically if an input GPIO is used
        	  to detect USB ID pin, and another input GPIO may be also used to detect
        	  Vbus pin at the same time, it also can be used to enable/disable
        	  device if an input GPIO is only used to detect Vbus pin.

        	  To compile the driver as a module, choose M here: the module will
        	  be called usb-conn-gpio.ko

        Config 'USB_CONN_GPIO' has the following Direct dependencies (USB_CONN_GPIO=y):
                GPIOLIB(=y) && USB_SUPPORT(=y)
        Parent dependencies are:
             USB_SUPPORT [y] GPIOLIB [y]

    [INFO]: selection details for 'CONFIG_USB_CONN_GPIO':
        Symbols currently y-selecting this symbol:
          - PHY_TEGRA_XUSB

It is using the defconfig from upstream Linux.  So, change that
defconfig to correct the warning by changing USB_CONN_GPIO from 'm' to
'y'.

Change-Id: Ia5080f7f22d0f1aef065b58d8c3b0222625c8f58
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 16:03:19 -05:00
Ross Burton 9ed331bbd7 arm-bsp/edk2-firmware: upgrade SGI575 to 202011
Change-Id: Id002f1f460d9a0d66c913d3f3c7bb460ae7d5904
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton a780470d96 arm/edk2-firmware: upgrade platforms to fix VariablePolicyLib errors
Upgrade to a newer edk2-platforms revision to incorporate the fixes
for the VariablePolicyLib changes in edk2 itself.

Change-Id: I928a59baee9cea4958963ac86f0093521036740b
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton 800249ac61 arm/edk2-firmware: no need to depend on the C library
Firmware is baremetal so doesn't need the C library to build.

Change-Id: Ie376783cb45fb6d455bc5d9c687e77703ff2cd72
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton 5a44edaa0e arm/trusted-firmware-m: upgrade to 1.1
Change-Id: Id0c37b291b32072ebe61abcd908ed9a2ebf79365
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton cff5aafc67 arm/trusted-firmware-m: set PACKAGE_ARCH
As this is machine-specific, set PACKAGE_ARCH to MACHINE.

Change-Id: I4569bce706de8dea4ba98770960c0d40348a3fa2
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton 60ef8543f4 arm/trusted-firmware-m: improve CMake calls
Use cmake more idiomatically, and enable verbose builds.

Change-Id: I908af71f4662fab1dde9de86fc7a56ca3701e0c5
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton 235b7539d8 arm/trusted-firmware-m: remove more unneeded build dependencies
TF-M uses the binary Arm toolchains currently, so we can inhibit
all of the default dependencies.

Change-Id: I38a7bda9570d9d63d3d81f0886c437f29929a0f5
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton d9a0f4fe59 arm-bsp/trusted-firmware-m: move TFM_PLATFORM to machine configuration
Now this can be easily set in the machine, do so.

Change-Id: I964c78c8e1e8f845cc2c95193c4a795e12089d1a
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton 6a85fdbd77 arm/trusted-firmware-m: don't use COMPATIBLE_MACHINE directly
COMPATIBLE_MACHINE is a wrapper around raising SkipRecipe, and as this
recipe basically just needs TFM_PLATFORM set we can raise that if the
variable is not set.  This allows BSPs to set TFM_PLATFORM in their
machine configuration instead of needing to bbappend.

Change-Id: I8544ff14ac4689bfbea1f0ac68364b673abde6f1
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Ross Burton 7fdd34516c arm-bsp/musca: remove trusted-firmware-m statements
Musca doesn't build 'images' in the traditional sense yet, just
trusted-firmware-m or Zephyr, so remove EXTRA_IMAGEDEPENDS.

Remove the preferred version for TF-M as we only ship one currently.

Change-Id: I2fbd1230f6ba7a49aa093ca90fc38e676ba14633
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Nathan Dunne 9b7905b994 arm-autonomy/xenguest-manager: Clean up code duplication
Reduced duplicated code in xenguest-manager to functions for better
maintainability. Also reduced instances of calling self with a different
argument, which is better for performance and log readability.

Issue-Id: SCM-1635
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Ic37b6b0a8a5f38145a298cc6aab908e3e58ae313
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-18 14:17:56 -05:00
Usama Arif caaa21d84f arm-bsp/documentation: Update the command for building all components
Trusted-firmware-a is the final component to be built with the rest of the
components dependent of it, therefore building trusted-firmware-a will
build all the required binaries.

Change-Id: Ia8675b048db4a127d32394f536632ce88fe20826
Signed-off-by: Usama Arif <usama.arif@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-16 14:38:31 -05:00
Usama Arif 65618b753f arm-bsp/tc0: Enable verified u-boot
This involes creating the fitImage which contains
both the kernel and ramdisk. The fitImage is also
signed.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Change-Id: I2fc50740aac3e347be02438cf54ef5741183a670
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-16 14:38:31 -05:00
Usama Arif 511c1ca429 arm-bsp: update tc0 platform with latest u-boot
Use 2020.10 u-boot as it has tc0 platform merged in upstream.

Signed-off-by: Usama Arif <usama.arif@arm.com>
Change-Id: Ia7da8b96a4509cee25b096f6637c036fef910b48
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-16 14:38:31 -05:00
Diego Sueiro 16d10f9c58 arm-autonomy/wic: Revert Introduce empty plugin to create unformatted empty partitions
This reverts commit bc07e6c62a.

Wic empty plugin upstreamed to oe-core as: 77d174fc80663403ef76c5b808aafc1117d3545c.

Change-Id: I94e6fb8583cf6e26cf141087fe5adb187ea85ef1
Issue-Id: SCM-1520
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-16 14:38:31 -05:00
Nathan Dunne 7a3e9d5087 arm-autonomy/xenguest-manager: improved logging
Introduced logging functions to unite logging to the console and to
the logfile with different filterable log levels. Also introduced
logrotate to ensure the size of the log does not become excessive.

The Log levels introduced are:
ERROR INFO VERBOSE

By default, both the terminal and the logfile will receive ERROR logs.
More verbose logs can be written to the logfile in two ways:
- passing the parameter "-v" or "-vv" to write info and verbose respectively
- modifying the value of "XENGUEST_MANAGER_LOG_LEVEL" in the host conf file,
  or updating the entry it creates in the config file
  /etc/xenguest/xenguest-manager.conf

The order of precedence is as listed above

Issue-Id: SCM-1516
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I47f74802ed31a5bff12305eab707e009af7e5398
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-16 14:38:31 -05:00
Ross Burton 35adaace0e ci: fail any build that emits warnings
Using a custom logging.yml we can instruct BitBake's logger to write all
warnings and errors into a separate log file.

Then after the build has finished we can see if the log file is empty and if
not show it and abort the build.

Change-Id: Ida835b5c822941fb513dfb1758b4ec195e0050fc
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 15:35:25 +00:00
Ross Burton e40b99e131 ci: make bootstrap just another kas overlay
Simplify the gitlab-ci by having the bootstrap build as just another Kas
overlay file, so there's no duplication of build script.

Change-Id: I7341750d2ae7f3c146bfe323f61fa98c0f3121c0
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 15:35:25 +00:00
Ross Burton fecf206b7d arm-bsp/linux: explicitly refuse to build for Musca
The Musca boards can't run Linux, so explictly refuse to build a kernel
on those platforms.

Change-Id: Ic38e9fb5a7af5b27b83a74615ece5d49c60d927b
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 14:50:35 +00:00
Ross Burton 9b5f0a0cc4 arm/trusted-firmware-a: add upstream tag regex
So that the automatic latest upstream release detection works correctly,
specify what release tags look like.

Change-Id: Ie53e82fffe5392d8e6f8d530d9f4ed732f03b50f
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 14:49:08 +00:00
Ross Burton 88a5524a61 arm/trusted-firmware-m: add upstream tag regex
So that the automatic latest upstream release detection works correctly,
specify what release tags look like.

Change-Id: I8e028b9457719a462f2028daca028714b80fad63
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 14:49:08 +00:00
Ross Burton eea9ce959a arm/edk2-firmware: add upstream tag regex
So that the automatic latest upstream release detection works correctly,
specify what release tags look like.

Change-Id: I1226290c223d18b776efffeccd48d291755d01a1
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 14:49:08 +00:00
Ross Burton 98014d1c1c arm/optee-test: add comment
Upstream has potentially fixed the musl issues, so leave a comment to remind
whoever does the upgrade.

Change-Id: I24d9b23e492b29b6690c0843c3f2c950791f93e5
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 14:49:08 +00:00
Ross Burton a230baa675 arm/optee: add upstream tag regex
So that the automatic latest upstream release detection works correctly,
specify what release tags look like.

Change-Id: Ibc43aecd3cb4def85e2f1549d16f5bcb27cfb703
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-12-15 14:49:08 +00:00
Brett Warren da32f5c1c8 arm/trusted-firmware-a: -Wtautological triggers removed
When compiling under clang, certain lines triggered
-Wtautological errors. Cosmetic modifications were made
via patches to mitigate this.

Change-Id: I3d17dd5102267e03a8b7d157e66e0788b542bdd8
Signed-off-by: Brett Warren <brett.warren@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:04:51 -05:00
Brett Warren 293d1e0e8d arm-bsp/trusted-firmware-a: enable explicit linking to runtime builtin
When compiling under clang for aarch32, linking fails because
the compiler-rt builtins aren't implicitly linked. Recipes and
patches have been modified and added to explicitly pass the runtime
builtin when linking files.

Change-Id: I4299b7d078d77c1fdd5576ceec1491f91e73c35d
Signed-off-by: Brett Warren <brett.warren@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:04:51 -05:00
Ross Burton e59fc3233b arm-bsp/u-boot: update FVP patch metadata
Change-Id: If8edc606afa57e33ddd05ae16d6bf53b798257bc
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:04:25 -05:00
Ross Burton c90cf8ce5a arm-bsp/scp-firmware: update a patch that is now upstream
Change-Id: Ibfa8f7d3c0f38fcde514170211264ec02efff953
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:04:25 -05:00
Ross Burton 5b98ef9d65 arm/op-tee: remove old 3.8.0
Change-Id: I8da09673c02f3a046e4291f7eb01cdb66117450f
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:04:25 -05:00
Ross Burton 35c0bcceea arm-bsp/musca: don't include qemu.inc
The oe-core qemu.inc is common configuration for the qemu machines
inside oe-core.  Including this to get qemuboot working has some
unintended consequences, such as a kernel being selected and
MACHINE_FEATURES being altered.

Change this to inherit qemuboot and set the correct filesystem type
directly.

Change-Id: Id17e2cc67f029653517ba802c7f8f5503eea3c31
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:04:25 -05:00
Henry Wang fabf4a3c0f arm-autonomy/container: Add a recipe to include container image
This commit implements a generic recipe to pack and import
container image to the xenguest image.

Signed-off-by: Henry Wang <Henry.Wang@arm.com>
Issue-Id: SCM-1738
Change-Id: I239b360f9a7dd1cdc050d46a40e210406ca21aae
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:02:59 -05:00
Jon Mason b578b45092 arm-bsp: update SCP for TC0
Update TC0 SCP from using a local version (non-standard) to use the
generic 2.7 recipe.

Change-Id: I68aca8fe7f1f7a574a2324dff348f80cd4989581
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:02:59 -05:00
Jon Mason e05be1a396 arm-bsp: update SCP for SGI575
Update SGI575 SCP from using a non-standard, post 2.6 release version of
SCP to using the generic v2.7 recipe.

Change-Id: I31945afbb16ce65b4f87130c6b85f12c89b8713c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:02:59 -05:00
Jon Mason be19ce6b94 arm-bsp: have sgi575 use EDK2 sources
Move sgi575 off its own unique version of EDK2 and onto using the
version used in the EDK2 recipe.

NOTE: SGI575 not compiling cleanly with EDK2 202011

Change-Id: I7ab9a6673cc91758121b618e6691c25ae67e9a21
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:02:59 -05:00
Jon Mason 7cd87c3ee3 arm: new recipes for EDK2
Rework the EDK2 recipes to allow for multiple versions, and create a
recipe for the latest version.  This will allow for BSPs using the older
version to continue to function while waiting to be upgraded.  Also,
rework the n1sdp recipe to use the 201911 recipe, but overwrite
everything with its unique git trees.

Change-Id: I96869191bcf896ea17304d2ccf93da58605c72a1
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-15 09:02:59 -05:00
Kamil Dziezyk a49c59daf6 arm-autonomy/xenguest-manager: remove double arguments checking
This patch brings following changes to xenguest_volume_init() function:
 (*) removes doubled arguments validation,
 (*) adds missing check_private() call,
 (*) inherits diskdevice and volumename values,
     as first and second function arguments.

Issue-Id: SCM-1520
Change-Id: Id01a326c2db5db1fcaae9237f887e97ea208d6ff
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-11 10:13:17 -05:00
Ross Burton 7577cecab6 layers: consolidate layer priority to match oe-core
Without exceptional justification there is no good reason for layers to
have a priority other than 5, to match oe-core.  If a layer has a
priority higher than oe-core's then recipes in that layer take immediate
preference over those in oe-core and there's no simple way to resolve
this as that is exactly what is meant to happen.

As a concrete example, meta-arm-bsp contains older releases of U-Boot
for platforms that have not yet moved to the latest release in oe-core.
As the priority of meta-arm-bsp is higher, simply adding this layer to a
qemuarm build will immediately downgrade u-boot.

As there is no exceptional justification for the differing priorities,
unify on 5.

Change-Id: I1975753b4a9799cc00310a7c8a6a11c2aef41f65
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-11 10:13:17 -05:00
Ross Burton 3c9486fb31 arm/qemuarm64-secureboot: don't use -dev kernel
According to the comment linux-yocto-dev was being used to get a 5.5
kernel as 5.4 was panicking on boot.  Now linux-yocto defaults to 5.8
so just use the standard kernel instead.

Change-Id: Id382c69f16f2ff4b2cbc63be94a645e56616549d
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 10:14:29 -05:00
Ross Burton 2a530c3419 kas: remove redundant env settings
These are left over from an experiment and are no longer needed.

Change-Id: I27677b58e4c196371a394f47b185f71917848528
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 10:14:29 -05:00
Ross Burton 0d83df0bd2 gitlab-ci: force git updates
Explicitly force kas to update in case the repositories are reused.

Change-Id: Ieedf518c7586bb1a4eff274dc1a33b52a3c49d9f
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 10:14:29 -05:00
Diego Sueiro 966e15826a arm-autonomy/init: Revert Change execution order between modutils.sh and checkroot.sh
This reverts commit a996166e85.

The fix was merged in oe-core as: 39f16d7dc42dcfe4a3fcceb8e476ac3c1e0ba3a2

Change-Id: Iab8f7d7b49fe62f04a5c77c1b48ec7c4fcf5c617
Issue-Id: SCM-1520
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 10:14:29 -05:00
Diego Sueiro 719a003508 arm-autonomy/modutils-initscripts: Revert fix modules.dep update
This reverts commit 9872afc6c7.

The fix was merged in oe-core as: 572f3045faa0a937947fbd56bcfef7bad55e9da6

Change-Id: Ib9531c1d18ac743c063afe66de18015472cdbb3d
Issue-Id: SCM-1520
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-09 10:14:29 -05:00
Ross Burton 79360345fb arm-bsp/trusted-firmware-a: move N1SDP to TF-A 2.4
Change-Id: I85a7b9421a6d5267c778c164b8f0e0bdd24b8407
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-08 08:33:25 -05:00
Khasim Syed Mohammed d683a5bc92 arm-bsp/scp-firmware: Update N1SDP SCP firmware to 2.7.0
SCP firmware recipes are updated to build SCP firmware version 2.7.0 for N1SDP

Change-Id: Ic42fac178cf4ac9e87127e9b6258c9bd15101906
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-08 08:33:25 -05:00
Kamil Dziezyk 780fba3481 arm-autonomy/xen-tools: update vif hostname fix patch status
Fix for hostname setting in vif-nat script was merged in xen upstream repo,
(sha: 5499e0fc8082024bf7e2d0facd5c976e82105070),
hence correct patch status for 4.14 is 'Backport'.

Issue-Id: SCM-1523
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: I35f04bfa0f0fff81a1ef20d500b9323e5f13b9ed
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-08 08:33:25 -05:00
Ross Burton afa281b7a9 arm/opencsd: upgrade to 1.14.4
Notable changes include resolving a build race.

Clean up the recipe so that arguments are not passed twice in do_compile(),
and always pass the install path arguments to clean up the tasks.

Signed-off-by: Ross Burton <ross.burton@arm.com>
Change-Id: I7e32a40092403fd0c0c53d157ae4581f7903356c
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Ross Burton f54bb78861 arm/scp-firmware: inhibit default DEPENDS
This is baremetal firmware so doesn't use the C runtime library and uses
the binary compiler for 32-bit Arm instead of the standard one, so
inhibit the default dependencies entirely.

Change-Id: Idd52bb09fea49640f1fc38e1c5a47ca8eecca107
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Ross Burton de5d5e611a arm/trusted-firmware-a: no need to DEPENDS on a C runtime
This recipe is for baremetal firmware, so remove libc from DEPENDS.

Change-Id: I89d0dde3f48599b9221cb1e153344dbc05e8cebe
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Ross Burton 2ab2f5e179 arm/trusted-firmware-m: no need to DEPENDS on a C runtime
This recipe is for baremetal firmware, so remove libc from DEPENDS.

Change-Id: Id37f82a4dad6207237117b65d242617467b83ed2
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Ross Burton 9d8bb0bea2 arm/trusted-firmware-m: clean up DEPENDS
TFM_DEPENDS isn't used anywhere so remove it.

Change-Id: I7707ada458a001a081aac1f417dc78d6ca37a307
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Kamil Dziezyk 4b1d39b87d arm-autonomy/juno-firmware: add compressed kernel support
This patch adds support for lzma compressed kernel,
by setting KERNEL_ALT_IMAGETYPE to 'Image.lzma' and
adding additional decompression step during u-boot boot stage.

U-boot automatic Image decompression cannot be used here,
because if xen binary is the target of 'booti' command,
Image is not being decompressed neither by u-boot nor by xen.

Lzma compression is supported in u-boot with 'lzmadec' command,
and does not require setting additional dependencies inside kernel recipe.

Change-Id: I51b9aea962f8905f88b60ac28e71017c7d500189
Issue-Id: SCM-1769
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Kamil Dziezyk 4ba96e72fd arm-autonomy/autonomy-host: add user defined partition to wic image
With this patch user can define additional partition entry,
via AUTONOMY_HOST_EXTRA_PARTITION variable.

Issue-Id: SCM-1514
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: Ic103a40de44ea6cd88caa60f06033a9c678b265f
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Kamil Dziezyk cd9cdaad2a arm-autonomy/juno-image-customization: add host wks file
This patch also appends 'wic wic.gz wic.bmap' images,
to IMAGE_FSTYPES.

WKS file contains two partition entries:
 * first is rootfs partition
 * second is empty partition (4 GiB by default)

Issue-Id: SCM-1520
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: Ic0c79ee5eb4b08ad8f9c133b267feda1c85519a3
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:24 -05:00
Kamil Dziezyk e3b06f63b1 arm-autonomy/xenguest-tools: add multiple disk devices support
With this patch user can set DISK_DEVICE for guest image.
If guest disk configuration contains DISK_DEVICE setting,
xenguest-manager uses that disk for this guest, insted of default one,
that is set with XENGUEST_VOLUME_DEVICE in xenguest-manager.conf file.
DISK_DEVICE is not set by deafult.

Change-Id: If400850f60097d38339e76a3d18fc0e2b927f3a0
Issue-Id: SCM-1513
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-07 08:45:23 -05:00
Jon Mason 03f2d78e45 arm: update Android common kernel
Update ACK to ASB-2020-07-05_5.4-stable and remove the 4.19 recipe

Change-Id: Iecc56effff11ecd9619553381815445b64aa645e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-12-02 13:39:34 -05:00
Ross Burton e64c553fa0 Add experimental CI using Kas+GitLab
Add kas scripts that generic to test builds, and a GitLab CI runner.

Change-Id: I9026fd1af4155288c4adb523d00b1562ea8515e9
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-30 15:44:59 +00:00
Jon Mason 7f5a3b06ee arm/scp-firmware: Add SCP v2.7.0
Add the latest version of SCP.  Not adding an inc file between them,
since the older one should be removed ASAP.

Change-Id: I0a1e58ffdb6d0d405b199e498587fe410076fc08
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-26 14:06:06 +00:00
Ross Burton a8a44f6916 arm/scp-firmware: remove redundant python3native inherit
Change-Id: I9df71eb6bb99bb4af48b77f50a1056027c8227a4
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-26 14:06:06 +00:00
Ross Burton fda2117467 arm-bsp/scp-firmware: explicitly select scp-firmware 2.6
Explicitly select scp-firmware 2.6 in all the machines that use it.

Change-Id: I83d3214fff05e7cbbf182f1215e67da42ceb68f1
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-26 14:06:06 +00:00
Ross Burton 095d9e314d arm-bsp/scp-firmware: add version to wildcard bbappend
To prepare for a new version of scp-firmware, add a version to this
bbappend.

Change-Id: Ib6d79f2992783f2d582ca5804bc081912f9bb674
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-26 14:06:06 +00:00
Satish Kumar 148103bf84 arm-bsp/boot-firmware: update boot-firmware recipe to latest hash
The recipe now points to the folowing commit.
commit hash : af7eeb1bb8c5a85a5e5a76d48acc6fe864d715a9

Change-Id: I73313597ddee117d92351d6daa1f7bae0b5edb82
Signed-off-by: Satish Kumar <satish.kumar01@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-26 14:06:06 +00:00
Ross Burton f8fc3b463d arm-bsp/boot-firmware: add firmware recipe for corstone700
Previously corstone700 used the scp-firmware recipe to build
boot-firmware, which is based on scp-firmware but doesn't share the
build system.

As the differences are not insignificant, extract a dedicated
boot-firmware recipe.  Also set PV appropriately as boot-firmware now
has dated tags.

Change-Id: I3b60172e145be571aa465afb81473b9d79e9e425
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-26 14:06:06 +00:00
Nathan Dunne e18ee052f7 arm-autonomy/xenguest-manager: Fixed subshell false positive
Removed private check from check_size and is_integer to prevent
false positive error on execution in a subshell

Issue-Id: SCM-1623
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I57564bf610e21244c963a77c0669da5d4526eeff
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:29 +00:00
Khasim Mohammed 22948879f8 arm-bsp/n1sdp-board-firmware: include RAM firmware for secondary device
While testing multi-chip mode it was observed that n1sdp running
as secondary device needs scp and mcp RAM firmware as well.

This issue wasn't captured earlier as QSPI flash had RAM firmware installed
and it doesn't get erased automatically therefore the device was able to
load it on every reboot.

Change-Id: Ied9d24429c7025206e35f50c8e5b6f090a590015
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:29 +00:00
Khasim Syed Mohammed 99da50c473 arm-bsp/n1sdp: add overview section to n1sdp documentation
Update the n1sdp documentation in meta-arm-bsp to include overview section
and link to Arm community portal for further details on hardware platform.

Change-Id: Ic7c212db18a8c1f24255615061eee862af3aafd1
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:29 +00:00
Ross Burton b0188cd0cc arm-bsp/fvp-base*: move to trusted-firmware-a 2.4
Move both FVP platforms to TF-A 2.4.

Change-Id: I2bf668c798983847197bfef80ef14ab3c87ecad5
Tested-by: Anders Dellien <anders.dellien@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:29 +00:00
Ross Burton fb045c9019 arm-bsp: remove foundation-armv8 machine
The Foundation FVP machine is no longer relevant now that meta-arm has
Base FVP machines and the Base FVPs are freely available.

Change-Id: Ia7043d98e2bcd8433c8c3d2661cd28484f691276
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:29 +00:00
Ross Burton df93a23ad4 arm-bsp/external-system: remove coreutils-native DEPENDS
This recipe doesn't appear to actually need coreutils-native at all, and
using it exposes a bug in pseudo where cp crashes.

Change-Id: I2fbf9ee75165194866e4a14758ed06148340dc2b
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:16 +00:00
Ross Burton 87d12f6fa4 arm-bsp/trusted-firmware-a: adapt for patched recipe
The base trusted-firmware-a recipe is now patched, but these BSPs
chose to use an intermediate SHA instead of the release.  This SHA
already contains the patch, so we need to remove it from SRC_URI.

Change-Id: I69fab93cefd2e8b38474e308c6f2910454ba3a81
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 18:20:16 +00:00
Abdellatif El Khlifi 42b114e5e0 arm-bsp/trusted-firmware-a: fix the Corstone-500 system timer issue
This commit applies the TF-A fix allowing to use the right FPGA system
timer clock frequency for Corstone-500.

Change-Id: Iaa09d33eb76d9b2b74cb3400897c8cc0e3c694db
Signed-off-by: lakshmi Kailasanathan <lakshmi.Kailasanathan@arm.com>
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 12:01:45 +00:00
Abdellatif El Khlifi 39ae13d44e arm-bsp/u-boot: enabling the generic timer for Corstone-500
This commit updates the ARMv7 generic timer driver by configuring
and enabling the timer.

Change-Id: I1fc1df83f40e28869d8dd41ff7b202f6fa177a1f
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 12:01:45 +00:00
Abdellatif El Khlifi 390aa6e354 arm-bsp: use forcevariable override to set Corstone-500 kernel
Corstone-500 is built against poky-tiny distro.
poky-tiny sets PREFERRED_PROVIDER_virtual/kernel to linux-yocto-tiny.
Since distro config is evaluated after the machine config, we need to
use the strongest override possible (forcevariable) so the
PREFERRED_PROVIDER_virtual/kernel specified in the machine config will
apply.

Change-Id: Iafa9209bf39cf63e83faa6eefa2a442513992290
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 12:01:45 +00:00
Abdellatif El Khlifi 8e2fa5edc8 arm-bsp: branding CA5DS to Corstone-500
This commit changes the name of CA5DS platform to Corstone-500

Change-Id: I7fc687aea8ce6bba6d7021963ad4cb38f30858d5
Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-25 12:01:45 +00:00
Kamil Dziezyk 342d2ec158 arm-autonomy/firmware-image-juno: update offset addresses for NOR flash images
This patch brings following improvements:
 * Remove images-r[012].txt and uEnv.txt source files
   and move all customization to add-xen-support.patch.
 * Move juno*-xen.dtb and xen binaries under dedicated
   'XEN' directory to be compatible with 8.3 format.
 * Increase XEN_DEVICETREE_DOM0_SIZE to 36 MiB.

Change-Id: I3d3ff963f97c738dcf2d90ba825729232d63ad06
Issue-Id: SCM-1567
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-23 16:11:22 +00:00
Nathan Dunne ce8369461e arm-autonomy/xenguest-manager: Private xenguest-manager functions
Ensure that init scripts sourced on guest start cannot execute functions
from the parent script. This is done using a check for the BASH_SUBSHELL
variable to see the depth of execution.

An error will be thrown if any init script attempts to execute a
function from xenguest-manager

Issue-Id: SCM-1623
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: I87fee51d03a64d99728a7eca1ca789ec7293096b
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-23 09:25:31 -05:00
Nathan Dunne 3bbddbe213 arm-autonomy/n1sdp-image-customization: boot partition size variables
Added variables BOOT_PART_SIZE and BOOT_PART_SIZE_UNIT to allow the
boot partition to be configured in conf files.

Issue-Id: SCM-1686
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Iaa76d4abdcccc693b3c38708ca452295ff8ee66e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-23 09:06:03 -05:00
Kamil Dziezyk 02994f94df arm-autonomy/xenguest-mkimage: improve xenguest image checks
This patch brings following improvements:
 * Adding the same partition content e.g rootfs.tar.gz,
   for multiple partitions is now not possible.
 * Guest partition can contain only supported values of:
   - format types: vfat|ext2|ext3|ext4|swap|(empty)
   - image types: *.img.gz|*.img.bz2|*.img
                  *.tar.gz|*.tar.bz2|*.tar.xz|*.tar

Change-Id: I0201e7ef51830ac43fc59656fc496fcc1d13b8d4
Issue-Id: SCM-1515
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 11:40:03 -05:00
Kamil Dziezyk aa35796c80 arm-autonomy/xenguest-manager: keep user defined partition order
If xenguest image does not define some partitions,
e.g second partition definition is skipped but 1st and 3rd are present,
xenguest-manager will create second partition(with small 2MB size),
to keep user defined partition order.

Change-Id: I8ff19fd9f25eb47ac37f80bec849387f6802aba3
Issue-Id: SCM-1515
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 11:40:03 -05:00
Kamil Dziezyk 5331993f8c arm-autonomy/xenguest-mkimage: check if partition fits disk size
Check if partition defined with '--disk-add-part=*' will fit
in disk size defined with '--disk-size=*'.

Change-Id: Ide87fe541d050497b4f2e5b5b47c1bcac8f5d37a
Issue-Id: SCM-1515
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 11:40:03 -05:00
Kamil Dziezyk 9b075d12de arm-autonomy/xenguest-tools: set guest disk and partition sizes in MB or GB
This patch brings following improvements:
 * Allow user to set guest disk and partition sizes in MB or GB.
 * Documentation update about this improvement.

Change-Id: I0a1a2945022efcd9d32bb39404b4a85721e28e19
Issue-Id: SCM-1515
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 11:40:03 -05:00
Kamil Dziezyk 91225be953 arm-autonomy/xenguest-mkimage: fix DISK_DEVICE setting
Previously '--disk-device' was set according to DISK_SIZE value,
set with '--disk-size' option, which was not quite accurate,
because disk device is more likely to be '/dev/sda2' rather than '1'.
This patch also fixes typo in help message.

Change-Id: I19aa72f3adb32cd786bb570023b6b40cfc5633bf
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 11:40:03 -05:00
Kamil Dziezyk 7c34d0affc arm-autonomy/xen-devicetree: check if kernel Image size is correct
This patch brings following improvements:
 * Adds a check for kernel size defined by XEN_DEVICETREE_DOM0_SIZE variable,
   whether it is greater or equal to actual kernel size.
   If not, bitbake warns user and adjusts value of XEN_DEVICETREE_DOM0_SIZE.
 * Adds 'virtual/kernel:do_deploy' as a mandatory xen-devicetree dependency via
   XEN_DEVICETREE_DEPEND variable.

Issue-Id: SCM-1567
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Change-Id: I4f250172f1fa599b7a3673ba0887cd49372b7556
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 11:40:03 -05:00
Ross Burton d8dbaa20b2 arm/trusted-firmare-a: add version 2.4
Change-Id: Ia31b459a497bb5029d18a202b8add5edc7fd6872
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 08:57:23 -05:00
Ross Burton e52410e281 arm/trusted-firmware-a: consolidate SRC_URI and S
All the recipes use the same value for SRC_URI and S, so consolidate them
into the include file.

Change-Id: Ieda6b0104e163ce46190e9fc5756a264f7198f25
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 08:57:23 -05:00
Ross Burton 60f5176196 arm-bsp/fvp-common: explicitly select trusted-firmware-a 2.3
These BSPs don't select a version of trusted-firmware-a, for clarity and
allow smooth upgrades explictly select 2.3.

Change-Id: Ieea7d075d709e2006ebf217d802f3eeecfb9a281
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-20 08:57:23 -05:00
Ross Burton 136207e7c1 arm-bsp/fvp-base-arm32: explicitly select trusted-firmware-a 2.2
Previously TF-A 2.3 failed to build for fvp-base-arm32, so explicitly select 2.2 for now.

Change-Id: I21f74861c5d5955ed7890d4e6fafc72dd85fe27f
Signed-off-by: Ross Burton <ross.burton@arm.com>
2020-11-20 08:57:23 -05:00
Ross Burton 56180fce2b arm-bsp/a5ds: explicitly select trusted-firmware-a 2.3
This BSP doesn't select a version of trusted-firmware-a, for clarity and
allow smooth upgrades explictly select 2.3.

Change-Id: I4e7ca6ff8322e22406040ba2f220d36e1bde4cae
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-19 10:00:51 -05:00
Ross Burton 067a259cbd arm/trusted-firmware-a: add CVE_PRODUCT
trusted-firmware-a has gone by many names in the CVE database, so add
them all.

Change-Id: I51f64211d10245ffcae010e3a723657ff4114b9c
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-19 10:00:51 -05:00
Ross Burton 197b0732e3 arm/optee-os: add CVE_PRODUCT tag
There are known CVEs for optee-os, so set the CVE_PRODUCT to ensure that
they are found.

Change-Id: Ibe88c2193a8e33f603386beedc76fe60eac1b3ea
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-19 10:00:51 -05:00
Nathan Dunne 214ec04498 arm-autonomy/arm-autonomy-host-image-minimal: Added multiconfig support
Added new documentation file arm-autonomy-multiconfig.md which explains
how to set up a multiconfig build, where both the host and guest are
built simultaneously in the same build dir.

To enable this feature the dependency between host and guest is set in
the image recipe, using the variables described in the documentation.

Issue-Id: SCM-638
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Iae315c128dc6d2b39281312bc1a2ab9b88f6241e
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Nathan Dunne 42c4ba9c96 arm-autonomy/documentation: Updated for gatesgarth branch
Updated arm-autonomy-quickstart.md to suggest a user checkout the
latest gatesgarth branch instead of zeus.

Issue-Id: SCM-1521
Signed-off-by: Nathan Dunne <Nathan.Dunne@arm.com>
Change-Id: Idbd54efbe4bdbc31588f726b41b082de89812d60
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro 9872afc6c7 arm-autonomy/modutils-initscripts: Fix modules.dep update
When building an image with USE_DEPMOD="0" we expect that on the first boot the
modutils.sh initscript will create the modules.dep file if it is empty or not
present.

Change-Id: I0048dc47f807587e723c068b0a4ba24718d66f49
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro a996166e85 arm-autonomy/init: Change execution order between modutils.sh and checkroot.sh
When '/' is first mounted as read-only, we want to have the checkroot.sh
initscript (which then remounts '/' as rw if allowed) running before the
modutils.sh.
This is because modutils.sh initscript might need to run depmod depending on
the status of the modules.dep file to update it and the '/' needs to be
writable.

Change-Id: Idac9aa19fba6b6bf46532097a667ce0518af515c
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro e9e01e9be7 arm-autonomy/n1sdp: Add GRUB config when including alternate kernel
For N1SDP as arm-autonomy-host, when alternate-kernel DISTRO_FEATURE is present
we set, as GRUB config, the arm-autonomy-n1sdp-rt-grub.cfg which includes
additional entries for booting with the PREEMPT_RT kernel.

Change-Id: If40aee159ae5ba0efd3d9a5a16ee1c1167fb0504
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro ce9650ec84 arm-autonomy/n1sdp: Add support for building/installing alternate kernel
For N1SDP as arm-autonomy-host, when alternate-kernel DISTRO_FEATURE is present
we build the linux-linaro-arm-rt (with PREEMPT_RT support) by setting it as the
PREFERRED_PROVIDER_alternate/kernel. As required, we set the
KERNEL_PACKAGE_NAME_pn-linux-linaro-arm-rt to kernel-rt.

Also, include the alternate kernel binary as Image-preempt-rt in the boot
partition of the generated wic image by setting the IMAGE_EFI_BOOT_FILES
variable.

Change-Id: I205caf5ef8b8d6b8a37ec3f4d0981fe8736cae63
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro a9cd4fc12f arm-autonomy/arm-autonomy-host-image-minimal: Build/Install alternate kernel
This patch introduces the usage of the alternate-kernel DISTRO_FEATURE, and
when it is present we will build and install the alternate kernel set via
PREFERRED_PROVIDER_alternate/kernel.

Change-Id: I1fe7447a5f903d7ff5584813bfb38fca8979e755
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro 171616a183 arm-autonomy/classes: Introduce alternate-kernel.bbclass
The alternate-kernel.bbclass is to be inherited by image recipes that want to
build and install an alternate kernel (set via
PREFERRED_PROVIDER_alternate/kernel).

It is mandatory to also set the KERNEL_PACKAGE_NAME for the alternate kernel
recipe via KERNEL_PACKAGE_NAME_pn-${PREFERRED_PROVIDER_alternate/kernel} and
its value needs to be different from "kernel" since this is the default set
for PREFERRED_PROVIDER_virtual/kernel.

When building and installing an alternate kernel, the kernel-modules packages
for both virtual/kernel and alternate/kernel will be installed.

Change-Id: I1cd0c425c39206fe449fb5f8761ed6de95cfb442
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro 3c738c4f69 arm-autonomy/linux-linaro-arm-rt: Add preempt-rt-extras.scc KERNEL_FEATURE
For now, when building the linux-linaro-arm-rt recipe we want these extra
settings:
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_HZ_1000=y

Change-Id: I23573a2b5be512b7a84c71bc50a1a63b2d95dffb
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Diego Sueiro 222fcf4281 arm-autonomy/linux-linaro-arm-rt: add linux-RT patch for xen dynamic events
This patch contain following fix:
 * xen: use handle_fasteoi_irq to handle xen dynamic events

Change-Id: I0b1734247b151d65ca510a074a5de56e8f8f0ada
Issue-Id: SCM-1654
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-18 11:02:40 -05:00
Ross Burton aee22517e4 gem5/gem5-aarch64-native: bump to 20.0.0.3
Minor point release, that successfully compiles with GCC 9.3.

Change-Id: I22bec41f92ea4ae6e9fb7b6e6706338c0134bf99
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-13 11:55:37 -05:00
Ross Burton 167c854412 gem5/gem5-aarch64-native: don't specify -j twice
There's no need to pass -j here as the scons clas does this already.

Also, BB_NUMBER_THREADS is the number of BitBake threads, not the number
of parallel make jobs.

Change-Id: Ib6179bf05c5ec57b7cbe9c045f7bea86518d35af
Signed-off-by: Ross Burton <ross.burton@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-13 11:55:37 -05:00
Kamil Dziezyk 9a2847c0d6 arm-autonomy/xenguest-init: fix guest shutdown issues after host reboot
This patch contain following changes:
 * xenguest-init stop action uses now blocking call,
   and additional 'xl destroy guest' call if normal shutdown has failed.
 * xenguest-init stop action stops only running guest.
 * xenguest-init script is now caled before xen-tools scripts
   on host shutdown or reboot.
 * xenguest-network-bridge script is now called before ifupdown script
   on host shutdown or reboot.

Change-Id: I46e307fd0ad36b2e35559b4e8a071be9bbc50e34
Issue-Id: SCM-1632
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-13 10:38:44 -05:00
Khasim Mohammed 55daf196a6 arm-bsp/n1sdp: remove swap parition entry from wic image
The swap partition on n1sdp seem to create an issue when shutdown or reboot is run
from the shell prompt, the console stops at "Deactivating swap ...". Hence
removing the swap partition entry from wic image.

Change-Id: I22cf971fdde7e3b8b386c74003983fab3d309cc5
Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-13 10:38:44 -05:00
Jon Mason 5fa6bc3a9c arm-bsp: fix missing stable kernels
Corstone, a5ds, and sgi575 were using the meta-kernel, but recent
updates removed support for their non-LTS kernel.  Change to using the
respective kernels present in linux-yocto until it can be upgraded to
the latest version.

Change-Id: I63f2e511fe69051c06e6559950b798c1371cc8e9
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-13 09:23:50 -05:00
Jon Mason 0f0a971458 arm-bsp: Fix u-boot 2020.07 recipe
The u-boot 2020.07 temporary recipe is a copy of 2020.04, and brought
with it a limitation in the recipe to only be used on certain hardware.
Remove this limitation so that it can be used where needed.

Change-Id: I5b99e92f3f440812ebc1fc550e6b860e6530e9b7
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-12 14:04:24 -05:00
Jon Mason 658faaff76 arm-bsp: create u-boot 2020.07 to resolve warning
Poky, etc master branches updated the u-boot recipes to use 2020.10,
causing bbappends for 2020.07 to no longer function.  Create a temporary
recipe for 2020.07 until all the BSPs can update to support the latest
version.

Change-Id: Ib5fc9b8a2ff2ccf01be3640a34429d2c1e57b627
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-10 11:04:20 -05:00
Diego Sueiro db1d714029 arm-bsp/n1sdp: Add wic.gz and wic.bmap to IMAGE_FSTYPES
Speed up wic image flashing by including wic.gz and wic.bmap to IMAGE_FSTYPES.

Change-Id: I503b6ede5aaf188aabd2a925c2c42e5872d7713a
Issue-Id: SCM-1520
Signed-off-by: Diego Sueiro <diego.sueiro@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
2020-11-10 11:04:20 -05:00
900 changed files with 71428 additions and 15821 deletions
+1
View File
@@ -0,0 +1 @@
__pycache__
+218
View File
@@ -0,0 +1,218 @@
image: ghcr.io/siemens/kas/kas:latest-release
stages:
- prep
- build
# Common job fragment to get a worker ready
.setup:
stage: build
interruptible: true
variables:
KAS_WORK_DIR: $CI_PROJECT_DIR/work
KAS_REPO_REF_DIR: $CI_BUILDS_DIR/persist/repos
SSTATE_DIR: $CI_BUILDS_DIR/persist/sstate
DL_DIR: $CI_BUILDS_DIR/persist/downloads
BB_LOGCONFIG: $CI_PROJECT_DIR/ci/logging.yml
TOOLCHAIN_DIR: $CI_BUILDS_DIR/persist/toolchains
IMAGE_DIR: $CI_PROJECT_DIR/work/build/tmp/deploy/images
TOOLCHAIN_LINK_DIR: $CI_PROJECT_DIR/work/build/toolchains
before_script:
- echo KAS_WORK_DIR = $KAS_WORK_DIR
- echo SSTATE_DIR = $SSTATE_DIR
- echo DL_DIR = $DL_DIR
- rm -rf $KAS_WORK_DIR
- mkdir --verbose --parents $KAS_WORK_DIR $KAS_REPO_REF_DIR $SSTATE_DIR $DL_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
# Must do this here, as it's the only way to make sure the toolchain is installed on the same builder
- ./ci/get-binary-toolchains $DL_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
- sudo apt update && sudo apt install telnet -y
# Generalised fragment to do a Kas build
.build:
extends: .setup
script:
- KASFILES=$(./ci/jobs-to-kas "$CI_JOB_NAME")
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
- kas build $KASFILES
- ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log
# Workaround for Zephyr not currectly handling TESTIMAGE_AUTO
.build_and_test:
extends: .setup
script:
- KASFILES=$(./ci/jobs-to-kas "$CI_JOB_NAME")
- kas shell --update --force-checkout $KASFILES -c 'cat conf/*.conf'
- kas build $KASFILES
- kas build $KASFILES -c testimage
- ./ci/check-warnings $KAS_WORK_DIR/build/warnings.log
#
# Prep stage, update repositories once
#
update-repos:
extends: .setup
stage: prep
script:
- flock --verbose --timeout 60 $KAS_REPO_REF_DIR ./ci/update-repos
# What percentage of machines in the layer do we build
machine-coverage:
stage: build
interruptible: true
script:
- ./ci/check-machine-coverage
coverage: '/Coverage: \d+/'
#
# Build stage, the actual build jobs
#
# Available options for building are
# TOOLCHAINS: [gcc, clang, armgcc, external-gccarm]
# TCLIBC: [glibc, musl]
# VIRT: [none, xen]
# TESTING: testimage
# Validate layers are Yocto Project Compatible
check-layers:
extends: .setup
coverage: '/Coverage: \d+/'
script:
- kas shell --update --force-checkout ci/base.yml:ci/meta-arm-autonomy.yml:ci/meta-openembedded.yml --command \
"$CI_PROJECT_DIR/ci/check-layers.py $CI_PROJECT_DIR/ci/check-layers.yml $CI_PROJECT_DIR $KAS_WORK_DIR"
pending-updates:
extends: .setup
artifacts:
paths:
- update-report.html
script:
- kas shell ci/qemuarm64.yml:ci/meta-openembedded.yml -c "$CI_PROJECT_DIR/scripts/machine-summary.py -t updates.html -o $CI_PROJECT_DIR/update-report.html $($CI_PROJECT_DIR/ci/listmachines.py meta-arm meta-arm-bsp)"
corstone500:
extends: .build
corstone700-fvp:
extends: .build
corstone700-mps3:
extends: .build
corstone1000-fvp:
extends: .build
corstone1000-mps3:
extends: .build
fvp-base:
extends: .build
parallel:
matrix:
- TESTING: testimage
tags:
- x86_64
fvp-base-arm32:
extends: .build
parallel:
matrix:
- TOOLCHAINS: [gcc, external-gccarm]
fvp-baser-aemv8r64:
extends: .build
fvps:
extends: .build
gem5-arm64:
extends: .build
parallel:
matrix:
- VIRT: [none, xen]
gem5-atp-arm64:
extends: .build
generic-arm64:
extends: .build
juno:
extends: .build
parallel:
matrix:
- TOOLCHAINS: [gcc, clang]
microbit-v1:
extends: .build_and_test
parallel:
matrix:
- TESTING: testimage-zephyr
musca-b1:
extends: .build
musca-s1:
extends: .build
n1sdp:
extends: .build
parallel:
matrix:
- TOOLCHAINS: [gcc, armgcc]
qemu-cortex-a53:
extends: .build
qemu-cortex-m3:
extends: .build_and_test
parallel:
matrix:
- TESTING: testimage-zephyr
qemu-cortex-r5:
extends: .build
qemuarm64-secureboot:
extends: .build
parallel:
matrix:
- TOOLCHAINS: [gcc, clang]
TCLIBC: [glibc, musl]
TESTING: testimage
qemuarm64:
extends: .build
parallel:
matrix:
- VIRT: xen
qemuarm:
extends: .build
parallel:
matrix:
- TOOLCHAINS: [gcc, clang]
TESTING: testimage
- VIRT: xen
qemuarmv5:
extends: .build
parallel:
matrix:
- TESTING: testimage
sgi575:
extends: .build
tc0:
extends: .build
tags:
- x86_64
tc1:
extends: .build
tags:
- x86_64
toolchains:
extends: .build
+36 -13
View File
@@ -1,23 +1,46 @@
Introduction
------------
This repository contains Arm layers for OpenEmbedded
This repository contains the Arm layers for OpenEmbedded.
meta-arm:
This layer provides support for general recipes for the Arm
architecture. Anything that's not needed explicitly for BSPs, the IOTA
distribution, or destined to be upstreamed belongs here.
* meta-arm
meta-arm-bsp:
This layer provides support for Arm reference platforms
This layer contains general recipes for the Arm architecture, such as firmware, FVPs, and Arm-specific integration.
meta-arm-iota:
This layer provides support for Arm's IOTA Linux Distribution
* meta-arm-autonomy
meta-arm-toolchain:
This layer provides support for Arm's GNU-A toolset releases
This layer is the distribution for a reference stack for autonomous systems.
meta-arm-autonomy:
This layer provides a reference stack for autonomous systems.
* meta-arm-bsp
This layer contains machines for Arm reference platforms, for example FVP Base, N1SDP, and Juno.
* meta-arm-toolchain
This layer contains recipes for Arm's binary toolchains (GCC and Clang for -A and -M), and a recipe to build Arm's GCC.
* meta-atp
This layer contains recipes for the Adaptive Traffic Generation integration into meta-gem5.
* meta-gem5
This layer contains recipes and machines for gem5, a system-level and processor simulator.
Other Directories
-----------------
* ci
This directory contains gitlab continuous integration configuration files (KAS yaml files) as well as scripts needed for this
* kas
This directory contains KAS yaml files to describe builds for systems not used in CI
* scripts
This directory contains scripts used in running the CI tests
Contributing
------------
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
local_conf_header:
cc: |
GCCVERSION = "arm-10.3"
+45
View File
@@ -0,0 +1,45 @@
header:
version: 9
distro: poky
defaults:
repos:
refspec: honister
repos:
meta-arm:
layers:
meta-arm:
meta-arm-bsp:
meta-arm-toolchain:
poky:
url: https://git.yoctoproject.org/git/poky
layers:
meta:
meta-poky:
env:
BB_LOGCONFIG: ""
TOOLCHAIN_DIR: ""
local_conf_header:
base: |
CONF_VERSION = "2"
PACKAGE_CLASSES = "package_ipk"
LICENSE_FLAGS_WHITELIST += "armcompiler Arm-FVP-EULA"
PACKAGECONFIG:remove:pn-qemu-system-native = "gtk+ sdl"
EXTRA_IMAGE_FEATURES:append = " debug-tweaks"
BB_NUMBER_THREADS = "16"
PARALLEL_MAKE = "-j16"
INHERIT += "rm_work"
PACKAGECONFIG:append:pn-perf = " coresight"
noptest: |
DISTRO_FEATURES:remove = "ptest"
machine: unset
target:
- core-image-base
- perf
+44
View File
@@ -0,0 +1,44 @@
#! /usr/bin/env python3
import argparse
import pathlib
import re
import subprocess
import sys
import yaml
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("config", type=argparse.FileType())
parser.add_argument("metaarm", type=pathlib.Path, help="Path to meta-arm")
parser.add_argument("others", type=pathlib.Path, help="Path to parent of dependencies")
args = parser.parse_args()
config = yaml.safe_load(args.config)
layers = config["layers"]
dependencies = config["dependencies"]
found_layers = [p for p in args.metaarm.glob("meta-*") if p.is_dir()]
print(f"Testing {len(layers)} layers: {', '.join(layers)}.")
print(f"Found {len(found_layers)} layers in meta-arm.")
print()
cli = ["yocto-check-layer-wrapper",]
cli.extend([args.metaarm / layer for layer in layers])
cli.append("--dependency")
cli.extend([args.others / layer for layer in dependencies])
cli.append("--no-auto-dependency")
passed = 0
process = subprocess.Popen(cli, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
while True:
line = process.stdout.readline()
if process.poll() is not None:
break
print(line.strip())
if re.search(r"meta-.+ PASS", line):
passed += 1
print(f"Coverage: {int(passed / len(found_layers) * 100)}%")
sys.exit(process.returncode)
+13
View File
@@ -0,0 +1,13 @@
layers:
- meta-arm
- meta-arm-bsp
- meta-arm-toolchain
- meta-gem5
- meta-arm-autonomy
dependencies:
- meta-openembedded/meta-oe
- meta-openembedded/meta-networking
- meta-openembedded/meta-python
- meta-openembedded/meta-filesystems
- poky/meta-poky
- meta-virtualization
+28
View File
@@ -0,0 +1,28 @@
#! /usr/bin/env python3
from pathlib import Path
import sys
from listmachines import list_machines
metaarm = Path.cwd()
if metaarm.name != "meta-arm":
print("Not running inside meta-arm")
sys.exit(1)
# Find all layers
layers = (p.name for p in metaarm.glob("meta-*") if p.is_dir())
# All machine configurations
machines = list_machines(layers)
# All kas files
kas = metaarm.glob("ci/*.yml")
kas = set(p.stem for p in kas)
missing = machines - kas
print(f"The following machines are missing: {', '.join(sorted(missing))}.")
covered = len(machines) - len(missing)
total = len(machines)
percent = int(covered / total * 100)
print(f"Coverage: {percent}%")
+19
View File
@@ -0,0 +1,19 @@
#! /bin/bash
# Expects the path to a log file as $1, and if this file has any content
# then display the contents and exit with an error code.
set -e -u
LOGFILE=$1
LINES=$(grep --invert-match "attempting MIRRORS if available" $LOGFILE | wc -l)
if test "$LINES" -ne 0; then
echo ==============================
echo The build had warnings/errors:
echo ==============================
cat $LOGFILE
exit 1
fi
exit 0
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
repos:
meta-clang:
url: https://github.com/kraj/meta-clang
local_conf_header:
clang: |
TOOLCHAIN = "clang"
+13
View File
@@ -0,0 +1,13 @@
header:
version: 9
includes:
- base.yml
- meta-openembedded.yml
local_conf_header:
custom-local-conf: |
INITRAMFS_IMAGE_BUNDLE = "0"
INITRAMFS_IMAGE:remove = "corstone1000-initramfs-image"
machine: corstone1000-fvp
+12
View File
@@ -0,0 +1,12 @@
header:
version: 9
includes:
- base.yml
- meta-openembedded.yml
local_conf_header:
custom-local-conf: |
INITRAMFS_IMAGE_BUNDLE = "0"
INITRAMFS_IMAGE:remove = "corstone1000-initramfs-image"
machine: corstone1000-mps3
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: corstone500
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- base.yml
machine: corstone700-fvp
local_conf_header:
image: |
CORE_IMAGE_EXTRA_INSTALL = "corstone700-test-app"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- corstone700-fvp.yml
machine: corstone700-mps3
+8
View File
@@ -0,0 +1,8 @@
header:
version: 9
local_conf_header:
cc: |
PNBLACKLIST[gcc-cross-arm] = "Using external toolchain"
TCMODE = "external-arm"
EXTERNAL_TOOLCHAIN = "${TOPDIR}/toolchains/${TARGET_ARCH}"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: fvp-base-arm32
+16
View File
@@ -0,0 +1,16 @@
header:
version: 9
includes:
- base.yml
machine: fvp-base
local_conf_header:
testimagefvp: |
INHERIT = "fvpboot"
# This fails but we can't add to the ignorelist from meta-arm yet
# https://bugzilla.yoctoproject.org/show_bug.cgi?id=14604
TEST_SUITES:remove = "parselogs"
# Tell testimage to connect to localhost:8022, and forward that to SSH in the FVP.
TEST_TARGET_IP = "localhost:8022"
FVP_CONFIG[bp.virtio_net.hostbridge.userNetPorts] ?= "8022=22"
+7
View File
@@ -0,0 +1,7 @@
header:
version: 9
includes:
- base.yml
machine: fvp-baser-aemv8r64
+20
View File
@@ -0,0 +1,20 @@
# Simple target to build the FVPs that are publically available
header:
version: 9
includes:
- base.yml
machine: qemuarm64
local_conf_header:
sdk: |
SDKMACHINE = "x86_64"
target:
- nativesdk-fvp-base-a-aem
- nativesdk-fvp-n1-edge
- nativesdk-fvp-sgi575
- nativesdk-fvp-corstone500
- nativesdk-fvp-corstone700
- nativesdk-fvp-tc0
+17
View File
@@ -0,0 +1,17 @@
header:
version: 9
includes:
- base.yml
- meta-openembedded.yml
repos:
meta-arm:
layers:
meta-gem5:
machine: gem5-arm64
target:
- core-image-minimal
- perf
- gem5-aarch64-native
+15
View File
@@ -0,0 +1,15 @@
header:
version: 9
includes:
- gem5-arm64.yml
repos:
meta-arm:
layers:
meta-atp:
machine: gem5-atp-arm64
target:
- atp-native
- core-image-minimal
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: generic-arm64
+46
View File
@@ -0,0 +1,46 @@
#!/bin/bash
set -u
HOST_ARCH=$(uname -m)
VER="10.3-2021.07"
DOWNLOAD_DIR=$1
TOOLCHAIN_DIR=$2
TOOLCHAIN_LINK_DIR=$3
# These should be already created by .gitlab-ci.yml, but do here if run outside of that env
mkdir -p $DOWNLOAD_DIR $TOOLCHAIN_DIR $TOOLCHAIN_LINK_DIR
if [ $HOST_ARCH = "aarch64" ]; then
#AArch64 Linux hosted cross compilers
#AArch32 target with hard float (arm-none-linux-gnueabihf)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-arm-none-linux-gnueabihf.tar.xz
elif [ $HOST_ARCH = "x86_64" ]; then
#x86_64 Linux hosted cross compilers
#AArch32 target with hard float (arm-linux-none-gnueabihf)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-arm-none-linux-gnueabihf.tar.xz
#AArch64 GNU/Linux target (aarch64-none-linux-gnu)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-aarch64-none-linux-gnu.tar.xz
#AArch64 GNU/Linux target (aarch64_be-none-linux-gnu)
wget -P $DOWNLOAD_DIR -nc https://developer.arm.com/-/media/Files/downloads/gnu-a/$VER/binrel/gcc-arm-$VER-$HOST_ARCH-aarch64_be-none-linux-gnu.tar.xz
else
echo "ERROR - Unknown build arch of $HOST_ARCH"
exit 1
fi
for i in arm aarch64 aarch64_be; do
if [ ! -d $TOOLCHAIN_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*/ ]; then
if [ ! -f $DOWNLOAD_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz ]; then
continue
fi
tar -C $TOOLCHAIN_DIR -axvf $DOWNLOAD_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu*.tar.xz
fi
# Setup a link for the toolchain to use local to the building machine (e.g., not in a shared location)
ln -s $TOOLCHAIN_DIR/gcc-arm-$VER-$HOST_ARCH-$i-none-linux-gnu* $TOOLCHAIN_LINK_DIR/$i
done
Executable
+27
View File
@@ -0,0 +1,27 @@
#! /bin/bash
# This script is expecting an input of machine name, optionally followed by a
# colon and a list of one or more parameters separated by commas between
# brackets. For example, the following are acceptable:
# corstone500
# fvp-base: [testimage]
# qemuarm64-secureboot: [clang, glibc, testimage]
#
# Turn this list into a series of yml files separated by colons to pass to kas
set -e -u
FILES="ci/$(echo $1 | cut -d ':' -f 1).yml"
for i in $(echo $1 | cut -s -d ':' -f 2 | sed 's/[][,]//g'); do
# Given that there are no yml files for gcc or glibc, as those are the
# defaults, we can simply ignore those parameters. They are necessary
# to pass in so that matrix can correctly setup all of the permutations
# of each individual run.
if [[ $i == 'none' || $i == 'gcc' || $i == 'glibc' ]]; then
continue
fi
FILES+=":ci/$i.yml"
done
echo $FILES
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: juno
+29
View File
@@ -0,0 +1,29 @@
#! /usr/bin/env python3
import pathlib
import typing
import sys
"""
List all of the machines available under the listed sub-layers of meta-arm.
"""
def list_machines(layers: typing.Sequence[str]) -> typing.Set[str]:
machines = set()
# We know we're in meta-arm/scripts, so find the top-level directory
metaarm = pathlib.Path(__file__).resolve().parent.parent
if metaarm.name != "meta-arm":
raise Exception("Not running inside meta-arm")
for layer in layers:
machines |= set(p.stem for p in (metaarm / layer / "conf" / "machine").glob("*.conf"))
return machines
if __name__ == "__main__":
if len(sys.argv) > 1:
machines = list_machines(sys.argv[1:])
print(" ".join(sorted(machines)))
sys.exit(0)
else:
print("Usage:\n$ %s [layer name ...] " % sys.argv[0])
sys.exit(1)
+13
View File
@@ -0,0 +1,13 @@
# Python logging configuration to write all warnings to a separate file
version: 1
handlers:
warnings:
class: logging.FileHandler
level: WARNING
filename: warnings.log
formatter: BitBake.logfileFormatter
loggers:
BitBake:
handlers: [warnings]
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- meta-openembedded.yml
- meta-virtualization.yml
repos:
meta-arm:
layers:
meta-arm-autonomy:
+11
View File
@@ -0,0 +1,11 @@
header:
version: 9
repos:
meta-openembedded:
url: https://git.openembedded.org/meta-openembedded
layers:
meta-filesystems:
meta-networking:
meta-oe:
meta-python:
+8
View File
@@ -0,0 +1,8 @@
header:
version: 9
includes:
- meta-openembedded.yml
repos:
meta-virtualization:
url: git://git.yoctoproject.org/meta-virtualization
+8
View File
@@ -0,0 +1,8 @@
header:
version: 9
includes:
- meta-openembedded.yml
repos:
meta-zephyr:
url: https://git.yoctoproject.org/git/meta-zephyr
+16
View File
@@ -0,0 +1,16 @@
header:
version: 9
includes:
- base.yml
- meta-zephyr.yml
local_conf_header:
nonbuilding_tests: |
ZEPHYRTESTS:remove = "common"
failing_tests: |
ZEPHYRTESTS:remove = "context early_sleep sleep"
machine: microbit-v1
target:
- zephyr-kernel-test-all
+11
View File
@@ -0,0 +1,11 @@
header:
version: 9
includes:
- base.yml
- meta-zephyr.yml
machine: musca-b1
target:
- trusted-firmware-m
- zephyr-philosophers
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- base.yml
- meta-openembedded.yml
machine: musca-s1
target:
- trusted-firmware-m
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
local_conf_header:
libc: |
TCLIBC = "musl"
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: n1sdp
+14
View File
@@ -0,0 +1,14 @@
header:
version: 9
includes:
- base.yml
- meta-zephyr.yml
local_conf_header:
nonbuilding_tests: |
ZEPHYRTESTS:remove += "common device poll queue sleep"
machine: qemu-cortex-a53
target:
- zephyr-kernel-test-all
+16
View File
@@ -0,0 +1,16 @@
header:
version: 9
includes:
- base.yml
- meta-zephyr.yml
local_conf_header:
tclibc: |
TCLIBC = "newlib"
nonbuilding_tests: |
ZEPHYRTESTS:remove = "common context pending poll sleep"
machine: qemu-cortex-m3
target:
- zephyr-kernel-test-all
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- base.yml
- meta-zephyr.yml
machine: qemu-cortex-r5
target:
- zephyr-philosophers
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: qemuarm
+11
View File
@@ -0,0 +1,11 @@
header:
version: 9
includes:
- base.yml
machine: qemuarm64-sbsa
target:
- core-image-base
- perf
- sbsa-acs
+19
View File
@@ -0,0 +1,19 @@
header:
version: 9
includes:
- base.yml
machine: qemuarm64-secureboot
local_conf_header:
bugs: |
# Only ping until errors can be resolved
TEST_SUITES = "ping"
target:
- core-image-base
- perf
- optee-examples
- optee-test
- optee-spdevkit
- optee-os-tadevkit
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: qemuarm64
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: qemuarmv5
+6
View File
@@ -0,0 +1,6 @@
header:
version: 9
includes:
- base.yml
machine: sgi575
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- base.yml
machine: tc0
target:
- tc-artifacts-image
- perf
+10
View File
@@ -0,0 +1,10 @@
header:
version: 9
includes:
- base.yml
machine: tc1
target:
- tc-artifacts-image
- perf
+8
View File
@@ -0,0 +1,8 @@
header:
version: 9
local_conf_header:
testimage: |
IMAGE_CLASSES += "testimage"
TEST_TARGET = "QemuTargetZephyr"
TEST_SUITES = "zephyr"
+17
View File
@@ -0,0 +1,17 @@
header:
version: 9
local_conf_header:
testimage: |
IMAGE_CLASSES += "testimage"
TESTIMAGE_AUTO = "1"
slirp: |
TEST_RUNQEMUPARAMS = "slirp"
TEST_SERVER_IP = "127.0.0.1"
QEMU_USE_SLIRP = "1"
packages: |
IMAGE_FEATURES:append = " ssh-server-dropbear"
# Multiple targets are available, put it down to just one
target:
- core-image-base
+20
View File
@@ -0,0 +1,20 @@
header:
version: 9
includes:
- base.yml
# Target is arm64 and SDK is x86-64 to ensure that we exercise both
# architectures
machine: qemuarm64
local_conf_header:
toolchains: |
SDKMACHINE = "x86_64"
# No target armcompiler as currently there is no arm64 build
target:
- nativesdk-armcompiler
- gcc-aarch64-none-elf
- nativesdk-gcc-aarch64-none-elf
- gcc-arm-none-eabi
- nativesdk-gcc-arm-none-eabi
+43
View File
@@ -0,0 +1,43 @@
#! /usr/bin/env python3
# Update clones of the repositories we need in KAS_REPO_REF_DIR to speed up fetches
import sys
import os
import subprocess
import pathlib
def repo_shortname(url):
# Taken from Kas (Repo.__getattr__) to ensure the logic is right
from urllib.parse import urlparse
url = urlparse(url)
return ('{url.netloc}{url.path}'
.format(url=url)
.replace('@', '.')
.replace(':', '.')
.replace('/', '.')
.replace('*', '.'))
repositories = (
"https://git.yoctoproject.org/git/poky",
"https://git.openembedded.org/meta-openembedded",
"https://git.yoctoproject.org/git/meta-virtualization",
"https://git.yoctoproject.org/git/meta-zephyr",
"https://github.com/kraj/meta-clang",
)
if __name__ == "__main__":
if "KAS_REPO_REF_DIR" not in os.environ:
print("KAS_REPO_REF_DIR needs to be set")
sys.exit(1)
base_repodir = pathlib.Path(os.environ["KAS_REPO_REF_DIR"])
for repo in repositories:
repodir = base_repodir / repo_shortname(repo)
if repodir.exists():
print("Updating %s..." % repo)
subprocess.run(["git", "-C", repodir, "fetch"], check=True)
else:
print("Cloning %s..." % repo)
subprocess.run(["git", "clone", "--bare", repo, repodir], check=True)
+11
View File
@@ -0,0 +1,11 @@
header:
version: 9
includes:
- meta-virtualization.yml
local_conf_header:
meta-virt: |
DISTRO_FEATURES:append = " virtualization xen"
target:
- xen-image-minimal
+48
View File
@@ -0,0 +1,48 @@
header:
version: 11
distro: poky-tiny
defaults:
repos:
refspec: honister
repos:
meta-arm:
layers:
meta-arm:
meta-arm-bsp:
meta-arm-toolchain:
poky:
url: https://git.yoctoproject.org/git/poky
refspec: b6b0af0889de9da0e4128cef8c9069b770b7d5a0
layers:
meta:
meta-poky:
meta-yocto-bsp:
meta-openembedded:
url: https://git.openembedded.org/meta-openembedded
refspec: ad52a41de8b4b7d619d1376d0a0090ebcfff56da
layers:
meta-oe:
meta-python:
meta-arm-image:
url: https://git.gitlab.arm.com/arm-reference-solutions/meta-arm-image.git
refspec: 9f611833ef58394b707836d69356c4e27d0265fc
local_conf_header:
base: |
CONF_VERSION = "2"
PACKAGE_CLASSES = "package_ipk"
LICENSE_FLAGS_WHITELIST += "armcompiler"
BB_NUMBER_THREADS ?= "16"
PARALLEL_MAKE ?= "-j16"
PACKAGECONFIG:append:pn-perf = " coresight"
machine: unset
target:
- corstone1000-image
+23
View File
@@ -0,0 +1,23 @@
header:
version: 11
includes:
- kas/corstone1000-base.yml
repos:
run-scripts:
url: https://git.gitlab.arm.com/arm-reference-solutions/model-scripts.git
refspec: b40b4227fe6b6fc8e4b688db8928f4be76e94eb7
layers:
.: 'excluded'
machine: corstone1000-fvp
local_conf_header:
fvp-config: |
# Remove Dropbear SSH as it will not fit into the corstone1000 image.
IMAGE_FEATURES:remove = " ssh-server-dropbear"
INHERIT = " ${@bb.utils.contains('BUILD_ARCH', 'x86_64', 'fvpboot', '', d)}"
LICENSE_FLAGS_WHITELIST:append = " Arm-FVP-EULA"
target:
- corstone1000-image
+6
View File
@@ -0,0 +1,6 @@
header:
version: 11
includes:
- kas/corstone1000-base.yml
machine: corstone1000-mps3
+42
View File
@@ -0,0 +1,42 @@
header:
version: 9
distro: poky
machine: fvp-baser-aemv8r64
defaults:
repos:
refspec: honister
repos:
meta-arm:
url: https://git.yoctoproject.org/git/meta-arm
path: layers/meta-arm
layers:
meta-arm:
meta-arm-bsp:
meta-arm-toolchain:
poky:
url: https://git.yoctoproject.org/git/poky
path: layers/poky
layers:
meta:
meta-poky:
env:
FVP_BASE_R_AEM_TARBALL_URI: ""
FVP_BASE_R_ARM_EULA_ACCEPT: "False"
local_conf_header:
base: |
CONF_VERSION = "2"
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_WHITELIST:append = " ${@oe.utils.vartrue('FVP_BASE_R_ARM_EULA_ACCEPT', 'Arm-FVP-EULA', '', d)}"
target:
- core-image-minimal
+8
View File
@@ -0,0 +1,8 @@
header:
version: 9
includes:
- kas/fvp-baser-aemv8r64-bsp.yml
local_conf_header:
base-rt: |
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-rt"
+18 -17
View File
@@ -4,8 +4,8 @@ meta-arm-autonomy Yocto Layer
Introduction
------------
This layer provides an hypervisor based solution (currently based on Xen) for
autonomous system. It contains recipes and classes to build host and guests
systems.
autonomous system. It contains recipes and classes to build host and guest
images.
To start using this layer, please check the
[Quick Start Guide](documentation/arm-autonomy-quickstart.md).
@@ -16,13 +16,14 @@ This layer depends on several other Yocto layers:
* meta-openembedded (https://git.openembedded.org/meta-openembedded)
* poky (https://git.yoctoproject.org/poky)
* meta-virtualization (https://git.yoctoproject.org/meta-virtualization)
* meta-networking (git://git.openembedded.org/meta-openembedded)
Distribution Features
---------------------
This layer is adding the following Yocto DISTRO_FEATURES:
This layer adds the following Yocto DISTRO_FEATURES:
* arm-autonomy-host: this feature activates functionalities required to build
an autonomy host system. It is doing the following:
an autonomy host system. It has the following effects:
- add 'xen' and 'ipv4' to DISTRO_FEATURES.
- add xen backend drivers to linux kernel configuration.
- To reduce the root filesystem image size the kernel image is not installed.
@@ -43,40 +44,40 @@ its documentation.
Those documentation files should be checked for variables:
- [xen-devicetree](documentation/xen-devicetree.md)
- [xenguest-manager](documentation/xenguest-manager.md)
- [xenguest-network-bridge](documentation/xenguest-network-bridge.md)
- [xenguest-network](documentation/xenguest-network.md)
BSPs
----
This layer is adding the following machines:
This layer adds the following machine:
* arm64-autonomy-guest: this machines creates a minimal BSP suitable to be used
* arm64-autonomy-guest: This machine creates a minimal BSP suitable to be used
as an autonomy guest. It is in fact only activating ARM64 architecture and
SMP in the linux kernel and is enabling the DISTRO_FEATURE
arm-autonomy-guest.
'arm-autonomy-guest'.
Images
------
This layer is adding the following images:
* arm-autonomy-host-image-minimal: this image includes all elements required
to create a minimal arm-autonomy-host system. This includes xen and tools to
manage xen guests. This image depends on 'arm-autonomy-host' distribution
feature.
* arm-autonomy-host-image-minimal: This image includes all elements required
to create a minimal arm-autonomy-host system. This includes xen, and tools to
manage xen guests and xenguest images. This image depends on
'arm-autonomy-host' distribution feature.
Recipes and classes
-------------------
This layer is adding the following recipes and classes:
This layer adds the following recipes and classes:
* [xen-devicetree](documentation/xen-devicetree.md): this is a recipe to modify
* [xen-devicetree](documentation/xen-devicetree.md): This is a recipe to modify
a device tree blob to add information required to boot xen and a Dom0 linux.
* [xenguest-mkimage](documentation/xenguest-mkimage.md): this is a tool to
* [xenguest-mkimage](documentation/xenguest-mkimage.md): This is a tool used to
create and modify images to be used as Xen guests.
* [xenguest-manager](documentation/xenguest-manager.md): this is a tool to
* [xenguest-manager](documentation/xenguest-manager.md): This is a tool used to
create/remove/start/stop xen guest generated using xenguest-mkimage.
* [xenguest-network-bridge](documentation/xenguest-network-bridge.md): this
* [xenguest-network](documentation/xenguest-network.md): This
recipe add tools and init scripts to create a bridge connected to the
external network on the host and allow guests to be connected to it.
@@ -0,0 +1,26 @@
# This class is to be inherited by image recipes that want to build and install
# an alternate kernel (set via PREFERRED_PROVIDER_alternate/kernel).
#
# It is mandatory to also set the KERNEL_PACKAGE_NAME for the alternate kernel
# recipe via KERNEL_PACKAGE_NAME:pn-${PREFERRED_PROVIDER_alternate/kernel} and
# its value needs to be different from "kernel" since this is the default set
# for PREFERRED_PROVIDER_virtual/kernel.
#
# An example of these settings can be found at meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc
#
# When building and installing an alternate kernel, the kernel-modules packages
# for both virtual/kernel and alternate/kernel will be installed.
PREFERRED_PROVIDER_alternate/kernel ??= ""
python () {
alternate_kernel = d.getVar('PREFERRED_PROVIDER_alternate/kernel')
if alternate_kernel:
alternate_kernel_pkg_name = d.getVar('KERNEL_PACKAGE_NAME:pn-%s' % alternate_kernel)
if alternate_kernel_pkg_name:
d.appendVar('EXTRA_IMAGEDEPENDS', ' ' + alternate_kernel)
d.appendVar('IMAGE_INSTALL', ' kernel-modules')
d.appendVar('IMAGE_INSTALL', ' ' + alternate_kernel_pkg_name + '-modules')
else:
raise bb.parse.SkipRecipe("No KERNEL_PACKAGE_NAME:pn-%s set" % alternate_kernel )
}
@@ -0,0 +1,115 @@
# Docker Extern Containers
#
# This class allows docker image tarballs to be installed in the rootfs
#
# The images can be selected using the variable CONTAINER_IMAGE_FILES which
# should contain a space seperated list of absolute paths or yocto urls for
# docker images that have been exported using docker export:
# - https://docs.docker.com/engine/reference/commandline/export/
#
# src_uri_parse_var.bbclass is used to parse CONTAINER_IMAGE_FILES
#
# There are 4 supported formats for CONTAINER_IMAGE_FILES entries:
#
# - http/https url
# - CONTAINER_IMAGE_FILES = "https://[url]:[port]/alpine.tar;md5sum=..."
#
# - file:// absolute local path from root
# - CONTAINER_IMAGE_FILES = "file:///containers/alpine2.tar"
#
# - file:// path relative to FILESEXTRAPATHS
# - CONTAINER_IMAGE_FILES = "file://foo/alpine3.tar"
# FILESEXTRAPATHS .= "/containers:"
#
# - plain absolute local path from root
# - CONTAINER_IMAGE_FILES = "/containers/foo/bar/alpine4.tar"
#
# It is not recommended to use other yocto URL types, as they may result in
# undefined behaviour.
#
# A semicolon seperated list of install arguments can follow each image path:
# - conname : the name that will be attached when the image is imported
# (default: [filename, without extension])
# - contag : the tag that will be attached when the image is imported
# (default: local)
# - conkeep : Flag for whether the exported container image file should be
# kept once the import has been completed
# (default: 0)
#
# Any other arguments, for example an md5sum, will be assumed to be fetch
# arguments, and will be kept when the path is added to the SRC_URI
#
# e.g. CONTAINER_IMAGE_FILES = "\
# https://[url]:[port]/alpine.tar;md5sum=[checksum];conkeep=1 \
# file:///containers/alpine2.tar;contag=latest;conname=docker2 \
# file://foo/alpine3.tar \
# /containers/foo/bar/alpine4.tar;contag=1.0;conkeep=1 "
#
# Resulting Manifest:
# ARCHIVE NAME TAG KEEP
# alpine.tar alpine local 1
# alpine2.tar docker2 latest 0
# alpine3.tar alpine3 local 0
# alpine4.tar alpine4 1.0 1
#
# Other configurable variables:
# CONTAINERS_INSTALL_DIR : The folder underneath ${WORKDIR} where the docker
# images will be stored
# (default: "/usr/share/docker/images")
# CONTAINERS_MANIFEST : The name of the manifest file containing image
# parameters, also stored in CONTAINERS_INSTALL_DIR
# (default: "containers.manifest")
# CONTAINERS_TAG_DEFAULT : Use this to change the value that will be used as
# contag if no value is provided
# (default: "local")
# CONTAINERS_KEEP_DEFAULT : Use this to change the value that will be used for
# conkeep if no value is provided
# (default: "0")
#
inherit features_check
REQUIRED_DISTRO_FEATURES = "docker"
RDEPENDS:${PN} = "packagegroup-docker-runtime-minimal"
CONTAINER_IMAGE_FILES ??= ""
CONTAINERS_INSTALL_DIR ??= "${datadir}/docker/images"
CONTAINERS_MANIFEST ??= "containers.manifest"
CONTAINERS_TAG_DEFAULT ??= "local"
CONTAINERS_KEEP_DEFAULT ??= "0"
inherit set_src_uri_from_var
SRC_URI_FROM_VAR_NAME = "CONTAINER_IMAGE_FILES"
# Define installation params
SRC_URI_FROM_VAR_MANIFEST_PARAMS = "conname=[basename] \
contag=${CONTAINERS_TAG_DEFAULT} conkeep=${CONTAINERS_KEEP_DEFAULT}"
SRC_URI_FROM_VAR_UNPACK_DIR = "containers"
# Read manifest and install container images
do_install() {
local archive name tag keep
if [ -f "${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR}/manifest" ]; then
install -d "${D}${CONTAINERS_INSTALL_DIR}"
install -m 644 \
"${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR}/manifest" \
"${D}${CONTAINERS_INSTALL_DIR}/${CONTAINERS_MANIFEST}"
while read -r archive name tag keep _; do
[ -f "${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR}/${archive}" ] ||
bbfatal "${archive} does not exist"
install -m 644 \
"${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR}/${archive}" \
"${D}${CONTAINERS_INSTALL_DIR}/${archive}"
done < "${D}${CONTAINERS_INSTALL_DIR}/${CONTAINERS_MANIFEST}"
fi
}
do_install[vardeps] += "CONTAINER_IMAGE_FILES"
FILES:${PN} += "${CONTAINERS_INSTALL_DIR}"
@@ -1,7 +1,7 @@
# Create a xenguest image with kernel and filesystem produced by Yocto
# This will create a .xenguest file that the xenguest-manager can use.
inherit xenguest-image
inherit xenguest_image
# We are creating our guest in a local subdirectory
# force the value so that we are not impacted if the user is changing it
@@ -22,7 +22,7 @@ xenguest_image_add_kernel() {
# Add rootfs file to the image
xenguest_image_add_rootfs() {
call_xenguest_mkimage partial \
--disk-add-file=${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TYPEDEP_xenguest}:rootfs.${IMAGE_TYPEDEP_xenguest}
--disk-add-file=${IMGDEPLOYDIR}/${IMAGE_LINK_NAME}.${IMAGE_TYPEDEP:xenguest}:rootfs.${IMAGE_TYPEDEP:xenguest}
}
# Pack xenguest image
@@ -57,12 +57,73 @@ do_bootimg_xenguest[depends] += "xenguest-base-image:do_deploy"
do_bootimg_xenguest[depends] += "${PN}:do_rootfs"
# This set in python anonymous after, just set a default value here
IMAGE_TYPEDEP_xenguest ?= "tar"
IMAGE_TYPEDEP:xenguest ?= "tar"
# We must not be built at rootfs build time because we need the kernel
IMAGE_TYPES_MASKED += "xenguest"
IMAGE_TYPES += "xenguest"
XENGUEST_IMAGE_RECIPE = "${PN}"
XENGUEST_IMAGE_VARS += "XENGUEST_IMAGE_RECIPE"
# Merge intermediate env files from all recipes into a single file
python do_merge_xenguestenv () {
import re
# Open final merged file in DEPLOY_DIR_IMAGE for writing, or create
outdir = d.getVar('DEPLOY_DIR_IMAGE')
with open(os.path.join(outdir,'xenguest.env'), 'w') as merged_file:
# Adds vars from xenguest_image to list
merged_env = []
xenguest_vars = d.getVar('XENGUEST_IMAGE_VARS')
for var in xenguest_vars.split():
value = d.getVar(var)
if value:
merged_env.append(var + "=" + " ".join(value.split()) + "\n")
# Resolve dependencies for this task to find names of intermediate
# .xenguestenv files
taskdepdata = d.getVar('BB_TASKDEPDATA')
task_mc = d.getVar('BB_CURRENT_MC')
task_file = d.getVar('FILE')
# See runqueue.py function build_taskdepdata
DEPS_INDEX = 3
depdata_key = task_file + ":do_merge_xenguestenv"
# If in a multiconfig, need to add that to the key
if task_mc != "default":
depdata_key = "mc:" + task_mc + ":" + depdata_key
# Retrieve filename using regex
get_filename = re.compile(r'/([^/]+\.bb):do_deploy_xenguestenv$')
env_dir = d.getVar('XENGUEST_ENV_STAGING_DIR')
for task_dep in taskdepdata[depdata_key][DEPS_INDEX]:
if task_dep.endswith(":do_deploy_xenguestenv"):
filename = re.search(get_filename, task_dep).group(1) + ".xenguestenv"
bb.note("Merging: " + filename)
try:
with open(env_dir + "/" + filename, 'r') as f:
# Eliminate duplicates
merged_env = list(set(merged_env + f.readlines()))
except (FileNotFoundError, IOError):
bb.note(" " + filename + " has no extra vars")
# Sort Alphabetically and write
merged_env.sort()
merged_file.write("".join(merged_env))
}
do_merge_xenguestenv[dirs] = "${DEPLOY_DIR_IMAGE}"
do_merge_xenguestenv[vardeps] += "${XENGUEST_IMAGE_VARS}"
do_merge_xenguestenv[vardepsexclude] += "BB_TASKDEPDATA"
do_merge_xenguestenv[recrdeptask] += "do_deploy_xenguestenv"
addtask merge_xenguestenv before do_populate_lic_deploy after do_image_complete
python __anonymous() {
# Do not do anything if we are not in the want FSTYPES
if bb.utils.contains_any('IMAGE_FSTYPES', 'xenguest', '1', '0', d):
@@ -97,7 +158,7 @@ python __anonymous() {
# do_bootimg_xenguest will need the tar file
d.appendVarFlag('do_bootimg_xenguest', 'depends', ' %s:do_image_tar' % (d.getVar('PN')))
# set our TYPEDEP to the proper compression
d.setVar('IMAGE_TYPEDEP_xenguest', 'tar' + (rootfs_file.split('.tar', 1)[1] or ''))
d.setVar('IMAGE_TYPEDEP:xenguest', 'tar' + (rootfs_file.split('.tar', 1)[1] or ''))
if kernel_needed:
# Tell do_bootimg_xenguest to call xenguest_image_add_kernel
@@ -3,7 +3,10 @@
# This is done using kernel-fitimage as model
# To activate this, kernel-xenguest must be added to KERNEL_CLASSES
inherit xenguest-image
# Add a variable name to XENGUEST_IMAGE_VARS_EXTRA if you want it to
# appear in xenguest.env when the image is deployed
inherit xenguest_image
# use a local copy to pack all together
XENGUEST_IMAGE_DEPLOY_DIR = "${WORKDIR}/tmp-xenguest"
@@ -24,9 +27,9 @@ do_assemble_xenguest_initramfs() {
rm -f ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
call_xenguest_mkimage pack ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest
}
do_assemble_xenguest_initramfs[depends] += "${INITRAMFS_IMAGE}:do_image_complete"
do_assemble_xenguest_initramfs[depends] += "${INITRAMFS_IMAGE}:do_merge_xenguestenv"
kernel_do_deploy_append() {
kernel_do_deploy:append() {
if [ -f "${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest" ]; then
install -m 0644 ${B}/${KERNEL_OUTPUT_DIR}/Image-initramfs.xenguest "$deployDir/Image-${INITRAMFS_NAME}.xenguest"
ln -snf Image-${INITRAMFS_NAME}.xenguest $deployDir/Image-${INITRAMFS_LINK_NAME}.xenguest
@@ -0,0 +1,224 @@
# Set SRC_URI from Variable
# This class parses a variable named in SRC_URI_FROM_VAR_NAME for entries that
# should be added to the SRC_URI
#
# There are 4 supported formats for entries:
#
# - http/https url
# - Note that a checksum (md5sum or sha256sum) must be provided for http(s)
#
# - file:// absolute local path from root
# - In this case the filename will be added to SRC_URI and the path from '/'
# added to FILESEXTRAPATHS
#
# - file:// path relative to FILESEXTRAPATHS
# - In this case the filename will be added to SRC_URI and the preceding path
# added to FILESOVERRIDES, so that the full path to the file will
# be available in FILESPATH when it is generated by combining
# FILESEXTRAPATHS and FILESOVERRIDES.
#
# - plain absolute local path from root
# - This will be treated the same as an file:// path from root. Plain paths
# must be absolute, and cannot be relative to FILESEXTRAPATHS
#
# It is not recommended to use other yocto URL types, as they may result in
# undefined behaviour.
#
# These entries will be added to the SRC_URI so that the yocto fetcher can
# unpack a copy into ${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR}
#
#
# A list of arguments can follow each entry in the input variable, seperated
# by semi-colons (;). Arguments may be FETCH arguments or MANIFEST arguments.
#
# FETCH arguments will be appended to the entry in SRC_URI, for example
# "downloadfilename" to specify the filename used when storing a
# downloaded file.
# Each SRC_URI entry will automatically have the arguments
# "unpack=0;subdir=${SRC_URI_FROM_VAR_UNPACK_DIR}" added to them, so do not
# attempt to set these options.
#
# MANIFEST arguments are defined in the variable
# SRC_URI_FROM_VAR_MANIFEST_PARAMS which should be a space seperated list of
# names, each optionally followed by an equals sign (=) and a default value.
#
# The values provided for the manifest arguments will be written to the manifest
# file in ${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR} as columns, in the same
# order as they appear in SRC_URI_FROM_VAR_MANIFEST_PARAMS.
#
# For entries that do not provide a value for a manifest argument, the default
# value will be used if possible.
# If no default is availale, omitting the parameter on any item will cause
# an error.
#
# "[basename]" is a special case default that will set the value to
# the filename without the path or file extension.
#
# e.g.
# SRC_URI_FROM_VAR_MANIFEST_PARAMS="conname=[basename] contag=local conkeep"
#
# Any arguments that follow an entry in SRC_URI_FROM_VAR_NAME, that are not
# named in SRC_URI_FROM_VAR_MANIFEST_PARAMS are assumed to be FETCH arguments,
# so are added to the corresponding entry in the SRC_URI.
SRC_URI_FROM_VAR_NAME ??= ""
SRC_URI_FROM_VAR_MANIFEST_PARAMS ??= ""
SRC_URI_FROM_VAR_UNPACK_DIR ??= "items"
python __anonymous() {
parse_var = d.getVar('SRC_URI_FROM_VAR_NAME')
if not parse_var:
return
parse_var_items = d.getVar(parse_var)
if parse_var_items:
for item in parse_var_items.split(' '):
if not item:
continue
if item.startswith('/'):
# If not a Yocto URL, must be an absolute path
yocto_url = "file://" + item
else:
# Otherwise assume valid Yocto URL.
# Error case is caught later
yocto_url = item
fetcher = host = path = parm = None
try:
# Attempt to parse a Yocto URL
fetcher,host,path,_,_,parm = bb.fetch.decodeurl(yocto_url)
except:
# Something invalid is in the variable!
raise bb.parse.SkipRecipe(parse_var + \
" contains an invalid entry:\n'" + \
item + "'")
# This var is space seperated list of parameter names,
# with optional default value following an equals sign
# (name=default)
item_params_str = d.getVar('SRC_URI_FROM_VAR_MANIFEST_PARAMS')
# remove directories from path
filename = os.path.basename(path)
if "downloadfilename" in parm:
filename = parm["downloadfilename"]
item_manifest_args = {"filename": filename}
if item_params_str:
# required manifest arguments have been provided
# If no default is given add "=" for map parsing
item_params_list = [ arg + "=" if '=' not in arg
else arg
for arg in item_params_str.split(' ')
]
# Generate key value pairs of argument names and
# default values
item_params_map = dict( (name.strip(), val.strip())
for name, val in (arg.split('=')
for arg in item_params_list)
)
for argname in item_params_map:
# Iterate over required manifest arguments
argvalue = parm.pop(argname, None)
if argvalue:
# a value has been provided for this item
item_manifest_args[argname] = argvalue
else:
# No value provided, process default value
default = item_params_map[argname]
if default:
# A default value is provided
if default == "[basename]":
# use the filename without extension
default = os.path.splitext(filename)[0]
# store default value in dict
item_manifest_args[argname] = default
else:
# No default provided
raise bb.fatal(parse_var + \
" entry is missing a required parameter '" + \
argname + "':\n'" + item + "'")
# Write value to var flags to ensure data structure is preserved
# Each entry of parse_var will have a varflag where the value
# is a dictionary of argument names and values
d.setVarFlags(parse_var, {item: item_manifest_args})
src_uri_entry_suffix = ';'
# HTTP(S) fetcher must provide a checksum
if fetcher.startswith('http') and not \
( 'md5sum' in parm or 'sha256sum' in parm ):
# Ensure http/https fetchers get a checksum
raise bb.parse.SkipRecipe(parse_var + \
" entry is missing a checksum:\n'" + \
item + "'")
# add remaining fetch parameters including checksum
for arg in parm:
src_uri_entry_suffix += ";" + arg + "=" + parm[arg]
# Add default and extra parameters to SRC_URI entry
src_uri_entry_suffix += ';unpack=0;subdir=' + \
d.getVar('SRC_URI_FROM_VAR_UNPACK_DIR')
if fetcher == 'file':
# Prevent local fetcher from re-creating dir structure
filedir = os.path.split(path)[0]
if filedir.startswith('/'):
# Path is from the root
d.appendVar('FILESEXTRAPATHS', filedir + ':')
else:
# Path is relative to FILESEXTRAPATHS
d.appendVar('FILESOVERRIDES', ':' + filedir)
# Add filename without path to SRC_URI
d.appendVar('SRC_URI', ' file://' + \
filename + src_uri_entry_suffix)
else:
# Add full entry to SRC_URI
d.appendVar('SRC_URI', ' ' + fetcher + \
"://" + host + path + src_uri_entry_suffix)
}
python generate_manifest() {
parse_var = d.getVar('SRC_URI_FROM_VAR_NAME')
if not parse_var:
return
target_dir = os.path.join(d.getVar('WORKDIR'),
d.getVar('SRC_URI_FROM_VAR_UNPACK_DIR'))
# Write a manifest file containing the parameters so SRC_URI
# doesn't need to be parsed by do_install
with open (target_dir + "/manifest", 'w') as manifest_file:
manifest_args = d.getVarFlags(parse_var)
parse_var_items = d.getVar(parse_var)
if parse_var_items:
for item in parse_var_items.split():
manifest_file.write(" ".join(manifest_args[item].values())+"\n")
}
do_unpack[cleandirs] += "${WORKDIR}/${SRC_URI_FROM_VAR_UNPACK_DIR}"
do_unpack[postfuncs] += "generate_manifest"
do_unpack[vardeps] += "${SRC_URI_FROM_VAR_NAME}"
@@ -30,7 +30,7 @@ XENGUEST_IMAGE_ROOT ??= "/dev/xvda1"
# Guest kernel command line arguments
XENGUEST_IMAGE_CMDLINE ??= "earlyprintk=xenboot console=hvc0 rw"
# Extra commands to add to xenguest-image when creating the image
# Extra commands to add to xenguest_image when creating the image
XENGUEST_IMAGE_EXTRA_CMD ??= ""
# Kernel binary
@@ -43,14 +43,17 @@ XENGUEST_IMAGE_KERNEL ??= "Image"
# be included in the xenguest image)
XENGUEST_IMAGE_DISK_SIZE ??= "${@ '4' if not d.getVar('INITRAMFS_IMAGE') else '0'}"
# set empty partition to be used by xenguest-manager for this image
XENGUEST_IMAGE_DISK_DEVICE ??= ""
#
# XENGUEST_IMAGE_DISK PARTITIONS is used to describe the partitions to setup
# XENGUEST_IMAGE_DISK_PARTITIONS is used to describe the partitions to setup
# and their content.
# It must be set to a space separated list of entries with each entry having
# the format num:sz:fs:[file] where:
# the format num:sz:[fs]:[file] where:
# - num is a partition number
# - sz is the partition size in Gigabit
# - fs is the filesystem to use for the partition
# - sz is the partition size in MB or GB(default), e.g 1000M or 1[G]
# - fs is optional filesystem to use for the partition
# - file is optionally pointing to a file to use as content of the partition
# Please check image_types_xenguest.bbclass for rootfs handling of files
#
@@ -80,6 +83,18 @@ XENGUEST_IMAGE_DEPLOY_SUBDIR ?= "xenguest"
# - something in ${WORKDIR} if you need to clone and manipulate an image
XENGUEST_IMAGE_DEPLOY_DIR ??= "${DEPLOYDIR}"
# These vars are used by image_types_xenguest.bbclass to generate the
# xenguest.env file. In a recipe that inherits this class and extra variables
# that should be included in xenguest.env need to be added to
# XENGUEST_IMAGE_VARS_EXTRA
XENGUEST_IMAGE_VARS ?= "\
MACHINE DISTRO DISTRO_VERSION DISTRO_FEATURES TUNE_FEATURES TARGET_FPU \
IMAGE_FEATURES INITRAMFS_IMAGE_BUNDLE INITRAMFS_IMAGE \
XENGUEST_IMAGE_MEMORY_SIZE XENGUEST_IMAGE_NUM_VCPUS XENGUEST_IMAGE_AUTOBOOT \
XENGUEST_IMAGE_ROOT XENGUEST_IMAGE_CMDLINE XENGUEST_IMAGE_EXTRA_CMD \
XENGUEST_IMAGE_KERNEL XENGUEST_IMAGE_DISK_SIZE XENGUEST_IMAGE_DISK_DEVICE \
XENGUEST_IMAGE_DISK_PARTITIONS XENGUEST_IMAGE_NETWORK_TYPE"
#
# Wrapper to call xenguest-mkimage
# It is using XENGUEST_IMAGE_DEPLOY_DIR and XENGUEST_IMAGE_DEPLOY_SUBDIR
@@ -129,21 +144,27 @@ xenguest_image_create() {
# create disk if needed
disksize="${XENGUEST_IMAGE_DISK_SIZE}"
if [ -z "$disksize" ]; then
disksize="0"
fi
if [ $disksize -gt 0 ]; then
# setup disk size
call_xenguest_mkimage update --disk-reset-config --disk-size=$disksize
case ${disksize:=0} in
0|0M|0G)
;;
*)
# setup disk size
call_xenguest_mkimage update --disk-reset-config --disk-size=$disksize
diskparts="${XENGUEST_IMAGE_DISK_PARTITIONS}"
if [ -n "$diskparts" ]; then
for arg in $diskparts; do
call_xenguest_mkimage update --disk-add-part=$arg
done
fi
diskdevice="${XENGUEST_IMAGE_DISK_DEVICE}"
if [ -n "$diskdevice" ]; then
call_xenguest_mkimage update --disk-device="${diskdevice}"
fi
;;
esac
diskparts="${XENGUEST_IMAGE_DISK_PARTITIONS}"
if [ -n "$diskparts" ]; then
for arg in $diskparts; do
call_xenguest_mkimage update --disk-add-part=$arg
partnum="$(expr $partnum + 1)"
done
fi
fi
if [ "${XENGUEST_IMAGE_AUTOBOOT}" = "1" ]; then
call_xenguest_mkimage update --set-param=GUEST_AUTOBOOT=1
@@ -158,7 +179,38 @@ xenguest_image_create() {
fi
}
#
XENGUEST_ENV_STAGING_DIR ??= "${STAGING_DIR}/${MACHINE}/xenguestenv"
# Create an intermediary file containing all variables used to by a
# particular recipe that inherits this class
# File will contain the values of all variables listed in:
# XENGUEST_IMAGE_VARS_EXTRA
python do_deploy_xenguestenv () {
xenguest_vars = d.getVar('XENGUEST_IMAGE_VARS_EXTRA')
if not xenguest_vars:
return
outdir = d.getVar('XENGUEST_ENV_STAGING_DIR')
# Writes file to tmp/sysroots/${MACHINE}/xenguestenv/ by default
filename = os.path.basename(d.getVar('FILE')) + '.xenguestenv'
with open(os.path.join(outdir, filename), 'w') as envf:
for var in xenguest_vars.split():
value = d.getVar(var)
if value:
# Write value only if set
envf.write('%s="%s"\n' % (var, " ".join(value.split())))
envf.close()
}
# Since the intermediary file is deleted by do_merge_xenguestenv it
# must be re-created every time
do_deploy_xenguestenv[vardeps] += "${XENGUEST_IMAGE_VARS_EXTRA}"
do_deploy_xenguestenv[dirs] = "${XENGUEST_ENV_STAGING_DIR}"
addtask deploy_xenguestenv before do_populate_sysroot
# Clone the current xenguest from deploy to manipulate it locally
# This is required if you need to change things before packing an image
# To set the local directory where to clone you must set
@@ -172,7 +224,7 @@ xenguest_image_clone() {
fi
if [ ! -f ${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}/guest.cfg ]; then
die "xenguest-image: ${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_DEPLOY_SUBDIR} does not contain a valid guest"
die "xenguest_image: ${DEPLOY_DIR_IMAGE}/${XENGUEST_IMAGE_DEPLOY_SUBDIR} does not contain a valid guest"
fi
rm -rf ${XENGUEST_IMAGE_DEPLOY_DIR}/${XENGUEST_IMAGE_DEPLOY_SUBDIR}
@@ -4,8 +4,11 @@
# The class is extending deploy function so you recipe must inherit deploy and
# have a do_deploy function (even if it is empty)
# Use standard xenguest-image
inherit xenguest-image
# Add a variable name to XENGUEST_IMAGE_VARS_EXTRA if you want it to
# appear in xenguest.env when the image is deployed
# Use standard xenguest_image
inherit xenguest_image
# Add a DTB file for the guest
# Only one file should be added, if this is set multiple times or in several
@@ -39,7 +42,13 @@ XENGUEST_EXTRA_FILES ??= ""
# dir1/file1 file in the disk content parameters).
XENGUEST_EXTRA_DISK_FILES ??= ""
do_deploy_append() {
# Extra vars to be written to xenguest.env
XENGUEST_IMAGE_VARS_EXTRA += "\
XENGUEST_EXTRA_DTB XENGUEST_EXTRA_RAMDISK XENGUEST_EXTRA_XENCONFIG \
XENGUEST_EXTRA_INIT_PRE XENGUEST_EXTRA_INIT XENGUEST_EXTRA_INIT_POST \
XENGUEST_EXTRA_FILES XENGUEST_EXTRA_DISK_FILES"
do_deploy:append() {
if [ -z "${XENGUEST_IMAGE_DEPLOY_DIR}" -o \
-z "${XENGUEST_IMAGE_DEPLOY_SUBDIR}" ]; then
die "Configuration error: XENGUEST_IMAGE_DEPLOY_DIR or XENGUEST_IMAGE_DEPLOY_SUBDIR is empty"
@@ -49,14 +58,14 @@ do_deploy_append() {
if [ -n "${XENGUEST_EXTRA_DTB}" ]; then
if [ ! -f ${XENGUEST_EXTRA_DTB} ]; then
die "xenguest-image: DTB file ${XENGUEST_EXTRA_DTB} does not exist"
die "xenguest_image: DTB file ${XENGUEST_EXTRA_DTB} does not exist"
fi
call_xenguest_mkimage partial --xen-device-tree=${XENGUEST_EXTRA_DTB}
fi
if [ -n "${XENGUEST_EXTRA_RAMDISK}" ]; then
if [ ! -f ${XENGUEST_EXTRA_RAMDISK} ]; then
die "xenguest-image: DTB file ${XENGUEST_EXTRA_RAMDISK} does not exist"
die "xenguest_image: DTB file ${XENGUEST_EXTRA_RAMDISK} does not exist"
fi
call_xenguest_mkimage partial --xen-ramdisk=${XENGUEST_EXTRA_RAMDISK}
fi
@@ -64,7 +73,7 @@ do_deploy_append() {
if [ -n "${XENGUEST_EXTRA_XENCONFIG}" ]; then
for f in ${XENGUEST_EXTRA_XENCONFIG}; do
if [ ! -f $f ]; then
die "xenguest-image: Xen config $f does not exist"
die "xenguest_image: Xen config $f does not exist"
fi
call_xenguest_mkimage partial --xen-append=$f
done
@@ -72,21 +81,21 @@ do_deploy_append() {
if [ -n "${XENGUEST_EXTRA_INIT_PRE}" ]; then
if [ ! -f ${XENGUEST_EXTRA_INIT_PRE} ]; then
die "xenguest-image: Init script ${XENGUEST_EXTRA_INIT_PRE} does not exist"
die "xenguest_image: Init script ${XENGUEST_EXTRA_INIT_PRE} does not exist"
fi
call_xenguest_mkimage partial --init-pre=${XENGUEST_EXTRA_INIT_PRE}
fi
if [ -n "${XENGUEST_EXTRA_INIT}" ]; then
if [ ! -f ${XENGUEST_EXTRA_INIT} ]; then
die "xenguest-image: Init script ${XENGUEST_EXTRA_INIT} does not exist"
die "xenguest_image: Init script ${XENGUEST_EXTRA_INIT} does not exist"
fi
call_xenguest_mkimage partial --init-script=${XENGUEST_EXTRA_INIT}
fi
if [ -n "${XENGUEST_EXTRA_INIT_POST}" ]; then
if [ ! -f ${XENGUEST_EXTRA_INIT_POST} ]; then
die "xenguest-image: Init script ${XENGUEST_EXTRA_INIT_POST} does not exist"
die "xenguest_image: Init script ${XENGUEST_EXTRA_INIT_POST} does not exist"
fi
call_xenguest_mkimage partial --init-post=${XENGUEST_EXTRA_INIT_POST}
fi
@@ -94,7 +103,7 @@ do_deploy_append() {
if [ -n "${XENGUEST_EXTRA_FILES}" ]; then
for f in ${XENGUEST_EXTRA_FILES}; do
if [ ! -f $f ]; then
die "xenguest-image: Xen file $f does not exist"
die "xenguest_image: Xen file $f does not exist"
fi
call_xenguest_mkimage partial --xen-add-file=$f
done
@@ -103,12 +112,12 @@ do_deploy_append() {
if [ -n "${XENGUEST_EXTRA_DISK_FILES}" ]; then
for f in ${XENGUEST_EXTRA_DISK_FILES}; do
if [ ! -f $f ]; then
die "xenguest-image: Disk file $f does not exist"
die "xenguest_image: Disk file $f does not exist"
fi
call_xenguest_mkimage partial --disk-add-file=$f
done
fi
}
# Need to have xenguest-image tool
# Need to have xenguest_image tool
do_deploy[depends] += "xenguest-base-image:do_deploy"
@@ -1,7 +1,7 @@
# This files is added when DISTRO_FEATURES contains arm-autonomy-guest
# We need to have ipv4 activated
DISTRO_FEATURES_append = " ipv4"
DISTRO_FEATURES:append = " ipv4"
# Build a xenguest type image
IMAGE_CLASSES += "image_types_xenguest"
@@ -10,6 +10,6 @@ IMAGE_FSTYPES += "xenguest"
# xenguest kernel extension to handle initramfs
KERNEL_CLASSES += "kernel-xenguest"
IMAGE_INSTALL_append = "${@bb.utils.contains('DISTRO_FEATURES', 'docker', \
IMAGE_INSTALL:append = "${@bb.utils.contains('DISTRO_FEATURES', 'docker', \
' packagegroup-docker-runtime-minimal', \
'', d)}"
@@ -1,13 +1,15 @@
# This files is added when DISTRO_FEATURES contains arm-autonomy-host
ARM_AUTONOMY_HOST_OVERRIDES = ":autonomy-host"
# We need to have xen and ipv4 activated
DISTRO_FEATURES_append = " xen ipv4"
DISTRO_FEATURES_NATIVE_append = " arm-autonomy-host"
DISTRO_FEATURES:append = " xen ipv4"
DISTRO_FEATURES_NATIVE:append = " arm-autonomy-host"
# Don't include kernels in standard images when building arm-autonomy-host
# If the kernel image is needed in the rootfs the following should be set from
# a bbappend: RDEPENDS_${KERNEL_PACKAGE_NAME}-base = "${KERNEL_PACKAGE_NAME}-image"
RDEPENDS_${KERNEL_PACKAGE_NAME}-base ?= ""
# a bbappend: RDEPENDS:${KERNEL_PACKAGE_NAME}-base = "${KERNEL_PACKAGE_NAME}-image"
RDEPENDS:${KERNEL_PACKAGE_NAME}-base ?= ""
# Require extra machine specific settings from meta-arm-bsp dynamic-layers only
# if meta-arm-bsp is in the bblayers.conf
+5 -4
View File
@@ -9,14 +9,15 @@ BBFILES += " \
BBFILE_COLLECTIONS += "meta-arm-autonomy"
BBFILE_PATTERN_meta-arm-autonomy = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-arm-autonomy = "6"
BBFILE_PRIORITY_meta-arm-autonomy = "5"
LAYERDEPENDS_meta-arm-autonomy = " \
core \
yocto \
openembedded-layer \
networking-layer \
virtualization-layer \
"
LAYERSERIES_COMPAT_meta-arm-autonomy = "gatesgarth"
LAYERSERIES_COMPAT_meta-arm-autonomy = "honister"
# We don't activate virtualization feature from meta-virtualization as it
# brings in lots of stuff we don't need. We need to disable the sanity check
@@ -28,11 +29,11 @@ ARM_AUTONOMY_LAYERDIR := "${LAYERDIR}"
ARM_AUTONOMY_DISTRO_CFGDIR = "${ARM_AUTONOMY_LAYERDIR}/conf/distro/include/"
# Add class to handle arm-autonomy distro extensions
USER_CLASSES_append = " arm-autonomy-features"
USER_CLASSES:append = " arm-autonomy-features"
BBFILES_DYNAMIC += " \
meta-arm-bsp:${LAYERDIR}/dynamic-layers/meta-arm-bsp/*/*/*.bbappend \
meta-gem5:${LAYERDIR}/dynamic-layers/meta-gem5/*/*/*.bbappend \
meta-arm-bsp:${LAYERDIR}/dynamic-layers/meta-arm-bsp/*/*/*.bb \
"
# Root directory for the meta-arm-autonomy/dynamic-layers/meta-arm-bsp
ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR = "${ARM_AUTONOMY_LAYERDIR}/dynamic-layers/meta-arm-bsp"
@@ -8,10 +8,10 @@ require conf/machine/include/arm/arch-armv8a.inc
KERNEL_IMAGETYPE = "Image"
IMAGE_FSTYPES += "tar.bz2"
IMAGE_FSTYPES:append = " tar.bz2"
PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
PREFERRED_VERSION_linux-yocto ?= "5.4%"
PREFERRED_VERSION_linux-yocto ?= "5.10%"
DISTRO_FEATURES += "arm-autonomy-guest"
+5
View File
@@ -0,0 +1,5 @@
# This file will be required by different xenguest recipes to provide
# common variables, which can be configured in local.conf
# Xenguest image file install location
XENGUEST_MANAGER_GUEST_DIR ?= "${datadir}/guests/"
@@ -0,0 +1,226 @@
arm-autonomy Multiconfig Build Environment Instructions
==================
This documentation explains how to simplify the process of building hosts
and guests in a single bitbake command, rather than in seperate build
folders. You can read more about multiconfig in the bitbake documentation:
- [bitbake user manual](https://www.yoctoproject.org/docs/latest/bitbake-user-manual/bitbake-user-manual.html)
To achieve a multiconfig build, a number of different config files need to
be created in a single build directory.
Create a new project
----------------
Before you start, you will need to follow the instructions in
"Create a project" from the quickstart guide, to create a new project
directory with
```
oe-init-build-env my-mc-project
```
Ensure it has all the required layers in bblayers.conf as listed in
`arm-autonomy-quickstart.md`. The result should be a directory containing:
```
-- conf
| -- bblayers.conf
| -- local.conf
| -- templateconf.cfg
```
Add multiconfig
----------------
The steps required to make the project build both the host and any
number of guests as required are:
1. Create a new directory under `conf/` named `multiconfig/`
2. Create two new files in this directory:
`multiconfig/host.conf`
`multiconfig/guest.conf`
These files will contain any configurations that are specific to either the
host or the guest. The resulting directory tree should be:
```
-- conf
| -- bblayers.conf
| -- local.conf
| -- templateconf.cfg
| -- multiconfig
| -- host.conf
| -- guest.conf
```
3. In `local.conf` the following config variables must be added:
```
MACHINE ?= "fvp-base"
# ---Guest Config Start--- #
MC_GUEST = "guest"
MC_GUEST_NAME = "guest1"
MC_GUEST_IMAGERECIPE = "core-image-minimal"
MC_GUEST_MACHINE = "arm64-autonomy-guest"
MC_GUEST_INITRAMFS_IMAGE_BUNDLE ?= ""
MC_GUEST_INITRAMFS_IMAGE ?= ""
# Uncomment for initramfs
#MC_GUEST_INITRAMFS_IMAGE_BUNDLE = "1"
#MC_GUEST_INITRAMFS_IMAGE = "${MC_GUEST_IMAGERECIPE}"
# These variables are set automatically, don't override them!
MC_GUEST_FILENAME_PREFIX = "${@ 'Image-initramfs' if d.getVar('MC_GUEST_INITRAMFS_IMAGE_BUNDLE',d) else '${MC_GUEST_IMAGERECIPE}' }"
MC_GUEST_FILENAME = "${MC_GUEST_FILENAME_PREFIX}-${MC_GUEST_MACHINE}.xenguest"
MC_GUEST_DEP = "${@ 'virtual/kernel:do_deploy' if d.getVar('MC_GUEST_INITRAMFS_IMAGE_BUNDLE',d) else '${MC_GUEST_IMAGERECIPE}:do_merge_xenguestenv'}"
MC_DOIMAGE_MCDEPENDS += "mc:${MC_HOST}:${MC_GUEST}:${MC_GUEST_DEP} "
BBMULTICONFIG += "${MC_GUEST} "
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS += "file://${TOPDIR}/${MC_GUEST}/deploy/images/${MC_GUEST_MACHINE}/${MC_GUEST_FILENAME};guestname=${MC_GUEST_NAME} "
# ---Guest Config End--- #
# ---Host Config Start--- #
MC_HOST = "host"
BBMULTICONFIG += "${MC_HOST} "
# ---Host Config End--- #
```
These variables will be used in both of the multiconf files. `MC_HOST` and
`MC_GUEST` should not be altered without renaming the conf files, but most
`MC_GUEST_*` variables can be customised if you desire.
4. Next set the contents of `multiconfig/guest.conf`:
```
TMPDIR = "${TOPDIR}/${MC_GUEST}"
MACHINE = "${MC_GUEST_MACHINE}"
DISTRO_FEATURES += " arm-autonomy-guest"
INITRAMFS_IMAGE_BUNDLE = "${MC_GUEST_INITRAMFS_IMAGE_BUNDLE}"
INITRAMFS_IMAGE = "${MC_GUEST_INITRAMFS_IMAGE}"
IMAGE_FSTYPES += "${@ 'cpio' if d.getVar('MC_GUEST_INITRAMFS_IMAGE_BUNDLE',d) else ''}"
# ANY OTHER GUEST CONFIG
```
To modify the MACHINE or INITRAMFS variables change the equivalent
config in local.conf rather than modifying this file directly. You can also
append any other config desired for the guest after "ANY OTHER GUEST CONFIG",
for example `XENGUEST_IMAGE_DISK_SIZE`.
Make sure not to change `${DEPLOY_DIR_IMAGE}` to anything other than
`${TMPDIR}/deploy/images`, as this is assumed by local.conf.
5. Lastly set the contents of `multiconfig/host.conf`:
```
TMPDIR = "${TOPDIR}/${MC_HOST}"
DISTRO_FEATURES += " arm-autonomy-host"
# ANY OTHER HOST CONFIG
```
Building the image
----------------
To build the multiconfig image the command is:
```
bitbake mc:host:arm-autonomy-host-image-minimal
```
The first time this is run you may see a warning related to the SRC_URI:
```
Unable to get checksum for xenguest-extern-guests SRC_URI entry foo.xenguest: file could not be found
```
This is expected, and only indicates that the guest image has not yet been
generated when the host parses the SRC_URI. By the time it is needed by the
host recipe fetch task it will be present.
During the build you should see that guest tasks are also being executed in
parallel. Once the build completes the guest will already be in the rootfs of
the host thanks to `ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUEST`
The final host image including the guests will be deployed in
`host/deploy/images/`
Multiple Guests
----------------
To have multiple guests with the same config the line which appends to
`ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS` just needs to pass the argument
'guestcount=#' to install symlink copies of the xenguest file on the host.
Documentation for the guestcount parameter can be found in
documentation/arm-autonomy-quickstart.md in the section titled
'Include guests directly in the host image'. This will ensure that the guest
is still only built once, despite resulting in multiple copies on the target.
If guests are required to have different configurations, each will need its own
config file, e.g. 'netguest.conf'. Ensure that the name of the conf file does
not contain any hyphens, as this will create errors when it becomes part of a
function name. In this file the values of TMPDIR, MACHINE, DISTRO_FEATURES etc.
should be the same as above, but with the prefix "MC_GUEST_*" modified to
something different to avoid collisions (e.g. MC_GUEST_2_*).
As before, your additional config for the guest type should
follow "ANY OTHER GUEST CONFIG"
In your local.conf, everything between `---Guest Config Start---` and
`---Guest Config End---` will need to be duplicated for each desired guest type.
All copies of variables that start `MC_GUEST` must be modified with the same
prefix as in the new guest config file (e.g. `MC_GUEST_2_*`).
Each chunk of guest config in local.conf has automatic guest variables
(found after the line "These variables are set automatically...").
These should all use the same prefix as their chunk in their values,
for example:
```
MC_GUEST_2_FILENAME_PREFIX = "${@ 'Image-initramfs' if d.getVar('MC_GUEST_2_INITRAMFS_IMAGE_BUNDLE',d) else '${MC_GUEST_2_IMAGERECIPE}' }"
```
Guest with provisioned disk
----------------
To add guest rootfs partition to host wic image,
set `AUTONOMY_HOST_EXTRA_PARTITION` with proper wks partition entry, e.g:
```
AUTONOMY_HOST_EXTRA_PARTITION = "part --label provisioned-guest --source rawcopy --fstype=ext4 --ondisk sda --align 1024 \
--sourceparams=file=${TOPDIR}/${MC_GUEST}/deploy/images/${MC_GUEST_MACHINE}/${MC_GUEST_FILENAME_PREFIX}-${MC_GUEST_MACHINE}.ext4"
```
inside your host.conf file.
The rest of the configuration has to be appended to guest.conf file:
```
# ANY OTHER GUEST CONFIG
XENGUEST_IMAGE_DISK_SIZE = "0"
XENGUEST_IMAGE_SRC_URI_XEN_CONFIG = "file://\${TOPDIR}/path/to/rootdisk.cfg"
XENGUEST_IMAGE_DISK_DEVICE = "_GUEST_DISK_DEVICE_"
XENGUEST_IMAGE_ROOT = "/dev/xvda"
IMAGE_ROOTFS_SIZE = "102400"
IMAGE_FSTYPES = "ext4"
```
Example content of rootdisk.cfg:
```
disk = ["phy:_GUEST_DISK_DEVICE_,xvda,w"]
```
`_GUEST_DISK_DEVICE_` should be substituted with `/dev/sdaX`,
according to wks file.
@@ -1,9 +1,9 @@
arm-autonomy Quick Start
==================
This documentation is explaining how to quickly start with arm-autonomy layer
This documentation explains how to quickly start with the arm-autonomy layer,
and the main features provided.
You will find in the documentation directory some more detailed documentation
In the documentation directory you will find some more detailed documentation
for each of the functionalites provided by this layer.
What to use this layer for?
@@ -26,11 +26,10 @@ First you must download the Yocto layers needed:
- [poky](https://git.yoctoproject.org/poky)
- [meta-virtualization](https://git.yoctoproject.org/meta-virtualization)
- [meta-arm](https://git.yoctoproject.org/meta-arm)
- [meta-kernel](https://gitlab.com/openembedded/community/meta-kernel.git)
- all other layers you might want to use
For each of the downloaded layer make sure you checkout the release of Yocto
you want to use (for example zeus using `git checkout zeus`).
you want to use (for example honister using `git checkout honister`).
Please follow [Yocto documentation](https://www.yoctoproject.org/docs/latest/brief-yoctoprojectqs/brief-yoctoprojectqs.html)
in order to have the required dependencies.
@@ -57,7 +56,6 @@ Here are the main steps to create an arm-autonomy project:
bitbake-layers add-layer $LAYERDIR_BASE/meta-poky $LAYERDIR_BASE/meta-yocto-bsp \
$LAYERDIR_BASE/meta-openembedded/meta-oe $LAYERDIR_BASE/meta-openembedded/meta-python \
$LAYERDIR_BASE/meta-openembedded/meta-filesystems $LAYERDIR_BASE/meta-openembedded/meta-networking \
$LAYERDIR_BASE/meta-virtualization $LAYERDIR_BASE/meta-kernel \
$LAYERDIR_BASE/meta-arm/meta-arm $LAYERDIR_BASE/meta-arm/meta-arm-toolchain \
$LAYERDIR_BASE/meta-arm/meta-arm-bsp $LAYERDIR_BASE/meta-arm/meta-arm-autonomy \
```
@@ -73,7 +71,6 @@ Here are the main steps to create an arm-autonomy project:
/home/user/arm-autonomy/meta-openembedded/meta-filesystems \
/home/user/arm-autonomy/meta-openembedded/meta-networking \
/home/user/arm-autonomy/meta-virtualization \
/home/user/arm-autonomy/meta-kernel \
/home/user/arm-autonomy/meta-arm/meta-arm \
/home/user/arm-autonomy/meta-arm/meta-arm-toolchain \
/home/user/arm-autonomy/meta-arm/meta-arm-bsp \
@@ -113,7 +110,8 @@ The project will generate a Linux kernel, a root filesystem, a Xen binary and
a DTB modified to include the required entries to boot Xen and Linux as Dom0
(this DTB has the extension `-xen.dtb`).
To boot the system using an u-boot base board you will need to:
To boot the system using a u-boot base board for machines other than FVP-Base
you will need to:
- Load the kernel (by default at 0x80080000 unless you modify
XEN_DEVICETREE_DOM0_ADDR value)
- Load the xen device tree (for example at 0x83000000)
@@ -122,46 +120,88 @@ To boot the system using an u-boot base board you will need to:
In this example the addresses might need to be adapted depending on your board.
For arm-autonomy host on FVP-Base, u-boot has been modified such that
`booti 0x84000000 - 0x83000000` is the default boot command. If FVP-Base is your
MACHINE target there should be no need to interfere with u-boot.
Guest project
-------------
The guest projects are not target specific and will use a Yocto MACHINE defined
in meta-arm-autonomy to include only the Linux configuration required to run
a xen guest.
The guest projects are not target specific and will instead use a Yocto MACHINE
defined in meta-arm-autonomy to include only the Linux configuration required to
run a xen guest.
To create a guest project:
1. Follow the steps of "Create a project"
2. Optionaly add layers required to build the image and features you need.
2. Optionally add layers required to build the guest image, and any features you
need.
3. edit conf/local.conf to add `arm-autonomy-guest` to the DISTRO_FEATURES and
3. Edit conf/local.conf to add `arm-autonomy-guest` to the DISTRO_FEATURES and
set MACHINE to `arm64-autonomy-guest`:
```
MACHINE = "arm64-autonomy-guest"
DISTRO_FEATURES += "arm-autonomy-guest"
```
4. build the image you want.
4. Build the image you want.
For example `bitbake core-image-minimal`
The build will create a ".xenguest" image that can be use on an host project
with the xenguest-manager.
with the xenguest-manager, as well as a file "xenguest.env" containing the
variables used to configure and generate the guest image.
The guest can also be built as a 'multiconfig' sub project of the host, see
`meta-arm-autonomy/documentation/arm-autonomy-multiconfig.md` for more
information
Include guests directly in the host image
-----------------------------------------
The layer provides a way to directly include in the host project one or several
images generated by guest projects.
The layer provides a way to directly include one or more images generated by
guest projects in the host project.
To use this feature, you must edit your host project `local.conf` file and
add set ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS to the list of xenguest images
you want to include in your host. Each xenguest image must be given using a
full path to it.
add set the value of 'ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS' to the list of
paths to xenguest images you want to include in your host.
There are 4 supported formats for ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS
entries:
- http/https url
- "https://[url]:[port]/foo.xenguest;md5sum=..."
- file:// absolute local path from root
- "file:///xenguests/bar.xenguest"
- file:// path relative to FILESEXTRAPATHS
- "file://relative/baz.xenguest"
- plain absolute local path from root
- "/xenguests/absolute/xyzzy.xenguest"
It is not recommended to use other bitbake URL types, as they may result in
undefined behaviour.
A semicolon seperated list of install arguments can follow each image path:
- guestname : the name that will be attached when the image is imported
(default: [filename, without extension])
- guestcount : the number of copies of the guest to install, with
incrementing numbers appended to the name
(default: 1)
Any other arguments, for example an md5sum, will be assumed to be fetch
arguments, and will be appended to the path in the SRC_URI.
For example:
```
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS = "/home/user/guest-project/tmp/deploy/images/arm64-autonomy-guest/core-image-minimal-arm64-autonomy-guest.xenguest;guestname=myguest"
ARM_AUTONOMY_HOST_IMAGE_EXTERN_GUESTS = "\
https://[url]:[port]/base.xenguest;md5sum=[checksum];guestname=http \
file:///guests/base.xenguest;guestname=file_abs \
file://foo/base.xenguest;guestname=file_rel;guestcount=2 \
/guests/foo/bar/base.xenguest;guestname=no_fetcher \ "
```
This will add the guest and name it `myguest` on the host project image and
the xenguest-manager will automatically boot it during startup.
Documentation for setting up a multiconfig build can be found in:
meta-arm-autonomy/documentation/arm-autonomy-multiconfig.md
Add support for your board
--------------------------
@@ -182,7 +222,7 @@ started). You can find the complete list of the kernel configuration elements
required in `recipes-kernel/linux/arm-autonomy-kmeta/features/arm-autonomy/xen-host.cfg`.
### Define the drive and partition to use for the LVM volume
The xenguest-manager is creating disk hard drive using LVM on an empty
The xenguest-manager creates guest storage drives using LVM on an empty
partition. The default value is set to use /dev/sda2.
You can change this for your board by setting XENGUEST_MANAGER_VOLUME_DEVICE.
@@ -191,37 +231,37 @@ Check `recipes-extended/xenguest/xenguest-manager.bbappend` for examples.
Please also read xenguest-manager.md.
### Define the interface to add to xenguest network bridge
xenguest-network bridge is creating a bridge on the host and adds network
interfaces to it so that guest connected to it have access to external network.
xenguest-network bridge creates a bridge on the host and adds network
interfaces to it so that guests connected to it have access to external network.
By default `eth0` is set as the list of interfaces to be added to the bridge.
Depending on your board or use case you might want to use an other interface
or use multiple interfaces.
You can change this for your board by setting XENGUEST_NETWORK_BRIDGE_MEMBERS.
Check `recipes-extended/xenguest/xenguest-network-bridge.bbappend` for
Check `recipes-extended/xenguest/xenguest-network.bbappend` for
exmaples.
Please also read xenguest-network-bridge.md.
### Define the network configuration of the xenguest network bridge
xenguest network bridge is putting the host network interfaces in a bridge
and is configuring it by default to use dhcp.
xenguest-network puts the host network interfaces in a bridge and configures it
by default to use dhcp.
If you need a different type of configuration you can set
XENGUEST_NETWORK_BRIDGE_CONFIG in a xenguest-network-bridge.bbappend to use
XENGUEST_NETWORK_BRIDGE_CONFIG in your xenguest-network-bridge.bbappend to use
a different file.
The recipe will look for the file in ${WORKDIR} so you will need to add it to
SRC_URI in your bbappend.
The recipe will look for the file in ${WORKDIR}, so you will need to add it to
the SRC_URI in your bbappend.
The recipe will also substitute `###BRIDGE_NAME###` with the bridge name
configured in ${XENGUEST_NETWORK_BRIDGE_NAME}.
configured in ${XENGUEST_NETWORK_BRIDGE_NAME} when the config file is installed.
You can find an example configuration file in
`recipes-extended/xenguest/files/xenguest-network-bridge-dhcp.cfg.in`.
Please also read xenguest-network-bridge.md.
Please also read xenguest-network.md.
### Customize Dom0 and Xen boot arguments for you board
xen-devicetree is writting inside the generated DTB Xen and Linux boot
arguments as long as the address where Dom0 Linux kernel can be found.
xen-devicetree modifies the generated DTB Xen and Linux boot arguments,
as long as the address where Dom0 Linux kernel can be found.
You might need to have different values for your board or depending on your
use case.
@@ -11,19 +11,24 @@ perform a couple of customizations in the generated wic image:
1 MiB per physical volume, hence it needs to be taken into account when
setting GUEST_PART_SIZE.
2. The wic image partition layout and contents with a custom wks file via
2. Set the boot partition size (default: 100M) via `BOOT_PART_SIZE` and
`BOOT_PART_SIZE_UNIT` (M or G) variables in any conf file. The default
bootimg is ~44M so 100M leaves just over 50M of free space.
3. The wic image partition layout and contents with a custom wks file via
`ARM_AUTONOMY_WKS_FILE` variable (default:
arm-autonomy-n1sdp-efidisk.wks.in which is affected by GUEST_PART_SIZE,
GUEST_PART_SIZE_UNIT and GRUB_CFG_FILE variables).
GUEST_PART_SIZE_UNIT, BOOT_PART_SIZE, BOOT_PART_SIZE_UNIT and
GRUB_CFG_FILE variables).
3. Custom grub.cfg file via `GRUB_CFG_FILE` (default:
4. Custom grub.cfg file via `GRUB_CFG_FILE` (default:
arm-autonomy-n1sdp-grub.cfg) variable to be set in any conf file. The full
path or relative to `ARM_AUTONOMY_WKS_FILE` should be set.
The `arm-autonomy-n1sdp-efidisk.wks.in` and `arm-autonomy-n1sdp-grub.cfg` files
are located at `meta-arm-autonomy/dynamic-layers/meta-arm-bsp/wic`.
Other variables can also be custmized to set what files need to be included
Other variables can also be customized to set what files need to be included
in the wic image boot partition. Please refer to
`meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc`
for more details.
@@ -56,7 +56,8 @@ The following parameters are available:
the xen devicetrees are properly regenerated if the source DTBs are changed.
This variable is set by default to "virtual/kernel:do_deploy" to use DTBs
generated during the compilation of the Linux kernel. This must be changed
if the machine your are using is not using a DTB listed in KERNEL_DEVICETREE.
if the machine you are using is not using a DTB listed in
KERNEL_DEVICETREE.
- XEN_DEVICETREE_DTBS: This should be set to the list of DTBs you want to be
modified by xen-devicetree. Those must be files that xen-devicetree can find
@@ -70,7 +71,10 @@ The following parameters are available:
This variable is only used if XEN_DEVICETREE_XEN_BOOTARGS has a value
containing "dom0_mem=${XEN_DEVICETREE_DOM0_MEM}" as the memory assigned to
dom0 is defined using Xen boot arguments.
This variable is set by default to "1024M".
This variable is set by default to "1024M,max:1024", and cannot be empty.
The value can simply specify a size, e.g. "1024M", but best practice is to
also provide a max, documented here:
https://wiki.xenproject.org/wiki/Xen_Project_Best_Practices
- XEN_DEVICETREE_DOM0_BOOTARGS: Boot arguments to pass to Dom0 Linux when
booting it.
@@ -84,7 +88,8 @@ The following parameters are available:
- XEN_DEVICETREE_DOM0_ADDR: This is the address from which the Linux kernel to
be used for Dom0 will be copied. When using u-boot, this is the address at
which you will load the kernel Image before starting Xen.
This variable is set by default to "0x80080000".
This variable is set by default to "0x80080000", and cannot be empty.
Values for this variable can be in hex (prefixed with '0x') or in decimal.
- XEN_DEVICETREE_DOM0_SIZE: This is the size of the kernel loaded at
${XEN_DEVICETREE_DOM0_ADDR}. Xen will copy this amount of data inside the
@@ -92,7 +97,8 @@ The following parameters are available:
size but can be bigger. You must be careful not to have a value too big as it
could slow down boot or copy other parts with it (like the DTB).
You might need to increase this if you use a kernel with a bundled initramfs.
This variable is set by default to "0x01000000".
This variable is set by default to "0x01000000" and cannot be empty.
Values for this variable can be in hex (prefixed with '0x') or in decimal.
- XEN_DEVICETREE_DTSI_MERGE: This variable contains the list of dtsi files that
must be included inside the generated DTB file. By default the only one
@@ -7,7 +7,7 @@ Introduction
xenguest-manager is a tool to manage Xenguest images generated by
[xenguest-mkimage](xenguest-mkimage.md).
On a Xen Dom0 system it will:
On a Xen Dom0 system it can:
- create a xen guest from a xenguest image: extract its components, create a
disk for the guest using LVM volumes.
- start/stop a xen guest (during init or using xenguest-manager directly).
@@ -23,7 +23,7 @@ Usage
-----
xenguest-manager must be called like this:
`xenguest-manager OPERATION [OPTIONS]`
`xenguest-manager [-v(v)] OPERATION [OPTIONS]`
The following operations are available:
- create XENGUEST_IMAGE [GUESTNAME]: create a guest from a xenguest image file
as guest GUESTNAME. If GUESTNAME is not given the image file name is used
@@ -37,6 +37,9 @@ The following operations are available:
- status [GUESTNAME]: print the current status of GUESTNAME. If GUESTNAME is
not given, print the status of all guests.
Passing -v or -vv will increase the logging written to the logfile.
The terminal will always show only error messages, regardless of the logfile.
For a detailed help on available options please use:
`xenguest-manager --help`
@@ -45,6 +48,7 @@ Bitbake parameters
Several parameters are available to configure the xenguest manager during Yocto
project compilation (those can be set in your project local.conf, for example).
This config will be written to a file xenguest-manager.conf in /etc/xenguest/.
The following parameters are available:
@@ -65,6 +69,22 @@ The following parameters are available:
name).
This is set by default to "/usr/share/guests".
- XENGUEST_MANAGER_LOG_LEVEL: Set the default log level for xenguest manager.
Must be one of ERROR, INFO, VERBOSE (default: ERROR). The logs will be
written to /var/log/xenguest.
If a verbosity argument (-v or -vv) is passed to xenguest-manager directly, it
will override the setting in xenguest-manager.conf
Since /var/log is by default a volatile location, extra configuration is
required if logs are desired to be kept between reboots:
VOLATILE_LOG_DIR="no"
Read more here: https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#var-VOLATILE_LOG_DIR
When this is enabled, logrotate will monitor the file to ensure it does not
grow excessively large. See recipes-extended/xenguest/files/logrotate-xenguest
Init scripts
------------
@@ -80,7 +100,7 @@ directory on the target:
Inside the directory, scripts will be executed in alphabetical order.
Since these scripts are sourced by xenguest-manager they can acccess functions
Since these scripts are sourced by xenguest-manager, they can acccess functions
and variables from the parent file's scope, including:
- ${guestname} : The name of the guest being created
@@ -89,11 +109,34 @@ and variables from the parent file's scope, including:
- ${guestcfgfile} : The name of the config file for the starting guest
- ${LOGFILE} : The file to append any logging to, e.g.
echo "Hello, World" >> ${LOGFILE}
- log() : Used to write a log to the logfile, default level INFO.
Takes an optional log level and a message body
e.g. log ERROR "blah"
Sourcing also allows the script to access params.cfg.
Options for log level: ERROR, INFO, VERBOSE,
and FATAL which will call exit 1 immediately after logging
the message at level ERROR.
- log_command() : Used to call a shell command and log that it has been
called, as well as capturing both stdout and stderr.
By default the command output is dumped to the logfile as an
error if the command returns a status > 0, or as a verbose
message if the whole script is running in verbose mode.
An optional log level can be passed to alter the level the
log should be if the command returns a status >0, which may
be useful if the command is expected to return a non-zero
result.
e.g. log_command INFO "ls -lh ~"
Options for log level: ERROR, INFO, and VERBOSE
Attempting to call any other functions from xenguest_manager in an init script
may result in a fatal error, from which cleanup is not guarenteed.
Init scripts also have access to config variables defined in params.cfg.
An example of how to create the directory and install an init shell script can
be found in:
@@ -4,9 +4,9 @@ Xenguest mkimage
Introduction
------------
xenguest-mkimage is a tool to create and modify images to be used as Guest with
Xen. It defines a format to store completely defined guests as a file or as
a directory and provides options to create and modify those images.
xenguest-mkimage is a tool to create and modify images to be used as a Guest
with Xen. It defines a format to store completely defined guests as a file or as
a directory, and provides options to create and modify those images.
A xenguest image contains all elements required to create a xen guest.
This is the base elements like a Xen configuration and a Linux kernel binary
@@ -15,8 +15,8 @@ but also some more advanced elements like init scripts or a disk definition.
The format is made to be deployable easily by storing everything in a single
file and provide tools to easily manipulate the images. It can also easily be
extended to have features like encryption or signature of images, updates or
complex configurations by providing features to have init script that will be
executed on the host embedded inside the image.
complex configurations by providing the ability to have init scripts embedded
inside the image that will be executed on the host when the guest is started.
Xenguest images content
-----------------------
@@ -35,7 +35,7 @@ before starting the guest.
### files
This directory contains files that can be used by the xen configuration, for
example the binary of the kernel referenced in xen configuration).
example the kernel image referenced in xen configuration.
This is where the kernel binary, the dtb or a ramdisk will be stored.
### init.pre, init.d and init.post
@@ -47,7 +47,7 @@ contains scripts called at a different time:
generate part of the xen configuration dynamically.
- init.d: scripts executed when the guest has been created but before it is
started. This can be used to do some xenstore operations or configure the
guest behaviour using xl, for example.
guest behaviour, using xl for example.
- init.post: scripts executed just after starting the guest. This can be
used to configure things created by xen for the guest like network
network interfaces.
@@ -58,12 +58,19 @@ order.
### disk.cfg and disk-files
disk.cfg contains the guest disk description (disk size and disk partitions).
The file contains the following entries:
- `DISK_SIZE=X`: size of the disk to create in GB
- `DISK_SIZE=X`: size of the disk to create in MB or GB(default),
e.g. 1000M or 4[G]
- `DISK_PARTX=SIZE:FS:CONTENT`: create a partition number X (1 to 4) with a
size of SIZE GB, format it with filesystem FS (can be ext2, ext3, ext4, vfat
or swap) and extract CONTENT as initial partition content
(.tar[.gz|.xz|.bz2] file or img[.gz|.bz2] file to be dumped in the partition). FS and
CONTENT can be empty.
size of SIZE MB or GB(default), e.g 1000M or 2[G].
Format it with filesystem FS (can be ext2, ext3, ext4, vfat or swap)
and extract CONTENT as initial partition content (.tar[.gz|.xz|.bz2] file
or img[.gz|.bz2] file to be dumped in the partition).
FS and CONTENT can be empty.
- `DISK_DEVICE=X`: disk or partition to be used by lvm. Setting this option
allows to bind guest disk with any partition or disk available on host,
e.g. /dev/sda3 or /dev/sdb.
This variable is not set by default, but if set, it overrides disk settings
inside xenguest-manager.conf - 'XENGUEST_VOLUME_DEVICE'.
The disk-files contain files to be used for initializing the disk partitions
content. Those should be used to create a LVM or a physical disk and initialize
@@ -105,12 +112,12 @@ For a detailed help on available operations, please use:
image file. Several script can be added and the basename of FILE is used to
distinguish them (calling the option twice with the same file will update the
script in the image with the second one).
--disk-size=SIZE: set the guest disk size to SIZE in GB. Calling this with 0
disable the guest disk.
--disk-size=SIZE: set the guest disk size to SIZE in MB or GB(default),
e.g 1000M or 2[G]. Calling this with 0 disable the guest disk.
- --disk-add-part=NUM:SIZE:FS:CONTENT: This is adding a partition to the
xenguest image disk. The partition is described with the arguments:
- NUM: partition number.
- SIZE: partition size in GB.
- SIZE: partition size in MB or GB(default), e.g 1000M or 2[G].
- FS: filesystem to format the partition with. This can be ext2, ext3, ext4,
vfat of swap. If empty the partition is not formated.
- CONTENT: tar of img file to use to initialize the partition. The file must
@@ -1,7 +1,7 @@
# Require extra machine specific settings
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE ?= ""
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE_n1sdp = "n1sdp-extra-settings.inc"
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE_fvp-base = "fvp-base-extra-settings.inc"
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE_juno = "juno-extra-settings.inc"
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE:n1sdp = "n1sdp-extra-settings.inc"
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE:fvp-base = "fvp-base-extra-settings.inc"
ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE:juno = "juno-extra-settings.inc"
require ${ARM_BSP_DYN_MACHINE_EXTRA_REQUIRE}
@@ -1,7 +1,39 @@
# Extra machine settings for fvp-base
# FVP uses vda as hard drive and partition 2 is the
# default rootfs, so use vda3 for guest lvm
XENGUEST_MANAGER_VOLUME_DEVICE ?= "/dev/vda3"
# FVP uses vda as hard drive and partition 1 is the
# default rootfs, so use vda2 for guest lvm
XENGUEST_MANAGER_VOLUME_DEVICE ?= "/dev/vda2"
# We need to extend the wks search path to be able to find the wks file set in
# ARM_AUTONOMY_WKS_FILE.
WKS_SEARCH_PATH:prepend := "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic:"
ARM_AUTONOMY_WKS_FILE ?= "arm-autonomy-fvp-base-disk.wks.in"
# set wks file only if INITRAMFS_IMAGE_BUNDLE is not set
WKS_FILE = "${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', '',\
'${ARM_AUTONOMY_WKS_FILE}', d)}"
XEN_FILE ?= "xen-fvp-base"
DTB_FILE ?= "${@ get_xen_dtb_filename(d)}"
XEN_ADDR ?= "0x84000000"
DTB_ADDR ?= "0x83000000"
FVP_DATA += "cluster0.cpu0=${DEPLOY_DIR_IMAGE}/${XEN_FILE}@${XEN_ADDR} \
cluster0.cpu0=${DEPLOY_DIR_IMAGE}/${DTB_FILE}@${DTB_ADDR}"
# Set the wks guest partition size and unit. It must be aligned with the sum of
# all XENGUEST_IMAGE_DISK_SIZE set for the guests. By default, LVM2 metadata is
# 1 MiB per physical volume, hence it needs to be taken into account when
# setting GUEST_PART_SIZE. The XENGUEST_IMAGE_DISK_SIZE default value is 4GiB.
GUEST_PART_SIZE ?= "4097"
GUEST_PART_SIZE_UNIT ?= "M"
XENGUEST_NETWORK_BRIDGE_MEMBERS ?= "eth0"
# This function uses the "KERNEL_DEVICETREE" variable and manipulates it to
# return the xen kernel device tree file name.
def get_xen_dtb_filename(d):
kernel_dtb_filename = d.getVar('KERNEL_DEVICETREE',d)
xen_dtb_filename = os.path.splitext(os.path.basename(kernel_dtb_filename))[0] + '-xen.dtb'
return xen_dtb_filename
@@ -1,4 +1,26 @@
# Extra machine settings for juno
KERNEL_ALT_IMAGETYPE = "Image.lzma"
# Juno board has 2 network interfaces, add both of them to the bridge
XENGUEST_NETWORK_BRIDGE_MEMBERS ?= "eth0 eth1"
XEN_DEVICETREE_DOM0_SIZE ?= "0x02400000"
# We need to extend the wks search path to be able to find the wks file set in
# ARM_AUTONOMY_WKS_FILE.
WKS_SEARCH_PATH:prepend := "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic:"
ARM_AUTONOMY_WKS_FILE ?= "arm-autonomy-juno-disk.wks.in"
# set wks file only if INITRAMFS_IMAGE_BUNDLE is not set
WKS_FILE = "${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', '',\
'${ARM_AUTONOMY_WKS_FILE}', d)}"
# Set the wks guest partition size and unit. It must be aligned with the sum of
# all XENGUEST_IMAGE_DISK_SIZE set for the guests. By default, LVM2 metadata is
# 1 MiB per physical volume, hence it needs to be taken into account when
# setting GUEST_PART_SIZE. The XENGUEST_IMAGE_DISK_SIZE default value is 4GiB.
GUEST_PART_SIZE ?= "4097"
GUEST_PART_SIZE_UNIT ?= "M"
# set wic image type only if INITRAMFS_IMAGE_BUNDLE is not set
IMAGE_FSTYPES += "${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', '',\
'wic wic.gz wic.bmap', d)}"
@@ -2,7 +2,7 @@
# We need to extent the wks search path to be able to find the wks file set in
# ARM_AUTONOMY_WKS_FILE.
WKS_SEARCH_PATH_prepend := "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic:"
WKS_SEARCH_PATH:prepend := "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic:"
ARM_AUTONOMY_WKS_FILE ?= "arm-autonomy-n1sdp-efidisk.wks.in"
WKS_FILE = "${ARM_AUTONOMY_WKS_FILE}"
@@ -14,8 +14,19 @@ WKS_FILE = "${ARM_AUTONOMY_WKS_FILE}"
GUEST_PART_SIZE ?= "4097"
GUEST_PART_SIZE_UNIT ?= "M"
# Set default boot partition size and unit
BOOT_PART_SIZE ?= "100"
BOOT_PART_SIZE_UNIT ?= "M"
# The GRUB_CFG_FILE affects arm-autonomy-n1sdp-efidisk.wks.in file
GRUB_CFG_FILE ?= "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic/arm-autonomy-n1sdp-grub.cfg"
#
# When alternate-kernel DISTRO_FEATURE is present we set the
# arm-autonomy-n1sdp-rt-grub.cfg by default. This GRUB config file has
# additional entries for booting with the PREEMPT_RT kernel.
GRUB_CFG_FILE ?= "${@bb.utils.contains('DISTRO_FEATURES','alternate-kernel', \
'${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic/arm-autonomy-n1sdp-rt-grub.cfg', \
'${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic/arm-autonomy-n1sdp-grub.cfg' \
, d)}"
# From arm-autonomy-n1sdp-efidisk.wks.in, the /boot partition is /dev/sda1, and
# the "/" partition is /dev/sda2.
@@ -38,3 +49,46 @@ do_image_wic[depends] += "xen:do_deploy"
IMAGE_EFI_BOOT_FILES += "xen-n1sdp.efi;xen.efi"
IMAGE_EFI_BOOT_FILES += "${XEN_MOD_DEVICETREE_DTBS}"
# When alternate-kernel DISTRO_FEATURE is present we set the linux-yocto-rt
# by default
PREFERRED_PROVIDER_alternate/kernel ?= "\
${@bb.utils.contains('DISTRO_FEATURES', 'alternate-kernel', \
'linux-yocto-rt', '', d)}"
KERNEL_PACKAGE_NAME_alternate/kernel ?= "kernel-rt"
# When alternate-kernel DISTRO_FEATURE is present we set the kernel-rt by
# default
KERNEL_PACKAGE_NAME:pn-linux-yocto-rt = "\
${@ d.getVar('KERNEL_PACKAGE_NAME_alternate/kernel') \
if bb.utils.contains('DISTRO_FEATURES', 'alternate-kernel', True, False, d) \
else 'kernel' }"
# Relative path from DEPLOY_DIR_IMAGE of the Kernel PREEMPT_RT deployed Image
KERNEL_RT_IMAGE ?= "kernel-rt/Image-n1sdp.bin;Image-preempt-rt"
# Only include the Kernel PREEMPT_RT Image if we are building with
# alternate-kernel DISTRO_FEATURE
IMAGE_EFI_BOOT_FILES += "\
${@ d.getVar('KERNEL_RT_IMAGE',d) or '' \
if bb.utils.contains('DISTRO_FEATURES', 'alternate-kernel', True, False, d) and \
d.getVar('PREFERRED_PROVIDER_alternate/kernel') else ''}"
EFIDIR ?= "/EFI/BOOT"
GRUB_CFG_EXTRA_FILE ?= "${ARM_AUTONOMY_ARM_BSP_DYNAMIC_DIR}/wic/arm-autonomy-n1sdp-grub.cfg;.${EFIDIR}}"
# When alternate-kernel DISTRO_FEATURE is present we set the
# arm-autonomy-n1sdp-rt-grub.cfg by default. This GRUB config file has
# additional entries for booting with the PREEMPT_RT kernel and also includes
# the main GRUB config file set by GRUB_CFG_EXTRA_FILE.
IMAGE_EFI_BOOT_FILES += "\
${@ d.getVar('GRUB_CFG_EXTRA_FILE',d) or '' \
if bb.utils.contains('DISTRO_FEATURES', 'alternate-kernel', True, False, d) and \
d.getVar('PREFERRED_PROVIDER_alternate/kernel') else ''}"
# Additionnal kernel modules are necessary for n1sdp to be able to mount FAT
# filesystems using CP437.
MACHINE_ESSENTIAL_EXTRA_RDEPENDS:append = " kernel-module-nls-cp437 kernel-module-nls-iso8859-1"
# '-mcpu=' and '-march=' conflicts for xen build
# lets not set '-march=' and let xen to overwrite '-mcpu='
TUNE_CCARGS:remove:pn-xen = "${TUNE_CCARGS_MARCH}${TUNE_CCARGS_MARCH_OPTS}"
@@ -1,21 +1,50 @@
# Use OVERRIDES to minimize the usage of
# ${@bb.utils.contains('DISTRO_FEATURES', 'xen', ...
OVERRIDES_append = "${@bb.utils.contains('DISTRO_FEATURES', 'xen', ':xen', '', d)}"
# ${@bb.utils.contains('DISTRO_FEATURES', 'autonomy-host', ...
OVERRIDES:append = "${ARM_AUTONOMY_HOST_OVERRIDES}"
FILESEXTRAPATHS_prepend_xen := "${THISDIR}/${PN}:"
FILESEXTRAPATHS:prepend:autonomy-host := "${THISDIR}/${PN}:"
DEPENDS:append:autonomy-host = " dos2unix-native"
SRC_URI:append:autonomy-host = " file://add-xen-support.patch;patchdir=../"
do_install:append:autonomy-host() {
mv -v ${D}/${UNPACK_DIR}/SOFTWARE/uEnv.txt \
${D}/${UNPACK_DIR}/SOFTWARE/uenvfile
for dir in $(ls ${D}/${UNPACK_DIR}/SITE1/)
do
unix2dos ${D}/${UNPACK_DIR}/SITE1/${dir}/images.txt
done
}
DEPLOY_EXTRA_DEPS ??= ""
DEPLOY_EXTRA_DEPS_xen = "xen:do_deploy xen-devicetree:do_deploy"
DEPLOY_EXTRA_DEPS:autonomy-host = "xen:do_deploy xen-devicetree:do_deploy"
do_deploy[depends] += "${DEPLOY_EXTRA_DEPS}"
do_deploy_prepend_xen() {
do_deploy:prepend:autonomy-host() {
# To avoid dependency loop between firmware-image-juno:do_install,
# xen:do_deploy and xen-devicetree:do_deploy when
# INITRAMFS_IMAGE_BUNDLE = "1", we need to handle the xen and
# xen-devicetree binaries copying in the do_deploy task.
cp ${DEPLOY_DIR_IMAGE}/xen-${COMPATIBLE_MACHINE}.efi \
${D}/${UNPACK_DIR}/SOFTWARE/xen
cp ${DEPLOY_DIR_IMAGE}/*xen.dtb \
${D}/${UNPACK_DIR}/SOFTWARE/
mkdir -p ${D}/${UNPACK_DIR}/SOFTWARE/XEN
cp -v ${DEPLOY_DIR_IMAGE}/xen-${COMPATIBLE_MACHINE}.efi \
${D}/${UNPACK_DIR}/SOFTWARE/XEN/xen
for dtb in $(basename -s .dtb ${KERNEL_DEVICETREE})
do
cp -v ${DEPLOY_DIR_IMAGE}/${dtb}-xen.dtb \
${D}/${UNPACK_DIR}/SOFTWARE/XEN/${dtb}.dtb
done
bbnote "Xen binaries added under SOFTWARE/XEN directory"
if [ "${INITRAMFS_IMAGE_BUNDLE}" != "1" -a "${KERNEL_ALT_IMAGETYPE}" = "Image.lzma" ]; then
# KERNEL_ALT_IMAGETYPE is expected to be Image.lzma,
# however NOR flash filesystem is DOS compatible with 8.3 naming,
# so we need to replace ".lzma" with ".lzm"
cp -L -f ${DEPLOY_DIR_IMAGE}/${KERNEL_ALT_IMAGETYPE} \
${D}/${UNPACK_DIR}/SOFTWARE/Image.lzm
fi
}
@@ -0,0 +1,173 @@
arm-bsp/firmware-image-juno: add xen support
This patch adds xen and dtbs binaries entries to images-r[012].txt files.
These images-r[012].txt files contain NOR filesystem entries details,
like file offset, name, path etc.
It also adds customization for uEnv.txt file, that allows to autoboot xen.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Kamil Dziezyk <kamil.dziezyk@arm.com>
diff -u a/images-r0.txt b/images-r0.txt
--- a/images-r0.txt 2020-11-25 20:25:38.677687712 +0100
+++ b/images-r0.txt 2020-11-25 20:36:55.482194294 +0100
@@ -1,7 +1,7 @@
TITLE: Versatile Express Images Configuration File
[IMAGES]
-TOTALIMAGES: 10 ;Number of Images (Max: 32)
+TOTALIMAGES: 11 ;Number of Images (Max: 32)
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: 0x00000000 ;Image Flash Address
@@ -17,14 +17,14 @@
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR2ADDRESS: 0x00500000 ;Image Flash Address
-NOR2FILE: \SOFTWARE\Image ;Image File Name
-NOR2NAME: norkern ;Rename kernel to norkern
+NOR2FILE: \SOFTWARE\Image.lzm ;Image File Name
+NOR2NAME: norkern.lzm ;Rename kernel to norkern.lzm
NOR2LOAD: 00000000 ;Image Load Address
NOR2ENTRY: 00000000 ;Image Entry Point
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02900000 ;Image Flash Address
-NOR3FILE: \SOFTWARE\juno.dtb ;Image File Name
+NOR3FILE: \SOFTWARE\XEN\juno.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
@@ -64,8 +64,13 @@
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR9ADDRESS: 0x02A80000 ;Image Flash Address
NOR9NAME: uEnv.txt
-NOR9FILE: \SOFTWARE\uEnv.txt ;Image File Name
+NOR9FILE: \SOFTWARE\uenvfile ;Image File Name
NOR9LOAD: 00000000 ;Image Load Address
NOR9ENTRY: 00000000 ;Image Entry Point
-
+NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
+NOR10ADDRESS: 0x03000000 ;Image Flash Address
+NOR10FILE: \SOFTWARE\XEN\xen ;Image File Name
+NOR10NAME: xen
+NOR10LOAD: 00000000 ;Image Load Address
+NOR10ENTRY: 00000000 ;Image Entry Point
diff -u a/images-r1.txt b/images-r1.txt
--- a/images-r1.txt 2020-11-25 20:40:19.005177152 +0100
+++ b/images-r1.txt 2020-11-25 20:41:17.500886263 +0100
@@ -1,7 +1,7 @@
TITLE: Versatile Express Images Configuration File
[IMAGES]
-TOTALIMAGES: 10 ;Number of Images (Max: 32)
+TOTALIMAGES: 11 ;Number of Images (Max: 32)
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: 0x00000000 ;Image Flash Address
@@ -17,14 +17,14 @@
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR2ADDRESS: 0x00500000 ;Image Flash Address
-NOR2FILE: \SOFTWARE\Image ;Image File Name
-NOR2NAME: norkern ;Rename kernel to norkern
+NOR2FILE: \SOFTWARE\Image.lzm ;Image File Name
+NOR2NAME: norkern.lzm ;Rename kernel to norkern.lzm
NOR2LOAD: 00000000 ;Image Load Address
NOR2ENTRY: 00000000 ;Image Entry Point
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02900000 ;Image Flash Address
-NOR3FILE: \SOFTWARE\juno-r1.dtb ;Image File Name
+NOR3FILE: \SOFTWARE\XEN\juno-r1.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
@@ -64,8 +64,13 @@
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR9ADDRESS: 0x02A80000 ;Image Flash Address
NOR9NAME: uEnv.txt
-NOR9FILE: \SOFTWARE\uEnv.txt ;Image File Name
+NOR9FILE: \SOFTWARE\uenvfile ;Image File Name
NOR9LOAD: 00000000 ;Image Load Address
NOR9ENTRY: 00000000 ;Image Entry Point
-
+NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
+NOR10ADDRESS: 0x03000000 ;Image Flash Address
+NOR10FILE: \SOFTWARE\XEN\xen ;Image File Name
+NOR10NAME: xen
+NOR10LOAD: 00000000 ;Image Load Address
+NOR10ENTRY: 00000000 ;Image Entry Point
diff -u a/images-r2.txt b/images-r2.txt
--- a/images-r2.txt 2020-11-25 20:40:30.625119321 +0100
+++ b/images-r2.txt 2020-11-25 20:41:30.720820597 +0100
@@ -1,7 +1,7 @@
TITLE: Versatile Express Images Configuration File
[IMAGES]
-TOTALIMAGES: 10 ;Number of Images (Max: 32)
+TOTALIMAGES: 11 ;Number of Images (Max: 32)
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: 0x00000000 ;Image Flash Address
@@ -17,14 +17,14 @@
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR2ADDRESS: 0x00500000 ;Image Flash Address
-NOR2FILE: \SOFTWARE\Image ;Image File Name
-NOR2NAME: norkern ;Rename kernel to norkern
+NOR2FILE: \SOFTWARE\Image.lzm ;Image File Name
+NOR2NAME: norkern.lzm ;Rename kernel to norkern.lzm
NOR2LOAD: 00000000 ;Image Load Address
NOR2ENTRY: 00000000 ;Image Entry Point
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02900000 ;Image Flash Address
-NOR3FILE: \SOFTWARE\juno-r2.dtb ;Image File Name
+NOR3FILE: \SOFTWARE\XEN\juno-r2.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
@@ -64,8 +64,13 @@
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR9ADDRESS: 0x02A80000 ;Image Flash Address
NOR9NAME: uEnv.txt
-NOR9FILE: \SOFTWARE\uEnv.txt ;Image File Name
+NOR9FILE: \SOFTWARE\uenvfile ;Image File Name
NOR9LOAD: 00000000 ;Image Load Address
NOR9ENTRY: 00000000 ;Image Entry Point
-
+NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
+NOR10ADDRESS: 0x03000000 ;Image Flash Address
+NOR10FILE: \SOFTWARE\XEN\xen ;Image File Name
+NOR10NAME: xen
+NOR10LOAD: 00000000 ;Image Load Address
+NOR10ENTRY: 00000000 ;Image Entry Point
diff -u a/uEnv.txt b/uEnv.txt
--- a/uEnv.txt 2020-11-20 13:48:31.845078690 +0100
+++ b/uEnv.txt 2020-11-25 20:30:00.572306675 +0100
@@ -1,11 +1,16 @@
+xen_name=xen
+xen_addr=0x84000000
uenvcmd=run mybootcmd
+kernel_alt_name=norkern.lzm
+kernel_comp_addr_r=0x88080000
mybootcmd=echo Loading custom boot command; \
echo Loading kernel; \
afs load ${kernel_name} ${kernel_addr_r} ; \
-if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_addr_r}; fi; \
+if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_comp_addr_r}; lzmadec ${kernel_comp_addr_r} ${kernel_addr_r}; fi; \
echo Loading device tree; \
afs load ${fdtfile} ${fdt_addr_r}; \
if test $? -eq 1; then echo Loading ${fdt_alt_name} instead of ${fdtfile}; \
afs load ${fdt_alt_name} ${fdt_addr_r}; fi; fdt addr ${fdt_addr_r}; fdt resize; \
-booti ${kernel_addr_r} - ${fdt_addr_r};
-
+echo Loading Xen; \
+afs load ${xen_name} ${xen_addr}; \
+if test $? -eq 0; then echo Booting Xen; bootefi ${xen_addr} ${fdt_addr_r}; fi;
@@ -1,78 +0,0 @@
TITLE: Versatile Express Images Configuration File
[IMAGES]
TOTALIMAGES: 11 ;Number of Images (Max: 32)
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: 0x00000000 ;Image Flash Address
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
NOR0LOAD: 00000000 ;Image Load Address
NOR0ENTRY: 00000000 ;Image Entry Point
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
NOR1LOAD: 00000000 ;Image Load Address
NOR1ENTRY: 00000000 ;Image Entry Point
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR2ADDRESS: 0x00500000 ;Image Flash Address
NOR2FILE: \SOFTWARE\Image ;Image File Name
NOR2NAME: norkern ;Rename kernel to norkern
NOR2LOAD: 00000000 ;Image Load Address
NOR2ENTRY: 00000000 ;Image Entry Point
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02700000 ;Image Flash Address
NOR3FILE: \SOFTWARE\juno-xen.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
NOR4FILE: \SOFTWARE\xen ;Image File Name
NOR4NAME: xen
NOR4LOAD: 00000000 ;Image Load Address
NOR4ENTRY: 00000000 ;Image Entry Point
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
NOR5LOAD: 00000000 ;Image Load Address
NOR5ENTRY: 00000000 ;Image Entry Point
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
NOR6LOAD: 00000000 ;Image Load Address
NOR6ENTRY: 00000000 ;Image Entry Point
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
NOR7NAME: startup.nsh
NOR7LOAD: 00000000 ;Image Load Address
NOR7ENTRY: 00000000 ;Image Entry Point
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
NOR8NAME: BOOTENV
NOR8LOAD: 00000000 ;Image Load Address
NOR8ENTRY: 00000000 ;Image Entry Point
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR9ADDRESS: 0x02600000 ;Image Flash Address
NOR9FILE: \SOFTWARE\selftest ;Image File Name
NOR9LOAD: 00000000 ;Image Load Address
NOR9ENTRY: 00000000 ;Image Entry Point
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR10ADDRESS: 0x02780000 ;Image Flash Address
NOR10NAME: uEnv.txt
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
NOR10LOAD: 00000000 ;Image Load Address
NOR10ENTRY: 00000000 ;Image Entry Point
@@ -1,78 +0,0 @@
TITLE: Versatile Express Images Configuration File
[IMAGES]
TOTALIMAGES: 11 ;Number of Images (Max: 32)
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: 0x00000000 ;Image Flash Address
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
NOR0LOAD: 00000000 ;Image Load Address
NOR0ENTRY: 00000000 ;Image Entry Point
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
NOR1LOAD: 00000000 ;Image Load Address
NOR1ENTRY: 00000000 ;Image Entry Point
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR2ADDRESS: 0x00500000 ;Image Flash Address
NOR2FILE: \SOFTWARE\Image ;Image File Name
NOR2NAME: norkern ;Rename kernel to norkern
NOR2LOAD: 00000000 ;Image Load Address
NOR2ENTRY: 00000000 ;Image Entry Point
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02700000 ;Image Flash Address
NOR3FILE: \SOFTWARE\juno-r1-xen.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
NOR4FILE: \SOFTWARE\xen ;Image File Name
NOR4NAME: xen
NOR4LOAD: 00000000 ;Image Load Address
NOR4ENTRY: 00000000 ;Image Entry Point
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
NOR5LOAD: 00000000 ;Image Load Address
NOR5ENTRY: 00000000 ;Image Entry Point
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
NOR6LOAD: 00000000 ;Image Load Address
NOR6ENTRY: 00000000 ;Image Entry Point
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
NOR7NAME: startup.nsh
NOR7LOAD: 00000000 ;Image Load Address
NOR7ENTRY: 00000000 ;Image Entry Point
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
NOR8NAME: BOOTENV
NOR8LOAD: 00000000 ;Image Load Address
NOR8ENTRY: 00000000 ;Image Entry Point
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR9ADDRESS: 0x02600000 ;Image Flash Address
NOR9FILE: \SOFTWARE\selftest ;Image File Name
NOR9LOAD: 00000000 ;Image Load Address
NOR9ENTRY: 00000000 ;Image Entry Point
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR10ADDRESS: 0x02780000 ;Image Flash Address
NOR10NAME: uEnv.txt
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
NOR10LOAD: 00000000 ;Image Load Address
NOR10ENTRY: 00000000 ;Image Entry Point
@@ -1,78 +0,0 @@
TITLE: Versatile Express Images Configuration File
[IMAGES]
TOTALIMAGES: 11 ;Number of Images (Max: 32)
NOR0UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR0ADDRESS: 0x00000000 ;Image Flash Address
NOR0FILE: \SOFTWARE\fip.bin ;Image File Name
NOR0LOAD: 00000000 ;Image Load Address
NOR0ENTRY: 00000000 ;Image Entry Point
NOR1UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR1ADDRESS: 0x03EC0000 ;Image Flash Address
NOR1FILE: \SOFTWARE\bl1.bin ;Image File Name
NOR1LOAD: 00000000 ;Image Load Address
NOR1ENTRY: 00000000 ;Image Entry Point
NOR2UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR2ADDRESS: 0x00500000 ;Image Flash Address
NOR2FILE: \SOFTWARE\Image ;Image File Name
NOR2NAME: norkern ;Rename kernel to norkern
NOR2LOAD: 00000000 ;Image Load Address
NOR2ENTRY: 00000000 ;Image Entry Point
NOR3UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR3ADDRESS: 0x02700000 ;Image Flash Address
NOR3FILE: \SOFTWARE\juno-r2-xen.dtb ;Image File Name
NOR3NAME: board.dtb ;Specify target filename to preserve file extension
NOR3LOAD: 00000000 ;Image Load Address
NOR3ENTRY: 00000000 ;Image Entry Point
NOR4UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR4ADDRESS: 0x01D00000 ;Image Flash Address
NOR4FILE: \SOFTWARE\xen ;Image File Name
NOR4NAME: xen
NOR4LOAD: 00000000 ;Image Load Address
NOR4ENTRY: 00000000 ;Image Entry Point
NOR5UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR5ADDRESS: 0x025C0000 ;Image Flash Address
NOR5FILE: \SOFTWARE\hdlcdclk.dat ;Image File Name
NOR5LOAD: 00000000 ;Image Load Address
NOR5ENTRY: 00000000 ;Image Entry Point
NOR6UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR6ADDRESS: 0x03E40000 ;Image Flash Address
NOR6FILE: \SOFTWARE\scp_bl1.bin ;Image File Name
NOR6LOAD: 00000000 ;Image Load Address
NOR6ENTRY: 00000000 ;Image Entry Point
NOR7UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR7ADDRESS: 0x0BF00000 ;Image Flash Address
NOR7FILE: \SOFTWARE\startup.nsh ;Image File Name
NOR7NAME: startup.nsh
NOR7LOAD: 00000000 ;Image Load Address
NOR7ENTRY: 00000000 ;Image Entry Point
NOR8UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR8ADDRESS: 0x0BFC0000 ;Image Flash Address
NOR8FILE: \SOFTWARE\blank.img ;Image File Name
NOR8NAME: BOOTENV
NOR8LOAD: 00000000 ;Image Load Address
NOR8ENTRY: 00000000 ;Image Entry Point
NOR9UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR9ADDRESS: 0x02600000 ;Image Flash Address
NOR9FILE: \SOFTWARE\selftest ;Image File Name
NOR9LOAD: 00000000 ;Image Load Address
NOR9ENTRY: 00000000 ;Image Entry Point
NOR10UPDATE: AUTO ;Image Update:NONE/AUTO/FORCE
NOR10ADDRESS: 0x02780000 ;Image Flash Address
NOR10NAME: uEnv.txt
NOR10FILE: \SOFTWARE\uEnv.txt ;Image File Name
NOR10LOAD: 00000000 ;Image Load Address
NOR10ENTRY: 00000000 ;Image Entry Point
@@ -1,15 +0,0 @@
xen_name=xen
xen_addr=0x84000000
uenvcmd=run mybootcmd
mybootcmd=echo Loading custom boot command; \
echo Loading kernel; \
afs load ${kernel_name} ${kernel_addr} ; \
if test $? -eq 1; then echo Loading ${kernel_alt_name} instead of ${kernel_name}; afs load ${kernel_alt_name} ${kernel_addr}; fi; \
echo Loading device tree; \
afs load ${fdtfile} ${fdt_addr}; \
if test $? -eq 1; then echo Loading ${fdt_alt_name} instead of ${fdtfile}; \
afs load ${fdt_alt_name} ${fdt_addr}; fi; fdt addr ${fdt_addr}; fdt resize; \
echo Loading Xen; \
afs load ${xen_name} ${xen_addr}; \
if test $? -eq 0; then echo Booting Xen; bootefi ${xen_addr} ${fdt_addr}; fi;
@@ -0,0 +1,16 @@
Upstream-Status: Inappropriate [meta-arm-autonomy specific u-boot config]
Signed-off-by: Nathan Dunne <nathan.dunne@arm.com>
diff --git a/include/configs/vexpress_aemv8a.h b/include/configs/vexpress_aemv8a.h
index e63c335f85..9ee050a4a6 100644
--- a/include/configs/vexpress_aemv8a.h
+++ b/include/configs/vexpress_aemv8a.h
@@ -162,7 +162,7 @@
#elif CONFIG_TARGET_VEXPRESS64_BASE_FVP
#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_name=Image\0" \
- "kernel_addr=0x80080000\0" \
+ "kernel_addr=0x84000000\0" \
"initrd_name=ramdisk.img\0" \
"initrd_addr=0x88000000\0" \
"fdtfile=devtree.dtb\0" \
@@ -0,0 +1,10 @@
# Use OVERRIDES to minimize the usage of
# ${@bb.utils.contains('DISTRO_FEATURES', 'autonomy-host', ...
OVERRIDES:append = "${ARM_AUTONOMY_HOST_OVERRIDES}"
FILESEXTRAPATHS:prepend:autonomy-host:fvp-base := "${THISDIR}/${PN}:"
#
# FVP BASE
#
SRC_URI:append:autonomy-host:fvp-base = " file://xen_u-boot_kernel_addr.patch"
@@ -38,4 +38,14 @@
/delete-property/ iommu-map;
};
};
/*
* Delete module node for Dom0, #size-cells and #address-cells because Grub2
* is responsible to create them
*/
chosen {
/delete-property/ #size-cells;
/delete-property/ #address-cells;
/delete-node/ module@0;
};
};
@@ -1,23 +1,23 @@
# Platform dependent parameters
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
# Add a dtb snippet to turn off iommu in dom0 on Juno board
SRC_URI_append_juno = " file://xen-juno.dtsi"
XEN_DEVICETREE_DTSI_MERGE_append_juno = " xen-juno.dtsi"
SRC_URI:append:juno = " file://xen-juno.dtsi"
XEN_DEVICETREE_DTSI_MERGE:append:juno = " xen-juno.dtsi"
# Add a dtb snippet to remove pmu and iommu in dom0 on N1SDP
SRC_URI_append_n1sdp = " file://xen-n1sdp.dtsi"
XEN_DEVICETREE_DTSI_MERGE_append_n1sdp = " xen-n1sdp.dtsi"
SRC_URI:append:n1sdp = " file://xen-n1sdp.dtsi"
XEN_DEVICETREE_DTSI_MERGE:append:n1sdp = " xen-n1sdp.dtsi"
# For N1SDP, the XEN_DEVICETREE_DEPEND and XEN_DEVICETREE_DTBS variables are
# being set in meta-arm-autonomy/dynamic-layers/meta-arm-bsp/conf/machine/n1sdp-extra-settings.inc
# Board specific configs
XEN_DEVICETREE_DOM0_BOOTARGS_append_juno = " root=/dev/sda1 rootwait"
XEN_DEVICETREE_XEN_BOOTARGS_append_juno = " console=dtuart dtuart=serial0 bootscrub=0 iommu=no"
XEN_DEVICETREE_DOM0_BOOTARGS:append:juno = " root=/dev/sda1 rootwait"
XEN_DEVICETREE_XEN_BOOTARGS:append:juno = " console=dtuart dtuart=serial0 bootscrub=0 iommu=no"
XEN_DEVICETREE_DOM0_BOOTARGS_append_n1sdp = " root=/dev/sda2 rootwait"
XEN_DEVICETREE_XEN_BOOTARGS_append_n1sdp = " console=dtuart dtuart=serial0 bootscrub=0 iommu=no"
XEN_DEVICETREE_DOM0_BOOTARGS:append:n1sdp = " root=/dev/sda2 rootwait"
XEN_DEVICETREE_XEN_BOOTARGS:append:n1sdp = " console=dtuart dtuart=serial0 bootscrub=0 iommu=no"
XEN_DEVICETREE_DOM0_BOOTARGS_append_fvp-base = " root=/dev/vda2"
XEN_DEVICETREE_XEN_BOOTARGS_append_fvp-base = " console=dtuart dtuart=serial0 bootscrub=0"
XEN_DEVICETREE_DOM0_BOOTARGS:append:fvp-base = " root=/dev/vda1"
XEN_DEVICETREE_XEN_BOOTARGS:append:fvp-base = " console=dtuart dtuart=serial0 bootscrub=0"
@@ -1,15 +1,15 @@
# FVP Base support
COMPATIBLE_MACHINE_fvp-base = "fvp-base"
FILESEXTRAPATHS_prepend_fvp-base := "${THISDIR}/files:"
SRC_URI_append_fvp-base = " file://early-printk.cfg"
COMPATIBLE_MACHINE:fvp-base = "fvp-base"
FILESEXTRAPATHS:prepend:fvp-base := "${THISDIR}/files:"
SRC_URI:append:fvp-base = " file://early-printk.cfg"
# Juno support
COMPATIBLE_MACHINE_juno = "juno"
FILESEXTRAPATHS_prepend_juno := "${THISDIR}/files:"
SRC_URI_append_juno = " file://early-printk.cfg"
COMPATIBLE_MACHINE:juno = "juno"
FILESEXTRAPATHS:prepend:juno := "${THISDIR}/files:"
SRC_URI:append:juno = " file://early-printk.cfg"
# N1SDP support
COMPATIBLE_MACHINE_n1sdp = "n1sdp"
FILESEXTRAPATHS_prepend_n1sdp := "${THISDIR}/files:"
SRC_URI_append_n1sdp = " file://n1sdp.cfg \
COMPATIBLE_MACHINE:n1sdp = "n1sdp"
FILESEXTRAPATHS:prepend:n1sdp := "${THISDIR}/files:"
SRC_URI:append:n1sdp = " file://n1sdp.cfg \
file://early-printk.cfg"
@@ -1,15 +0,0 @@
FILESEXTRAPATHS_prepend := "${THISDIR}:"
#
# arm-autonomy kmeta extra
#
SRC_URI_append = " file://arm-autonomy-kmeta-extra;type=kmeta;name=arm-autonomy-kmeta-extra;destsuffix=arm-autonomy-kmeta-extra"
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
# Linux kernel with a coredump while trying to access XEN bit of CPACR1 core
# register.
LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE = "${@bb.utils.contains_any('DISTRO_FEATURES', \
'arm-autonomy-host arm-autonomy-guest', \
' features/arm-autonomy/disable-arm64-sve.scc','',d)}"
KERNEL_FEATURES_append_fvp-base = "${LINUX_ARM_AUTONOMY_DISABLE_ARM64_SVE}"
@@ -0,0 +1,14 @@
# short-description: Create a disk image
# long-description: Creates a partitioned disk image that the user
# can directly dd to boot media.
# For FVP Base first partition is rootfs normally populated as /dev/vda1
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
# Second partition to accomodate guests images normally populated as /dev/vda2 (used by XENGUEST_MANAGER_VOLUME_DEVICE)
part --label guests --source empty --ondisk sda --size="${GUEST_PART_SIZE}${GUEST_PART_SIZE_UNIT}" --system-id 8e --align 1024
# Third partition is user defined entry normally populated as /dev/vda3
${AUTONOMY_HOST_EXTRA_PARTITION}
bootloader --ptable msdos
@@ -0,0 +1,14 @@
# short-description: Create a disk image
# long-description: Creates a partitioned disk image that the user
# can directly dd to boot media.
# For Juno first partition is rootfs normally populated as /dev/sda1
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
# Second partition to accomodate guests images normally populated as /dev/sda2 (used by XENGUEST_MANAGER_VOLUME_DEVICE)
part --label guests --source empty --ondisk sda --size="${GUEST_PART_SIZE}${GUEST_PART_SIZE_UNIT}" --system-id 8e --align 1024
# Third partition is user defined entry normally populated as /dev/sda3
${AUTONOMY_HOST_EXTRA_PARTITION}
bootloader --ptable msdos
@@ -3,7 +3,7 @@
# can directly dd to boot media. Uses a custom grub.cfg file to configure the boot.
# First boot partition normally populated as /dev/sda1
part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024
part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --size="${BOOT_PART_SIZE}${BOOT_PART_SIZE_UNIT}" --label msdos --active --align 1024
# Second rootfs partition normally populated as /dev/sda2
part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
@@ -11,4 +11,7 @@ part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024
# Third partition to accomodate guests images normally populated as /dev/sda3 (used by XENGUEST_MANAGER_VOLUME_DEVICE)
part --label guests --source empty --ondisk sda --size="${GUEST_PART_SIZE}${GUEST_PART_SIZE_UNIT}" --system-id 8e --align 1024
# Fourth partition is user defined entry normally populated as /dev/sda4
${AUTONOMY_HOST_EXTRA_PARTITION}
bootloader --ptable msdos --configfile="${GRUB_CFG_FILE}"
@@ -0,0 +1,28 @@
set term="vt100"
set default="3"
set timeout="5"
source $prefix/arm-autonomy-n1sdp-grub.cfg
menuentry 'N1SDP PREEMPT_RT ACPI Boot' {
linux /Image-preempt-rt $kernel_cmdline acpi=force
}
menuentry 'N1SDP PREEMPT_RT Single-Chip Boot (Device Tree)' {
devicetree /n1sdp-single-chip.dtb
linux /Image-preempt-rt $kernel_cmdline
}
menuentry 'N1SDP PREEMPT_RT Multi-Chip Boot (Device Tree)' {
devicetree /n1sdp-multi-chip.dtb
linux /Image-preempt-rt $kernel_cmdline
}
menuentry 'N1SDP PREEMPT_RT Arm Autonomy (Xen) Single-Chip Boot (Device Tree)' {
# no_argumants under here is a workaround for a bug
# also any kernel or dom0 cmdline arguments has to be passed via dtb
# because any arguments put here will be ignored by xen
xen_hypervisor /xen.efi no_arguments=use_dtb_for_xen_or_kernel_cmdline
xen_module /Image-preempt-rt
devicetree /n1sdp-single-chip-xen.dtb
}
@@ -1,4 +0,0 @@
# gem5-arm64 support
COMPATIBLE_MACHINE_gem5-arm64 = "gem5-arm64"
FILESEXTRAPATHS_prepend_gem5-arm64 := "${THISDIR}/files:"
SRC_URI_append_gem5-arm64 = " file://early-printk.cfg"
@@ -1 +0,0 @@
XENGUEST_NETWORK_BRIDGE_MEMBERS_gem5-arm64 ?= "eth0"
@@ -1,4 +0,0 @@
# We need to turn off SVE support in the Linux kernel otherwise Xen is stopping
# Linux kernel with a coredump while trying to access ZEN bit of CPACR1 core
# register.
# CONFIG_ARM64_SVE is not set

Some files were not shown because too many files have changed in this diff Show More