mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-09 07:51:59 -09:00
support/testing: test_xen: test on 32-bit Arm v7
Add a TestXenArmv7 class with its related files in an arm/ subfolder
under test_xen/, to test Xen on 32-bit Arm v7.
We cannot boot with UEFI in this case; we use a custom U-Boot script,
which creates the Xen configuration Devicetree during boot.
Signed-off-by: Vincent Stehlé <vincent.stehle@arm.com>
Signed-off-by: Julien Olivain <ju.o@free.fr>
(cherry picked from commit 5346824a83)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
committed by
Thomas Perale
parent
4ba6742ef4
commit
2f83e0ccb7
@@ -125,3 +125,44 @@ class TestXen(TestXenBase):
|
||||
|
||||
# Run Xen test.
|
||||
self.run_xen_test(arch="aarch64", options=qemu_opts)
|
||||
|
||||
|
||||
class TestXenArmv7(TestXenBase):
|
||||
# Test Xen on 32b Arm v7.
|
||||
# Boot flow: Qemu Devicetree -> U-Boot -> Xen -> Linux
|
||||
# Xen does not boot with UEFI on 32-bit Arm v7.
|
||||
# We use U-Boot and a script to load the Dom0 images and amend the
|
||||
# Devicetree for Xen dynamically.
|
||||
# We have a custom kernel config to reduce build time.
|
||||
config = TestXenBase.base_config + \
|
||||
"""
|
||||
BR2_arm=y
|
||||
BR2_cortex_a15=y
|
||||
BR2_ROOTFS_OVERLAY="support/testing/tests/package/test_xen/common/overlay \
|
||||
support/testing/tests/package/test_xen/arm/overlay"
|
||||
BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
|
||||
BR2_ROOTFS_POST_SCRIPT_ARGS="-c support/testing/tests/package/test_xen/arm/genimage.cfg"
|
||||
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="support/testing/tests/package/test_xen/arm/linux.config"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="qemu_arm"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="support/testing/tests/package/test_xen/arm/boot.cmd"
|
||||
"""
|
||||
|
||||
def test_run(self):
|
||||
uboot_bin = os.path.join(self.builddir, "images", "u-boot.bin")
|
||||
disk_img = os.path.join(self.builddir, "images", "disk.img")
|
||||
|
||||
# We need to run Qemu with virtualization to run Xen.
|
||||
qemu_opts = [
|
||||
"-bios", uboot_bin,
|
||||
"-cpu", "cortex-a15",
|
||||
"-device", "virtio-blk-device,drive=hd0",
|
||||
"-drive", f"file={disk_img},if=none,format=raw,id=hd0",
|
||||
"-m", "1G",
|
||||
"-machine", "virt,virtualization=on,acpi=off",
|
||||
"-smp", "2"
|
||||
]
|
||||
|
||||
# Run Xen test.
|
||||
self.run_xen_test(arch="armv7", options=qemu_opts)
|
||||
|
||||
23
support/testing/tests/package/test_xen/arm/boot.cmd
Normal file
23
support/testing/tests/package/test_xen/arm/boot.cmd
Normal file
@@ -0,0 +1,23 @@
|
||||
fdt addr ${fdtcontroladdr}
|
||||
fdt resize
|
||||
|
||||
fdt set /chosen \#address-cells <1>
|
||||
fdt set /chosen \#size-cells <1>
|
||||
|
||||
fdt mknod /chosen modules
|
||||
|
||||
fdt mknod /chosen/modules module@0
|
||||
fdt set /chosen/modules/module@0 compatible "xen,linux-zimage" "xen,multiboot-module"
|
||||
load ${devtype} ${devnum} ${kernel_addr_r} zImage
|
||||
fdt set /chosen/modules/module@0 reg <${kernel_addr_r} 0x${filesize} >
|
||||
|
||||
fdt mknod /chosen/modules module@1
|
||||
fdt set /chosen/modules/module@1 compatible "xen,linux-initrd" "xen,multiboot-module"
|
||||
load ${devtype} ${devnum} ${ramdisk_addr_r} rootfs.cpio
|
||||
fdt set /chosen/modules/module@1 reg <${ramdisk_addr_r} 0x${filesize} >
|
||||
|
||||
load ${devtype} ${devnum} ${loadaddr} xen
|
||||
fdt set /chosen xen,dom0-bootargs "console=hvc0"
|
||||
fdt set /chosen xen,xen-bootargs "dom0_mem=256M loglvl=all guest_loglvl=all"
|
||||
fdt print /chosen
|
||||
bootz ${loadaddr} - ${fdtcontroladdr}
|
||||
25
support/testing/tests/package/test_xen/arm/genimage.cfg
Normal file
25
support/testing/tests/package/test_xen/arm/genimage.cfg
Normal file
@@ -0,0 +1,25 @@
|
||||
image boot.vfat {
|
||||
vfat {
|
||||
files = {
|
||||
"boot.scr",
|
||||
"xen",
|
||||
"zImage",
|
||||
"rootfs.cpio"
|
||||
}
|
||||
}
|
||||
|
||||
size = 128M
|
||||
}
|
||||
|
||||
image disk.img {
|
||||
hdimage {
|
||||
partition-table-type = "gpt"
|
||||
}
|
||||
|
||||
partition boot {
|
||||
image = "boot.vfat"
|
||||
partition-type-uuid = F
|
||||
offset = 32K
|
||||
bootable = true
|
||||
}
|
||||
}
|
||||
163
support/testing/tests/package/test_xen/arm/linux.config
Normal file
163
support/testing/tests/package/test_xen/arm/linux.config
Normal file
@@ -0,0 +1,163 @@
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_NO_HZ_IDLE=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
# CONFIG_CPU_ISOLATION is not set
|
||||
CONFIG_CGROUPS=y
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
# CONFIG_INITRAMFS_PRESERVE_MTIME is not set
|
||||
CONFIG_EXPERT=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
CONFIG_ARCH_VIRT=y
|
||||
CONFIG_ARCH_VEXPRESS=y
|
||||
CONFIG_ARCH_VEXPRESS_TC2_PM=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_MCPM=y
|
||||
CONFIG_NR_CPUS=16
|
||||
CONFIG_HIGHMEM=y
|
||||
CONFIG_ARCH_FORCE_MAX_ORDER=11
|
||||
CONFIG_XEN=y
|
||||
CONFIG_CPU_IDLE=y
|
||||
CONFIG_ARM_CPUIDLE=y
|
||||
CONFIG_ARM_PSCI_CPUIDLE=y
|
||||
CONFIG_VFP=y
|
||||
CONFIG_NEON=y
|
||||
CONFIG_KERNEL_MODE_NEON=y
|
||||
# CONFIG_SUSPEND is not set
|
||||
CONFIG_MODULES=y
|
||||
CONFIG_MODULE_UNLOAD=y
|
||||
CONFIG_PARTITION_ADVANCED=y
|
||||
CONFIG_CMDLINE_PARTITION=y
|
||||
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
|
||||
# CONFIG_SWAP is not set
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_INET=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_IP_PNP_RARP=y
|
||||
CONFIG_QRTR=m
|
||||
CONFIG_PAGE_POOL_STATS=y
|
||||
CONFIG_DEVTMPFS=y
|
||||
CONFIG_DEVTMPFS_MOUNT=y
|
||||
CONFIG_ARM_SCMI_PROTOCOL=y
|
||||
CONFIG_TRUSTED_FOUNDATIONS=y
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_CMDLINE_PARTS=y
|
||||
CONFIG_MTD_BLOCK=y
|
||||
CONFIG_MTD_CFI=y
|
||||
CONFIG_MTD_CFI_INTELEXT=y
|
||||
CONFIG_MTD_PHYSMAP=y
|
||||
CONFIG_MTD_PHYSMAP_OF=y
|
||||
CONFIG_BLK_DEV_LOOP=y
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM_SIZE=65536
|
||||
CONFIG_VIRTIO_BLK=y
|
||||
CONFIG_SRAM=y
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_VIRTIO_NET=y
|
||||
CONFIG_SYSTEMPORT=m
|
||||
CONFIG_MACB=y
|
||||
CONFIG_FTGMAC100=m
|
||||
CONFIG_HIX5HD2_GMAC=y
|
||||
CONFIG_MVMDIO=y
|
||||
CONFIG_SMSC911X=y
|
||||
CONFIG_STMMAC_ETH=y
|
||||
CONFIG_DWMAC_DWC_QOS_ETH=y
|
||||
CONFIG_MDIO_BITBANG=y
|
||||
CONFIG_MDIO_MSCC_MIIM=m
|
||||
# CONFIG_WLAN is not set
|
||||
CONFIG_INPUT_EVDEV=y
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_GPIO_DECODER=m
|
||||
CONFIG_INPUT_ADXL34X=m
|
||||
# CONFIG_SERIO_SERPORT is not set
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_SERIAL_8250=y
|
||||
CONFIG_SERIAL_8250_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_NR_UARTS=5
|
||||
CONFIG_SERIAL_8250_RUNTIME_UARTS=5
|
||||
CONFIG_SERIAL_8250_EXTENDED=y
|
||||
CONFIG_SERIAL_8250_MANY_PORTS=y
|
||||
CONFIG_SERIAL_8250_SHARE_IRQ=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_DEV_BUS=y
|
||||
CONFIG_VIRTIO_CONSOLE=y
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_TCG_TPM=m
|
||||
CONFIG_SPMI=y
|
||||
CONFIG_GPIO_DWAPB=y
|
||||
CONFIG_GPIO_MPC8XXX=y
|
||||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_GPIO_SYSCON=y
|
||||
CONFIG_POWER_RESET_BRCMKONA=y
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_POWER_RESET_SYSCON=y
|
||||
CONFIG_POWER_RESET_SYSCON_POWEROFF=y
|
||||
# CONFIG_HWMON is not set
|
||||
CONFIG_WATCHDOG=y
|
||||
CONFIG_ARM_SP805_WATCHDOG=y
|
||||
CONFIG_DW_WATCHDOG=y
|
||||
CONFIG_BCMA=y
|
||||
CONFIG_BCMA_HOST_SOC=y
|
||||
CONFIG_BCMA_DRIVER_GMAC_CMN=y
|
||||
CONFIG_BCMA_DRIVER_GPIO=y
|
||||
CONFIG_MFD_PM8XXX=y
|
||||
# CONFIG_HID_SUPPORT is not set
|
||||
# CONFIG_USB_SUPPORT is not set
|
||||
CONFIG_EDAC=y
|
||||
CONFIG_RTC_CLASS=y
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
CONFIG_RTC_DRV_PM8XXX=m
|
||||
CONFIG_DMADEVICES=y
|
||||
CONFIG_PL330_DMA=y
|
||||
CONFIG_DW_DMAC=y
|
||||
CONFIG_VIRTIO_MMIO=y
|
||||
# CONFIG_VHOST_MENU is not set
|
||||
CONFIG_COMMON_CLK_SCMI=y
|
||||
CONFIG_HWSPINLOCK=y
|
||||
CONFIG_ARM_GT_INITIAL_PRESCALER_VAL=2
|
||||
CONFIG_MICROCHIP_PIT64B=y
|
||||
CONFIG_MAILBOX=y
|
||||
CONFIG_PL320_MBOX=y
|
||||
CONFIG_MEMORY=y
|
||||
CONFIG_PWM=y
|
||||
CONFIG_RESET_SIMPLE=y
|
||||
# CONFIG_ARM_PMU is not set
|
||||
CONFIG_RAS=y
|
||||
CONFIG_FSI=m
|
||||
CONFIG_FSI_MASTER_GPIO=m
|
||||
CONFIG_FSI_MASTER_HUB=m
|
||||
CONFIG_FSI_MASTER_ASPEED=m
|
||||
CONFIG_FSI_SCOM=m
|
||||
CONFIG_FSI_SBEFIFO=m
|
||||
CONFIG_FSI_OCC=m
|
||||
CONFIG_INTERCONNECT=y
|
||||
CONFIG_COUNTER=m
|
||||
CONFIG_EXT4_FS=y
|
||||
# CONFIG_DNOTIFY is not set
|
||||
# CONFIG_INOTIFY_USER is not set
|
||||
CONFIG_AUTOFS_FS=y
|
||||
CONFIG_MSDOS_FS=y
|
||||
CONFIG_VFAT_FS=y
|
||||
CONFIG_NTFS_FS=y
|
||||
CONFIG_TMPFS=y
|
||||
CONFIG_TMPFS_POSIX_ACL=y
|
||||
# CONFIG_MISC_FILESYSTEMS is not set
|
||||
CONFIG_NLS_CODEPAGE_437=y
|
||||
CONFIG_NLS_ISO8859_1=y
|
||||
CONFIG_NLS_UTF8=y
|
||||
CONFIG_CRC_CCITT=m
|
||||
CONFIG_PRINTK_TIME=y
|
||||
CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
|
||||
CONFIG_DEBUG_INFO_REDUCED=y
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_SCHED_DEBUG is not set
|
||||
# CONFIG_FTRACE is not set
|
||||
@@ -0,0 +1,5 @@
|
||||
name="dom1"
|
||||
kernel="/mnt/zImage"
|
||||
ramdisk="/mnt/rootfs.cpio"
|
||||
memory=256
|
||||
cmdline="console=hvc0"
|
||||
Reference in New Issue
Block a user