From f94c002d1d8347ec135dea4fb081e1e37ed87b75 Mon Sep 17 00:00:00 2001 From: Jon Mason Date: Fri, 28 Mar 2025 09:29:03 -0400 Subject: [PATCH] arm-bsp/sgi575: add FVP support Add FVP support to sgi575 and run a boot test as part of CI. Networking is not currently working and seems to require an older version of edk2 to boot the kernel. Also, the unique files for grub and wks do not seem to be necessary. Signed-off-by: Jon Mason --- .gitlab-ci.yml | 6 ++++ ci/sgi575.yml | 6 ++++ meta-arm-bsp/conf/machine/sgi575.conf | 49 ++++++++++++++++++++++++--- meta-arm-bsp/wic/sgi575-efidisk.wks | 11 ------ meta-arm-bsp/wic/sgi575-grub.cfg | 9 ----- 5 files changed, 57 insertions(+), 24 deletions(-) delete mode 100644 meta-arm-bsp/wic/sgi575-efidisk.wks delete mode 100644 meta-arm-bsp/wic/sgi575-grub.cfg diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6d613e45..eb485321 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -347,6 +347,12 @@ selftest: sgi575: extends: .build + parallel: + matrix: + - TESTING: testimage + # FVP binary is x86-only + tags: + - x86_64 toolchains: extends: .build diff --git a/ci/sgi575.yml b/ci/sgi575.yml index e4313820..d6e33894 100644 --- a/ci/sgi575.yml +++ b/ci/sgi575.yml @@ -4,5 +4,11 @@ header: version: 14 includes: - ci/base.yml + - ci/fvp.yml + +local_conf_header: + sshpregen: | + # Allow the use of the pregen keys as this is CI so safe + COMPATIBLE_MACHINE:pn-ssh-pregen-hostkeys:sgi575 = "sgi575" machine: sgi575 diff --git a/meta-arm-bsp/conf/machine/sgi575.conf b/meta-arm-bsp/conf/machine/sgi575.conf index 3c2c94b6..dea764e8 100644 --- a/meta-arm-bsp/conf/machine/sgi575.conf +++ b/meta-arm-bsp/conf/machine/sgi575.conf @@ -7,18 +7,59 @@ require conf/machine/include/arm/armv8-2a/tune-cortexa75.inc EXTRA_IMAGEDEPENDS += "virtual/control-processor-firmware" - EXTRA_IMAGEDEPENDS += "trusted-firmware-a" KERNEL_IMAGETYPE ?= "Image" PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" SERIAL_CONSOLES = "115200;ttyAMA0" -#grub-efi -EFI_PROVIDER ?= "grub-efi" +#FIXME - for some reason newer EDK2 refuses to boot the kernel +PREFERRED_VERSION_edk2-firmware ?= "202408%" + +EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boot", "grub-efi", d)}" MACHINE_FEATURES += "efi" IMAGE_FSTYPES += "cpio.gz wic" +IMAGE_NAME_SUFFIX = "" +IMAGE_CLASSES += "fvpboot" -WKS_FILE ?= "sgi575-efidisk.wks" +WKS_FILE ?= "efi-disk.wks.in" WKS_FILE_DEPENDS:append = " ${EXTRA_IMAGEDEPENDS}" + +# testimage config +TEST_TARGET = "OEFVPTarget" +#TEST_TARGET_IP = "127.0.0.1:222" +TEST_SUITES = "fvp_boot" + +# FVP Config +FVP_PROVIDER ?= "fvp-sgi575-native" +FVP_EXE ?= "FVP_CSS_SGI-575" + +# Virtio-Net configuration +FVP_CONFIG[board.virtio_net.enabled] ?= "1" +FVP_CONFIG[board.virtio_net.hostbridge.userNetworking] ?= "1" +FVP_CONFIG[board.virtio_net.hostbridge.userNetPorts] = "2222=22" +FVP_CONFIG[board.virtioblockdevice.image_path] ?= "${IMAGE_NAME}.wic" + +#FVP_CONFIG[cache_state_modelled] ?= "0" +FVP_CONFIG[css.cmn600.mesh_config_file] = "SGI-575_cmn600.yml" +FVP_CONFIG[css.cmn600.force_rnsam_internal] ?= "false" +FVP_CONFIG[css.gic_distributor.ITS-device-bits] ?= "20" + +FVP_DATA ?= "css.scp.armcortexm7ct=scp_ramfw.bin@0x0BD80000" +FVP_CONFIG[css.mcp.ROMloader.fname] ?= "mcp_romfw.bin" +FVP_CONFIG[css.scp.ROMloader.fname] ?= "scp_romfw.bin" +FVP_CONFIG[css.trustedBootROMloader.fname] ?= "bl1-sgi575.bin" +FVP_CONFIG[board.flashloader0.fname] ?= "fip-sgi575.bin" + +FVP_CONSOLES[default] = "terminal_uart_ap" +FVP_TERMINALS[css.scp.terminal_uart_aon] ?= "SCP Console" +FVP_TERMINALS[css.mcp.terminal_uart0] ?= "" +FVP_TERMINALS[css.mcp.terminal_uart1] ?= "" +FVP_TERMINALS[css.terminal_uart_ap] ?= "Console" +FVP_TERMINALS[css.terminal_uart1_ap] ?= "" +FVP_TERMINALS[soc.terminal_s0] ?= "" +FVP_TERMINALS[soc.terminal_s1] ?= "" +FVP_TERMINALS[soc.terminal_mcp] ?= "" +FVP_TERMINALS[board.terminal_0] ?= "" +FVP_TERMINALS[board.terminal_1] ?= "" diff --git a/meta-arm-bsp/wic/sgi575-efidisk.wks b/meta-arm-bsp/wic/sgi575-efidisk.wks deleted file mode 100644 index d4c79d33..00000000 --- a/meta-arm-bsp/wic/sgi575-efidisk.wks +++ /dev/null @@ -1,11 +0,0 @@ -# short-description: Create an EFI disk image -# long-description: Creates a partitioned EFI disk image that the user -# can directly dd to boot media. Uses a custom grub.cfg file to configure the boot. - -part /boot --source bootimg-efi --sourceparams="loader=grub-efi" --ondisk sda --label msdos --active --align 1024 - -part / --source rootfs --ondisk sda --fstype=ext4 --label root --align 1024 --uuid=9c53a91b-e182-4ff1-aeac-6ee2c432ae94 - -part swap --ondisk sda --size 44 --label swap1 --fstype=swap - -bootloader --ptable gpt --configfile="sgi575-grub.cfg" --timeout=5 diff --git a/meta-arm-bsp/wic/sgi575-grub.cfg b/meta-arm-bsp/wic/sgi575-grub.cfg deleted file mode 100644 index a1763897..00000000 --- a/meta-arm-bsp/wic/sgi575-grub.cfg +++ /dev/null @@ -1,9 +0,0 @@ -set debug="loader,mm" -set term="vt100" -set default="0" -set timeout="1" - -menuentry 'Arm reference image boot on sgi575' { - linux /Image acpi=force console=ttyAMA0,115200 ip=dhcp root=PARTUUID=9c53a91b-e182-4ff1-aeac-6ee2c432ae94 rootwait verbose debug -} -