Hi, I am currently trying to get jailhouse running on a new arm64 target 
(Cortex-A53). I am trying to get a minimal root cell configuration working 
but at the moment when enabling it it just immediately crashes the board 
(stuck without any output).

The physical memory on the board seems to be available from 
00000000-1fffffff (/proc/iomem) and initially I reduced the memory for 
Linux using mem=128M to be able to place jailhouse into the upper regions 
(see below, starting at 0x08000000).

Following that I tried to make sense on how the GIC needs to be set up. 
>From what I know the device uses a GIC v2 with base address 0xffc01000. 
This can be found in the linux device tree here: 
https://github.com/khadas/linux/blob/khadas-vims-5.4.y/arch/arm64/boot/dts/amlogic/mesont7.dtsi#L285

However, there it only features 2 entries, and in all v2 configurations 
found in the jailhouse repo 4 addresses are used. (GIC v3 seems to use only 
two).

In addition I am not sure what the purpose of irqchips is and how that 
should look like. Is this to communicate to jailhouse what interrupts it 
can make use of?

It would be great to get some feedback if I correctly configured the GIC 
(and memory) and if what I am seeing could be related to a incorrect 
configuration on my side. (I might also have to extend this configuration, 
I assumed what I have is enough for a minimal setup.)

struct {
    struct jailhouse_system header;
    __u64 cpus[1];
    struct jailhouse_memory mem_regions[1];
    struct jailhouse_irqchip irqchips[1];
    struct jailhouse_pci_device pci_devices[0];
} __attribute__((packed)) config = {
    .header = {
        .signature = JAILHOUSE_SYSTEM_SIGNATURE,
        .revision = JAILHOUSE_CONFIG_REVISION,
        .flags = JAILHOUSE_SYS_VIRTUAL_DEBUG_CONSOLE,
        .hypervisor_memory = {
            .phys_start = 0x08000000,
            .size =       0x04000000,
        },
        .debug_console = {
            .flags = JAILHOUSE_CON_TYPE_NONE,
        },
        .platform_info = {
            .pci_mmconfig_base = 0x0C000000,
            .pci_mmconfig_end_bus = 0,
            .pci_is_virtual = 1,
            .arm = {
                .gic_version = 2,
                .gicd_base = 0xffc01000,
                .gicc_base = 0xffc02000,
                .gich_base = 0xffc04000,
                .gicv_base = 0xffc06000,
                .maintenance_irq = 25,
            },
        },
        .root_cell = {
            .name = "AM113",

            .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 = 108,
        },
    },

    .cpus = {
        0b1111,
    },

    .mem_regions = {
        /* System RAM */ {
            .phys_start = 0x08000000,
            .virt_start = 0x08000000,
            .size = 0x04000000,
            .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
                JAILHOUSE_MEM_EXECUTE,
        },
    },

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

    .pci_devices = {

    },
};


# cat /proc/iomem 
00000000-07ffffff : System RAM
  03000000-03e3ffff : Kernel code
  04030000-04bcbfff : Kernel data
ff3f0000-ff3fffff : /ethernet@0xff3f0000
ff500000-ff507fff : /dwc3@ff500000
  ff500000-ff507fff : /dwc3@ff500000
ff50c100-ff5fffff : /dwc3@ff500000
ff634018-ff63401b : /rng
ff634430-ff63446b : gpio
ff634480-ff6344bf : mux
ff6344e8-ff6344fb : pull
ff634520-ff634533 : pull-enable
ff634540-ff634547 : /ethernet@0xff3f0000
ff63c400-ff63c44b : /mhu@c883c400
ff642000-ff643fff : /soc/audiobus@0xff642000
ff800014-ff80001b : mux
ff800024-ff80002b : gpio
ff80002c-ff80002f : pull
ff803000-ff803017 : ff803000.serial
ff805000-ff80501f : /soc/aobus@ff800000/i2c@5000
ff809000-ff809037 : /saradc
ffd13000-ffd1303b : /spi@ffd130000
ffd1e000-ffd1e01f : /soc/cbus@ffd00000/i2c@1e000
ffd23000-ffd23017 : ffd23000.serial
ffe05000-ffe06fff : /sdio@ffe05000
ffe07800-ffe079ff : ffe07800.mtd_nand
ffe09000-ffe0907f : /usb2phy@ffe09000
ffe09080-ffe0909f : /usb3phy@ffe09080
fffd3000-fffd37ff : /mhu@c883c400


-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/515276d4-6a49-4734-92f9-8fcae109edd3n%40googlegroups.com.

Reply via email to