source: rtems/c/src/libchip/network/dwmac-core.h @ 1613a01b

4.115
Last change on this file since 1613a01b was 1613a01b, checked in by Ralf Kirchner <ralf.kirchner@…>, on 04/10/14 at 15:06:14

libchip: Reduce tx interrupts

Reduce number of packet transmitted interrupts by using the interrupt mechanism only
if we run out of DMA descriptors.
Under normal conditions regaining DMA descriptors, mbufs and clusters is handled
via a counter.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/**
2 * @file
3 *
4 * @brief DWMAC 10/100/1000 Network Interface Controllers Core Handling
5 *
6 * DWMAC 10/100/1000 on-chip Synopsys IP Ethernet controllers.
7 * Driver core handling.
8 * This header file is NOT part of the driver API.
9 */
10
11/*
12 * Copyright (c) 2014 embedded brains GmbH.  All rights reserved.
13 *
14 *  embedded brains GmbH
15 *  Dornierstr. 4
16 *  82178 Puchheim
17 *  Germany
18 *  <rtems@embedded-brains.de>
19 *
20 * The license and distribution terms for this file may be
21 * found in the file LICENSE in this distribution or at
22 * http://www.rtems.org/license/LICENSE.
23 */
24
25#ifndef DWMAC_CORE_H_
26#define DWMAC_CORE_H_
27
28#include <stdint.h>
29#include "dwmac-common.h"
30
31#ifdef __cplusplus
32extern "C" {
33#endif /* __cplusplus */
34
35void dwmac_core_set_mac_addr(
36  const uint8_t      addr[6],
37  volatile uint32_t *reg_high,
38  volatile uint32_t *reg_low );
39
40void dwmac_core_set_mac(
41  dwmac_common_context *self,
42  const bool            enable );
43
44void dwmac_core_dma_start_tx( dwmac_common_context *self );
45
46void dwmac_core_dma_stop_tx( dwmac_common_context *self );
47
48void dwmac_core_dma_start_rx( dwmac_common_context *self );
49
50void dwmac_core_dma_stop_rx( dwmac_common_context *self );
51
52void dwmac_core_dma_restart_rx( dwmac_common_context *self );
53
54void dwmac_core_dma_restart_tx( dwmac_common_context *self );
55
56void dwmac_core_enable_dma_irq_rx( dwmac_common_context *self );
57
58void dwmac_core_enable_dma_irq_tx_default( dwmac_common_context *self );
59
60void dwmac_core_enable_dma_irq_tx_transmitted( dwmac_common_context *self );
61
62void dwmac_core_disable_dma_irq_tx_all( dwmac_common_context *self );
63
64void dwmac_core_disable_dma_irq_tx_transmitted( dwmac_common_context *self );
65
66void dwmac_core_disable_dma_irq_rx( dwmac_common_context *self );
67
68void dwmac_core_reset_dma_irq_status_tx( dwmac_common_context *self );
69
70void dwmac_core_reset_dma_irq_status_rx( dwmac_common_context *self );
71
72void dwmac_core_dma_interrupt( void *arg );
73
74void dwmac_core_dma_flush_tx_fifo( dwmac_common_context *self );
75
76#ifdef __cplusplus
77}
78#endif /* __cplusplus */
79
80#endif /* DWMAC_CORE_H_ */
Note: See TracBrowser for help on using the repository browser.