Add ivshmem demo device in addition to the ivshmem network
device.
Signed-off-by: Matt Ranostay <[email protected]>
---
configs/arm64/k3-am654-idk-linux-demo.c | 55 ++++++++++++++++++++++---
configs/arm64/k3-am654-idk.c | 49 ++++++++++++++++++++--
2 files changed, 95 insertions(+), 9 deletions(-)
diff --git a/configs/arm64/k3-am654-idk-linux-demo.c
b/configs/arm64/k3-am654-idk-linux-demo.c
index 4fc23e0b..227b8447 100644
--- a/configs/arm64/k3-am654-idk-linux-demo.c
+++ b/configs/arm64/k3-am654-idk-linux-demo.c
@@ -23,9 +23,9 @@
struct {
struct jailhouse_cell_desc cell;
__u64 cpus[1];
- struct jailhouse_memory mem_regions[13];
+ struct jailhouse_memory mem_regions[18];
struct jailhouse_irqchip irqchips[3];
- struct jailhouse_pci_device pci_devices[1];
+ struct jailhouse_pci_device pci_devices[2];
} __attribute__((packed)) config = {
.cell = {
.signature = JAILHOUSE_CELL_DESC_SIGNATURE,
@@ -54,6 +54,39 @@ struct {
},
.mem_regions = {
+ /* IVSHMEM shared memory regions for 00:00.0 (demo) */
+ {
+ .phys_start = 0x8dfa00000,
+ .virt_start = 0x8dfa00000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+ },
+ {
+ .phys_start = 0x8dfa10000,
+ .virt_start = 0x8dfa10000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+ JAILHOUSE_MEM_ROOTSHARED,
+ },
+ /* Peer 0 */ {
+ .phys_start = 0x8dfa20000,
+ .virt_start = 0x8dfa20000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+ },
+ /* Peer 1 */ {
+ .phys_start = 0x8dfa30000,
+ .virt_start = 0x8dfa30000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED,
+ },
+ /* Peer 2 */ {
+ .phys_start = 0x8dfa40000,
+ .virt_start = 0x8dfa40000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE |
+ JAILHOUSE_MEM_ROOTSHARED,
+ },
/* IVSHMEM shared memory region for 00:01.0 */
JAILHOUSE_SHMEM_NET_REGIONS(0x8dfb00000, 1),
/* RAM load */ {
@@ -134,7 +167,10 @@ struct {
.address = 0x01800000,
.pin_base = 160,
.pin_bitmap = {
- 1 << (168 - 160) | 1 << (190 - 160), 0x00, 0x00, 0,
+ 1 << (168 - 160) |
+ 1 << (189 - 160) |
+ 1 << (190 - 160),
+ 0x00, 0x00, 0,
},
},
{
@@ -147,11 +183,20 @@ struct {
},
.pci_devices = {
+ /* 00:00.0 */ {
+ .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+ .bdf = 0 << 3,
+ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+ .shmem_regions_start = 0,
+ .shmem_dev_id = 2,
+ .shmem_peers = 3,
+ .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
+ },
/* 00:01.0 */ {
.type = JAILHOUSE_PCI_TYPE_IVSHMEM,
.bdf = 1 << 3,
- .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
- .shmem_regions_start = 0,
+ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+ .shmem_regions_start = 5,
.shmem_dev_id = 1,
.shmem_peers = 2,
.shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
diff --git a/configs/arm64/k3-am654-idk.c b/configs/arm64/k3-am654-idk.c
index 0d6ae59a..bdd526a3 100644
--- a/configs/arm64/k3-am654-idk.c
+++ b/configs/arm64/k3-am654-idk.c
@@ -18,9 +18,9 @@
struct {
struct jailhouse_system header;
__u64 cpus[1];
- struct jailhouse_memory mem_regions[18];
+ struct jailhouse_memory mem_regions[23];
struct jailhouse_irqchip irqchips[5];
- struct jailhouse_pci_device pci_devices[1];
+ struct jailhouse_pci_device pci_devices[2];
} __attribute__((packed)) config = {
.header = {
.signature = JAILHOUSE_SYSTEM_SIGNATURE,
@@ -65,6 +65,37 @@ struct {
},
.mem_regions = {
+ /* IVSHMEM shared memory regions for 00:00.0 (demo) */
+ {
+ .phys_start = 0x8dfa00000,
+ .virt_start = 0x8dfa00000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ,
+ },
+ {
+ .phys_start = 0x8dfa10000,
+ .virt_start = 0x8dfa10000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* Peer 0 */ {
+ .phys_start = 0x8dfa20000,
+ .virt_start = 0x8dfa20000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE,
+ },
+ /* Peer 1 */ {
+ .phys_start = 0x8dfa30000,
+ .virt_start = 0x8dfa30000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ,
+ },
+ /* Peer 2 */ {
+ .phys_start = 0x8dfa40000,
+ .virt_start = 0x8dfa40000,
+ .size = 0x10000,
+ .flags = JAILHOUSE_MEM_READ,
+ },
/* IVSHMEM shared memory region for 00:01.0 */
JAILHOUSE_SHMEM_NET_REGIONS(0x8dfb00000, 0),
/* RAM */ {
@@ -206,12 +237,22 @@ struct {
},
.pci_devices = {
+ /* 0001:00:00.0 */ {
+ .type = JAILHOUSE_PCI_TYPE_IVSHMEM,
+ .domain = 1,
+ .bdf = 0 << 3,
+ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+ .shmem_regions_start = 0,
+ .shmem_dev_id = 0,
+ .shmem_peers = 3,
+ .shmem_protocol = JAILHOUSE_SHMEM_PROTO_UNDEFINED,
+ },
/* 0001:00:01.0 */ {
.type = JAILHOUSE_PCI_TYPE_IVSHMEM,
.domain = 1,
.bdf = 1 << 3,
- .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX,
- .shmem_regions_start = 0,
+ .bar_mask = JAILHOUSE_IVSHMEM_BAR_MASK_INTX_64K,
+ .shmem_regions_start = 5,
.shmem_dev_id = 0,
.shmem_peers = 2,
.shmem_protocol = JAILHOUSE_SHMEM_PROTO_VETH,
--
2.25.1
--
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/20220304021615.2862-5-mranostay%40ti.com.