11// SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) AND MIT
22/**
3- * Copyright (c) 2019-2022 Hailo Technologies Ltd. All rights reserved.
3+ * Copyright (c) 2019-2024 Hailo Technologies Ltd. All rights reserved.
44 **/
55
66#ifndef _HAILO_IOCTL_COMMON_H_
77#define _HAILO_IOCTL_COMMON_H_
88
99#define HAILO_DRV_VER_MAJOR 4
10- #define HAILO_DRV_VER_MINOR 18
10+ #define HAILO_DRV_VER_MINOR 19
1111#define HAILO_DRV_VER_REVISION 0
1212
1313#define _STRINGIFY_EXPANDED ( x ) #x
1717
1818// This value is not easily changeable.
1919// For example: the channel interrupts ioctls assume we have up to 32 channels
20- #define MAX_VDMA_CHANNELS_PER_ENGINE (32)
21- #define MAX_VDMA_ENGINES (3)
22- #define SIZE_OF_VDMA_DESCRIPTOR (16)
23- #define VDMA_DEST_CHANNELS_START (16)
20+ #define MAX_VDMA_CHANNELS_PER_ENGINE (32)
21+ #define VDMA_CHANNELS_PER_ENGINE_PER_DIRECTION (16)
22+ #define MAX_VDMA_ENGINES (3)
23+ #define SIZE_OF_VDMA_DESCRIPTOR (16)
24+ #define VDMA_DEST_CHANNELS_START (16)
2425
2526#define HAILO_VDMA_MAX_ONGOING_TRANSFERS (128)
2627#define HAILO_VDMA_MAX_ONGOING_TRANSFERS_MASK (HAILO_VDMA_MAX_ONGOING_TRANSFERS - 1)
3738#define FW_ACCESS_APP_CPU_CONTROL_MASK (1 << FW_ACCESS_CONTROL_INTERRUPT_SHIFT)
3839#define FW_ACCESS_DRIVER_SHUTDOWN_SHIFT (2)
3940#define FW_ACCESS_DRIVER_SHUTDOWN_MASK (1 << FW_ACCESS_DRIVER_SHUTDOWN_SHIFT)
40- #define FW_ACCESS_SOC_CONNECT_SHIFT (3)
41- #define FW_ACCESS_SOC_CONNECT_MASK (1 << FW_ACCESS_SOC_CONNECT_SHIFT )
41+ #define FW_ACCESS_SOC_CONTROL_SHIFT (3)
42+ #define FW_ACCESS_SOC_CONTROL_MASK (1 << FW_ACCESS_SOC_CONTROL_SHIFT )
4243
4344#define INVALID_VDMA_CHANNEL (0xff)
4445
@@ -245,6 +246,12 @@ struct hailo_desc_list_release_params {
245246 uintptr_t desc_handle ; // in
246247};
247248
249+ struct hailo_write_action_list_params {
250+ uint8_t * data ; // in
251+ size_t size ; // in
252+ uint64_t dma_address ; // out
253+ };
254+
248255/* structure used in ioctl HAILO_DESC_LIST_BIND_VDMA_BUFFER */
249256struct hailo_desc_list_program_params {
250257 size_t buffer_handle ; // in
@@ -508,6 +515,7 @@ struct hailo_vdma_launch_transfer_params {
508515
509516/* structure used in ioctl HAILO_SOC_CONNECT */
510517struct hailo_soc_connect_params {
518+ uint16_t port_number ; // in
511519 uint8_t input_channel_index ; // out
512520 uint8_t output_channel_index ; // out
513521 uintptr_t input_desc_handle ; // in
@@ -522,6 +530,7 @@ struct hailo_soc_close_params {
522530
523531/* structure used in ioctl HAILO_PCI_EP_ACCEPT */
524532struct hailo_pci_ep_accept_params {
533+ uint16_t port_number ; // in
525534 uint8_t input_channel_index ; // out
526535 uint8_t output_channel_index ; // out
527536 uintptr_t input_desc_handle ; // in
@@ -562,6 +571,7 @@ struct tCompatibleHailoIoctlData
562571 struct hailo_soc_close_params SocCloseParams ;
563572 struct hailo_pci_ep_accept_params AcceptParams ;
564573 struct hailo_pci_ep_close_params PciEpCloseParams ;
574+ struct hailo_write_action_list_params WriteActionListParams ;
565575 } Buffer ;
566576};
567577#endif // _MSC_VER
@@ -632,6 +642,7 @@ enum hailo_nnc_ioctl_code {
632642 HAILO_DISABLE_NOTIFICATION_CODE ,
633643 HAILO_READ_LOG_CODE ,
634644 HAILO_RESET_NN_CORE_CODE ,
645+ HAILO_WRITE_ACTION_LIST_CODE ,
635646
636647 // Must be last
637648 HAILO_NNC_IOCTL_MAX_NR
@@ -642,6 +653,7 @@ enum hailo_nnc_ioctl_code {
642653#define HAILO_DISABLE_NOTIFICATION _IO_(HAILO_NNC_IOCTL_MAGIC, HAILO_DISABLE_NOTIFICATION_CODE)
643654#define HAILO_READ_LOG _IOWR_(HAILO_NNC_IOCTL_MAGIC, HAILO_READ_LOG_CODE, struct hailo_read_log_params)
644655#define HAILO_RESET_NN_CORE _IO_(HAILO_NNC_IOCTL_MAGIC, HAILO_RESET_NN_CORE_CODE)
656+ #define HAILO_WRITE_ACTION_LIST _IOW_(HAILO_NNC_IOCTL_MAGIC, HAILO_WRITE_ACTION_LIST_CODE, struct hailo_write_action_list_params)
645657
646658enum hailo_soc_ioctl_code {
647659 HAILO_SOC_IOCTL_CONNECT_CODE ,
0 commit comments