Rev 4723 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4723 | Rev 4756 | ||
|---|---|---|---|
| Line 19... | Line 19... | ||
| 19 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
19 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 20 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
20 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 21 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
21 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 22 | * |
22 | * |
| 23 | * Changes: |
23 | * Changes: |
| 24 | * 2009 Lukas Mejdrech ported to HelenOS |
24 | * 2009 ported to HelenOS, Lukas Mejdrech |
| 25 | */ |
25 | */ |
| 26 | 26 | ||
| 27 | /** @addtogroup ne2k |
27 | /** @addtogroup ne2k |
| 28 | * @{ |
28 | * @{ |
| 29 | */ |
29 | */ |
| 30 | 30 | ||
| 31 | /** @file |
31 | /** @file |
| 32 | * \todo |
32 | * NE1000 and NE2000 network interface initialization and probe functions implementation. |
| 33 | */ |
33 | */ |
| 34 | 34 | ||
| 35 | #include <stdio.h> |
35 | #include <stdio.h> |
| 36 | #include <unistd.h> |
36 | #include <unistd.h> |
| 37 | 37 | ||
| Line 58... | Line 58... | ||
| 58 | #include "dp8390.h" |
58 | #include "dp8390.h" |
| 59 | #include "ne2000.h" |
59 | #include "ne2000.h" |
| 60 | 60 | ||
| 61 | #if ENABLE_NE2000 |
61 | #if ENABLE_NE2000 |
| 62 | 62 | ||
| - | 63 | /** Number of bytes to transfer. |
|
| - | 64 | */ |
|
| 63 | #define N 100 |
65 | #define N 100 |
| 64 | 66 | ||
| 65 | //#define MILLIS_TO_TICKS(m) (((m)*HZ/1000)+1) |
67 | //#define MILLIS_TO_TICKS(m) (((m)*HZ/1000)+1) |
| 66 | 68 | ||
| - | 69 | /** Sleeps for the defined millicesonds. |
|
| - | 70 | * @param[in] millis The number of milliseconds to sleep. |
|
| - | 71 | */ |
|
| - | 72 | #define milli_delay( millis ) usleep(( millis ) * 1000 ) |
|
| - | 73 | ||
| - | 74 | /** Type definition of the testing function. |
|
| - | 75 | */ |
|
| 67 | _PROTOTYPE( typedef int (*testf_t), (dpeth_t *dep, int pos, u8_t *pat) ); |
76 | _PROTOTYPE( typedef int (*testf_t), (dpeth_t *dep, int pos, u8_t *pat) ); |
| 68 | 77 | ||
| - | 78 | /** First data pattern. |
|
| - | 79 | */ |
|
| 69 | u8_t pat0[]= { 0x00, 0x00, 0x00, 0x00 }; |
80 | u8_t pat0[]= { 0x00, 0x00, 0x00, 0x00 }; |
| - | 81 | ||
| - | 82 | /** Second data pattern. |
|
| - | 83 | */ |
|
| 70 | u8_t pat1[]= { 0xFF, 0xFF, 0xFF, 0xFF }; |
84 | u8_t pat1[]= { 0xFF, 0xFF, 0xFF, 0xFF }; |
| - | 85 | ||
| - | 86 | /** Third data pattern. |
|
| - | 87 | */ |
|
| 71 | u8_t pat2[]= { 0xA5, 0x5A, 0x69, 0x96 }; |
88 | u8_t pat2[]= { 0xA5, 0x5A, 0x69, 0x96 }; |
| - | 89 | ||
| - | 90 | /** Fourth data pattern. |
|
| - | 91 | */ |
|
| 72 | u8_t pat3[]= { 0x96, 0x69, 0x5A, 0xA5 }; |
92 | u8_t pat3[]= { 0x96, 0x69, 0x5A, 0xA5 }; |
| 73 | 93 | ||
| - | 94 | /** Tests 8 bit NE2000 network interface. |
|
| 74 | _PROTOTYPE( static int test_8, (dpeth_t *dep, int pos, u8_t *pat) ); |
95 | * @param[in,out] dep The network interface structure. |
| 75 | _PROTOTYPE( static int test_16, (dpeth_t *dep, int pos, u8_t *pat) ); |
96 | * @param[in] pos The starting position. |
| 76 | _PROTOTYPE( static void ne_stop, (dpeth_t *dep) ); |
97 | * @param[in] pat The data pattern to be written. |
| - | 98 | * @returns True on success. |
|
| - | 99 | * @returns FALSE otherwise. |
|
| - | 100 | */ |
|
| 77 | //_PROTOTYPE( static void milli_delay, (unsigned long millis) ); |
101 | static int test_8(dpeth_t *dep, int pos, u8_t *pat); |
| 78 | 102 | ||
| - | 103 | /** Tests 16 bit NE2000 network interface. |
|
| - | 104 | * @param[in,out] dep The network interface structure. |
|
| - | 105 | * @param[in] pos The starting position. |
|
| - | 106 | * @param[in] pat The data pattern to be written. |
|
| - | 107 | * @returns True on success. |
|
| - | 108 | * @returns FALSE otherwise. |
|
| - | 109 | */ |
|
| 79 | #define milli_delay( millis ) usleep(( millis ) * 1000 ) |
110 | static int test_16(dpeth_t *dep, int pos, u8_t *pat); |
| 80 | 111 | ||
| - | 112 | /** Stops the NE2000 network interface. |
|
| - | 113 | * @param[in,out] dep The network interface structure. |
|
| - | 114 | */ |
|
| - | 115 | static void ne_stop(dpeth_t *dep); |
|
| - | 116 | //_PROTOTYPE( static void milli_delay, (unsigned long millis) ); |
|
| - | 117 | ||
| - | 118 | /** Initializes the NE2000 network interface. |
|
| - | 119 | * @param[in,out] dep The network interface structure. |
|
| - | 120 | */ |
|
| 81 | _PROTOTYPE( void ne_init, (struct dpeth *dep) ); |
121 | void ne_init(struct dpeth *dep); |
| 82 | 122 | ||
| 83 | /*===========================================================================* |
123 | /*===========================================================================* |
| 84 | * ne_probe * |
124 | * ne_probe * |
| 85 | *===========================================================================*/ |
125 | *===========================================================================*/ |
| 86 | int ne_probe(dep) |
126 | int ne_probe(dep) |