Am Donnerstag, 20. Februar 2020 13:24:24 UTC+1 schrieb Jan Kiszka:

>
> PIO access has no "shared with root cell" mode, like memory regions (and 
> there is can be dangerous): If you grant access to non-root cell, the 
> root cell loses it - and may then run into own violations. I don't 
> recall what triggers access to this port, might be the SERIO things, but 
> it can be configured out. 
>
> Jan 
>

That makes sense. But that particular PIO range was not activated for my 
root cell sysconfig by default, so I figured enabling it in the non-root 
cell should not cause any issues.

Following up on my first email today, I built a guest kernel using the 
amd64_defconfig you linked a few days ago.
But no luck. I'm stuck at the exact same output I pasted earlier:
Started cell "linux-x86-demo"
CPU 3 received SIPI, vector 9a

The linux-x86-demo config I am using is the following (modified from the 
0.12 release):
diff --git a/configs/x86/linux-x86-demo.c b/configs/x86/linux-x86-demo.c
index 47cb6517..0f1e6d9e 100644
--- a/configs/x86/linux-x86-demo.c
+++ b/configs/x86/linux-x86-demo.c
@@ -25,7 +25,7 @@ struct {
 #endif
        struct jailhouse_cache cache_regions[1];
        struct jailhouse_irqchip irqchips[1];
-       struct jailhouse_pio pio_regions[3];
+       struct jailhouse_pio pio_regions[4];
 #ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
        struct jailhouse_pci_device pci_devices[5];
 #else
@@ -38,7 +38,7 @@ struct {
                .revision = JAILHOUSE_CONFIG_REVISION,
                .name = "linux-x86-demo",
                .flags = JAILHOUSE_CELL_PASSIVE_COMMREG |
-                        JAILHOUSE_CELL_VIRTUAL_CONSOLE_PERMITTED,
+                        JAILHOUSE_CELL_VIRTUAL_CONSOLE_ACTIVE,
 
                .cpu_set_size = sizeof(config.cpus),
                .num_memory_regions = ARRAY_SIZE(config.mem_regions),
@@ -47,6 +47,12 @@ struct {
                .num_pio_regions = ARRAY_SIZE(config.pio_regions),
                .num_pci_devices = ARRAY_SIZE(config.pci_devices),
                .num_pci_caps = ARRAY_SIZE(config.pci_caps),
+
+               .console = {
+                       .type = JAILHOUSE_CON_TYPE_8250,
+                       .flags = JAILHOUSE_CON_ACCESS_PIO,
+                       .address = 0x3f8,
+               },
        },
 
        .cpus = {
@@ -186,7 +192,7 @@ struct {
        .irqchips = {
                /* IOAPIC */ {
                        .address = 0xfec00000,
-                       .id = 0xff00,
+                       .id = 0x100f7,
                        .pin_bitmap = {
                                (1 << 3) | (1 << 4),
                        },
@@ -197,6 +203,7 @@ struct {
                PIO_RANGE(0x2f8, 8), /* serial 2 */
                PIO_RANGE(0x3f8, 8), /* serial 1 */
                PIO_RANGE(0xe010, 8), /* OXPCIe952 serial1 */
+               PIO_RANGE(0x80, 0x10),
        },
 
        .pci_devices = {

>From what I understood from your comment, this should print the Linux 
output to /dev/jailhouse, no?
I'm sorry if I'm missing something obvious here. My plan was to prepare 
real UART for more serious debugging once Linux is starting and loading an 
initrd.
My non-root cell invocation looks like this (modeled after the 
documentation examples):
jailhouse cell linux linux-x86-demo.cell bzImage -c "console=ttyS0,115200"

Thanks,
Chris

-- 
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/221c5f40-594d-4b11-ab0f-dab66585471f%40googlegroups.com.

Reply via email to