On 22.07.20 15:06, Jakub Lužný wrote:
Hi!
For the project I'm working on I would like to allow Jailhouse to use
more than 1 GiB memory on the Raspberry Pi 4. Following the memory map
from BCM2711 documentation (
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2711/rpi_DATA_2711_1p0.pdf
) and /proc/iomem, I added this section into rpi4.cell:
/* RAM (1024M-4032M) */ {
.phys_start = 0x40000000,
.virt_start = 0x40000000,
.size = 0xbc000000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE,
},
When I left mem=768M in the kernel command line, everything worked as
before. But I wanted to use more memory, so I made a reserved-memory
section in a device tree overlay. It reserves the range of 768M-1024M
and verified it's working as expected in /proc/iomem. However, when I
try to enable Jailhouse using the modified rpi4.cell, I get this error:
root@demo:~# jailhouse enable rpi4-4g.cell
Initializing Jailhouse hypervisor v0.12 (59-g4ce7658d) on CPU 3
Code location: 0x0000ffffc0200800
Page pool usage after early setup: mem 39/994, remap 0/131072
Initializing processors:
CPU 3... OK
CPU 0... OK
CPU 2... OK
CPU 1... OK
Initializing unit: irqchip
Initializing unit: ARM SMMU v3
Initializing unit: PVU IOMMU
Initializing unit: PCI
Adding virtual PCI device 00:00.0 to cell "Raspberry-Pi4 4G"
Adding virtual PCI device 00:01.0 to cell "Raspberry-Pi4 4G"
Page pool usage after late setup: mem 61/994, remap 5/131072
FATAL: instruction abort at 0xfbfff7c0
FATAL: forbidden access (exception class 0x20)
Cell state before exception:
pc: ffffffc0089fd7c0 lr: ffffffc0089fd7c0 spsr: 20000085 EL1
sp: ffffffc01000bef0 esr: 20 1 0000086
x0: 0000000000000000 x1: 0000000000000000 x2: 0000000000000000
x3: 0000000000000000 x4: 0000000000000000 x5: 0000000000000000
x6: 0000000000000000 x7: 0000000000000000 x8: 0000000000000000
x9: 0000000000000000 x10: 0000000000000000 x11: 0000000000000000
x12: 0000000000000000 x13: 0000000000000000 x14: 0000000000000000
x15: 0000000000000000 x16: 0000000000000000 x17: 0000000000000000
x18: 0000000000000000 x19: ffffffc008a04c28 x20: ffffffc014800000
x21: 0000000000000000 x22: 0000000000000001 x23: 0000000000000000
x24: 0000000000000001 x25: 0000000000000001 x26: ffffffc010fe3dc0
x27: 0000000000000000 x28: ffffff80f6da5940 x29: ffffffc01000bef0
Parking CPU 1 (Cell: "Raspberry-Pi4 4G")
The address 0xfbfff7c0 is in the range that is mentioned in the added
RAM section.
Any ideas or hints what else could be wrong?
Sorry for the late reply. From your description, I also do not see why
this shouldn't work. Not other changes made than described?
If things got that weird, I sometimes instrumented paging_create()
(printk) to match the actually performed mappings against expectations.
"jailhouse config check" is now also available, just to double-check.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/32ebc4ac-1d9d-8983-4c25-e23856da2fad%40siemens.com.