Mercurial > flash_v2
annotate packages/devs/serial/sparclite/sleb/current/src/sleb_sdtr.c @ 130:eb9fd8c04db3 ecos-sw-2000-10-23
Merge from eCos master repository on 2000-10-23-17:01:37-BST
| author | jlarmour |
|---|---|
| date | Mon, 23 Oct 2000 17:10:57 +0000 |
| parents | 6ed91473a1cd |
| children | e0c0827131d1 |
| rev | line source |
|---|---|
|
82
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
1 //========================================================================== |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
3 // io/serial/sparclite/sleb_sdtr.c |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
4 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
5 // Serial I/O interface module for SPARClite Eval Board (SLEB) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
6 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
7 //========================================================================== |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
8 //####COPYRIGHTBEGIN#### |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
9 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
10 // ------------------------------------------- |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
11 // The contents of this file are subject to the Red Hat eCos Public License |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
12 // Version 1.1 (the "License"); you may not use this file except in |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
13 // compliance with the License. You may obtain a copy of the License at |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
14 // http://www.redhat.com/ |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
15 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
16 // Software distributed under the License is distributed on an "AS IS" |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
18 // License for the specific language governing rights and limitations under |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
19 // the License. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
20 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
21 // The Original Code is eCos - Embedded Configurable Operating System, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
22 // released September 30, 1998. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
23 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
24 // The Initial Developer of the Original Code is Red Hat. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
25 // Portions created by Red Hat are |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
26 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
27 // All Rights Reserved. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
28 // ------------------------------------------- |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
29 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
30 //####COPYRIGHTEND#### |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
31 //========================================================================== |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
32 //#####DESCRIPTIONBEGIN#### |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
33 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
34 // Author(s): gthomas |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
35 // Contributors: gthomas |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
36 // Date: 1999-02-04 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
37 // Purpose: SLEB serial I/O module |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
38 // Description: |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
39 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
40 //####DESCRIPTIONEND#### |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
41 // |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
42 //========================================================================== |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
43 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
44 #include <pkgconf/io.h> |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
45 #include <pkgconf/io_serial.h> |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
46 #include <cyg/io/io.h> |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
47 #include <cyg/hal/hal_intr.h> |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
48 #include <cyg/io/devtab.h> |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
49 #include <cyg/io/serial.h> |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
50 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
51 #ifdef CYGPKG_IO_SERIAL_SPARCLITE_SLEB |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
52 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
53 #include "sleb_sdtr.h" |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
54 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
55 extern void diag_printf(const char *fmt, ...); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
56 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
57 #define BUFSIZE 128 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
58 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
59 typedef struct sleb_sdtr_info { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
60 CYG_ADDRWORD base; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
61 CYG_WORD tx_int_num; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
62 CYG_WORD rx_int_num; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
63 cyg_interrupt tx_serial_interrupt; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
64 cyg_handle_t tx_serial_interrupt_handle; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
65 cyg_interrupt rx_serial_interrupt; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
66 cyg_handle_t rx_serial_interrupt_handle; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
67 cyg_uint8 cmd_reg; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
68 bool xmit_enabled; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
69 } sleb_sdtr_info; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
70 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
71 static bool sleb_sdtr_init(struct cyg_devtab_entry *tab); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
72 static bool sleb_sdtr_putc(serial_channel *chan, unsigned char c); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
73 static Cyg_ErrNo sleb_sdtr_lookup(struct cyg_devtab_entry **tab, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
74 struct cyg_devtab_entry *sub_tab, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
75 const char *name); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
76 static unsigned char sleb_sdtr_getc(serial_channel *chan); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
77 static Cyg_ErrNo sleb_sdtr_set_config(serial_channel *chan, cyg_uint32 key, |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
78 const void *xbuf, cyg_uint32 *len); |
|
82
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
79 static void sleb_sdtr_start_xmit(serial_channel *chan); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
80 static void sleb_sdtr_stop_xmit(serial_channel *chan); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
81 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
82 static cyg_uint32 sleb_sdtr_tx_ISR(cyg_vector_t vector, cyg_addrword_t data); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
83 static void sleb_sdtr_tx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
84 static cyg_uint32 sleb_sdtr_rx_ISR(cyg_vector_t vector, cyg_addrword_t data); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
85 static void sleb_sdtr_rx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
86 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
87 static SERIAL_FUNS(sleb_sdtr_funs, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
88 sleb_sdtr_putc, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
89 sleb_sdtr_getc, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
90 sleb_sdtr_set_config, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
91 sleb_sdtr_start_xmit, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
92 sleb_sdtr_stop_xmit |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
93 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
94 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
95 #ifdef CYGPKG_IO_SERIAL_SPARCLITE_SLEB_CON1 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
96 static sleb_sdtr_info sleb_sdtr_info0 = {SLEB_SDTR0_BASE, SLEB_SDTR0_TX_INT, SLEB_SDTR0_RX_INT}; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
97 #if CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON1_BUFSIZE > 0 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
98 static unsigned char sleb_sdtr_out_buf0[CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON1_BUFSIZE]; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
99 static unsigned char sleb_sdtr_in_buf0[CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON1_BUFSIZE]; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
100 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
101 static SERIAL_CHANNEL_USING_INTERRUPTS(sleb_sdtr_channel0, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
102 sleb_sdtr_funs, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
103 sleb_sdtr_info0, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
104 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON1_BAUD), |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
105 CYG_SERIAL_STOP_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
106 CYG_SERIAL_PARITY_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
107 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
108 CYG_SERIAL_FLAGS_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
109 &sleb_sdtr_out_buf0[0], sizeof(sleb_sdtr_out_buf0), |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
110 &sleb_sdtr_in_buf0[0], sizeof(sleb_sdtr_in_buf0) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
111 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
112 #else |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
113 static SERIAL_CHANNEL(sleb_sdtr_channel0, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
114 sleb_sdtr_funs, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
115 sleb_sdtr_info0, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
116 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON1_BAUD), |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
117 CYG_SERIAL_STOP_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
118 CYG_SERIAL_PARITY_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
119 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
120 CYG_SERIAL_FLAGS_DEFAULT |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
121 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
122 #endif |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
123 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
124 DEVTAB_ENTRY(sleb_sdtr_io0, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
125 CYGDAT_IO_SERIAL_SPARCLITE_SLEB_CON1_NAME, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
126 0, // Does not depend on a lower level interface |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
127 &cyg_io_serial_devio, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
128 sleb_sdtr_init, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
129 sleb_sdtr_lookup, // Serial driver may need initializing |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
130 &sleb_sdtr_channel0 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
131 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
132 #endif // CYGPKG_IO_SERIAL_SPARCLITE_SLEB_CON1 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
133 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
134 #ifdef CYGPKG_IO_SERIAL_SPARCLITE_SLEB_CON2 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
135 static sleb_sdtr_info sleb_sdtr_info1 = {SLEB_SDTR1_BASE, SLEB_SDTR1_TX_INT, SLEB_SDTR1_RX_INT}; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
136 #if CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON2_BUFSIZE > 0 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
137 static unsigned char sleb_sdtr_out_buf1[CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON2_BUFSIZE]; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
138 static unsigned char sleb_sdtr_in_buf1[CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON2_BUFSIZE]; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
139 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
140 static SERIAL_CHANNEL_USING_INTERRUPTS(sleb_sdtr_channel1, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
141 sleb_sdtr_funs, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
142 sleb_sdtr_info1, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
143 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON2_BAUD), |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
144 CYG_SERIAL_STOP_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
145 CYG_SERIAL_PARITY_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
146 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
147 CYG_SERIAL_FLAGS_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
148 &sleb_sdtr_out_buf1[0], sizeof(sleb_sdtr_out_buf1), |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
149 &sleb_sdtr_in_buf1[0], sizeof(sleb_sdtr_in_buf1) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
150 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
151 #else |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
152 static SERIAL_CHANNEL(sleb_sdtr_channel1, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
153 sleb_sdtr_funs, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
154 sleb_sdtr_info1, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
155 CYG_SERIAL_BAUD_RATE(CYGNUM_IO_SERIAL_SPARCLITE_SLEB_CON2_BAUD), |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
156 CYG_SERIAL_STOP_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
157 CYG_SERIAL_PARITY_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
158 CYG_SERIAL_WORD_LENGTH_DEFAULT, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
159 CYG_SERIAL_FLAGS_DEFAULT |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
160 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
161 #endif |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
162 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
163 DEVTAB_ENTRY(sleb_sdtr_io1, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
164 CYGDAT_IO_SERIAL_SPARCLITE_SLEB_CON2_NAME, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
165 0, // Does not depend on a lower level interface |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
166 &cyg_io_serial_devio, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
167 sleb_sdtr_init, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
168 sleb_sdtr_lookup, // Serial driver may need initializing |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
169 &sleb_sdtr_channel1 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
170 ); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
171 #endif // CYGPKG_IO_SERIAL_SPARCLITE_SLEB_CON2 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
172 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
173 // Internal function to actually configure the hardware to desired baud rate, etc. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
174 static bool |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
175 sleb_sdtr_config_port(serial_channel *chan, cyg_serial_info_t *new_config, bool init) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
176 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
177 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
178 CYG_ADDRWORD port = sdtr_chan->base; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
179 cyg_int32 baud_divisor; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
180 cyg_int32 clk, tval; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
181 unsigned char mode; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
182 #if 0 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
183 if ((new_config->baud < CYGNUM_SERIAL_BAUD_MIN) || (new_config->baud > CYGNUM_SERIAL_BAUD_MAX)) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
184 return false; // Invalid baud rate |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
185 #endif |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
186 baud_divisor = select_baud[new_config->baud]; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
187 if (baud_divisor == 0) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
188 return false; // Unsupported baud rate |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
189 // Reset the port |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
190 HAL_SPARC_86940_WRITE(SDTR_CONTROL(port), SDTR_CMD_RST); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
191 // Write the mode |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
192 mode = SDTR_MODE_MODE_ASYNC16 | |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
193 select_word_length[new_config->word_length - CYGNUM_SERIAL_WORD_LENGTH_5] | |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
194 select_stop_bits[new_config->stop] | |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
195 select_parity[new_config->parity]; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
196 HAL_SPARC_86940_WRITE(SDTR_CONTROL(port), mode); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
197 // Set baud rate clock. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
198 // ***** CAUTION! Both ports use the same time, thus they must both run at the same baud rate! |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
199 clk = *SLEB_CLOCK_SWITCH; // Compute board speed |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
200 if (clk & 0x80) clk = 10; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
201 clk = (clk & 0x3F) * 1000000; // in MHz |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
202 tval = (clk / (baud_divisor * 32)) - 1; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
203 HAL_SPARC_86940_WRITE(SLEB_TIMER3_RELOAD, tval); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
204 // Set up control register |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
205 sdtr_chan->cmd_reg = SDTR_CMD_RTS | SDTR_CMD_DTR | SDTR_CMD_TxEN; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
206 #ifdef CYGPKG_IO_SERIAL_SPARCLITE_SLEB_CON1 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
207 // Cygmon needs the receiver |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
208 if ((chan->out_cbuf.len != 0) || (chan == &sleb_sdtr_channel0)) { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
209 #else |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
210 if (chan->out_cbuf.len != 0) { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
211 #endif |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
212 sdtr_chan->cmd_reg |= SDTR_CMD_RxEN; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
213 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
214 if (init) { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
215 sdtr_chan->xmit_enabled = false; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
216 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
217 HAL_SPARC_86940_WRITE(SDTR_CONTROL(port), sdtr_chan->cmd_reg); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
218 if (new_config != &chan->config) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
219 chan->config = *new_config; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
220 return true; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
221 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
222 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
223 // Function to initialize the device. Called at bootstrap time. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
224 static bool |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
225 sleb_sdtr_init(struct cyg_devtab_entry *tab) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
226 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
227 serial_channel *chan = (serial_channel *)tab->priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
228 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
229 #ifdef CYGDBG_IO_INIT |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
230 diag_printf("SLEB SERIAL init - dev: %x.%d.%d\n", sdtr_chan->base, sdtr_chan->tx_int_num, sdtr_chan->rx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
231 #endif |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
232 (chan->callbacks->serial_init)(chan); // Really only required for interrupt driven devices |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
233 if (chan->out_cbuf.len != 0) { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
234 cyg_drv_interrupt_create(sdtr_chan->tx_int_num, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
235 99, // Priority - unused |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
236 (cyg_addrword_t)chan, // Data item passed to interrupt handler |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
237 sleb_sdtr_tx_ISR, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
238 sleb_sdtr_tx_DSR, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
239 &sdtr_chan->tx_serial_interrupt_handle, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
240 &sdtr_chan->tx_serial_interrupt); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
241 cyg_drv_interrupt_attach(sdtr_chan->tx_serial_interrupt_handle); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
242 cyg_drv_interrupt_mask(sdtr_chan->tx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
243 cyg_drv_interrupt_create(sdtr_chan->rx_int_num, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
244 99, // Priority - unused |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
245 (cyg_addrword_t)chan, // Data item passed to interrupt handler |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
246 sleb_sdtr_rx_ISR, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
247 sleb_sdtr_rx_DSR, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
248 &sdtr_chan->rx_serial_interrupt_handle, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
249 &sdtr_chan->rx_serial_interrupt); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
250 cyg_drv_interrupt_attach(sdtr_chan->rx_serial_interrupt_handle); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
251 cyg_drv_interrupt_unmask(sdtr_chan->rx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
252 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
253 sleb_sdtr_config_port(chan, &chan->config, true); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
254 return true; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
255 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
256 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
257 // This routine is called when the device is "looked" up (i.e. attached) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
258 static Cyg_ErrNo |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
259 sleb_sdtr_lookup(struct cyg_devtab_entry **tab, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
260 struct cyg_devtab_entry *sub_tab, |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
261 const char *name) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
262 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
263 serial_channel *chan = (serial_channel *)(*tab)->priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
264 (chan->callbacks->serial_init)(chan); // Really only required for interrupt driven devices |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
265 return ENOERR; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
266 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
267 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
268 // Send a character to the device output buffer. |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
269 // Return 'true' if character is sent to device |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
270 static bool |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
271 sleb_sdtr_putc(serial_channel *chan, unsigned char c) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
272 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
273 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
274 CYG_ADDRWORD port = sdtr_chan->base; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
275 cyg_uint8 status; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
276 HAL_SPARC_86940_READ(SDTR_STATUS(port), status); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
277 if (status & SDTR_STAT_TxRDY) { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
278 // Transmit buffer is empty |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
279 HAL_SPARC_86940_WRITE(SDTR_TXDATA(port), c); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
280 return true; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
281 } else { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
282 // No space |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
283 return false; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
284 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
285 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
286 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
287 // Fetch a character from the device input buffer, waiting if necessary |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
288 static unsigned char |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
289 sleb_sdtr_getc(serial_channel *chan) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
290 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
291 unsigned char c; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
292 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
293 CYG_ADDRWORD port = sdtr_chan->base; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
294 cyg_uint8 status; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
295 HAL_SPARC_86940_READ(SDTR_STATUS(port), status); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
296 while ((status & SDTR_STAT_RxRDY) == 0) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
297 HAL_SPARC_86940_READ(SDTR_STATUS(port), status); // Wait for char |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
298 HAL_SPARC_86940_READ(SDTR_RXDATA(port), c); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
299 return c; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
300 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
301 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
302 // Set up the device characteristics; baud rate, etc. |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
303 static Cyg_ErrNo |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
304 sleb_sdtr_set_config(serial_channel *chan, cyg_uint32 key, |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
305 const void *xbuf, cyg_uint32 *len) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
306 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
307 switch (key) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
308 case CYG_IO_SET_CONFIG_SERIAL_INFO: |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
309 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
310 cyg_serial_info_t *config = (cyg_serial_info_t *)xbuf; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
311 if ( *len < sizeof(cyg_serial_info_t) ) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
312 return -EINVAL; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
313 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
314 *len = sizeof(cyg_serial_info_t); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
315 if ( true != sleb_sdtr_config_port(chan, config, false) ) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
316 return -EINVAL; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
317 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
318 break; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
319 default: |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
320 return -EINVAL; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
321 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
322 return ENOERR; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
82
diff
changeset
|
323 } |
|
82
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
324 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
325 // Enable the transmitter on the device |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
326 static void |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
327 sleb_sdtr_start_xmit(serial_channel *chan) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
328 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
329 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
330 sdtr_chan->xmit_enabled = true; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
331 cyg_drv_interrupt_unmask(sdtr_chan->tx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
332 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
333 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
334 // Disable the transmitter on the device |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
335 static void |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
336 sleb_sdtr_stop_xmit(serial_channel *chan) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
337 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
338 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
339 cyg_drv_interrupt_mask(sdtr_chan->tx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
340 sdtr_chan->xmit_enabled = false; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
341 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
342 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
343 // Serial I/O - low level interrupt handler (ISR) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
344 static cyg_uint32 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
345 sleb_sdtr_tx_ISR(cyg_vector_t vector, cyg_addrword_t data) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
346 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
347 serial_channel *chan = (serial_channel *)data; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
348 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
349 cyg_drv_interrupt_mask(sdtr_chan->tx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
350 cyg_drv_interrupt_acknowledge(sdtr_chan->tx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
351 return CYG_ISR_CALL_DSR; // Cause DSR to be run |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
352 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
353 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
354 // Serial I/O - high level interrupt handler (DSR) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
355 static void |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
356 sleb_sdtr_tx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
357 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
358 serial_channel *chan = (serial_channel *)data; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
359 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
360 (chan->callbacks->xmt_char)(chan); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
361 if (sdtr_chan->xmit_enabled) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
362 cyg_drv_interrupt_unmask(sdtr_chan->tx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
363 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
364 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
365 // Serial I/O - low level interrupt handler (ISR) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
366 static cyg_uint32 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
367 sleb_sdtr_rx_ISR(cyg_vector_t vector, cyg_addrword_t data) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
368 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
369 serial_channel *chan = (serial_channel *)data; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
370 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
371 cyg_drv_interrupt_mask(sdtr_chan->rx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
372 return CYG_ISR_CALL_DSR; // Cause DSR to be run |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
373 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
374 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
375 // Serial I/O - high level interrupt handler (DSR) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
376 static void |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
377 sleb_sdtr_rx_DSR(cyg_vector_t vector, cyg_ucount32 count, cyg_addrword_t data) |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
378 { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
379 serial_channel *chan = (serial_channel *)data; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
380 sleb_sdtr_info *sdtr_chan = (sleb_sdtr_info *)chan->dev_priv; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
381 CYG_ADDRWORD port = sdtr_chan->base; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
382 cyg_uint8 status, c; |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
383 HAL_SPARC_86940_READ(SDTR_STATUS(port), status); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
384 if ((status & SDTR_STAT_RxRDY) != 0) { |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
385 HAL_SPARC_86940_READ(SDTR_RXDATA(port), c); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
386 (chan->callbacks->rcv_char)(chan, c); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
387 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
388 cyg_drv_interrupt_acknowledge(sdtr_chan->rx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
389 cyg_drv_interrupt_unmask(sdtr_chan->rx_int_num); |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
390 } |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
391 |
|
6736c52df507
Merge from eCos master repository on 2000-04-14-13:35:46-BST
jlarmour
parents:
diff
changeset
|
392 #endif // CYGPKG_IO_SERIAL_SPARCLITE_SLEB |
