[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1923861] Re: Hardfault when accessing FPSCR register
From: |
ml-0 |
Subject: |
[Bug 1923861] Re: Hardfault when accessing FPSCR register |
Date: |
Fri, 16 Apr 2021 07:51:39 -0000 |
Thanks for the fix. I applied it and
1. yes, the hard fault when reading FPSCR is gone.
2. yes, I also see the UNDEF. Note that on the Corstone-300 MPS3-AN547 FVP I
can access mvfr0 via vmrs.
I changed the vmrs to ldr. Now I can read the registers. The values differ from
what the FVP tells me:
fpscr = 0x00000000 (qemu-system-arm) - 0x00040000 (Corstone FVP)
mvfr0 = 0x10110021 - 0x10110221
mvfr1 = 0x11000011 - 0x12100211
mvfr2 = 0x00000040 - 0x00000040
Using the FPU for some simple calculations
volatile int nom_i, den_i;
nom_i = 7;
den_i = 3;
volatile float nom_f, den_f, div_f;
nom_f = (float)nom_i;
den_f = (float)den_i;
div_f = nom_f / den_f;
printf("%e / %f = %f\r\n", nom_f, den_f, div_f);
I run into another UNDEF when executing
vcvt.f64.f32 d6, s12
Again, the FVP can execute the same elf. I attached it. Maybe you can
have another look.
** Attachment added: "test2.elf"
https://bugs.launchpad.net/qemu/+bug/1923861/+attachment/5488742/+files/test2.elf
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1923861
Title:
Hardfault when accessing FPSCR register
Status in QEMU:
New
Bug description:
QEMU release version: v6.0.0-rc2
command line:
qemu-system-arm -machine mps3-an547 -nographic -kernel <my_project>.elf
-semihosting -semihosting-config enable=on,target=native
host operating system: Linux ISCNR90TMR1S 5.4.72-microsoft-standard-
WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 x86_64 x86_64
GNU/Linux
guest operating system: none (bare metal)
Observation:
I am simulating embedded firmware for a Cortex-M55 device, using MPS3-AN547
machine. In the startup code I am accessing the FPSCR core register:
unsigned int fpscr =__get_FPSCR();
fpscr = fpscr & (~FPU_FPDSCR_AHP_Msk);
__set_FPSCR(fpscr);
where the register access functions __get_FPSCR() and
__set_FPSCR(fpscr) are taken from CMSIS_5 at
./CMSIS/Core/include/cmsis_gcc.h
I observe hardfaults upon __get_FPSCR() and __set_FPSCR(fpscr). The
same startup code works fine on the Arm Corstone-300 FVP (MPS3-AN547).
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1923861/+subscriptions
- [Bug 1923861] [NEW] Hardfault when accessing FPSCR register, ml-0, 2021/04/14
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, ml-0, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, ml-0, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, ml-0, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/15
- [Bug 1923861] Re: Hardfault when accessing FPSCR register,
ml-0 <=
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/16
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/16
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, ml-0, 2021/04/16
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/16
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/16
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, ml-0, 2021/04/16
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Peter Maydell, 2021/04/19
- [Bug 1923861] Re: Hardfault when accessing FPSCR register, Thomas Huth, 2021/04/30