Increase VM memory size
Stefan Kalkowski
stefan.kalkowski at genode-labs.com
Thu Sep 27 12:01:30 CEST 2018
Hello,
On Wed, Sep 26, 2018 at 08:27:53PM +0800, lzSun wrote:
> hello,
> I have written an email about to increase the tz_vmm demo's memory size before, but haven't get any answer yet. The thing is, I want to increase the memory size that linux in the normal world can use. During these days, I found the related file which is at
> " /genode/repos/base-hw/include/spec/imx53/drivers/trustzone.h " . In this file I found the NONSECURE_MEMORY_SIZE = 256*1024*1024. So I increase this size to 512*1024*1024, however, when the system booting, it print the error message like:
just increasing the value of the memory size for the non-secure memory
is not sufficient here. The physical memory of the i.MX53 QSB is not
continous. It has 256 MiB starting at 0x70000000 and 256 MiB starting
at 0xb0000000. For our experiments with ARM TrustZone we started on
another platform with continous physical memory, and for ease of
implementation of the VMM example we kept that assumption. Therefore,
we are using just half of the memory on i.MX53 in the TrustZone
example.
If you want to use both regions, you will have to change the Ram class
in and Vm_base class in repos/os/src/server/tz_vmm/include to accept
more than one region, and handle the virtual to physical translations
in the VMM accordingly. Moreover, the additional memory area has to be
added to the ATAG in repos/os/src/server/tz_vmm/spec/imx53_qsb/vm.cc.
Regards
Stefan
> [init -> tz_vmm] Start virtual machine ...
> [init -> tz_vmm] Error: failed to handle data abort
> [init -> tz_vmm] Cpu state:
> [init -> tz_vmm] Register Virt Phys
> [init -> tz_vmm] ------------------------------------
> [init -> tz_vmm] r0 = 0xc0888294 0x80888294
> [init -> tz_vmm] r1 = 0x00000000 0x00000000
> [init -> tz_vmm] r2 = 0x00000020 0x00000000
> [init -> tz_vmm] r3 = 0xd5001000 0x95001000
> [init -> tz_vmm] r4 = 0xc0c28000 0x80c28000
> [init -> tz_vmm] r5 = 0xd50000c0 0x950000c0
> [init -> tz_vmm] r6 = 0xc0888294 0x80888294
> [init -> tz_vmm] r7 = 0xd50000a0 0x950000a0
> [init -> tz_vmm] r8 = 0xd5000000 0x95000000
> [init -> tz_vmm] r9 = 0x00000000 0x00000000
> [init -> tz_vmm] r10 = 0x00000000 0x00000000
> [init -> tz_vmm] r11 = 0xffffffff 0x00000000
> [init -> tz_vmm] r12 = 0x00000001 0x00000000
> [init -> tz_vmm] sp = 0x00000000 0x00000000
> [init -> tz_vmm] lr = 0x00000000 0x00000000
> [init -> tz_vmm] ip = 0xc00cde10 0x800cde10
> [init -> tz_vmm] cpsr = 0x60000093 0x00000000
> [init -> tz_vmm] sp _und = 0xc08e59d8 0x808e59d8
> [init -> tz_vmm] lr _und = 0xc08e59d8 0x808e59d8
> [init -> tz_vmm] spsr _und = 0x00000000 0x00000000
> [init -> tz_vmm] sp _svc = 0xc0887f30 0x80887f30
> [init -> tz_vmm] lr _svc = 0xc00cddf0 0x800cddf0
> [init -> tz_vmm] spsr _svc = 0x00000000 0x00000000
> [init -> tz_vmm] sp _abt = 0xc08e59cc 0x808e59cc
> [init -> tz_vmm] lr _abt = 0xc08e59cc 0x808e59cc
> [init -> tz_vmm] spsr _abt = 0x00000000 0x00000000
> [init -> tz_vmm] sp _irq = 0xc08e59c0 0x808e59c0
> [init -> tz_vmm] lr _irq = 0xc08e59c0 0x808e59c0
> [init -> tz_vmm] spsr _irq = 0x00000000 0x00000000
> [init -> tz_vmm] sp _fiq = 0x00000000 0x00000000
> [init -> tz_vmm] lr _fiq = 0x00000000 0x00000000
> [init -> tz_vmm] spsr _fiq = 0x00000000 0x00000000
> [init -> tz_vmm] ttbr0 = 0x80004019
> [init -> tz_vmm] ttbr1 = 0x80004019
> [init -> tz_vmm] ttbrc = 0x00000000
> [init -> tz_vmm] dfar = 0xc088829c 0x8088829c
> [init -> tz_vmm] exception = data_abort
>
>
>
> Did I missed something ? Any help will be grateful, thanks a lot!
>
>
> ------------------
> Best wishes
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users
--
Stefan Kalkowski
Genode labs
https://github.com.skalk | https://genode.org
More information about the users
mailing list