DeviceQueue: Direct Solarflare queue implementation
[barrelfish] / usr / drivers / solarflare / sfn5122f.h
1 /*
2  * \file
3  * \brief Solarflare sfn5122f driver: Constants
4  *
5  *
6  */
7
8 /*
9  * Copyright (c) 2007, 2008, 2009, ETH Zurich.
10  * All rights reserved.
11  *
12  * This file is distributed under the terms in the attached LICENSE file.
13  * If you do not find this file, copies can be found by writing to:
14  * ETH Zurich D-INFK, Haldeneggsteig 4, CH-8092 Zurich. Attn: Systems Group.
15  */
16
17 #ifndef SFN5122F_H_
18 #define SFN5122F_H_
19
20 #include <dev/sfn5122f_dev.h>
21 #include <dev/sfn5122f_q_dev.h>
22 #include "mcdi_rpc.h"
23 #include "helper.h"
24
25 #define NUM_QUEUES 1024
26
27 #define BUF_SIZE 4096
28 #define DEVICE_ID 0x803
29 // TX Queue
30 #define TX_DESC_CACHE_SIZE 16
31 #define TX_ENTRIES 1024
32 #define TX_DC_BASE 0x11000
33 // Event Queue
34 #define EV_CODE_RX 0
35 #define EV_CODE_TX 2
36 #define EV_CODE_DRV 5
37 #define EV_CODE_DRV_GEN 7
38 #define EV_CODE_USER 8
39 #define EV_CODE_MCDI 12
40 #define EV_CODE_GLOBAL 6
41
42 /* for each TX/RX entry one entry plus an additonal 2 for mcdi completion
43 and link state events */
44 #define EV_ENTRIES 4096
45
46 // RX Queue
47 #define RX_DESC_CACHE_SIZE 64
48 #define RX_ENTRIES 2048
49 #define RX_DC_BASE 0xD000
50 // calculcat max frame length
51 #define MTU 1500
52 #define MTU_MAX 2048
53 /* PHY and MAC stats       */
54 #define NUM_MAC_STATS 0x61
55 // Numer of buffer table entries for each type of queue
56 #define NUM_ENT_EVQ ((EV_ENTRIES*8)/BUF_SIZE)
57 #define NUM_ENT_RX ((RX_ENTRIES*8)/BUF_SIZE)
58 #define NUM_ENT_TX ((TX_ENTRIES*8) / BUF_SIZE)
59 #define NUM_ENT_RX_USR  ((RX_ENTRIES*4) / BUF_SIZE)
60 #define MAX_BUF_TBL_ENTRIES 147456
61
62 // Filters
63 #define NUM_FILTERS_IP 8192
64 #define NUM_FILTERS_MAC 512
65
66
67 #endif /* SFN5122F_H_ */