qemu aarch64 cannot boot linux kernel v4.6+

Bug #1735653 reported by Joey Jiao
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

Hi,
I tested the latest qemu-system-aarch64 cannot boot linux mainline kernel since v4.6 from https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git.

Environment info:
# host
 ubuntu 16.04
# qemu
 Master branch from git://git.qemu.org/qemu.git, and now the HEAD is c11d61271b9e6e7a1f0479ef1ca8fb55fa457a62.
# build command
 ./configure --target-list=aarch64-softmmu
 make
# qemu commmand
 qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -smp 4 -m 1024 -nographic -s -kernel ~/workspace/linux/arch/arm64/boot/Image -device e1000,netdev=net0 -netdev user,id=net0,hostfwd=tcp::2222-:22

Error info:
 No error prompted, actually no any log which means I couldn't see the usually kernel boot message.

Debug info:
 I did a git bisect on linux, and found with this kernel commit, qemu failed to boot. Parent of 406e308770a92bd33995b2e5b681e86358328bb0 can boot.
 commit 406e308770a92bd33995b2e5b681e86358328bb0
    Author: James Morse <email address hidden>
    Date: Fri Feb 5 14:58:47 2016 +0000

    arm64: add ARMv8.2 id_aa64mmfr2 boiler plate

    ARMv8.2 adds a new feature register id_aa64mmfr2. This patch adds the
    cpu feature boiler plate used by the actual features in later patches.

    Signed-off-by: James Morse <email address hidden>
    Reviewed-by: Suzuki K Poulose <email address hidden>
    Signed-off-by: Catalin Marinas <email address hidden>
 The main change in the patch is to add reg_id_aa64mmfr2 in to arch/arm64/include/asm/cpu.h, so might it be any struct change not included in qemu?

Can you please help check how to fix it?

Thanks

- Joey

Revision history for this message
Peter Maydell (pmaydell) wrote :

This bug was fixed in QEMU commit e20d84c1407d43d, back in 2016. Are you sure you're running the version of QEMU which you've just built, and not the installed system one (which is likely to be older)? Your command line suggests you're running the system one. The newly built binary will be ./aarch64-softmmu/qemu-system-aarch64 in the build directory (and you can check using the --version option what binary you're running).

Revision history for this message
Joey Jiao (joeyjiaojg) wrote :

Thanks Peter,
I repeat the step again and it indeed succeed for v4.9 kernel, So I think the ./aarch64-softmmu/qemu-system-aarch64 should be the issue. The case can be closed now.

Thanks again.

Thomas Huth (th-huth)
Changed in qemu:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.