Add armv6l Support as guest

Support for armv6l qemu guests has been added.
Tested with arm1176 CPU on x86.

Signed-off-by: Stefan Schallenberg <infos@nafets.de>
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
This commit is contained in:
Stefan Schallenberg
2018-11-28 21:45:14 +00:00
committed by Andrea Bolognani
parent 55f9f486e1
commit 41cc4ca107
7 changed files with 120 additions and 10 deletions

View File

@@ -81,6 +81,72 @@
</features>
</guest>
<guest>
<os_type>hvm</os_type>
<arch name='armv6l'>
<wordsize>32</wordsize>
<emulator>/usr/bin/qemu-system-arm</emulator>
<machine maxCpus='1'>integratorcp</machine>
<machine maxCpus='2'>nuri</machine>
<machine maxCpus='1'>mps2-an511</machine>
<machine maxCpus='1'>verdex</machine>
<machine maxCpus='1'>mps2-an505</machine>
<machine maxCpus='512'>virt-3.0</machine>
<machine canonical='virt-3.0' maxCpus='512'>virt</machine>
<machine maxCpus='1'>ast2500-evb</machine>
<machine maxCpus='2'>smdkc210</machine>
<machine maxCpus='1'>collie</machine>
<machine maxCpus='1'>imx25-pdk</machine>
<machine maxCpus='1'>spitz</machine>
<machine maxCpus='4'>realview-pbx-a9</machine>
<machine maxCpus='1'>realview-eb</machine>
<machine maxCpus='1'>realview-pb-a8</machine>
<machine maxCpus='1'>versatilepb</machine>
<machine maxCpus='1'>emcraft-sf2</machine>
<machine maxCpus='255'>virt-2.9</machine>
<machine maxCpus='1'>musicpal</machine>
<machine maxCpus='1'>z2</machine>
<machine maxCpus='1'>akita</machine>
<machine maxCpus='255'>virt-2.7</machine>
<machine maxCpus='1'>kzm</machine>
<machine maxCpus='255'>virt-2.8</machine>
<machine maxCpus='4'>realview-eb-mpcore</machine>
<machine maxCpus='2'>mcimx7d-sabre</machine>
<machine maxCpus='1'>sx1</machine>
<machine maxCpus='1'>sx1-v1</machine>
<machine maxCpus='255'>virt-2.6</machine>
<machine maxCpus='1'>cubieboard</machine>
<machine maxCpus='4'>highbank</machine>
<machine maxCpus='4'>raspi2</machine>
<machine maxCpus='1'>netduino2</machine>
<machine maxCpus='1'>terrier</machine>
<machine maxCpus='1'>n810</machine>
<machine maxCpus='1'>mainstone</machine>
<machine maxCpus='1'>palmetto-bmc</machine>
<machine maxCpus='4'>sabrelite</machine>
<machine maxCpus='4'>midway</machine>
<machine maxCpus='1'>romulus-bmc</machine>
<machine maxCpus='1'>cheetah</machine>
<machine maxCpus='1'>tosa</machine>
<machine maxCpus='1'>borzoi</machine>
<machine maxCpus='1'>versatileab</machine>
<machine maxCpus='1'>lm3s6965evb</machine>
<machine maxCpus='1'>n800</machine>
<machine maxCpus='255'>virt-2.10</machine>
<machine maxCpus='255'>virt-2.11</machine>
<machine maxCpus='1'>connex</machine>
<machine maxCpus='255'>virt-2.12</machine>
<machine maxCpus='1'>witherspoon-bmc</machine>
<machine maxCpus='1'>xilinx-zynq-a9</machine>
<machine maxCpus='1'>mps2-an385</machine>
<machine maxCpus='4'>vexpress-a9</machine>
<machine maxCpus='4'>vexpress-a15</machine>
<machine maxCpus='1'>canon-a1100</machine>
<machine maxCpus='1'>lm3s811evb</machine>
<domain type='qemu'/>
</arch>
</guest>
<guest>
<os_type>hvm</os_type>
<arch name='armv7l'>

View File

@@ -392,7 +392,39 @@ static int testQemuAddS390Guest(virCapsPtr caps)
return -1;
}
static int testQemuAddArmGuest(virCapsPtr caps)
static int testQemuAddArm6Guest(virCapsPtr caps)
{
static const char *machines[] = { "versatilepb" };
virCapsGuestMachinePtr *capsmachines = NULL;
virCapsGuestPtr guest;
capsmachines = virCapabilitiesAllocMachines(machines,
ARRAY_CARDINALITY(machines));
if (!capsmachines)
goto error;
guest = virCapabilitiesAddGuest(caps, VIR_DOMAIN_OSTYPE_HVM, VIR_ARCH_ARMV6L,
QEMUBinList[TEST_UTILS_QEMU_BIN_ARM],
NULL,
ARRAY_CARDINALITY(machines),
capsmachines);
if (!guest)
goto error;
if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_QEMU, NULL, NULL, 0, NULL))
goto error;
if (!virCapabilitiesAddGuestDomain(guest, VIR_DOMAIN_VIRT_KVM,
NULL, NULL, 0, NULL))
goto error;
return 0;
error:
virCapabilitiesFreeMachines(capsmachines, ARRAY_CARDINALITY(machines));
return -1;
}
static int testQemuAddArm7Guest(virCapsPtr caps)
{
static const char *machines[] = { "vexpress-a9",
"vexpress-a15",
@@ -514,7 +546,10 @@ virCapsPtr testQemuCapsInit(void)
if (testQemuAddS390Guest(caps))
goto cleanup;
if (testQemuAddArmGuest(caps))
if (testQemuAddArm6Guest(caps))
goto cleanup;
if (testQemuAddArm7Guest(caps))
goto cleanup;
if (testQemuAddAARCH64Guest(caps))