aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-keystone2/include/odp/plat/ti_mcsdk.h
blob: d0bc5afd18b49279d370cc9842e240d4a95499bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
 * Copyright (c) 2014, Linaro Limited
 * Copyright (c) 2014, Texas Instruments Incorporated
 * All rights reserved.
 *
 * SPDX-License-Identifier:     BSD-3-Clause
 */

#ifndef ODP_TI_MCSDK_H_
#define ODP_TI_MCSDK_H_

#ifdef __cplusplus
extern "C" {
#endif

/* Define asm for C99 compatibility */
#define asm __asm

#include <ti/csl/cslr_device.h>
#include <ti/runtime/hplib/hplib.h>
#include <ti/runtime/pktlib/pktlib.h>
#include <ti/drv/nwal/nwal.h>
#include <ti/drv/nwal/nwal_util.h>
#include <ti/drv/nwal/nwal_osal.h>
#include <odp/plat/mcsdk_tune.h>

/** @internal McSDK initialization configuration */
struct mcsdk_cfg_s {
	int def_mem_size;            /**<  Bytes of CMA memory we have allocated */
	int def_max_descriptors;     /**<  Number of descriptors in system  (must be power of 2), 2^14 max */
	int def_tot_descriptors_for_us; /**<  Number of descriptors to create in our region (must be power of 2)*/
	int def_heap_n_descriptors;  /**<  Number of descriptor plus buffers in default heap*/
	int def_heap_n_zdescriptors; /**<  Number of zero len descriptors in defaut heap*/
	int def_heap_buf_size;       /**<  Size of buffers in default heap, max amount of area for packet data */
	int def_heap_tailroom_size;  /**<  Size of tailroom in reserve */
	int def_heap_extra_size;     /**<  Size of extra space at end of buffer */
	int def_multi_process;       /**<  Flag to indicate if NETAPI init is for multi-process environment */
};

Rm_ServiceHandle *rm_client_init(void);
int mcsdk_global_init(void);
int mcsdk_global_term(void);
int mcsdk_local_init(int thread_id);
int mcsdk_cppi_init(void);
int mcsdk_qmss_init(int max_descriptors);
int mcsdk_qmss_start(void);
int mcsdk_qmss_exit(void);
int mcsdk_cppi_start(void);
int mcsdk_cppi_exit(void);
int mcsdk_qmss_setup_memregion(uint32_t desc_num, uint32_t desc_size,
		uint32_t *desc_mem_base);
int mcsdk_qmss_remove_memregion(void);
int mcsdk_nwal_init(int region2use, Pktlib_HeapIfTable *p_table);
int mcsdk_nwal_start(Pktlib_HeapHandle pkt_heap,
		     Pktlib_HeapHandle cmd_rx_heap,
		     Pktlib_HeapHandle cmd_tx_heap);
int mcsdk_delete_heap(Pktlib_HeapHandle heap);

extern Pktlib_HeapIfTable  pktlib_if_table;
extern hplib_virtualAddrInfo_T odp_vm_info;

#ifdef __cplusplus
}
#endif

#endif /* ODP_TI_MCSDK_H_ */