On 2018-08-27 09:23, Nir Geller wrote:
Hi Jan,
What eventually seems to be working properly is:
{
.phys_start = 0x20000000,
.virt_start = 0x20000000,
.size = 0x10000000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
Oh, didn't read the address carefully enough. Still strange. Maybe that
region is yet another improperly listed (by kernel drivers) platform
resource.
Jan
Thanks a lot,
Nir.
On Sun, Aug 26, 2018 at 8:58 PM Jan Kiszka <[email protected]
<mailto:[email protected]>> wrote:
On 2018-08-26 10:50, Nir Geller wrote:
>
> Hi there,
>
> I recently started developing a system on a Sitara am5728 by TI.
> This cpu has 2 arm7 A15 cores.
>
> I aim to run Linux on the root cell and RTOS on the inmate cell.
>
> At the moment I'm using an evaluation board from TI.
> This board has 1 PCIe slot, on which a realtek ethernet adapter
is installed.
>
> When I startup Linux without jailhouse I'm able to modprobe the
r8169 driver and use the ethernet adapter without any problem.
> In my system RTOS has no need to use the PCIe.
>
> The problem:
>
> After I modprobe jailhouse.ko and create the root cell, I attempt
to modprobe r8169 and I get this:
>
> root@am57xx-evm:~# modprobe jailhouse
> root@am57xx-evm:~# jailhouse enable
/usr/share/jailhouse/examples/am57xx-evm.cell
>
> Initializing Jailhouse hypervisor v0.7 (220-g2ad429b) on CPU 0
> Code location: 0xf0000040
> Page pool usage after early setup: mem 30/4072, remap 32/131072
> Initializing processors:
> CPU 0... OK
> CPU 1... OK
> Page pool usage after late setup: mem 40/4072, remap 38/131072
> Activating hypervisor
> [ 55.866355] The Jailhouse is opening.
> root@am57xx-evm:~#
> root@am57xx-evm:~#
> root@am57xx-evm:~# modprobe r8169
> Unhandled data read at 0x2000103d(1)
> FATAL: unhandled trap (exception class 0x24)
> pc=0xc05554b8 cpsr=0x60010093 hsr=0x93010005
> r0=0xe108f03d r1=0x00000001 r2=0xd29bfc4c r3=0x00000000
> r4=0xd393e628 r5=0xe108f000 r6=0x01000000 r7=0x0000003d
> r8=0x00000001 r9=0xd393e610 r10=0x00000000 r11=0xd29bfbec
> r12=0xd29bfbf0 r13=0xd29bfbe0 r14=0xc0556254
> Parking CPU 0 (Cell: "AM57XX-EVM")
>
> So if I understand correctly, jailhouse forbids Linux from
reading address 0x2000103d and stops core 0.
>
> /proc/iomem and /proc/ioports show that PCI address space is
indeed mapped to the 0x20000000 region.
>
>
> root@am57xx-evm:~# dmesg | grep -i pci
> ...
> [ 0.762245] OF: PCI: host bridge /ocp/axi@0/pcie@51000000 ranges:
> [ 0.762280] OF: PCI: IO 0x20003000..0x20012fff -> 0x00000000
> [ 0.762306] OF: PCI: MEM 0x20013000..0x2fffffff -> 0x20013000
> ...
>
> By looking at am57xx-evm.c I don't see where this address space
is handled. I tried adding it to .mem_regions but I got a similar
result:
That addition is not reflected in the config you attached, is it? But
that is the way to go. Maybe you only made some mistake. Basically,
this
plus an increase of the mem_regions array by 1 should do it:
{
.phys_start = 0x20013000,
.virt_start = 0x20013000,
.size = 0xffed000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO,
},
Vitaly, left out the PCI region intentionally?
Jan
--
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].
For more options, visit https://groups.google.com/d/optout.