Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for ARM64 (aarch64) #2030

Merged
merged 6 commits into from Mar 4, 2015
Merged

Add support for ARM64 (aarch64) #2030

merged 6 commits into from Mar 4, 2015

Conversation

ldoktor
Copy link
Member

@ldoktor ldoktor commented Feb 28, 2015

This pull request is based on #2012 please review only the last commit here.

BEWARE: You need the latest qemu to test this version as it requires patches for UEFI to support -kernel and loading of gzipped kernels (I have a version which uses the unpacked kernel in my tree, but as this support is upstream I decided not to use include it here)

It defines aarch64 (arm64) machine. Currently qemu on arm64 doesn't
support any buses except the 'virtio-bus', thus more intrusive changes
were necessarily.

  1. machine_type=virt, cpu_model=host, vga=none, usbs=none
  2. instead of "virtio--pci" devices, "virtio--device" are used
    without the possibility of setting address.
  3. AAVMF EFI bios is copied from installed location (/usr/share/AAVMF)
  4. When provided install CD doesn't contain 'isolinux' directory,
    non-bootable CD is created. This works fine with UEFI boot.

Signed-off-by: Lukáš Doktor ldoktor@redhat.com

@ldoktor
Copy link
Member Author

ldoktor commented Feb 28, 2015

# Add arm64 variant of RHEL7
./run -v -t qemu --arch arm64 -g RHEL.7.0 --no-download -b
# Go through bootstrap
./run -v -t qemu --arch arm64 -g RHEL.7.0 --no-download --qemu_sandbox=off --tests 'unattended_install.cdrom.extra_cdrom_ks.default_install.aio_native' --smp 2 -m 2048
...
17:07:52 INFO | PASS io-github-autotest-qemu.unattended_install.cdrom.extra_cdrom_ks.default_install.aio_native                                                
17:07:52 INFO |                                                                                                                                                
17:07:52 INFO | Cleaning tmp files and VM processes...                                                                                                         
17:07:52 WARNI| Creating new, empty env file                                                                                                                   
17:07:53 INFO |                                                                                                                                                
17:07:53 INFO | Job total elapsed time: 4235.70 s                                                                                                              
17:07:53 INFO | Tests passed: 1                                                                                                                                
17:07:53 INFO | Tests failed: 0                                                                                                                                
17:07:53 INFO | Success rate: 100.00 %                                                                                                                         

@ldoktor ldoktor force-pushed the arm64 branch 2 times, most recently from e4be4ba to 8fff03b Compare March 3, 2015 08:57
@ldoktor
Copy link
Member Author

ldoktor commented Mar 3, 2015

[root@apm-mustang-ev3-03 virt-test]# ./run -t qemu --arch arm64 -g RHEL.7.0 --no-download --qemu_sandbox=off --tests 'unattended_install.cdrom.extra_cdrom_ks.default_install.aio_native boot' --smp 2 -m 8192
SETUP: PASS (0.40 s)
DATA DIR: /home/virt-test/shared/data
DEBUG LOG: /home/virt-test/logs/run-2015-03-03-09.48.44/debug.log
TESTS: 2
(1/2) io-github-autotest-qemu.unattended_install.cdrom.extra_cdrom_ks.default_install.aio_native: PASS (4260.46 s)
(2/2) io-github-autotest-qemu.boot: PASS (82.05 s)
TOTAL TIME: 4355.48 s (01:12:35)
TESTS PASSED: 2
TESTS FAILED: 0
SUCCESS RATE: 100.00 %

With the last commit even the 'boot' test passes (sorry I forgot to test that one earlier).

@lmr
Copy link
Member

lmr commented Mar 3, 2015

OK, let me give this a spin.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
Instead of hardcoded /dev/ttyS0 and in some cases /dev/hvc0 use
/proc/consoles and write to all slecified consoles. This is necessarily
for ARM as it uses /dev/ttyAMA0 and adding another tty is just madness

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
Default passwords in autotest is "123456". Although when graphical
installation is available, it's used by default, while requiring it
makes machines without VGA fail.

Last change is to always poweroff the machine. This is required by
unattended_install tests at the end.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
PPC64 doesn't support VGA and uhci USB.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
This pull request defines aarch64 (arm64) machine. Currently it doesn't
support any buses except the 'virtio-bus', thus more intrusive changes
were necessarily.

1) machine_type=virt, cpu_model=host, vga=none, usbs=none
2) instead of "virtio-*-pci" devices, "virtio-*-device" are used
   without the possibility of setting address.
3) AAVMF EFI bios is copied from installed location (/usr/share/AAVMF)
4) When provided install CD doesn't contain 'isolinux' directory,
   non-bootable CD is created. This works fine with UEFI boot.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
The UEFI storage (AAVMF variables files) is bound to base image to be
able to boot the image it needs to be configured properly. This is a
very simple implementation which bounds the AAVMF file to the first
image of the VM. The same VMs would share the single AAVMF file. This
should work fine as they are only modified during installation.

The result of this patch is that when you use multiple VMs of the same
base_image, they'll start properly. In case the file is missing, it's
created and WARNING message is printed into the log file informing about
the consequences.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
@ldoktor
Copy link
Member Author

ldoktor commented Mar 4, 2015

Rebased, fixed the issues (ppc part) found by @lmr and added new commit which shares AAVMF_VARS for the same base-images (still need to work-out the clonning, but at least tests using original image with snapshot=on works fine, tested on the cgroup test).

lmr added a commit that referenced this pull request Mar 4, 2015
Add support for ARM64 (aarch64)
@lmr lmr merged commit c0376ae into autotest:master Mar 4, 2015
@lmr
Copy link
Member

lmr commented Mar 4, 2015

Thanks @ldoktor!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants