Jetson TX2 - access to peripherals from inmate

55 views
Skip to first unread message

johannes lex

unread,
Mar 25, 2022, 11:11:05 AM3/25/22
to Jailhouse
Hello everybody,

i'm investigating the jailhouse hypervisor for a research project of an automotive company.

As a first step, i want to set up the Jetson TX2 Board and add an inmate which toggels one GPIO Pin. I used the VM from the ERIKA V3 (https://www.erika-enterprise.com/index.php/download/virtual-machines.html) as a base development platform.
So far, Jailhouse is running and my configs seem to work. 

However, I can't access (not even read) the registers of the GPIO or any other peripheral which i assign to my cell, except the already configured UART.
The cell config and assignment of the registers themself seems to work: i can, for example, read the register 0x02210890 from the Linux host before creating the cell. After creating the cell, a read attempt from the Linux host leads to a system crash.
Unfortunately, i can't read that register from the inmate as well :/

Do you have a clue why i can't read the register in my setup? I've attached my configs and the source code for the bare metal application of the inmate.

Or do you have any examples in which you access the GPIOs (or other peripherals) of the Jetson TX2 from an inmate which you could share?

Thank you in advance,
Johannes

Console_Output.txt
register_read.c
jetson-tx2-demo.c
jetson-tx2.c
Message has been deleted

Jan Kiszka

unread,
Apr 2, 2022, 4:14:09 AM4/2/22
to johannes lex, Jailhouse
Already checked your configs for undesired overlaps (jailhouse config
check)?

Looking at the jetson-tx2-demo.c config you shared, the GPIO range is
exclusively assigned from the root cell to the non-root demo. So, any
further accesses from the Linux root cell should indeed trigger a
violation. But accesses from the demo cell must be possible. However,
I'm not seeing any violation reports regarding that cell.

Jan

Ralf Ramsauer

unread,
Apr 2, 2022, 7:01:32 AM4/2/22
to Jan Kiszka, johannes lex, Jailhouse
We had a offlist converstation - map_range in inmate + ROOTSHARED solved
the issue.

Thanks
Ralf

>
> Jan
>

--
Ralf Ramsauer
PGP: 0xC85252CC
Reply all
Reply to author
Forward
0 new messages