TK1 VMM SMMU Translation Error
Hello All, We have recently run into an issue trying to boot the TK1 VMM on a TK1 Jetson board. The kernel tries to run but soon runs into translation errors after a couple of seconds. We are using the non-secure dtb with the initrd image. Here are some of the lines, it continues on like this and never stops. SMMU Address translation error: ID: 1 address: 0x0 type: 6 direction: 0x0 IOPT permission: read 0x0 write 0x0 nonsecure 0x0 SMMU Address translation error: ID: 1 address: 0x18fc00 type: 6 direction: 0x0 IOPT permission: read 0x0 write 0x0 nonsecure 0x SMMU Address translation error: ID: 1 address: 0x912c0 type: 6 direction: 0x0 We had success running the VM using the previous commit from camkes-arm-vmm repo, but the newest commit has introduced this issue. We have isolated it to line 93 in the "vmm_common.camkes" file. Removing "0x54200000:18", // Display A" from the file fixes the problem and we can boot as normal. We are also running Uboot 2010-10-rc5 as suggested by a email on the board. I am still new to working down to this level of code so any help in understanding this problem is appreciated.
Hi,
We recently changed a configuration so that SMMU_INTERRUPT_ENABLE? was default enabled. This causes SMMU faults to be printed out (and sometimes prevent the system from making progress), if you want to stop this behavior, changing this setting to not enabled will prevent the errors from being printed out and the VM should continue to boot. Alternatively, adding the SMMU permission to the display device would require adding the IDs 2 and 3 to the vm.smmu field in vm_common.camkes. Alternatively, removing the display MMIO frames like you have done also works. We are working on making it easier to configure what hardware devices are passed through to the VM because SMMU permissions are only passed through for just the SDMMC4 and AHB bus devices.
Kent.
________________________________
From: Devel
I tried adding 2 and 3 to the SMMU field but that did not work. Disabling
the SMMU interrupts did the trick though.
Thank you for the help. On a side note, I am hoping to provide my own
Buildroot with some other packages added in.
I noticed on the repo that that the provided Buildroot configs use the
secure dtb and that using the non-secure one requires configuring
Buildroot to use "tegra124-jetson-tk1-sel4vm.dts".
I having trouble finding a reference to such a file. I noticed the recent
commit has included the uncompiled dts files. I am just wondering if those
are the ones being referenced.
Best,
Enrique S. Leon
On Mon, Mar 13, 2017 at 5:11 PM,
Hi,
We recently changed a configuration so that SMMU_INTERRUPT_ENABLE was default enabled. This causes SMMU faults to be printed out (and sometimes prevent the system from making progress), if you want to stop this behavior, changing this setting to not enabled will prevent the errors from being printed out and the VM should continue to boot. Alternatively, adding the SMMU permission to the display device would require adding the IDs 2 and 3 to the vm.smmu field in vm_common.camkes. Alternatively, removing the display MMIO frames like you have done also works. We are working on making it easier to configure what hardware devices are passed through to the VM because SMMU permissions are only passed through for just the SDMMC4 and AHB bus devices.
Kent. ------------------------------ *From:* Devel
on behalf of Enrique Leon < enriquesleon@gmail.com> *Sent:* Tuesday, March 14, 2017 4:47 AM *To:* devel@sel4.systems *Subject:* [seL4] TK1 VMM SMMU Translation Error Hello All,
We have recently run into an issue trying to boot the TK1 VMM on a TK1 Jetson board. The kernel tries to run but soon runs into translation errors after a couple of seconds. We are using the non-secure dtb with the initrd image.
Here are some of the lines, it continues on like this and never stops.
SMMU Address translation error: ID: 1 address: 0x0 type: 6 direction: 0x0 IOPT permission: read 0x0 write 0x0 nonsecure 0x0 SMMU Address translation error: ID: 1 address: 0x18fc00 type: 6 direction: 0x0 IOPT permission: read 0x0 write 0x0 nonsecure 0x SMMU Address translation error: ID: 1 address: 0x912c0 type: 6 direction: 0x0
We had success running the VM using the previous commit from camkes-arm-vmm repo, but the newest commit has introduced this issue. We have isolated it to line 93 in the "vmm_common.camkes" file. Removing "0x54200000:18", // Display A" from the file fixes the problem and we can boot as normal. We are also running Uboot 2010-10-rc5 as suggested by a email on the board.
I am still new to working down to this level of code so any help in understanding this problem is appreciated.
Hi Enrique,
We have been using the tk1 vmm for the CEI board. We have been compiling
our own linux kernel based on a branch that Kent started for us. I think
this is the source you are looking for for the device trees that he created:
https://github.com/SEL4PROJ/linux-tegra/blob/sel4/arch/arm/boot/dts/tegra124...
- John
On Tue, Mar 14, 2017 at 1:07 PM, Enrique Leon
I tried adding 2 and 3 to the SMMU field but that did not work. Disabling the SMMU interrupts did the trick though. Thank you for the help. On a side note, I am hoping to provide my own Buildroot with some other packages added in. I noticed on the repo that that the provided Buildroot configs use the secure dtb and that using the non-secure one requires configuring Buildroot to use "tegra124-jetson-tk1-sel4vm.dts". I having trouble finding a reference to such a file. I noticed the recent commit has included the uncompiled dts files. I am just wondering if those are the ones being referenced.
Best,
Enrique S. Leon
On Mon, Mar 13, 2017 at 5:11 PM,
wrote: Hi,
We recently changed a configuration so that SMMU_INTERRUPT_ENABLE was default enabled. This causes SMMU faults to be printed out (and sometimes prevent the system from making progress), if you want to stop this behavior, changing this setting to not enabled will prevent the errors from being printed out and the VM should continue to boot. Alternatively, adding the SMMU permission to the display device would require adding the IDs 2 and 3 to the vm.smmu field in vm_common.camkes. Alternatively, removing the display MMIO frames like you have done also works. We are working on making it easier to configure what hardware devices are passed through to the VM because SMMU permissions are only passed through for just the SDMMC4 and AHB bus devices.
Kent. ------------------------------ *From:* Devel
on behalf of Enrique Leon < enriquesleon@gmail.com> *Sent:* Tuesday, March 14, 2017 4:47 AM *To:* devel@sel4.systems *Subject:* [seL4] TK1 VMM SMMU Translation Error Hello All,
We have recently run into an issue trying to boot the TK1 VMM on a TK1 Jetson board. The kernel tries to run but soon runs into translation errors after a couple of seconds. We are using the non-secure dtb with the initrd image.
Here are some of the lines, it continues on like this and never stops.
SMMU Address translation error: ID: 1 address: 0x0 type: 6 direction: 0x0 IOPT permission: read 0x0 write 0x0 nonsecure 0x0 SMMU Address translation error: ID: 1 address: 0x18fc00 type: 6 direction: 0x0 IOPT permission: read 0x0 write 0x0 nonsecure 0x SMMU Address translation error: ID: 1 address: 0x912c0 type: 6 direction: 0x0
We had success running the VM using the previous commit from camkes-arm-vmm repo, but the newest commit has introduced this issue. We have isolated it to line 93 in the "vmm_common.camkes" file. Removing "0x54200000:18", // Display A" from the file fixes the problem and we can boot as normal. We are also running Uboot 2010-10-rc5 as suggested by a email on the board.
I am still new to working down to this level of code so any help in understanding this problem is appreciated.
_______________________________________________ Devel mailing list Devel@sel4.systems https://sel4.systems/lists/listinfo/devel
participants (3)
-
Enrique Leon
-
John Backes
-
Kent.Mcleod@data61.csiro.au