Den onsdag 23 november 2016 kl. 08:11:13 UTC+1 skrev Jan Kiszka:
> On 2016-11-22 21:43, Intelsat wrote:
> > Hi,
> >
> > I tried to get the output of the initialization via the vga console and did
> > so as described in the documentation. I added the parameters to the boot
> > cmdline, restarted ubuntu, opened a console and typed:
> >
> > #vbetool vbemode set 3 && jailhouse enable configs/sysconfig.cell
> >
> > What I got is this:
> >
> > ....
> > Adding PCI device ff:06.3 to cell "RootCell"
> > FATAL: Unsupported MSI/MSI-X state, device 00:1b.0, cap 5
> > Stopping CPU 0 (Cell: "RootCell")
> >
> > I restarted my linux to see what kind of device this is and what the
> > system.cell configuration says:
> >
> > sysconfig.cell:
> >
> > ....
> > /* PCIDevice: 00:1b.0 */
> > {
> > .type = JAILHOUSE_PCI_TYPE_DEVICE,
> > .iommu = 1,
> > .domain = 0xd8,
> > .bar_mask = {
> > 0xffffc000, 0xffffffff, 0x00000000,
> > 0x00000000, 0x00000000, 0x00000000,
> > },
> > .caps_start = 26,
> > .num_caps = 5,
> > .num_msi_vectors = 1,
> > .msi_64bits = 1,
> > .num_msix_vectors = 0,
> > .msix_region_size = 0x0,
> > .msix_address = 0x0,
> > },
> > ....
> >
> > lspci:
> >
> > 00:1b.0 Audio device: Intel Corporation 82801J1 (ICH10 Family) HD Audio
> > Controller
> >
> > I couldn't disable the PCI device, tried it in BIOS, but there is no option
> > for it. So does that mean my hardware is incompatible with Jailhouse or is
> > there any chance to get rid of that error?
>
> Interesting. Haven't seen such kind of issues for a long time. Let's
> look into more details:
>
> diff --git a/hypervisor/arch/x86/pci.c b/hypervisor/arch/x86/pci.c
> index c2b54ff..97f2af1 100644
> --- a/hypervisor/arch/x86/pci.c
> +++ b/hypervisor/arch/x86/pci.c
> @@ -338,6 +338,7 @@ int arch_pci_update_msi(struct pci_device *device,
>
> for (n = 0; n < vectors; n++) {
> irq_msg = pci_translate_msi_vector(device, n, vectors, msi);
> + printk("%s:%d: irq_msq %llx %ld, ir: %d\n", __FUNCTION__,
> __LINE__, *(u64 *)&irq_msg, sizeof(irq_msg),
> iommu_cell_emulates_ir(device->cell));
> result = iommu_map_interrupt(device->cell, bdf, n, irq_msg);
> // HACK for QEMU
> if (result == -ENOSYS) {
> diff --git a/hypervisor/arch/x86/vtd.c b/hypervisor/arch/x86/vtd.c
> index 55435f0..ef522ad 100644
> --- a/hypervisor/arch/x86/vtd.c
> +++ b/hypervisor/arch/x86/vtd.c
> @@ -956,6 +956,7 @@ int iommu_map_interrupt(struct cell *cell, u16 device_id,
> unsigned int vector,
> int base_index;
>
> base_index = vtd_find_int_remap_region(device_id);
> + printk("%s:%d: base_index %d, vector: %d, limit: %d\n", __FUNCTION__,
> __LINE__, base_index, vector, system_config->interrupt_limit);
> if (base_index < 0)
> return base_index;
>
> @@ -964,6 +965,7 @@ int iommu_map_interrupt(struct cell *cell, u16 device_id,
> unsigned int vector,
> return -ERANGE;
>
> irte = int_remap_table[base_index + vector];
> + printk("%s:%d: irte %llx-%llx\n", __FUNCTION__, __LINE__, irte.raw[0],
> irte.raw[1]);
> if (!irte.field.assigned || irte.field.sid != device_id)
> return -ERANGE;
>
>
> Meanwhile, you may get away with unbinding the driver of that device
> prior to enabling Jailhouse + removing its entry from the sysconfig PCI
> table. But that may also just get you to the next device with similar
> issues.
>
> Jan
Hi Jan,
we have met in Dublin, working with hybrid Linux/RTOS solutions. I try to do
the same reference example bringup of Jailhouse using Ubuntu 16.04 in qemu, but
it freezes after activating the Hypervisor. It seems I get the same problem
with the audio driver as this thread. Did you come to any conclusion on the
cause, or should I try another version?
Do you recommend any particular Linux distro to run the demo?
regards, Patrik Strömblad
--
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.