This is my configuration file based on other examples of arm64 boards
configurations.
I tried to remove virtual PCI device but it doesn’t influence on this issue.

#include <jailhouse/types.h>
#include <jailhouse/cell-config.h>

#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))

struct {
        struct jailhouse_system header;
        __u64 cpus[1];
        struct jailhouse_memory mem_regions[4];
        struct jailhouse_irqchip irqchips[1];
        struct jailhouse_pci_device pci_devices[1];
} __attribute__((packed)) config = {
        .header = {
                .signature = JAILHOUSE_SYSTEM_SIGNATURE,
                .revision = JAILHOUSE_CONFIG_REVISION,
                .flags = JAILHOUSE_SYS_VIRTUAL_DEBUG_CONSOLE,
                .hypervisor_memory = {
                        .phys_start = 0x19000000,
                        .size =       0x00400000,
                },
                .debug_console = {
                        .address = 0xff800640,
                        .size = 0x40,
                        .type = JAILHOUSE_CON_TYPE_63XX,
                        .flags = JAILHOUSE_CON_ACCESS_MMIO |
                                 JAILHOUSE_CON_REGDIST_4,
                },
                .platform_info = {
                        .pci_mmconfig_base = 0x80040000,
                        .pci_mmconfig_end_bus = 0,
                        .pci_is_virtual = 1,
                        .pci_domain = -1,
                        .arm = {
                                .gic_version = 2,
                                .gicd_base = 0x81001000,
                                .gicc_base = 0x81002000,
                                .gich_base = 0x81004000,
                                .gicv_base = 0x81006000,
                                .maintenance_irq = 25,
                        },
                },
                .root_cell = {
                        .name = "bcell",

                        .cpu_set_size = sizeof(config.cpus),
                        .num_memory_regions = ARRAY_SIZE(config.mem_regions),
                        .num_irqchips = ARRAY_SIZE(config.irqchips),
                        .num_pci_devices = ARRAY_SIZE(config.pci_devices),

                        .vpci_irq_base = 128-32,
                },
        },

        .cpus = {
                0xf,
        },

        .mem_regions = {
                {
                   .phys_start = 0x80008000,
                   .virt_start = 0x80008000,
                   .size = 0x34DD000,
                   .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
                                JAILHOUSE_MEM_IO,
                },
                {
                   .phys_start = 0xff800000,
                   .virt_start = 0xff800000,
                   .size = 0x800000,
                   .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
                                JAILHOUSE_MEM_IO,
                },
                 /* RAM */ {
                        .phys_start = 0x0,
                        .virt_start = 0x0,
                        .size = 0x20000000,
                        .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
                                JAILHOUSE_MEM_EXECUTE,
                },
                /* IVSHMEM shared memory region for 00:00.0 */ {
                        .phys_start = 0x3fb00000,
                        .virt_start = 0x3fb00000,
                        .size = 0x100000,
                        .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
                },
        },

        .irqchips = {
                /* GIC */ {
                        .address = 0x81001000,
                        .pin_base = 32,
                        .pin_bitmap = {
                                0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
                        },
                },
        },

        .pci_devices = {
                /* 0001:00:00.0 */ {
                        .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
                        .domain = 1,
                        .bdf = 0 << 3,
                        .bar_mask = {
                                0xffffff00, 0xffffffff, 0x00000000,
                                0x00000000, 0x00000000, 0x00000000,
                        },
                        .shmem_region = 3,
                        .shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
                },
        },
};

-----Original Message-----
From: Ralf Ramsauer [mailto:ralf.ramsa...@oth-regensburg.de]
Sent: Thursday, October 11, 2018 3:45 PM
To: Vladimir Neyelov <vladimir.neye...@broadcom.com>;
jailhouse-dev@googlegroups.com
Subject: Re: jaihouse porting on arm64 board



On 10/11/18 2:30 PM, 'Vladimir Neyelov' via Jailhouse wrote:
> Hello all,
>
> I am trying to porting jailhouse on our arm64 base board. I created
> configuration for root cell and
>
> trying to launch root cell.
>
>
>
> This is output form uart:
>
>
>
> Initializing Jailhouse hypervisor v0.9.1 (134-g006918ca-dirty) on CPU
> 3
>
> Code location: 0x0000ffffc0200800
>
> Page pool usage after early setup: mem 39/996, remap 0/131072
>
> Initializing processors:
>
> CPU 3... OK
>
> CPU 0... OK
>
> CPU 2... OK
>
> CPU 1... OK
>
> Initializing unit: irqchip
>
> Initializing unit: PCI
>
> Adding virtual PCI device 00:00.0 to cell "bcell"

You're using ivshmem-net? I'd suggest to leave out the virtual PCI device
when enabling a new bord. You can add it again once everything else works.

>
> Page pool usage after late setup: mem 58/996, remap 5/131072
>
> JAIL: exit loop
>
> JAIL: exit loop
>
> JAIL: exit loop
>
> Activating hypervisor
>
> JAIL: exit loop
>
>
>
> JAIL: exit loop -> is my print in jailhouse driver in function
> enter_hypervisor after exiting from entry to hypervisor.
>
> But after it linux stuck. Serial input/output doesn’t work. Debugger
> shows that linux run in el1_irg and received non stop

So Linux is using the serial line as well?

>
> spurious interrupt 1023. Why it happen. As I understand all interrupt
> firstly received by jailhouse and after forwarded to
>
> linux(EL1). Spurious interrupt must not forwarded to linux.

Could you share your system configuration?

  Ralf

>
> Thanks,
>
> Vladimir
>
>
>
> --
> 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 jailhouse-dev+unsubscr...@googlegroups.com
> <mailto:jailhouse-dev+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout.

-- 
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 jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to