Skip to content

MPS2 AN521 has the wrong number of MPU region defined

Host environment

  • Operating system: any
  • OS/kernel version: any
  • Architecture: any
  • QEMU flavor: qemu-system-arm
  • QEMU version: 7.0.0
  • QEMU command line:
    qemu-system-arm -machine mps2-an521 -chardev stdio,id=con,mux=on -serial chardev:con -kernel ./build/zephyr/zephyr.elf

Emulated/Virtualized environment

  • Operating system: Zephyr
  • OS/kernel version: git
  • Architecture: Arm

Description of problem

The AN521 is integrating SSE-200 on the MPS2+ FPGA prototyping board. The current implementation in qemu behaves as though there are 16MPU regions when it really only has 8, as describes as MPU_NS and MPU_S core configuration parameters in the SSE-200's Techincal Reference Manual.

Steps to reproduce

  1. Prepare your Zephyr dev environment
  2. fix boards/arm/mps2_an521/mps2_an521.dts to set arm,num-mpu-regions to the appropriate value of 8.
  3. build a Zephyr test such as west build -p -b mps2_an521 -T tests/kernel/interrupt/arch.interrupt
  4. run qemu-system-arm -machine mps2-an521 -chardev stdio,id=con,mux=on -serial chardev:con -kernel ./build/zephyr/zephyr.elf

Additional information

With matching MPU region number in QEMU and Zephyr's DTS, the application shows the test suite's progress & outcome. If there's a mismatch, the application will enter a fault and not display the expected traces.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information