summaryrefslogtreecommitdiffstats
path: root/meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c
diff options
context:
space:
mode:
authorAnmol <anmol.karan123@gmail.com>2021-07-27 22:15:00 +0200
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2021-08-09 22:33:49 +0200
commit4d9d7b0fc155fd9c30784ec2b1896796086ba575 (patch)
tree3eaf1fa519b2923b9a3774fb90ad15e0fc61c5cb /meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c
parentaac67cb520cd945f960189d12ea9bbe1815891de (diff)
meta-agl-jailhouse: Update the Jailhouse configuration files
The current state and Information about the patch: - Updated Jailhouse root-cell(qemu-agl.c), apic-demo(agl-apic-demo.c), ivshmem-demo(agl-ivshmem-demo.c). - Jailhouse non-root cell(agl-linux-x86-demo.c) is also working, but need some more tweak for UART redirection. - Linux Kernel updated to the latest `queues/jailhouse` kernel branch. - Updated the `recipes-kernel` structure to a more custom one. - Updated conf/local.conf according to new `recipes-kernel` structure. - Removed the Linux Kernel patches from the `recipes-kernel` as updated kernel already contain those patches. This patch is the initial block for the virtio-blk support. v2 (Anmol): Add descriptive comments for serial in cell configuration files v3 (Anmol): Remove the ` IMAGE_INSTALL_append` and `EXTRA_IMAGE_FEATURES` from `50_local.conf.inc` v4 (Anmol): Minor changes in `50_local.conf.inc` v5 (jsmoeller): add meta-arm-toolchain to fix layer dependencies v6 (jsmoeller): remove linux-yocto_5.14%.bbappend v7 (Anmol): - Update the `SRCREV` for Jailhouse in `jailhous_git.bb` - Remove the patch `configs: arm64: Add support for RPi4 with more than 1G of memory` from `SRC_URI` in `jailhouse_git.bb` - Add the helper-scripts for the `runqemu-x86_64` and non-root linux cell. v8 (Anmol): Updated the `agl-ivshmem-demo.c`. v9 (Anmol): - Resolve build errors and update `jailhouse_git.bb`. - Add `PERF_forcevariable := "bash"` in `50_local.conf.inc`. v10 (Anmol): Disable perf build. v11 (jsmoeller): update qemu-agl.c to the 2G setup of runqemu after runtime test v12 (jsmoeller): add sample inmate tarball (to be used later) Change-Id: Idfa3e513488b5ecc8dfe9573f15c4b1c0edfd54f Signed-off-by: Anmol <anmol.karan123@gmail.com> Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c')
-rw-r--r--meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c117
1 files changed, 90 insertions, 27 deletions
diff --git a/meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c b/meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c
index 06085df5..4aa8db44 100644
--- a/meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c
+++ b/meta-agl-jailhouse/recipes-extended/jailhouse/files/agl-linux-x86-demo.c
@@ -18,17 +18,25 @@
struct {
struct jailhouse_cell_desc cell;
__u64 cpus[1];
+#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
+ struct jailhouse_memory mem_regions[24];
+#else
struct jailhouse_memory mem_regions[20];
+#endif
struct jailhouse_cache cache_regions[1];
struct jailhouse_irqchip irqchips[1];
- struct jailhouse_pio pio_regions[1];
+ struct jailhouse_pio pio_regions[2];
+#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
+ struct jailhouse_pci_device pci_devices[5];
+#else
struct jailhouse_pci_device pci_devices[4];
+#endif
struct jailhouse_pci_capability pci_caps[6];
} __attribute__((packed)) config = {
.cell = {
.signature = JAILHOUSE_CELL_DESC_SIGNATURE,
.revision = JAILHOUSE_CONFIG_REVISION,
- .name = "linux-x86-demo",
+ .name = "agl-linux-x86-demo",
.flags = JAILHOUSE_CELL_PASSIVE_COMMREG |
JAILHOUSE_CELL_VIRTUAL_CONSOLE_PERMITTED,
@@ -46,16 +54,17 @@ struct {
},
.mem_regions = {
+
/* IVSHMEM shared memory region (virtio-blk front) */
{
- .phys_start = 0x27000000, /* to 0x27001000 */
- .virt_start = 0x27000000,
+ .phys_start = 0x22000000,
+ .virt_start = 0x22000000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
},
{
- .phys_start = 0x27001000,/* to 0x270e0000 */
- .virt_start = 0x27001000,
+ .phys_start = 0x22001000,
+ .virt_start = 0x22001000,
.size = 0xdf000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_ROOTSHARED,
@@ -64,57 +73,58 @@ struct {
{ 0 },
/* IVSHMEM shared memory region (virtio-con front) */
{
- .phys_start = 0x270e0000,/* to 0x270e1000 */
- .virt_start = 0x270e0000,
+ .phys_start = 0x220e0000,
+ .virt_start = 0x220e0000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
},
{
- .phys_start = 0x270e1000,/*to 0x270f0000 */
- .virt_start = 0x270e1000,
+ .phys_start = 0x220e1000,
+ .virt_start = 0x220e1000,
.size = 0xf000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_ROOTSHARED,
},
{ 0 },
{ 0 },
+
/* IVSHMEM shared memory regions (demo) */
{
- .phys_start = 0x270f0000,/*to 0x270f1000 */
- .virt_start = 0x270f0000,
+ .phys_start = 0x220f0000,
+ .virt_start = 0x220f0000,
.size = 0x1000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
},
{
- .phys_start = 0x270f1000,/*to 0x270fa000 */
- .virt_start = 0x270f1000,
+ .phys_start = 0x220f1000,
+ .virt_start = 0x220f1000,
.size = 0x9000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_ROOTSHARED,
},
{
- .phys_start = 0x270fa000,/* to 0x270fc000 */
- .virt_start = 0x270fa000,
+ .phys_start = 0x220fa000,
+ .virt_start = 0x220fa000,
.size = 0x2000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
},
{
- .phys_start = 0x270fc000,/* to 0x270fe000*/
- .virt_start = 0x270fc000,
+ .phys_start = 0x220fc000,
+ .virt_start = 0x220fc000,
.size = 0x2000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
},
{
- .phys_start = 0x270fe000,/* to 0x27100000 */
- .virt_start = 0x270fe000,
+ .phys_start = 0x220fe000,
+ .virt_start = 0x220fe000,
.size = 0x2000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_ROOTSHARED,
},
/* IVSHMEM shared memory regions (networking) */
- JAILHOUSE_SHMEM_NET_REGIONS(0x27100000, 1),
+ JAILHOUSE_SHMEM_NET_REGIONS(0x22100000, 1),
/* low RAM */ {
- .phys_start = 0x22600000,/* to 0x22700000*/
+ .phys_start = 0x22600000,
.virt_start = 0,
.size = 0x00100000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
@@ -122,20 +132,49 @@ struct {
JAILHOUSE_MEM_LOADABLE,
},
/* communication region */ {
- /*.phys_start = ? */
.virt_start = 0x00100000,
.size = 0x00001000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_COMM_REGION,
},
/* high RAM */ {
- .phys_start = 0x22700000,/*to 0x26e00000 */
+ .phys_start = 0x22700000,
.virt_start = 0x00200000,
.size = 0x4700000,
.flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
JAILHOUSE_MEM_EXECUTE | JAILHOUSE_MEM_DMA |
JAILHOUSE_MEM_LOADABLE,
},
+#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
+ /* MemRegion: feb40000-feb7ffff : 0000:00:02.0 */
+ {
+ .phys_start = 0xfeb40000,
+ .virt_start = 0xfeb40000,
+ .size = 0x40000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: feb80000-feb9ffff : e1000e */
+ {
+ .phys_start = 0xfeb80000,
+ .virt_start = 0xfeb80000,
+ .size = 0x20000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: feba0000-febbffff : e1000e */
+ {
+ .phys_start = 0xfeba0000,
+ .virt_start = 0xfeba0000,
+ .size = 0x20000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* MemRegion: febd1000-febd3fff : e1000e */
+ {
+ .phys_start = 0xfebd1000,
+ .virt_start = 0xfebd1000,
+ .size = 0x3000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+#endif
},
.cache_regions = {
@@ -157,9 +196,9 @@ struct {
},
.pio_regions = {
- PIO_RANGE(0x2f8, 8), /* serial 2 */
-// PIO_RANGE(0x3f8, 8), /* serial 1 */
- PIO_RANGE(0xe010, 8), /* OXPCIe952 serial1 */
+ PIO_RANGE(0x2e8, 8), /* serial 2: ttyS3(0x2e8) */
+ PIO_RANGE(0x3e8, 8), /* serial 1: ttyS2(0x3e8) */
+// PIO_RANGE(0xe010, 8), /* OXPCIe952 serial1 */
},
.pci_devices = {
@@ -209,9 +248,33 @@ struct {
.shmem_peers = 2,
.shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
},
+#ifdef CONFIG_QEMU_E1000E_ASSIGNMENT
+ { /* e1000e */
+ .type = JAILHOUSE_PCI_TYPE_DEVICE,
+ .domain = 0x0000,
+ .bdf = 0x0010,
+ .bar_mask = {
+ 0xfffe0000, 0xfffe0000, 0xffffffe0,
+ 0xffffc000, 0x00000000, 0x00000000,
+ },
+ .caps_start = 0,
+ .num_caps = 6,
+ .num_msi_vectors = 1,
+ .msi_64bits = 1,
+ .num_msix_vectors = 5,
+ .msix_region_size = 0x1000,
+ .msix_address = 0xfebd0000,
+ },
+#endif
},
.pci_caps = {
+ { /* e1000e */
+ .id = PCI_CAP_ID_PM,
+ .start = 0xc8,
+ .len = 8,
+ .flags = JAILHOUSE_PCICAPS_WRITE,
+ },
{
.id = PCI_CAP_ID_MSI,
.start = 0xd0,