source: rtems-libbsd/freebsd/sys/dev/dwc/if_dwcvar.h @ 3ef41be

55-freebsd-126-freebsd-12
Last change on this file since 3ef41be was 3ef41be, checked in by Sebastian Huber <sebastian.huber@…>, on 01/10/17 at 08:16:17

if_dwc: Use explicit cache operations

  • Property mode set to 100644
File size: 3.4 KB
Line 
1/*-
2 * Copyright (c) 2014 Ruslan Bukin <br@bsdpad.com>
3 * All rights reserved.
4 *
5 * This software was developed by SRI International and the University of
6 * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
7 * ("CTSRD"), as part of the DARPA CRASH research programme.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 * 1. Redistributions of source code must retain the above copyright
13 *    notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in the
16 *    documentation and/or other materials provided with the distribution.
17 *
18 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $FreeBSD$
31 */
32
33/*
34 * Ethernet media access controller (EMAC)
35 * Chapter 17, Altera Cyclone V Device Handbook (CV-5V2 2014.07.22)
36 *
37 * EMAC is an instance of the Synopsys DesignWare 3504-0
38 * Universal 10/100/1000 Ethernet MAC (DWC_gmac).
39 */
40
41#ifndef __IF_DWCVAR_H__
42#define __IF_DWCVAR_H__
43
44/*
45 * Driver data and defines.
46 */
47#define RX_MAX_PACKET   0x7ff
48#ifndef __rtems__
49#define RX_DESC_COUNT   1024
50#else /* __rtems__ */
51#define RX_DESC_COUNT   64
52#endif /* __rtems__ */
53#define RX_DESC_SIZE    (sizeof(struct dwc_hwdesc) * RX_DESC_COUNT)
54#ifndef __rtems__
55#define TX_DESC_COUNT   1024
56#else /* __rtems__ */
57#define TX_DESC_COUNT   256
58#endif /* __rtems__ */
59#define TX_DESC_SIZE    (sizeof(struct dwc_hwdesc) * TX_DESC_COUNT)
60#define TX_MAX_DMA_SEGS 8       /* maximum segs in a tx mbuf dma */
61
62struct dwc_bufmap {
63#ifndef __rtems__
64        bus_dmamap_t            map;
65#endif /* __rtems__ */
66        struct mbuf             *mbuf;
67};
68
69struct dwc_softc {
70        struct resource         *res[2];
71        bus_space_tag_t         bst;
72        bus_space_handle_t      bsh;
73        device_t                dev;
74        int                     mactype;
75        int                     mii_clk;
76        device_t                miibus;
77        struct mii_data *       mii_softc;
78        struct ifnet            *ifp;
79        int                     if_flags;
80        struct mtx              mtx;
81        void *                  intr_cookie;
82        struct callout          dwc_callout;
83        boolean_t               link_is_up;
84        boolean_t               is_attached;
85        boolean_t               is_detaching;
86        int                     tx_watchdog_count;
87        int                     stats_harvest_count;
88
89        /* RX */
90        bus_dma_tag_t           rxdesc_tag;
91        bus_dmamap_t            rxdesc_map;
92        struct dwc_hwdesc       *rxdesc_ring;
93#ifndef __rtems__
94        bus_addr_t              rxdesc_ring_paddr;
95        bus_dma_tag_t           rxbuf_tag;
96#endif /* __rtems__ */
97        struct dwc_bufmap       rxbuf_map[RX_DESC_COUNT];
98        uint32_t                rx_idx;
99
100        /* TX */
101        bus_dma_tag_t           txdesc_tag;
102        bus_dmamap_t            txdesc_map;
103        struct dwc_hwdesc       *txdesc_ring;
104#ifndef __rtems__
105        bus_addr_t              txdesc_ring_paddr;
106        bus_dma_tag_t           txbuf_tag;
107#endif /* __rtems__ */
108        struct dwc_bufmap       txbuf_map[TX_DESC_COUNT];
109        uint32_t                tx_idx_head;
110        uint32_t                tx_idx_tail;
111        int                     txcount;
112};
113
114#endif  /* __IF_DWCVAR_H__ */
Note: See TracBrowser for help on using the repository browser.