/Zephyr-Core-3.5.0/tests/drivers/virtualization/ivshmem/plain/src/ |
D | ivshmem.c | 12 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/ |
D | Kconfig | 16 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 …]
|
D | virt_ivshmem_shell.c | 11 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,
|
D | virt_ivshmem.c | 11 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 …]
|
D | CMakeLists.txt | 4 ${ZEPHYR_BASE}/include/zephyr/drivers/virtualization/ivshmem.h
|
D | virt_ivshmem.h | 46 struct ivshmem { struct
|
/Zephyr-Core-3.5.0/samples/drivers/virtualization/ivshmem/doorbell/ |
D | README.rst | 1 .. 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 …]
|
D | CMakeLists.txt | 10 target_sources(app PRIVATE src/ivshmem.c)
|
/Zephyr-Core-3.5.0/doc/services/virtualization/ |
D | ivshmem.rst | 17 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 …]
|
D | index.rst | 9 ivshmem.rst
|
/Zephyr-Core-3.5.0/samples/drivers/ipm/ipm_ivshmem/ |
D | README.rst | 1 .. 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/ |
D | eth_ivshmem.c | 50 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/ |
D | qemu_cortex_a53.overlay | 37 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/ |
D | qemu_cortex_a53.overlay | 10 compatible = "linaro,ivshmem-ipm"; 11 ivshmem = <&ivshmem0>;
|
D | pcie_ivshmem.dtsi | 10 ivshmem0: ivshmem { 11 compatible = "qemu,ivshmem";
|
/Zephyr-Core-3.5.0/tests/drivers/virtualization/ivshmem/plain/boards/ |
D | pcie_ivshmem.dtsi | 10 ivshmem0: ivshmem { 11 compatible = "qemu,ivshmem";
|
/Zephyr-Core-3.5.0/samples/drivers/virtualization/ivshmem/doorbell/boards/ |
D | pcie_ivshmem.dtsi | 10 ivshmem0: ivshmem { 11 compatible = "qemu,ivshmem";
|
/Zephyr-Core-3.5.0/drivers/ipm/ |
D | Kconfig.ivshmem | 10 Adjust the stack size, in bytes of the ivshmem event loop task. 16 Adjust the priority of the ivshmem event loop task.
|
D | ipm_ivshmem.c | 122 DEVICE_DT_GET(DT_INST_PHANDLE(inst, ivshmem))\
|
D | Kconfig | 62 source "drivers/ipm/Kconfig.ivshmem"
|
/Zephyr-Core-3.5.0/tests/drivers/virtualization/ivshmem/plain/ |
D | CMakeLists.txt | 9 target_sources(app PRIVATE src/ivshmem.c)
|
D | app.overlay | 16 compatible = "qemu,ivshmem";
|
/Zephyr-Core-3.5.0/samples/drivers/ethernet/eth_ivshmem/ |
D | README.rst | 1 .. 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/ |
D | qemu.cmake | 344 -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/ |
D | Kconfig | 86 int "QEMU ivshmem-plain shared memory size in mega-bytes" 90 This sets the size of the shared memory when using ivshmem-plain
|