Home
last modified time | relevance | path

Searched refs:ivshmem (Results 1 – 25 of 29) sorted by relevance

12

/Zephyr-Core-3.5.0/tests/drivers/virtualization/ivshmem/plain/src/
Divshmem.c12 ZTEST(ivshmem, test_ivshmem_plain) in ZTEST() argument
14 const struct device *ivshmem; in ZTEST() local
22 ivshmem = DEVICE_DT_GET_ONE(qemu_ivshmem); in ZTEST()
23 zassert_true(device_is_ready(ivshmem), "ivshmem device is not ready"); in ZTEST()
25 size = ivshmem_get_mem(ivshmem, &mem); in ZTEST()
29 id = ivshmem_get_id(ivshmem); in ZTEST()
39 vectors = ivshmem_get_vectors(ivshmem); in ZTEST()
42 ret = z_impl_ivshmem_int_peer(ivshmem, 0, 0); in ZTEST()
46 ret = ivshmem_register_handler(ivshmem, NULL, 0); in ZTEST()
56 ZTEST(ivshmem, test_quit_kernel) in ZTEST() argument
[all …]
/Zephyr-Core-3.5.0/drivers/virtualization/
DKconfig16 bool "Inter-VM shared memory device (ivshmem)"
19 This will enable support of qemu's ivshmem device, which is also
26 module-str = ivshmem
30 bool "Support interrupt based ivshmem (doorbell version)"
32 This will enable support of ivshmem-doorbell, i.e. the interrupt
33 based ivshmem. For ivshmem-v2 INTx interrupts are also supported.
43 ivshmem.
57 This is mostly a module to help getting info the ivshmem and/or
58 quickly testing your ivshmem client application (from another VM).
63 bool "Inter-VM shared memory v2 (ivshmem-v2)"
[all …]
Dvirt_ivshmem_shell.c11 static const struct device *ivshmem = DEVICE_DT_GET_ONE(qemu_ivshmem); variable
51 if (!device_is_ready(ivshmem)) { in get_ivshmem()
71 size = ivshmem_get_mem(ivshmem, &mem); in cmd_ivshmem_shmem()
72 id = ivshmem_get_id(ivshmem); in cmd_ivshmem_shmem()
73 vectors = ivshmem_get_vectors(ivshmem); in cmd_ivshmem_shmem()
100 size = ivshmem_get_mem(ivshmem, &mem); in cmd_ivshmem_dump()
134 ret = ivshmem_int_peer(ivshmem, (uint16_t)peer_id, (uint16_t)vector); in cmd_ivshmem_int()
161 if (ivshmem_register_handler(ivshmem, &doorbell_sig, in cmd_ivshmem_get_notified()
213 SHELL_CMD_REGISTER(ivshmem, &sub_ivshmem_cmds,
Dvirt_ivshmem.c11 LOG_MODULE_REGISTER(ivshmem);
40 struct ivshmem *data = dev->data; in ivshmem_configure_msi_x_interrupts()
96 struct ivshmem *data = dev->data; in ivshmem_configure_int_x_interrupts()
135 struct ivshmem *data = dev->data; in register_signal()
160 struct ivshmem *data = dev->data; in ivshmem_configure()
285 struct ivshmem *data = dev->data; in ivshmem_api_get_mem()
297 struct ivshmem *data = dev->data; in ivshmem_api_get_id()
319 struct ivshmem *data = dev->data; in ivshmem_api_get_vectors()
331 struct ivshmem *data = dev->data; in ivshmem_api_int_peer()
370 struct ivshmem *data = dev->data; in ivshmem_api_register_handler()
[all …]
DCMakeLists.txt4 ${ZEPHYR_BASE}/include/zephyr/drivers/virtualization/ivshmem.h
Dvirt_ivshmem.h46 struct ivshmem { struct
/Zephyr-Core-3.5.0/samples/drivers/virtualization/ivshmem/doorbell/
DREADME.rst1 .. zephyr:code-sample:: ivshmem-doorbell
3 :relevant-api: ivshmem
12 communicate using ivshmem. This is a subset of the functionality provided by
20 ivshmem-server needs to be available and running. The server is available in
24 ivshmem-client needs to be available as it is employed in this sample as an
25 external application. The same conditions of ivshmem-server applies to the
26 ivshmem-server, as it is also available via QEMU.
31 Building ivshmem-doorbell is as follows:
37 :zephyr-app: samples/drivers/virtualization/ivshmem/doorbell
47 :zephyr-app: samples/drivers/virtualization/ivshmem/doorbell
[all …]
DCMakeLists.txt10 target_sources(app PRIVATE src/ivshmem.c)
/Zephyr-Core-3.5.0/doc/services/virtualization/
Divshmem.rst17 called ivshmem, which stands for inter-VM Shared Memory.
19 The two types are supported: a plain shared memory (ivshmem-plain) or a shared
21 thus to be interrupted as well itself (ivshmem-doorbell).
23 Please refer to the official `Qemu ivshmem documentation
24 <https://www.qemu.org/docs/master/system/devices/ivshmem.html>`_ for more information.
38 Note that a tiny shell module can be exposed to test the ivshmem feature by
41 ivshmem-v2
44 Zephyr also supports ivshmem-v2:
46 https://github.com/siemens/jailhouse/blob/master/Documentation/ivshmem-v2-specification.md
49 (e.g. :zephyr:code-sample:`eth-ivshmem`). It is also possible to use ivshmem-v2 without
[all …]
Dindex.rst9 ivshmem.rst
/Zephyr-Core-3.5.0/samples/drivers/ipm/ipm_ivshmem/
DREADME.rst1 .. zephyr:code-sample:: ipm-ivshmem
12 ivshmem-server needs to be available and running. The server is available in
16 ivshmem-client needs to be available as it is employed in this sample as an
17 external application. The same conditions of ivshmem-server apply to the
18 ivshmem-server, as it is also available via QEMU.
22 #. The ivshmem-server utility for QEMU can be found into the Zephyr SDK
26 #. You may also find ivshmem-client utility, it can be useful to check if everything works
29 #. Run ivshmem-server. For the ivshmem-server, both number of vectors and
31 For Zephyr, the number of vectors and shared memory size of ivshmem are
38 $ sudo ivshmem-server -n 2
[all …]
/Zephyr-Core-3.5.0/drivers/ethernet/
Deth_ivshmem.c50 const struct device *ivshmem; member
118 ivshmem_int_peer(cfg_data->ivshmem, dev_data->peer_id, dev_data->tx_rx_vector); in eth_ivshmem_send()
158 ivshmem_int_peer(cfg_data->ivshmem, dev_data->peer_id, dev_data->tx_rx_vector); in eth_ivshmem_rx()
173 ivshmem_set_state(cfg_data->ivshmem, state); in eth_ivshmem_set_state()
181 uint32_t peer_state = ivshmem_get_state(cfg_data->ivshmem, dev_data->peer_id); in eth_ivshmem_state_update()
274 if (!device_is_ready(cfg_data->ivshmem)) { in eth_ivshmem_initialize()
279 uint16_t protocol = ivshmem_get_protocol(cfg_data->ivshmem); in eth_ivshmem_initialize()
286 uint32_t id = ivshmem_get_id(cfg_data->ivshmem); in eth_ivshmem_initialize()
287 uint32_t max_peers = ivshmem_get_max_peers(cfg_data->ivshmem); in eth_ivshmem_initialize()
303 cfg_data->ivshmem, 0, &output_section_addr); in eth_ivshmem_initialize()
[all …]
/Zephyr-Core-3.5.0/samples/drivers/ethernet/eth_ivshmem/boards/
Dqemu_cortex_a53.overlay37 compatible = "siemens,ivshmem-eth";
38 ivshmem-v2 = <&ivshmem0>;
45 ivshmem0: ivshmem@0 {
46 compatible = "qemu,ivshmem";
47 ivshmem-v2;
/Zephyr-Core-3.5.0/samples/drivers/ipm/ipm_ivshmem/boards/
Dqemu_cortex_a53.overlay10 compatible = "linaro,ivshmem-ipm";
11 ivshmem = <&ivshmem0>;
Dpcie_ivshmem.dtsi10 ivshmem0: ivshmem {
11 compatible = "qemu,ivshmem";
/Zephyr-Core-3.5.0/tests/drivers/virtualization/ivshmem/plain/boards/
Dpcie_ivshmem.dtsi10 ivshmem0: ivshmem {
11 compatible = "qemu,ivshmem";
/Zephyr-Core-3.5.0/samples/drivers/virtualization/ivshmem/doorbell/boards/
Dpcie_ivshmem.dtsi10 ivshmem0: ivshmem {
11 compatible = "qemu,ivshmem";
/Zephyr-Core-3.5.0/drivers/ipm/
DKconfig.ivshmem10 Adjust the stack size, in bytes of the ivshmem event loop task.
16 Adjust the priority of the ivshmem event loop task.
Dipm_ivshmem.c122 DEVICE_DT_GET(DT_INST_PHANDLE(inst, ivshmem))\
DKconfig62 source "drivers/ipm/Kconfig.ivshmem"
/Zephyr-Core-3.5.0/tests/drivers/virtualization/ivshmem/plain/
DCMakeLists.txt9 target_sources(app PRIVATE src/ivshmem.c)
Dapp.overlay16 compatible = "qemu,ivshmem";
/Zephyr-Core-3.5.0/samples/drivers/ethernet/eth_ivshmem/
DREADME.rst1 .. zephyr:code-sample:: eth-ivshmem
2 :name: Inter-VM Shared Memory (ivshmem) Ethernet
3 :relevant-api: ivshmem ethernet
/Zephyr-Core-3.5.0/cmake/emu/
Dqemu.cmake344 -device ivshmem-doorbell,vectors=${CONFIG_IVSHMEM_MSI_X_VECTORS},chardev=ivshmem
345 -chardev socket,path=/tmp/ivshmem_socket,id=ivshmem
349 -device ivshmem-plain,memdev=hostmem
350 …backend-file,size=${CONFIG_QEMU_IVSHMEM_PLAIN_MEM_SIZE}M,share,mem-path=/dev/shm/ivshmem,id=hostmem
/Zephyr-Core-3.5.0/boards/
DKconfig86 int "QEMU ivshmem-plain shared memory size in mega-bytes"
90 This sets the size of the shared memory when using ivshmem-plain

12