id = 747 title = "hvf-accelerated aarch64 hangs when switching to big endian mode" state = "closed" created_at = "2021-11-24T19:30:04.332Z" closed_at = "2021-11-26T20:44:43.497Z" labels = ["Closed::WontFix", "accel: HVF", "target: arm", "workflow::Needs Info"] url = "https://gitlab.com/qemu-project/qemu/-/issues/747" host-os = "macOS Monterey Version 12.0.1" host-arch = "ARM" qemu-version = "QEMU emulator version 6.1.0" guest-os = "Gentoo Linux" guest-arch = "ARM (64 bit big endian)" description = """Trying to boot a big endian Linux kernel using the above command line on an M1 Mac Mini just hangs, there is not a single output. However, by replacing `hvf` with `tcg`, the kernel boots up fine. The kernel also starts if I use KVM acceleration on a Linux host system.""" reproduce = """1. Build a Linux kernel for big endian arm64 2. Try to boot it with -accel hvf on an M1 Mac 3. Observe a lot of nothing happening :-)""" additional = """Sample run, TCG vs HVF ``` mikan:/tmp% qemu-system-aarch64 -accel tcg -machine virt,highmem=off -cpu cortex-a72 -nographic -kernel /tmp/vmlinuz-5.10.76-gentoo-r1-arm64.be |& head -16 [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083] [ 0.000000] Linux version 5.10.76-gentoo-r1-arm64 (root@localhost) (aarch64-unknown-linux-gnu-gcc (Gentoo 11.2.0 p1) 11.2.0, GNU ld (Gentoo 2.37_p1 p0) 2.37) #1 SMP Sun Nov 21 16:30:21 -00 2021 [ 0.000000] Machine model: linux,dummy-virt [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x0000000047ffffff] [ 0.000000] NUMA: NODE_DATA [mem 0x47f65300-0x47f76fff] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x0000000047ffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000040000000-0x0000000047ffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000047ffffff] [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv0.2 detected in firmware. mikan:/tmp% qemu-system-aarch64 -accel hvf -machine virt,highmem=off -cpu cortex-a72 -nographic -kernel /tmp/vmlinuz-5.10.76-gentoo-r1-arm64.be ``` (followed by tumbleweeds)"""