This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/PROCESSOR-SDK-AM57X: Jailhouse hypervisor enable fails

  • root@am57xx-evm:~# ls /boot
    am57xx-evm-reva3.dtb         uImage                       uImage-4.19.38-g4dae378bbe   vmlinux-4.19.38-g4dae378bbe  zImage                       zImage-4.19.38-g4dae378bbe
    root@am57xx-evm:~#

    uboot:

    => setenv optargs vmalloc=512M

    am57xx-evm login: root
    root@am57xx-evm:~# modprobe jailhouse
    root@am57xx-evm:~# jailhouse enable /usr/share/jailhouse/examples/am57xx-evm.cell

    Initializing Jailhouse hypervisor v0.7 (644-g6044dcf) on CPU 1
    Code location: 0xf0000040
    Page pool usage after early setup: mem 32/4074, remap 0/131072
    Initializing processors:
     CPU 1... OK
     CPU 0... OK
    Initializing unit: irqchip
    Initializing unit: AM57XX
    Initializing unit: PCI
    Page pool usage after late setup: mem 48/4074, remap 6/131072
    Activating hypervisor
    [   34.896753] The Jailhouse is opening.


    root@am57xx-evm:~# jailhouse cell create /usr/share/jailhouse/examples/am57xx-evm-ti-app.cell
    [   67.707657] IRQ172: set affinity failed(-22).
    Created cell "AM57XX-EVM-timer8-demo"
    Page pool usage after cell creation: mem 62/4074, remap 6/131072
    [   68.972452] Created Jailhouse cell "AM57XX-EVM-timer8-demo"
    root@am57xx-evm:~# jailhouse cell create /usr/share/jailhouse/examples/am57xx-evm-ti-app.cell ^C
    root@am57xx-evm:~# [  129.504526] NET: Registered protocol family 15
    [  129.632175] Initializing XFRM netlink socket

    root@am57xx-evm:~# jailhouse cell load 1 /usr/share/jailhouse/examples/ti-app.bin
    Cell "AM57XX-EVM-timer8-demo" can be loaded
    root@am57xx-evm:~#

  • Part Number: PROCESSOR-SDK-AM57X

    Tool/software: Linux

    root@am57xx-evm:~# ls /boot
    am57xx-evm-reva3.dtb         uImage                       uImage-4.19.38-g4dae378bbe   vmlinux-4.19.38-g4dae378bbe  zImage                       zImage-4.19.38-g4dae378bbe
    root@am57xx-evm:~#

    uboot:

    => setenv optargs vmalloc=512M

    am57xx-evm login: root
    root@am57xx-evm:~# modprobe jailhouse
    root@am57xx-evm:~# jailhouse enable /usr/share/jailhouse/examples/am57xx-evm.cell

    Initializing Jailhouse hypervisor v0.7 (644-g6044dcf) on CPU 1
    Code location: 0xf0000040
    Page pool usage after early setup: mem 32/4074, remap 0/131072
    Initializing processors:
     CPU 1... OK
     CPU 0... OK
    Initializing unit: irqchip
    Initializing unit: AM57XX
    Initializing unit: PCI
    Page pool usage after late setup: mem 48/4074, remap 6/131072
    Activating hypervisor
    [   34.896753] The Jailhouse is opening.


    root@am57xx-evm:~# jailhouse cell create /usr/share/jailhouse/examples/am57xx-evm-ti-app.cell
    [   67.707657] IRQ172: set affinity failed(-22).
    Created cell "AM57XX-EVM-timer8-demo"
    Page pool usage after cell creation: mem 62/4074, remap 6/131072
    [   68.972452] Created Jailhouse cell "AM57XX-EVM-timer8-demo"
    root@am57xx-evm:~# jailhouse cell create /usr/share/jailhouse/examples/am57xx-evm-ti-app.cell ^C
    root@am57xx-evm:~# [  129.504526] NET: Registered protocol family 15
    [  129.632175] Initializing XFRM netlink socket

    root@am57xx-evm:~# jailhouse cell load 1 /usr/share/jailhouse/examples/ti-app.bin
    Cell "AM57XX-EVM-timer8-demo" can be loaded
    root@am57xx-evm:~#

  • Correct the DTB:

    root@am57xx-evm:/boot# cp am57xx-evm-reva3-jailhouse.dtb am57xx-evm-reva3.dtb
    root@am57xx-evm:/boot# ls
    am57xx-evm-reva3-jailhouse.dtb  am57xx-evm-reva3.dtb            uImage                          uImage-4.19.38-g4dae378bbe      vmlinux-4.19.38-g4dae378bbe     zImage                          zImage-4.19.38-g4dae378bbe
    root@am57xx-evm:/boot#

  • And now:

    uart:

    root@am57xx-evm:~# modprobe jailhouse
    root@am57xx-evm:~# jailhouse cell create /usr/share/jailhouse/examples/am57xx-pdk-leddiag.cell
    JAILHOUSE_CELL_CREATE: Invalid argument
    root@am57xx-evm:~# jailhouse enable /usr/share/jailhouse/examples/am57xx-evm.cell

    Initializing Jailhouse hypervisor v0.7 (644-g6044dcf) on CPU 0
    Code location: 0xf0000040
    Page pool usage after early setup: mem 32/4074, remap 0/131072
    Initializing processors:
     CPU 0... OK
     CPU 1... OK
    Initializing unit: irqchip
    Initializing unit: AM57XX
    Initializing unit: PCI
    Page pool usage after late setup: mem 48/4074, remap 6/131072
    Activating hypervisor
    [  111.197030] The Jailhouse is opening.
    root@am57xx-evm:~# jailhouse cell create /usr/share/jailhouse/examples/am57xx-pdk-leddiag.cell
    [  127.757617] IRQ172: set affinity failed(-22).
    Created cell "AM57XX-EVM-PDK-LED"
    Page pool usage after cell creation: mem 65/4074, remap 6/131072
    [  129.036593] Created Jailhouse cell "AM57XX-EVM-PDK-LED"
    root@am57xx-evm:~# [  129.243426] NET: Registered protocol family 15
    [  129.372144] Initializing XFRM netlink socket

    root@am57xx-evm:~# jailhouse cell load 1 /usr/share/jailhouse/examples/led_test.bin
    Cell "AM57XX-EVM-PDK-LED" can be loaded
    root@am57xx-evm:~# jailhouse cell start 1
    Started cell "AM57XX-EVM-PDK-LED"
    root@am57xx-▒55R▒*********************************************
    *                 LED Test                  *
    *********************************************

    Testing LED
    Blinking LEDs...
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: r

    Blinking again
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: r

    Blinking again
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: r

    Blinking again
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: r

    Blinking again
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: r

    Blinking again
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: r

    Blinking again
    Press 'y' to verify pass, 'r' to blink again,
    or any other character to indicate failure: y
    Received: y

    Test PASSED!

    The test results: D7 lights on am57x EVM, and press r to flash D4~D7 lights

    Use Telnet to send instructions

    root@am57xx-evm:~#
    root@am57xx-evm:~# jailhouse cell shutdown 1
    root@am57xx-evm:~# jailhouse cell destroy 1
    root@am57xx-evm:~# jailhouse disable
    JAILHOUSE_DISABLE: Device or resource busy

    Uart prints messages after receiving Telnet instructions:
    Cell "AM57XX-EVM-PDK-LED" can be loaded
    Closing cell "AM57XX-EVM-PDK-LED"
    Page pool usage after cell destruction: mem 49/4074, remap 6/131072
    [  375.437300] CPU1: failed to come online
    [  375.444437] Jailhouse: failed to bring CPU 1 back online
    [  375.450253] Destroyed Jailhouse cell "AM57XX-EVM-PDK-LED"

    Why does destroy cell fail?

  • Hi,

    Which AM57x EVM do you use?

    I tested the same procedure on the AM57x GP EVM using Processor SDK Linux v5.3.0.7 but don't see such cell destroy failure.

  • I'm using TMDSEVM572X (AM572x Evaluation Module View).

    I used ti-processing-sdk-linux-rt-am57xx-evm-06.00.00.07-linux test.

  • Hi,

    Thanks for the information. I now can reproduce the issue with Processor SDK v6.0.0.7.

    I will report the issue to our development team. The issue should be fixed in the next SDK release.