1 /*
2  * aQuantia Corporation Network Driver
3  * Copyright (C) 2014-2017 aQuantia Corporation. All rights reserved
4  *
5  * This program is free software; you can redistribute it and/or modify it
6  * under the terms and conditions of the GNU General Public License,
7  * version 2, as published by the Free Software Foundation.
8  */
9 
10 /* File aq_cfg.h: Definition of configuration parameters and constants. */
11 
12 #ifndef AQ_CFG_H
13 #define AQ_CFG_H
14 
15 #define AQ_CFG_VECS_DEF   8U
16 #define AQ_CFG_TCS_DEF    1U
17 
18 #define AQ_CFG_TXDS_DEF    4096U
19 #define AQ_CFG_RXDS_DEF    2048U
20 
21 #define AQ_CFG_IS_POLLING_DEF 0U
22 
23 #define AQ_CFG_FORCE_LEGACY_INT 0U
24 
25 #define AQ_CFG_INTERRUPT_MODERATION_OFF		0
26 #define AQ_CFG_INTERRUPT_MODERATION_ON		1
27 #define AQ_CFG_INTERRUPT_MODERATION_AUTO	0xFFFFU
28 
29 #define AQ_CFG_INTERRUPT_MODERATION_USEC_MAX (0x1FF * 2)
30 
31 #define AQ_CFG_IRQ_MASK                      0x1FFU
32 
33 #define AQ_CFG_VECS_MAX   8U
34 #define AQ_CFG_TCS_MAX    8U
35 
36 #define AQ_CFG_TX_FRAME_MAX  (16U * 1024U)
37 #define AQ_CFG_RX_FRAME_MAX  (2U * 1024U)
38 
39 #define AQ_CFG_TX_CLEAN_BUDGET 256U
40 
41 #define AQ_CFG_RX_REFILL_THRES 32U
42 
43 #define AQ_CFG_RX_HDR_SIZE 256U
44 
45 #define AQ_CFG_RX_PAGEORDER 0U
46 
47 /* LRO */
48 #define AQ_CFG_IS_LRO_DEF           1U
49 
50 /* RSS */
51 #define AQ_CFG_RSS_INDIRECTION_TABLE_MAX  64U
52 #define AQ_CFG_RSS_HASHKEY_SIZE           40U
53 
54 #define AQ_CFG_IS_RSS_DEF           1U
55 #define AQ_CFG_NUM_RSS_QUEUES_DEF   AQ_CFG_VECS_DEF
56 #define AQ_CFG_RSS_BASE_CPU_NUM_DEF 0U
57 
58 #define AQ_CFG_PCI_FUNC_MSIX_IRQS   9U
59 #define AQ_CFG_PCI_FUNC_PORTS       2U
60 
61 #define AQ_CFG_SERVICE_TIMER_INTERVAL    (1 * HZ)
62 #define AQ_CFG_POLLING_TIMER_INTERVAL   ((unsigned int)(2 * HZ))
63 
64 #define AQ_CFG_SKB_FRAGS_MAX   32U
65 
66 /* Number of descriptors available in one ring to resume this ring queue
67  */
68 #define AQ_CFG_RESTART_DESC_THRES   (AQ_CFG_SKB_FRAGS_MAX * 2)
69 
70 #define AQ_CFG_NAPI_WEIGHT     64U
71 
72 /*#define AQ_CFG_MAC_ADDR_PERMANENT {0x30, 0x0E, 0xE3, 0x12, 0x34, 0x56}*/
73 
74 #define AQ_NIC_FC_OFF    0U
75 #define AQ_NIC_FC_TX     1U
76 #define AQ_NIC_FC_RX     2U
77 #define AQ_NIC_FC_FULL   3U
78 #define AQ_NIC_FC_AUTO   4U
79 
80 #define AQ_CFG_FC_MODE AQ_NIC_FC_FULL
81 
82 #define AQ_CFG_SPEED_MSK  0xFFFFU	/* 0xFFFFU==auto_neg */
83 
84 #define AQ_CFG_IS_AUTONEG_DEF       1U
85 #define AQ_CFG_MTU_DEF              1514U
86 
87 #define AQ_CFG_LOCK_TRYS   100U
88 
89 #define AQ_CFG_DRV_AUTHOR      "aQuantia"
90 #define AQ_CFG_DRV_DESC        "aQuantia Corporation(R) Network Driver"
91 #define AQ_CFG_DRV_NAME        "atlantic"
92 #define AQ_CFG_DRV_VERSION	__stringify(NIC_MAJOR_DRIVER_VERSION)"."\
93 				__stringify(NIC_MINOR_DRIVER_VERSION)"."\
94 				__stringify(NIC_BUILD_DRIVER_VERSION)"."\
95 				__stringify(NIC_REVISION_DRIVER_VERSION) \
96 				AQ_CFG_DRV_VERSION_SUFFIX
97 
98 #endif /* AQ_CFG_H */
99