summary refs log tree commit diff stats
path: root/results/scraper/launchpad-without-comments/1812091
blob: fa178647c39c2c2932bc4e8bb731cd92b0798f51 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
gdbstub memory accesses performed with wrong attributes

Qemu-commit: b2f7c27f56bf1116ebb7848c75914aa7c5d6a040


The ARMv8-M architecture (with security extensions) contains a SAU, the Security Attribution Unit. After booting the mps2-an505 and immediately halting (`-S`), I attempt to read the SAU_TYPE register, located at 0xE000EDD4, using gdb (x 0xE000EDD4). The returned value is 0, while the expected value is 8 (number of regions).

On further investigation, it seems that `attrs.secure` is set to false (armv7m_nvic.c - nvic_readl, line 1167). Commenting out the check will return the correct value.

As the CPU should be in 'secure' mode after reset, I think this behavior is wrong.

Steps to reproduce:
Example code that loads an endless loop into the beginning of secure memory: https://github.com/ajblane/armv8m-hello

Commandline: qemu-system-arm -machine mps2-an505 -cpu cortex-m33 \
	                    -m 4096 \
			    -nographic -serial mon:stdio \
	                    -kernel $(IMAGE) -s -S

Attach with arm-none-eabi-gdb, and run x 0xE000EDD4.