On Tue, May 22, 2018 at 05:00:52PM -0000, Peter Maydell wrote:
> Mmm, that's not really supposed to happen. Do you have a test guest
> binary you can attach that I can reproduce with?

You can hack kvm-unit-tests to make one pretty quickly.

$ git clone git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git
$ cd kvm-unit-tests
$ cat<<EOF >insns
ldr x0, =19200000
msr cntfrq_el0, x0
b .
EOF
$ sed -i '/start:/r insns' arm/cstart64.S 
$ ./configure --arch=arm64 --cross-prefix=aarch64-linux-gnu-
$ make LOADADDR=0
$ qemu-system-aarch64 -M raspi3 -serial mon:stdio -kernel arm/selftest.flat
VNC server running on ::1:5900
QEMU 2.12.50 monitor - type 'help' for more information
(qemu) info registers 
PC=0000000000000200  SP=0000000000000000
X00=000000000124f800 X01=0000000000000000 X02=0000000000000000 
X03=0000000000000000
X04=0000000000080000 X05=0000000000000000 X06=0000000000000000 
X07=0000000000000000
X08=0000000000000000 X09=0000000000000000 X10=0000000000000000 
X11=0000000000000000
X12=0000000000000000 X13=0000000000000000 X14=0000000000000000 
X15=0000000000000000
X16=0000000000000000 X17=0000000000000000 X18=0000000000000000 
X19=0000000000000000
X20=0000000000000000 X21=0000000000000000 X22=0000000000000000 
X23=0000000000000000
X24=0000000000000000 X25=0000000000000000 X26=0000000000000000 
X27=0000000000000000
X28=0000000000000000 X29=0000000000000000 X30=0000000000000000 
PSTATE=000003c9 ---- NS EL2h
q00=0000000000000000:0000000000000000 q01=0000000000000000:0000000000000000
q02=0000000000000000:0000000000000000 q03=0000000000000000:0000000000000000
q04=0000000000000000:0000000000000000 q05=0000000000000000:0000000000000000
q06=0000000000000000:0000000000000000 q07=0000000000000000:0000000000000000
q08=0000000000000000:0000000000000000 q09=0000000000000000:0000000000000000
q10=0000000000000000:0000000000000000 q11=0000000000000000:0000000000000000
q12=0000000000000000:0000000000000000 q13=0000000000000000:0000000000000000
q14=0000000000000000:0000000000000000 q15=0000000000000000:0000000000000000
q16=0000000000000000:0000000000000000 q17=0000000000000000:0000000000000000
q18=0000000000000000:0000000000000000 q19=0000000000000000:0000000000000000
q20=0000000000000000:0000000000000000 q21=0000000000000000:0000000000000000
q22=0000000000000000:0000000000000000 q23=0000000000000000:0000000000000000
q24=0000000000000000:0000000000000000 q25=0000000000000000:0000000000000000
q26=0000000000000000:0000000000000000 q27=0000000000000000:0000000000000000
q28=0000000000000000:0000000000000000 q29=0000000000000000:0000000000000000
q30=0000000000000000:0000000000000000 q31=0000000000000000:0000000000000000
FPCR: 00000000  FPSR: 00000000
(qemu) q

So the attempted sysreg write causes an exception, pointing to vector
0x200.

Thanks,
drew

> 
> -- 
> You received this bug notification because you are a member of qemu-
> devel-ml, which is subscribed to QEMU.
> https://bugs.launchpad.net/bugs/1771948
> 
> Title:
>   aarch64 msr CNTFRQ_EL0
> 
> Status in QEMU:
>   New
> 
> Bug description:
>   Hello,
> 
>   I'm running qemu 2.12 on a raspberry pi 3 with the command:
> 
>   qemu-system-aarch64 -M raspi3 -serial stdio -kernel executable.bin
> 
>   On my start file (right in the beginning with the highest EL), the
>   following instructions:
> 
>   ldr x0 , =19200000
>   msr CNTFRQ_EL0, x0
> 
>   
>   and qemu halts on the "msr CNTFRQ_EL0, x0" instruction.
> 
>   I believe this is not a normal behavior.
> 
>   Thank you
> 
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/qemu/+bug/1771948/+subscriptions
> 

Reply via email to