source: rtems/c/src/libchip/network/smc91111config.h @ 55a685b

4.104.114.95
Last change on this file since 55a685b was 2be6d66b, checked in by Ralf Corsepius <ralf.corsepius@…>, on 01/12/06 at 06:13:03

2006-01-12 Ralf Corsepius <ralf.corsepius@…>

  • libchip/Makefile.am: Build libchip/network/smc91111.
  • libchip/network/smc91111.c, libchip/network/smc91111config.h: Eliminate cyg_int* crap.
  • Property mode set to 100644
File size: 3.8 KB
Line 
1/*
2 *  $Id$
3 */
4
5#ifndef _SMC91111_CONFIG_H_
6#define _SMC91111_CONFIG_H_
7
8/*
9 * RTEMS event used by interrupt handler to signal driver tasks.
10 * This must not be any of the events used by the network task synchronization.
11 */
12#define INTERRUPT_EVENT RTEMS_EVENT_1
13
14/*
15 * RTEMS event used to start transmit daemon.
16 * This must not be the same as INTERRUPT_EVENT.
17 */
18#define START_TRANSMIT_EVENT    RTEMS_EVENT_2
19
20 /* event to send when tx buffers become available */
21#define SMC91111_TX_WAIT_EVENT  RTEMS_EVENT_3
22
23
24/* Number of OCs supported by this driver*/
25#define NOCDRIVER       1
26
27/* Receive buffer size -- Allow for a full ethernet packet including CRC */
28#define RBUF_SIZE       1536
29
30#define ET_MINLEN 64            /* minimum message length */
31
32#if (MCLBYTES < RBUF_SIZE)
33# error "Driver must have MCLBYTES > RBUF_SIZE"
34#endif
35
36/* ----------------- cygdriver params ----------------- */
37
38#define LAN91CXX_32BIT_RX
39#define LAN91CXX_IS_LAN91C111
40
41/* ----------------- compat layer ----------------- */
42
43#include <rtems/stdint.h>
44
45typedef uint32_t  CYG_WORD;
46typedef uint8_t   CYG_BYTE;
47typedef uint16_t  CYG_WORD16;
48typedef uint32_t  CYG_WORD32;
49
50#ifndef CYG_SWAP16
51# define CYG_SWAP16(_x_)                                        \
52    ({ uint16_t _x = (_x_); ((_x << 8) | (_x >> 8)); })
53#endif
54
55#ifndef CYG_SWAP32
56# define CYG_SWAP32(_x_)                        \
57    ({ uint32_t _x = (_x_);                   \
58       ((_x << 24) |                            \
59       ((0x0000FF00UL & _x) <<  8) |            \
60       ((0x00FF0000UL & _x) >>  8) |            \
61       (_x  >> 24)); })
62#endif
63
64# define CYG_CPU_TO_BE16(_x_) (_x_)
65# define CYG_CPU_TO_BE32(_x_) (_x_)
66# define CYG_BE16_TO_CPU(_x_) (_x_)
67# define CYG_BE32_TO_CPU(_x_) (_x_)
68
69# define CYG_CPU_TO_LE16(_x_) CYG_SWAP16((_x_))
70# define CYG_CPU_TO_LE32(_x_) CYG_SWAP32((_x_))
71# define CYG_LE16_TO_CPU(_x_) CYG_SWAP16((_x_))
72# define CYG_LE32_TO_CPU(_x_) CYG_SWAP32((_x_))
73
74#define CYG_MACRO_START do {
75#define CYG_MACRO_END   } while (0)
76#define HAL_IO_BARRIER()                        \
77    asm volatile ( "" : : : "memory" )
78
79#define HAL_READ_UINT8( _register_, _value_ )           \
80    CYG_MACRO_START                                     \
81    ((_value_) = *((volatile CYG_BYTE *)(_register_))); \
82    HAL_IO_BARRIER ();                                  \
83    CYG_MACRO_END
84
85#define HAL_WRITE_UINT8( _register_, _value_ )          \
86    CYG_MACRO_START                                     \
87    (*((volatile CYG_BYTE *)(_register_)) = (_value_)); \
88    HAL_IO_BARRIER ();                                  \
89    CYG_MACRO_END
90
91#define HAL_READ_UINT16( _register_, _value_ )                  \
92    CYG_MACRO_START                                             \
93    ((_value_) = *((volatile CYG_WORD16 *)(_register_)));       \
94    HAL_IO_BARRIER ();                                          \
95    CYG_MACRO_END
96
97#define HAL_WRITE_UINT16( _register_, _value_ )                 \
98    CYG_MACRO_START                                             \
99    (*((volatile CYG_WORD16 *)(_register_)) = (_value_));       \
100    HAL_IO_BARRIER ();                                          \
101    CYG_MACRO_END
102
103#define HAL_READ_UINT32( _register_, _value_ )                  \
104    CYG_MACRO_START                                             \
105    ((_value_) = *((volatile CYG_WORD32 *)(_register_)));       \
106    HAL_IO_BARRIER ();                                          \
107    CYG_MACRO_END
108
109#define HAL_READ_UINT16( _register_, _value_ )                  \
110    CYG_MACRO_START                                             \
111    ((_value_) = *((volatile CYG_WORD16 *)(_register_)));       \
112    HAL_IO_BARRIER ();                                          \
113    CYG_MACRO_END
114
115#define CYG_ASSERT(c,p) do { if (!(c)) { while(1) { printf(p);} }; } while(0)
116
117#define HAL_DELAY_US(p) rtems_task_wake_after (TOD_MICROSECONDS_TO_TICKS (p))
118
119
120#endif  /* _SMC_91111_CONFIG_H_ */
121
122
Note: See TracBrowser for help on using the repository browser.