Hi Guys
Platform: quad cortex-A7.
The normal virtual uart solution is working well.
But currently I'm trying to assign a physical UART to a non-root
cell(baremetal cell) but never succeeded.
the root cell(jailhouse) is using UART0 (MMIO space: 0x1c28000)
I know that we need to set cell.flags console.clock_reg and gate_nr,
divider etc.
Below is the inmate cell configuration.
struct {
struct jailhouse_cell_desc cell;
__u64 cpus[1];
struct jailhouse_memory mem_regions[4];
} __attribute__((packed)) config = {
.cell = {
.signature = JAILHOUSE_CELL_DESC_SIGNATURE,
.revision = JAILHOUSE_CONFIG_REVISION,
.name = "dragonresource-t3-inmate-demo",
.flags = JAILHOUSE_CELL_PASSIVE_COMMREG,
.cpu_set_size = sizeof(config.cpus),
.num_memory_regions = ARRAY_SIZE(config.mem_regions),
.console = {
.address = 0x01c29000,
.clock_reg = 0x01c2006c,
.gate_nr = 20,
.divider = 0x0d,
.type = JAILHOUSE_CON_TYPE_8250,
.flags = JAILHOUSE_CON_ACCESS_MMIO |
JAILHOUSE_CON_REGDIST_4,
},
},
.cpus = {
0x2,
},
.mem_regions = {
/* CCU */ {
.phys_start = 0x01c20000,
.virt_start = 0x01c20000,
.size = 0x400,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO | JAILHOUSE_MEM_IO_32,
},
/* UART 4 */ {
.phys_start = 0x01c29000,
.virt_start = 0x01c29000,
.size = 0x400,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_IO ,
},
/* RAM */ {
.phys_start = 0x6f600000,
.virt_start = 0,
.size = 0x00010000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_LOADABLE,
},
/* communication region */ {
.virt_start = 0x80000000,
.size = 0x00001000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_COMM_REGION,
},
},
};
Each time I create the cell, there's an exception
[image: image.png]
according to CPU UM, this exception address (0x1c202c0) is "BUS SOFTWARE
RESET REGISTER", looks something triggered BUS SOFTWARE RESET, I'm not sure.
Kind of lost here and don't know how to proceed. I know it's a long shot
but could I miss something in the cell configuration? More importantly,
how to debug or trace back functions under this situation?
Thanks
--
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/CAC5TEnH7LLTko45DKC7_4eB_9J-p8%2B2t1NuKMCUbm42X8p8Mhw%40mail.gmail.com.