Quellcode durchsuchen

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 <jon.mason@arm.com>
Jon Mason vor 2 Monaten
Ursprung
Commit
f94c002d1d

+ 6 - 0
.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

+ 6 - 0
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

+ 45 - 4
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] ?= ""

+ 0 - 11
meta-arm-bsp/wic/sgi575-efidisk.wks

@@ -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

+ 0 - 9
meta-arm-bsp/wic/sgi575-grub.cfg

@@ -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
-}
-