To reproduce it, build Linux 5.4.2 with the bmc2835_defconfig:
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make mrproper
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make bcm2835_defconfig
$ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make -j5
...
First build QEMU without debugging and try to boot linux:
$ ./configure --target-list=arm-softmmu; make clean; make -j5
$ ./arm-softmmu/qemu-system-arm -M raspi2 \
-kernel $HOME/linux-5.4.2/arch/arm/boot/zImage \
-append 'console=ttyAMA0,115200 earlyprintk debug' \
-dtb $HOME/linux-5.4.2/arch/arm/boot/dts/bcm2836-rpi-2-b.dtb \
-m 1024 -nographic -s
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.4.2 (me@host) (gcc version 7.4.0 (Ubuntu/Linaro
7.4.0-1ubuntu1~18.04.1)) #1 Thu Dec 12 22:49:14 CET 2019
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d
...
Then rebuild QEMU with debugging enabled and again try to boot linux:
$ ./configure --target-list=arm-softmmu --enable-debug --extra-cflags=-ggdb;
make clean; make -j5
$ ./arm-softmmu/qemu-system-arm -M raspi2 \
-kernel $HOME/linux-5.4.2/arch/arm/boot/zImage \
-append 'console=ttyAMA0,115200 earlyprintk debug' \
-dtb $HOME/linux-5.4.2/arch/arm/boot/dts/bcm2836-rpi-2-b.dtb \
-m 1024 -nographic -s
qemu-system-arm: /home/me/qemu/target/arm/helper.c:11359: cpu_get_tb_cpu_state:
Assertion `flags == rebuild_hflags_internal(env)' failed.
qemu-system-arm: /home/me/qemu/target/arm/helper.c:11359: cpu_get_tb_cpu_state:
Assertion `flags == rebuild_hflags_internal(env)' failed.
qemu-system-arm: /home/me/qemu/target/arm/helper.c:11359: cpu_get_tb_cpu_state:
Assertion `flags == rebuild_hflags_internal(env)' failed.
Aborted (core dumped)
$ git describe
v4.2.0
What should be the next step? Should this be reported as a bug?
On Tue, Dec 10, 2019 at 9:12 PM Niek Linnenbank
<address@hidden <mailto:address@hidden>> wrote:
Hi Philippe,
On Tue, Dec 10, 2019 at 9:26 AM Philippe Mathieu-Daudé
<address@hidden <mailto:address@hidden>> wrote:
On 12/9/19 10:37 PM, Niek Linnenbank wrote:
> Hi Philippe,
>
> On Tue, Dec 3, 2019 at 9:47 AM Philippe Mathieu-Daudé
<address@hidden <mailto:address@hidden>
> <mailto:address@hidden <mailto:address@hidden>>> wrote:
>
> On 12/2/19 10:09 PM, Niek Linnenbank wrote:
> > Dear QEMU developers,
> >
> > Hereby I would like to contribute the following set of
patches to
> QEMU
> > which add support for the Allwinner H3 System on Chip
and the
> > Orange Pi PC machine. The following features and
devices are
> supported:
> >
> > * SMP (Quad Core Cortex A7)
> > * Generic Interrupt Controller configuration
> > * SRAM mappings
> > * Timer device (re-used from Allwinner A10)
> > * UART
> > * SD/MMC storage controller
> > * EMAC ethernet connectivity
> > * USB 2.0 interfaces
> > * Clock Control Unit
> > * System Control module
> > * Security Identifier device
>
> Awesome!
>
> > Functionality related to graphical output such as
HDMI, GPU,
> > Display Engine and audio are not included. Recently
released
> > mainline Linux kernels (4.19 up to latest master) and
mainline U-Boot
> > are known to work. The SD/MMC code is tested using
bonnie++ and
> > various tools such as fsck, dd and fdisk. The EMAC is
verified
> with iperf3
> > using -netdev socket.
> >
> > To build a Linux mainline kernel that can be booted by
the Orange
> Pi PC
> > machine, simply configure the kernel using the
sunxi_defconfig
> configuration:
> > $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make
mrproper
> > $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make
sunxi_defconfig
> >
> > To be able to use USB storage, you need to manually
enable the
> corresponding
> > configuration item. Start the kconfig configuration tool:
> > $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make
menuconfig
> >
> > Navigate to the following item, enable it and save your
> configuration:
> > Device Drivers > USB support > USB Mass Storage support
> >
> > Build the Linux kernel with:
> > $ ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make -j5
> >
> > To boot the newly build linux kernel in QEMU with the
Orange Pi
> PC machine, use:
> > $ qemu-system-arm -M orangepi -m 512 -nic user
-nographic \
> > -kernel /path/to/linux/arch/arm/boot/zImage \
> > -append 'console=ttyS0,115200' \
> > -dtb
/path/to/linux/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dtb
> >
> > Note that this kernel does not have a root filesystem.
You may
> provide it
> > with an official Orange Pi PC image [1] either as an
SD card or as
> > USB mass storage. To boot using the Orange Pi PC
Debian image on
> SD card,
> > simply add the -sd argument and provide the proper
root= kernel
> parameter:
> > $ qemu-system-arm -M orangepi -m 512 -nic user
-nographic \
> > -kernel /path/to/linux/arch/arm/boot/zImage \
> > -append 'console=ttyS0,115200 root=/dev/mmcblk0p2' \
> > -dtb
> /path/to/linux/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dtb \
> > -sd
OrangePi_pc_debian_stretch_server_linux5.3.5_v1.0.img
> >
> > Alternatively, you can also choose to build and boot a
recent
> buildroot [2]
> > using the orangepi_pc_defconfig or Armbian image [3]
for Orange
> Pi PC.
>
> Richard, trying the Armbian image from
> https://apt.armbian.com/pool/main/l/linux-4.20.7-sunxi/ I get:
>
> $ arm-softmmu/qemu-system-arm -M orangepi -m 512 -nic user \
> -append 'console=ttyS0,115200' \
> -kernel boot/vmlinuz-4.20.7-sunxi \
> -dtb
usr/lib/linux-image-dev-sunxi/sun8i-h3-orangepi-pc.dtb \
> -serial stdio -d unimp
> Uncompressing Linux... done, booting the kernel.
> rtc: unimplemented device write (size 4, value
0x16aa0001, offset 0x0)
> rtc: unimplemented device read (size 4, offset 0x0)
> rtc: unimplemented device read (size 4, offset 0x0)
> rtc: unimplemented device read (size 4, offset 0x8)
> qemu-system-arm: target/arm/helper.c:11359:
cpu_get_tb_cpu_state:
> Assertion `flags == rebuild_hflags_internal(env)' failed.
> Aborted (core dumped)
>
>
> I'm trying to reproduce the error you reported here with my
patch set on
> latest master,
> but so far without any result. The host OS I'm using is
Ubuntu 18.04.3
> LTS on x86_64.
> I ran several times using the same 4.20.7-sunxi kernel and
same command
> line.
>
> Some questions that might help:
> 1) Are there any specific steps you did in order to produce
this error?
I build QEMU with:
./configure --enable-trace-backends=log --extra-cflags=-ggdb
--enable-debug
> 2) Could this be a known / existing issue?
> 3) How many times did you see this error?
Always
> 4) Are you also using Ubuntu 18.04.3 LTS on x86_64, or a
different host OS?
Host is Fedora 30.
OK thanks, I will try again using the info above after I finished
reworking the other patch comments.
Niek