Skip to content

QEMU occurs an Error when testing my DIY UEFI aarch64 kernel:Synchronous Exception at 0x00000000E46CCEAC

Host environment

  • Operating system: Fedora
  • OS/kernel version: 40
  • Architecture: x64
  • QEMU flavor: qemu-system-aarch64
  • QEMU version: 9.0.0
  • QEMU command line:(using the libvirt and virt-manager,I can't find out where is the gdb switch for virt-manager)
  • /usr/bin/swtpm socket --ctrl type=unixio,path=/run/libvirt/qemu/swtpm/4-vm-aarch64-swtpm.sock,mode=0600 --tpmstate dir=/var/lib/libvirt/swtpm/ef4ab4e4-e9fd-4bde-9c6a-d7541e5906c5/tpm2,mode=0600 --log file=/var/log/swtpm/libvirt/qemu/vm-aarch64-swtpm.log --terminate --tpm2 2024-06-07 01:35:17.953+0000: starting up libvirt version: 10.2.0, package: 2.fc40 (Unknown, 2024-04-06-19:53:51, ), qemu version: 9.0.0qemu-9.0.0-1.fc40, kernel: 6.8.11-300.fc40.x86_64, hostname: fedora.localdomain LC_ALL=C
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
    USER=root
    HOME=/var/lib/libvirt/qemu/domain-4-vm-aarch64
    XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-4-vm-aarch64/.local/share
    XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-4-vm-aarch64/.cache
    XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-4-vm-aarch64/.config
    /usr/bin/qemu-system-aarch64
    -name guest=vm-aarch64,debug-threads=on
    -S
    -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-4-vm-aarch64/master-key.aes"}'
    -blockdev '{"driver":"file","filename":"/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.qcow2","node-name":"libvirt-pflash0-storage","auto-read-only":true,"discard":"unmap"}'
    -blockdev '{"node-name":"libvirt-pflash0-format","read-only":true,"driver":"qcow2","file":"libvirt-pflash0-storage"}'
    -blockdev '{"driver":"file","filename":"/var/lib/libvirt/qemu/nvram/vm-aarch64_VARS.qcow2","node-name":"libvirt-pflash1-storage","auto-read-only":true,"discard":"unmap"}'
    -blockdev '{"node-name":"libvirt-pflash1-format","read-only":false,"driver":"qcow2","file":"libvirt-pflash1-storage"}'
    -machine virt-9.0,usb=off,gic-version=2,dump-guest-core=off,memory-backend=mach-virt.ram,pflash0=libvirt-pflash0-format,pflash1=libvirt-pflash1-format,acpi=on
    -accel tcg
    -cpu cortex-a57
    -m size=4194304k
    -object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":4294967296}'
    -overcommit mem-lock=off
    -smp 4,sockets=4,cores=1,threads=1
    -uuid ef4ab4e4-e9fd-4bde-9c6a-d7541e5906c5
    -no-user-config
    -nodefaults
    -chardev socket,id=charmonitor,fd=29,server=on,wait=off
    -mon chardev=charmonitor,id=monitor,mode=control
    -rtc base=utc
    -no-shutdown
    -boot strict=on
    -device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x1"}'
    -device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x1.0x1"}'
    -device '{"driver":"pcie-root-port","port":10,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x1.0x2"}'
    -device '{"driver":"pcie-root-port","port":11,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x1.0x3"}'
    -device '{"driver":"pcie-root-port","port":12,"chassis":5,"id":"pci.5","bus":"pcie.0","addr":"0x1.0x4"}'
    -device '{"driver":"pcie-root-port","port":13,"chassis":6,"id":"pci.6","bus":"pcie.0","addr":"0x1.0x5"}'
    -device '{"driver":"pcie-root-port","port":14,"chassis":7,"id":"pci.7","bus":"pcie.0","addr":"0x1.0x6"}'
    -device '{"driver":"pcie-root-port","port":15,"chassis":8,"id":"pci.8","bus":"pcie.0","addr":"0x1.0x7"}'
    -device '{"driver":"pcie-root-port","port":16,"chassis":9,"id":"pci.9","bus":"pcie.0","multifunction":true,"addr":"0x2"}'
    -device '{"driver":"pcie-root-port","port":17,"chassis":10,"id":"pci.10","bus":"pcie.0","addr":"0x2.0x1"}'
    -device '{"driver":"pcie-root-port","port":18,"chassis":11,"id":"pci.11","bus":"pcie.0","addr":"0x2.0x2"}'
    -device '{"driver":"pcie-root-port","port":19,"chassis":12,"id":"pci.12","bus":"pcie.0","addr":"0x2.0x3"}'
    -device '{"driver":"pcie-root-port","port":20,"chassis":13,"id":"pci.13","bus":"pcie.0","addr":"0x2.0x4"}'
    -device '{"driver":"pcie-root-port","port":21,"chassis":14,"id":"pci.14","bus":"pcie.0","addr":"0x2.0x5"}'
    -device '{"driver":"qemu-xhci","p2":15,"p3":15,"id":"usb","bus":"pci.2","addr":"0x0"}'
    -device '{"driver":"virtio-scsi-pci","id":"scsi0","bus":"pci.3","addr":"0x0"}'
    -device '{"driver":"virtio-serial-pci","id":"virtio-serial0","bus":"pci.4","addr":"0x0"}'
    -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/vm-aarch64.img","node-name":"libvirt-2-storage","read-only":false}'
    -device '{"driver":"virtio-blk-pci","bus":"pci.5","addr":"0x0","drive":"libvirt-2-storage","id":"virtio-disk0","bootindex":1}'
    -blockdev '{"driver":"file","filename":"/home/tydq/下载/cdimageaarch64.iso","node-name":"libvirt-1-storage","read-only":true}'
    -device '{"driver":"scsi-cd","bus":"scsi0.0","channel":0,"scsi-id":0,"lun":0,"device_id":"drive-scsi0-0-0-0","drive":"libvirt-1-storage","id":"scsi0-0-0-0","bootindex":2}'
    -netdev '{"type":"tap","fd":"30","id":"hostnet0"}'
    -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:4e:f8:fa","bus":"pci.1","addr":"0x0"}'
    -chardev pty,id=charserial0
    -serial chardev:charserial0
    -chardev socket,id=charchannel0,fd=28,server=on,wait=off
    -device '{"driver":"virtserialport","bus":"virtio-serial0.0","nr":1,"chardev":"charchannel0","id":"channel0","name":"org.qemu.guest_agent.0"}'
    -chardev socket,id=chrtpm,path=/run/libvirt/qemu/swtpm/4-vm-aarch64-swtpm.sock
    -tpmdev emulator,id=tpm-tpm0,chardev=chrtpm
    -device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}'
    -device '{"driver":"usb-kbd","id":"input0","bus":"usb.0","port":"1"}'
    -device '{"driver":"usb-tablet","id":"input1","bus":"usb.0","port":"2"}'
    -audiodev '{"id":"audio1","driver":"spice"}'
    -spice port=5900,addr=127.0.0.1,disable-ticketing=on,image-compression=off,seamless-migration=on
    -device '{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.6","addr":"0x0"}'
    -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny
    -msg timestamp=on

Emulated/Virtualized environment

  • Operating system: my DIY kernel(TYDQ System,which source code is on githubUEFIPascalOS)
  • OS/kernel version: 0.0.1
  • Architecture: aarch64(arm64)

Description of problem

Shows Synchronous Exception at 0x00000000E46CCEAC and the program halts.

Steps to reproduce

1.Download the UEFIPascalOS on github. 2.run the bash buildaarch64.sh to build the kernel iso. 3.Go through the installer guide and enter the kernel. 4.Enter the account's name and password and press enter,now you can got an error that shows Synchronous Exception at 0x00000000E46CCEAC

Additional information

(no logs,stack traces was shown for the error because logs and stack traces are not exists.) screenshots: ScreenShot.png If I create two accounts,it will halt on sentence "Welcome to TYDQ System!" and give me Synchronous Exception at other numbers. If I change the memory in virt-machine,the Synchronous Exception showing number will be changed.

Edited by Yi Kai Chen
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information