Mercurial > ecos
annotate packages/redboot/current/src/main.c @ 1740:0031b615f51c
Add support for reverse endianess of fis and config data
| author | msalter |
|---|---|
| date | Wed, 01 Sep 2004 21:21:30 +0000 |
| parents | 59fbd6362c2b |
| children | 6535959b8edf |
| rev | line source |
|---|---|
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
1 //========================================================================== |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
3 // main.c |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
4 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
5 // RedBoot main routine |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
6 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
7 //========================================================================== |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
8 //####ECOSGPLCOPYRIGHTBEGIN#### |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
9 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
10 // This file is part of eCos, the Embedded Configurable Operating System. |
|
1740
0031b615f51c
Add support for reverse endianess of fis and config data
msalter
parents:
1663
diff
changeset
|
11 // Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Red Hat, Inc. |
|
1605
43a89c18d005
Add checking (assert) for size of option arrays. Also fix port for TFTP on little endian systems.
gthomas
parents:
1513
diff
changeset
|
12 // Copyright (C) 2002, 2003, 2004 Gary Thomas |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
13 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
14 // eCos is free software; you can redistribute it and/or modify it under |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
15 // the terms of the GNU General Public License as published by the Free |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
16 // Software Foundation; either version 2 or (at your option) any later version. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
17 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
18 // eCos is distributed in the hope that it will be useful, but WITHOUT ANY |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
19 // WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
20 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
21 // for more details. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
22 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
23 // You should have received a copy of the GNU General Public License along |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
24 // with eCos; if not, write to the Free Software Foundation, Inc., |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
25 // 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
26 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
27 // As a special exception, if other files instantiate templates or use macros |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
28 // or inline functions from this file, or you compile this file and link it |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
29 // with other works to produce a work based on this file, this file does not |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
30 // by itself cause the resulting work to be covered by the GNU General Public |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
31 // License. However the source code for this file must still be made available |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
32 // in accordance with section (3) of the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
33 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
34 // This exception does not invalidate any other reasons why a work based on |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
35 // this file might be covered by the GNU General Public License. |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
36 // |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
37 // Alternative licenses for eCos may be arranged by contacting Red Hat, Inc. |
|
210
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
38 // at http://sources.redhat.com/ecos/ecos-license/ |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
39 // ------------------------------------------- |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
40 //####ECOSGPLCOPYRIGHTEND#### |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
41 //========================================================================== |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
42 //#####DESCRIPTIONBEGIN#### |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
43 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
44 // Author(s): gthomas |
|
307
906a5d289c6d
Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents:
264
diff
changeset
|
45 // Contributors: gthomas, tkoeller |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
46 // Date: 2000-07-14 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
47 // Purpose: |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
48 // Description: |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
49 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
50 // This code is part of RedBoot (tm). |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
51 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
52 //####DESCRIPTIONEND#### |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
53 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
54 //========================================================================== |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
55 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
56 #define DEFINE_VARS |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
57 #include <redboot.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
58 #include <cyg/hal/hal_arch.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
59 #include <cyg/hal/hal_intr.h> |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
60 #include <cyg/hal/hal_if.h> |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
61 #include <cyg/hal/hal_cache.h> |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
62 #include CYGHWR_MEMORY_LAYOUT_H |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
63 |
| 907 | 64 #ifdef CYGPKG_IO_ETH_DRIVERS |
| 65 #include <cyg/io/eth/eth_drv.h> // Logical driver interfaces | |
| 66 #endif | |
| 67 | |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
68 #include <cyg/hal/hal_tables.h> |
|
1605
43a89c18d005
Add checking (assert) for size of option arrays. Also fix port for TFTP on little endian systems.
gthomas
parents:
1513
diff
changeset
|
69 #include <cyg/infra/cyg_ass.h> // assertion macros |
|
162
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
70 |
|
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
71 #ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
|
145
2e9a636d9de9
Merge from eCos master repository on 2000-12-21-14:18:40-GMT
jlarmour
parents:
143
diff
changeset
|
72 #ifdef CYGBLD_HAL_PLATFORM_STUB_H |
|
2e9a636d9de9
Merge from eCos master repository on 2000-12-21-14:18:40-GMT
jlarmour
parents:
143
diff
changeset
|
73 #include CYGBLD_HAL_PLATFORM_STUB_H |
|
2e9a636d9de9
Merge from eCos master repository on 2000-12-21-14:18:40-GMT
jlarmour
parents:
143
diff
changeset
|
74 #else |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
75 #include <cyg/hal/plf_stub.h> |
|
145
2e9a636d9de9
Merge from eCos master repository on 2000-12-21-14:18:40-GMT
jlarmour
parents:
143
diff
changeset
|
76 #endif |
|
264
57f3c72256bb
Reorg CLI functions into separate files. Update CDL. Fix macros in scripts.
gthomas
parents:
210
diff
changeset
|
77 // GDB interfaces |
|
57f3c72256bb
Reorg CLI functions into separate files. Update CDL. Fix macros in scripts.
gthomas
parents:
210
diff
changeset
|
78 extern void breakpoint(void); |
|
162
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
79 #endif |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
80 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
81 // Builtin Self Test (BIST) |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
82 externC void bist(void); |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
83 |
| 1002 | 84 // Path to code run from a go command or to GDB stubs |
| 85 static void trampoline(unsigned long entry); | |
| 86 | |
| 87 // Return path for code run from a go command or for GDB stubs | |
| 556 | 88 static void return_to_redboot(int status); |
| 89 | |
| 1002 | 90 // Address of area where current context is saved before executing |
| 91 // trampoline procedure | |
| 92 static void * saved_context; | |
| 93 | |
| 94 // Status returned after trampoline execution | |
| 95 static int return_status; | |
| 96 | |
| 556 | 97 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
98 // CLI command processing (defined in this file) |
|
138
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
99 RedBoot_cmd("version", |
|
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
100 "Display RedBoot version information", |
|
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
101 "", |
|
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
102 do_version |
|
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
103 ); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
104 RedBoot_cmd("help", |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
105 "Help about help?", |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
106 "[<topic>]", |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
107 do_help |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
108 ); |
|
1503
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
109 |
|
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
110 static char go_usage[] = "[-w <timeout>] [-c] " |
|
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
111 #ifdef CYGPKG_IO_ETH_DRIVERS |
|
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
112 "[-n] " |
|
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
113 #endif |
|
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
114 "[entry]"; |
|
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
115 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
116 RedBoot_cmd("go", |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
117 "Execute code at a location", |
|
1503
0ec4d1b9182f
Update help strings for 'go' command - from Andy Dyer
gthomas
parents:
1492
diff
changeset
|
118 go_usage, |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
119 do_go |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
120 ); |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
121 #ifdef HAL_PLATFORM_RESET |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
122 RedBoot_cmd("reset", |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
123 "Reset the system", |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
124 "", |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
125 do_reset |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
126 ); |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
127 #endif |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
128 #ifdef CYGSEM_REDBOOT_VARIABLE_BAUD_RATE |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
129 RedBoot_cmd("baudrate", |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
130 "Set/Query the system console baud rate", |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
131 "[-b <rate>]", |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
132 do_baud_rate |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
133 ); |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
134 #endif |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
135 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
136 // Define table boundaries |
|
130
eb9fd8c04db3
Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents:
128
diff
changeset
|
137 CYG_HAL_TABLE_BEGIN( __RedBoot_INIT_TAB__, RedBoot_inits ); |
|
eb9fd8c04db3
Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents:
128
diff
changeset
|
138 CYG_HAL_TABLE_END( __RedBoot_INIT_TAB_END__, RedBoot_inits ); |
|
eb9fd8c04db3
Merge from eCos master repository on 2000-10-23-17:01:37-BST
jlarmour
parents:
128
diff
changeset
|
139 extern struct init_tab_entry __RedBoot_INIT_TAB__[], __RedBoot_INIT_TAB_END__; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
140 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
141 CYG_HAL_TABLE_BEGIN( __RedBoot_CMD_TAB__, RedBoot_commands ); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
142 CYG_HAL_TABLE_END( __RedBoot_CMD_TAB_END__, RedBoot_commands ); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
143 extern struct cmd __RedBoot_CMD_TAB__[], __RedBoot_CMD_TAB_END__; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
144 |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
145 CYG_HAL_TABLE_BEGIN( __RedBoot_IDLE_TAB__, RedBoot_idle ); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
146 CYG_HAL_TABLE_END( __RedBoot_IDLE_TAB_END__, RedBoot_idle ); |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
147 extern struct idle_tab_entry __RedBoot_IDLE_TAB__[], __RedBoot_IDLE_TAB_END__; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
148 |
|
141
450e4e1f1e80
Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents:
138
diff
changeset
|
149 #ifdef HAL_ARCH_PROGRAM_NEW_STACK |
|
450e4e1f1e80
Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents:
138
diff
changeset
|
150 extern void HAL_ARCH_PROGRAM_NEW_STACK(void *fun); |
|
450e4e1f1e80
Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents:
138
diff
changeset
|
151 #endif |
|
450e4e1f1e80
Merge from eCos master repository on 2000-11-27-23:09:27-GMT
jlarmour
parents:
138
diff
changeset
|
152 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
153 // |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
154 // [Null] Builtin [Power On] Self Test |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
155 // |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
156 void bist(void) CYGBLD_ATTRIB_WEAK; |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
157 |
|
138
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
158 void |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
159 bist(void) |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
160 { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
161 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
162 |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
163 // |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
164 // 'version' command |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
165 // |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
166 void |
|
138
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
167 do_version(int argc, char *argv[]) |
|
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
168 { |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
169 #if CYGBLD_REDBOOT_MAX_MEM_SEGMENTS > 1 |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
170 int seg; |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
171 #endif |
|
800
900f348771ef
* src/main.c (do_version): Test for CYGPKG_REDBOOT_FLASH as
jlarmour
parents:
791
diff
changeset
|
172 #ifdef CYGPKG_REDBOOT_FLASH |
|
171
42f843b391aa
Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
165
diff
changeset
|
173 externC void _flash_info(void); |
|
42f843b391aa
Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
165
diff
changeset
|
174 #endif |
| 447 | 175 char *version = CYGACC_CALL_IF_MONITOR_VERSION(); |
|
171
42f843b391aa
Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
165
diff
changeset
|
176 |
| 447 | 177 diag_printf(version); |
|
138
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
178 #ifdef HAL_PLATFORM_CPU |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
179 diag_printf("Platform: %s (%s) %s\n", HAL_PLATFORM_BOARD, HAL_PLATFORM_CPU, HAL_PLATFORM_EXTRA); |
|
138
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
180 #endif |
|
1740
0031b615f51c
Add support for reverse endianess of fis and config data
msalter
parents:
1663
diff
changeset
|
181 diag_printf("Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.\n\n"); |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
182 diag_printf("RAM: %p-%p, ", (void*)ram_start, (void*)ram_end); |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
183 diag_printf("[%p-%p]", mem_segments[0].start, mem_segments[0].end); |
| 1226 | 184 diag_printf(" available\n"); |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
185 #if CYGBLD_REDBOOT_MAX_MEM_SEGMENTS > 1 |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
186 for (seg = 1; seg < CYGBLD_REDBOOT_MAX_MEM_SEGMENTS; seg++) { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
187 if (mem_segments[seg].start != NO_MEMORY) { |
| 1226 | 188 diag_printf(" %p-%p, ", mem_segments[seg].start, mem_segments[seg].end); |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
189 diag_printf("[%p-%p]", mem_segments[seg].start, mem_segments[seg].end); |
| 1226 | 190 diag_printf(" available\n"); |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
191 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
192 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
193 #endif |
|
800
900f348771ef
* src/main.c (do_version): Test for CYGPKG_REDBOOT_FLASH as
jlarmour
parents:
791
diff
changeset
|
194 #ifdef CYGPKG_REDBOOT_FLASH |
|
171
42f843b391aa
Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
165
diff
changeset
|
195 _flash_info(); |
|
42f843b391aa
Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
165
diff
changeset
|
196 #endif |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
197 } |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
198 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
199 // |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
200 // This function is called when RedBoot is idle (waiting for user |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
201 // input). It will call any registered "idle" routines, e.g. scan |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
202 // for incoming network connections, blank an LCD screen, etc. |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
203 // |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
204 void |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
205 do_idle(bool is_idle) |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
206 { |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
207 struct idle_tab_entry *idle_entry; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
208 |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
209 for (idle_entry = __RedBoot_IDLE_TAB__; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
210 idle_entry != &__RedBoot_IDLE_TAB_END__; idle_entry++) { |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
211 (*idle_entry->fun)(is_idle); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
212 } |
|
138
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
213 } |
|
289bf90c6a9b
Merge from eCos master repository on 2000-11-24-06:43:05-GMT
jlarmour
parents:
132
diff
changeset
|
214 |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
215 // Wrapper used by diag_printf() |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
216 static void |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
217 _mon_write_char(char c, void **param) |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
218 { |
|
210
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
219 if (c == '\n') { |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
220 mon_write_char('\r'); |
|
d2c90368aeef
Merge from eCos master repository on 2002-05-23-21:39:14-BST
jlarmour
parents:
208
diff
changeset
|
221 } |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
222 mon_write_char(c); |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
223 } |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
224 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
225 // |
|
1328
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
226 // Handle illegal memory accesses (and other abort conditions) |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
227 // |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
228 static hal_jmp_buf error_jmpbuf; |
| 1475 | 229 #ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
| 230 externC | |
| 231 #endif | |
| 232 void* volatile __mem_fault_handler; | |
|
1328
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
233 |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
234 static void error_handler(void) |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
235 { |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
236 hal_longjmp(error_jmpbuf, 1); |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
237 } |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
238 |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
239 |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
240 // |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
241 // This is the main entry point for RedBoot |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
242 // |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
243 void |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
244 cyg_start(void) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
245 { |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
246 int res = 0; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
247 bool prompt = true; |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
248 static char line[CYGPKG_REDBOOT_MAX_CMD_LINE]; |
|
183
9160a8005d76
Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents:
182
diff
changeset
|
249 char *command; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
250 struct cmd *cmd; |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
251 int cur; |
|
126
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
117
diff
changeset
|
252 struct init_tab_entry *init_entry; |
| 447 | 253 extern char RedBoot_version[]; |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
254 #if CYGBLD_REDBOOT_MAX_MEM_SEGMENTS > 1 |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
255 int seg; |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
256 #endif |
| 447 | 257 |
| 258 // Export version information | |
| 259 CYGACC_CALL_IF_MONITOR_VERSION_SET(RedBoot_version); | |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
260 |
| 556 | 261 CYGACC_CALL_IF_MONITOR_RETURN_SET(return_to_redboot); |
| 262 | |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
263 // Make sure the channels are properly initialized. |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
264 diag_init_putc(_mon_write_char); |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
265 hal_if_diag_init(); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
266 |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
267 // Force console to output raw text - but remember the old setting |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
268 // so it can be restored if interaction with a debugger is |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
269 // required. |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
270 cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
271 CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_HAL_VIRTUAL_VECTOR_DEBUG_CHANNEL); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
272 #ifdef CYGPKG_REDBOOT_ANY_CONSOLE |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
273 console_selected = false; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
274 #endif |
|
128
0c2b7be0d798
Merge from eCos master repository on 2000-10-12-08:46:24-BST
jlarmour
parents:
126
diff
changeset
|
275 console_echo = true; |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
276 CYGACC_CALL_IF_DELAY_US((cyg_int32)2*100000); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
277 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
278 ram_start = (unsigned char *)CYGMEM_REGION_ram; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
279 ram_end = (unsigned char *)(CYGMEM_REGION_ram+CYGMEM_REGION_ram_SIZE); |
|
150
f0e3fb000de8
Merge from eCos master repository on 2001-01-26-06:43:02-GMT
jlarmour
parents:
147
diff
changeset
|
280 #ifdef HAL_MEM_REAL_REGION_TOP |
|
f0e3fb000de8
Merge from eCos master repository on 2001-01-26-06:43:02-GMT
jlarmour
parents:
147
diff
changeset
|
281 { |
|
f0e3fb000de8
Merge from eCos master repository on 2001-01-26-06:43:02-GMT
jlarmour
parents:
147
diff
changeset
|
282 unsigned char *ram_end_tmp = ram_end; |
|
f0e3fb000de8
Merge from eCos master repository on 2001-01-26-06:43:02-GMT
jlarmour
parents:
147
diff
changeset
|
283 ram_end = HAL_MEM_REAL_REGION_TOP( ram_end_tmp ); |
|
f0e3fb000de8
Merge from eCos master repository on 2001-01-26-06:43:02-GMT
jlarmour
parents:
147
diff
changeset
|
284 } |
|
f0e3fb000de8
Merge from eCos master repository on 2001-01-26-06:43:02-GMT
jlarmour
parents:
147
diff
changeset
|
285 #endif |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
286 #ifdef CYGMEM_SECTION_heap1 |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
287 workspace_start = (unsigned char *)CYGMEM_SECTION_heap1; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
288 workspace_end = (unsigned char *)(CYGMEM_SECTION_heap1+CYGMEM_SECTION_heap1_SIZE); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
289 #else |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
290 workspace_start = (unsigned char *)CYGMEM_REGION_ram; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
291 workspace_end = (unsigned char *)(CYGMEM_REGION_ram+CYGMEM_REGION_ram_SIZE); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
292 #endif |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
293 |
|
158
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
294 if ( ram_end < workspace_end ) { |
|
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
295 // when *less* SDRAM is installed than the possible maximum, |
|
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
296 // but the heap1 region remains greater... |
|
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
297 workspace_end = ram_end; |
|
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
298 } |
|
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
299 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
300 // Nothing has ever been loaded into memory |
| 1475 | 301 entry_address = (unsigned long)NO_MEMORY; |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
302 |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
303 bist(); |
|
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
304 |
|
1492
8b3549abe4ac
* cdl/redboot.cdl: Bring CYGNUM_REDBOOT_LOAD_ZLIB_BUFFER under
jlarmour
parents:
1491
diff
changeset
|
305 #if defined(CYGPRI_REDBOOT_ZLIB_FLASH) && defined(CYGOPT_REDBOOT_FIS_ZLIB_COMMON_BUFFER) |
|
307
906a5d289c6d
Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents:
264
diff
changeset
|
306 fis_zlib_common_buffer = |
|
906a5d289c6d
Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents:
264
diff
changeset
|
307 workspace_end -= CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE; |
|
906a5d289c6d
Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents:
264
diff
changeset
|
308 #endif |
|
906a5d289c6d
Better memory use vis FIS & ZLIB - from Thomas Koeller
gthomas
parents:
264
diff
changeset
|
309 |
| 1444 | 310 #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT |
| 311 script_timeout = CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT; | |
| 312 #endif | |
| 313 | |
|
126
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
117
diff
changeset
|
314 for (init_entry = __RedBoot_INIT_TAB__; init_entry != &__RedBoot_INIT_TAB_END__; init_entry++) { |
|
518f42066aba
Merge from eCos master repository on 2000-09-19-06:25:26-BST
jlarmour
parents:
117
diff
changeset
|
315 (*init_entry->fun)(); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
316 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
317 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
318 mem_segments[0].start = workspace_start; |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
319 mem_segments[0].end = workspace_end; |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
320 #if CYGBLD_REDBOOT_MAX_MEM_SEGMENTS > 1 |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
321 for (seg = 1; seg < CYGBLD_REDBOOT_MAX_MEM_SEGMENTS; seg++) { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
322 cyg_plf_memory_segment(seg, &mem_segments[seg].start, &mem_segments[seg].end); |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
323 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
324 #endif |
|
191
678094f34118
Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents:
186
diff
changeset
|
325 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
326 #ifdef CYGSEM_REDBOOT_PLF_STARTUP |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
327 cyg_plf_redboot_startup(); |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
328 #endif |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
329 do_version(0,0); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
330 |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
331 #ifdef CYGFUN_REDBOOT_BOOT_SCRIPT |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
332 # ifdef CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
333 if (!script) { |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
334 script = CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT; |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
335 } |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
336 # endif |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
337 if (script) { |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
338 // Give the guy a chance to abort any boot script |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
339 unsigned char *hold_script = script; |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
340 int script_timeout_ms = script_timeout * CYGNUM_REDBOOT_BOOT_SCRIPT_TIMEOUT_RESOLUTION; |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
341 diag_printf("== Executing boot script in %d.%03d seconds - enter ^C to abort\n", |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
342 script_timeout_ms/1000, script_timeout_ms%1000); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
343 script = (unsigned char *)0; |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
344 res = _GETS_CTRLC; // Treat 0 timeout as ^C |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
345 while (script_timeout_ms >= CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT) { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
346 res = _rb_gets(line, sizeof(line), CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT); |
|
158
f2545e5de153
Merge from eCos master repository on 2001-04-24-11:22:42-BST
jlarmour
parents:
156
diff
changeset
|
347 if (res >= _GETS_OK) { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
348 diag_printf("== Executing boot script in %d.%03d seconds - enter ^C to abort\n", |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
349 script_timeout_ms/1000, script_timeout_ms%1000); |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
350 continue; // Ignore anything but ^C |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
351 } |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
352 if (res != _GETS_TIMEOUT) break; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
353 script_timeout_ms -= CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT; |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
354 } |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
355 if (res == _GETS_CTRLC) { |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
356 script = (unsigned char *)0; // Disable script |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
357 } else { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
358 script = hold_script; // Re-enable script |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
359 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
360 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
361 #endif |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
362 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
363 while (true) { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
364 if (prompt) { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
365 diag_printf("RedBoot> "); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
366 prompt = false; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
367 } |
|
195
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
368 #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
369 cmd_history = true; // Enable history collection |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
370 #endif |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
371 res = _rb_gets(line, sizeof(line), CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT); |
|
195
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
372 #if CYGNUM_REDBOOT_CMD_LINE_EDITING != 0 |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
373 cmd_history = false; // Enable history collection |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
374 #endif |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
375 if (res == _GETS_TIMEOUT) { |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
376 // No input arrived |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
377 } else { |
|
162
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
378 #ifdef CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
379 if (res == _GETS_GDB) { |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
380 int dbgchan; |
|
161
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
381 hal_virtual_comm_table_t *__chan; |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
382 int i; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
383 // Special case of '$' - need to start GDB protocol |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
384 gdb_active = true; |
|
161
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
385 // Mask interrupts on all channels |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
386 for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS; i++) { |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
387 CYGACC_CALL_IF_SET_CONSOLE_COMM(i); |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
388 __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
389 CYGACC_COMM_IF_CONTROL( *__chan, __COMMCTL_IRQ_DISABLE ); |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
390 } |
|
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
391 |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
392 CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); |
| 1002 | 393 |
| 394 // set up a temporary context that will take us to the trampoline | |
| 395 HAL_THREAD_INIT_CONTEXT((CYG_ADDRESS)workspace_end, | |
| 396 breakpoint, trampoline, 0); | |
| 397 | |
| 398 // switch context to trampoline (get GDB stubs started) | |
| 399 HAL_THREAD_SWITCH_CONTEXT(&saved_context, &workspace_end); | |
| 400 | |
| 401 gdb_active = false; | |
| 402 | |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
403 dbgchan = CYGACC_CALL_IF_SET_DEBUG_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
404 CYGACC_CALL_IF_SET_CONSOLE_COMM(dbgchan); |
|
162
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
405 } else |
|
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
406 #endif // CYGDBG_HAL_DEBUG_GDB_INCLUDE_STUBS |
|
2395031e7a66
Merge from eCos master repository on 2001-06-15-06:43:03-BST
jlarmour
parents:
161
diff
changeset
|
407 { |
|
1648
e1ee6283cd48
* src/main.c: Make it build without CYGSEM_REDBOOT_FLASH_ALIASES.
asl
parents:
1605
diff
changeset
|
408 #ifdef CYGSEM_REDBOOT_FLASH_ALIASES |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
409 expand_aliases(line, sizeof(line)); |
|
1648
e1ee6283cd48
* src/main.c: Make it build without CYGSEM_REDBOOT_FLASH_ALIASES.
asl
parents:
1605
diff
changeset
|
410 #endif |
|
183
9160a8005d76
Merge from eCos master repository on 2001-09-12-03:52:30-BST
jlarmour
parents:
182
diff
changeset
|
411 command = (char *)&line; |
|
195
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
412 if ((*command == '#') || (*command == '=')) { |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
413 // Special cases |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
414 if (*command == '=') { |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
415 // Print line on console |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
416 diag_printf("%s\n", &line[2]); |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
417 } |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
418 } else { |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
419 while (strlen(command) > 0) { |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
420 if ((cmd = parse(&command, &argc, &argv[0])) != (struct cmd *)0) { |
|
1328
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
421 // Try to handle aborts - messy because of the stack unwinding... |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
422 __mem_fault_handler = error_handler; |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
423 if (hal_setjmp(error_jmpbuf)) { |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
424 diag_printf("** command abort - illegal memory access?\n"); |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
425 } else { |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
426 (cmd->fun)(argc, argv); |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
427 } |
|
afd4dd211d3a
Attempt to handle illegal memory accesses and other abort conditions
gthomas
parents:
1226
diff
changeset
|
428 __mem_fault_handler = 0; |
|
195
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
429 } else { |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
430 diag_printf("** Error: Illegal command: \"%s\"\n", argv[0]); |
|
67850532eebb
Merge from eCos master repository on 2001-11-02-06:43:03-GMT
jlarmour
parents:
191
diff
changeset
|
431 } |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
432 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
433 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
434 prompt = true; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
435 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
436 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
437 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
438 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
439 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
440 void |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
441 show_help(struct cmd *cmd, struct cmd *cmd_end, char *which, char *pre) |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
442 { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
443 bool show; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
444 int len = 0; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
445 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
446 if (which) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
447 len = strlen(which); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
448 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
449 while (cmd != cmd_end) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
450 show = true; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
451 if (which && (strncasecmp(which, cmd->str, len) != 0)) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
452 show = false; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
453 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
454 if (show) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
455 diag_printf("%s\n %s %s %s\n", cmd->help, pre, cmd->str, cmd->usage); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
456 if ((cmd->sub_cmds != (struct cmd *)0) && (which != (char *)0)) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
457 show_help(cmd->sub_cmds, cmd->sub_cmds_end, 0, cmd->str); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
458 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
459 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
460 cmd++; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
461 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
462 } |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
463 |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
464 void |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
465 do_help(int argc, char *argv[]) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
466 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
467 struct cmd *cmd; |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
468 char *which = (char *)0; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
469 |
| 1513 | 470 if (!scan_opts(argc, argv, 1, 0, 0, (void *)&which, OPTION_ARG_TYPE_STR, "<topic>")) { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
471 diag_printf("Invalid argument\n"); |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
472 return; |
|
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
473 } |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
474 cmd = __RedBoot_CMD_TAB__; |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
475 show_help(cmd, &__RedBoot_CMD_TAB_END__, which, ""); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
476 return; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
477 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
478 |
| 556 | 479 static void |
| 1002 | 480 trampoline(unsigned long entry) |
| 556 | 481 { |
| 482 typedef void code_fun(void); | |
| 483 code_fun *fun = (code_fun *)entry; | |
| 484 unsigned long oldints; | |
| 485 | |
| 486 HAL_DISABLE_INTERRUPTS(oldints); | |
| 487 | |
| 488 #ifdef HAL_ARCH_PROGRAM_NEW_STACK | |
| 489 HAL_ARCH_PROGRAM_NEW_STACK(fun); | |
| 490 #else | |
| 491 (*fun)(); | |
| 492 #endif | |
| 1002 | 493 |
| 494 HAL_THREAD_LOAD_CONTEXT(&saved_context); | |
| 556 | 495 } |
| 496 | |
| 497 static void | |
| 498 return_to_redboot(int status) | |
| 499 { | |
| 500 CYGARC_HAL_SAVE_GP(); | |
| 501 | |
| 1002 | 502 return_status = status; |
| 503 HAL_THREAD_LOAD_CONTEXT(&saved_context); | |
| 556 | 504 // never returns |
| 566 | 505 |
| 506 // need this to balance above CYGARC_HAL_SAVE_GP on | |
| 507 // some platforms. It will never run, though. | |
| 508 CYGARC_HAL_RESTORE_GP(); | |
| 556 | 509 } |
| 510 | |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
511 void |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
512 do_go(int argc, char *argv[]) |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
513 { |
| 908 | 514 int i, cur, num_options; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
515 unsigned long entry; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
516 unsigned long oldints; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
517 bool wait_time_set; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
518 int wait_time, res; |
| 556 | 519 bool cache_enabled = false; |
|
913
3c59fd67ae50
* src/main.c (do_go): Silence unused variable warning when no net.
jlarmour
parents:
908
diff
changeset
|
520 #ifdef CYGPKG_IO_ETH_DRIVERS |
| 907 | 521 bool stop_net = false; |
|
913
3c59fd67ae50
* src/main.c (do_go): Silence unused variable warning when no net.
jlarmour
parents:
908
diff
changeset
|
522 #endif |
| 907 | 523 struct option_info opts[3]; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
524 char line[8]; |
| 907 | 525 hal_virtual_comm_table_t *__chan; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
526 |
| 1364 | 527 __mem_fault_handler = 0; // Let GDB handle any faults directly |
|
196
9b55e9c69693
Merge from eCos master repository on 2001-11-23-15:32:03-GMT
jlarmour
parents:
195
diff
changeset
|
528 entry = entry_address; // Default from last 'load' operation |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
529 init_opts(&opts[0], 'w', true, OPTION_ARG_TYPE_NUM, |
| 1513 | 530 (void *)&wait_time, (bool *)&wait_time_set, "wait timeout"); |
| 556 | 531 init_opts(&opts[1], 'c', false, OPTION_ARG_TYPE_FLG, |
| 1513 | 532 (void *)&cache_enabled, (bool *)0, "go with caches enabled"); |
| 908 | 533 num_options = 2; |
| 534 #ifdef CYGPKG_IO_ETH_DRIVERS | |
| 907 | 535 init_opts(&opts[2], 'n', false, OPTION_ARG_TYPE_FLG, |
| 1513 | 536 (void *)&stop_net, (bool *)0, "go with network driver stopped"); |
| 908 | 537 num_options++; |
| 538 #endif | |
|
1605
43a89c18d005
Add checking (assert) for size of option arrays. Also fix port for TFTP on little endian systems.
gthomas
parents:
1513
diff
changeset
|
539 |
|
43a89c18d005
Add checking (assert) for size of option arrays. Also fix port for TFTP on little endian systems.
gthomas
parents:
1513
diff
changeset
|
540 CYG_ASSERT(num_options <= NUM_ELEMS(opts), "Too many options"); |
|
43a89c18d005
Add checking (assert) for size of option arrays. Also fix port for TFTP on little endian systems.
gthomas
parents:
1513
diff
changeset
|
541 |
| 908 | 542 if (!scan_opts(argc, argv, 1, opts, num_options, (void *)&entry, OPTION_ARG_TYPE_NUM, "starting address")) |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
543 { |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
544 return; |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
545 } |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
546 if (entry == (unsigned long)NO_MEMORY) { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
547 diag_printf("No entry point known - aborted\n"); |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
548 return; |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
549 } |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
550 if (wait_time_set) { |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
551 int script_timeout_ms = wait_time * 1000; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
552 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
553 unsigned char *hold_script = script; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
554 script = (unsigned char *)0; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
555 #endif |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
556 diag_printf("About to start execution at %p - abort with ^C within %d seconds\n", |
|
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
557 (void *)entry, wait_time); |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
558 while (script_timeout_ms >= CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT) { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
559 res = _rb_gets(line, sizeof(line), CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT); |
|
156
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
560 if (res == _GETS_CTRLC) { |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
561 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
562 script = hold_script; // Re-enable script |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
563 #endif |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
564 return; |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
565 } |
|
b939e9cada46
Merge from eCos master repository on 2001-03-29-21:44:39-BST
jlarmour
parents:
151
diff
changeset
|
566 script_timeout_ms -= CYGNUM_REDBOOT_CLI_IDLE_TIMEOUT; |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
567 } |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
568 } |
| 907 | 569 |
| 570 // Mask interrupts on all channels | |
| 571 cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); | |
| 572 for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS; i++) { | |
| 573 CYGACC_CALL_IF_SET_CONSOLE_COMM(i); | |
| 574 __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); | |
| 575 CYGACC_COMM_IF_CONTROL( *__chan, __COMMCTL_IRQ_DISABLE ); | |
| 576 } | |
| 577 CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); | |
| 578 | |
| 579 __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); | |
| 329 | 580 CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_ENABLE_LINE_FLUSH); |
| 581 | |
| 907 | 582 #ifdef CYGPKG_IO_ETH_DRIVERS |
| 583 if (stop_net) | |
| 584 eth_drv_stop(); | |
| 585 #endif | |
| 586 | |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
587 HAL_DISABLE_INTERRUPTS(oldints); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
588 HAL_DCACHE_SYNC(); |
| 556 | 589 if (!cache_enabled) { |
| 590 HAL_ICACHE_DISABLE(); | |
| 591 HAL_DCACHE_DISABLE(); | |
| 592 HAL_DCACHE_SYNC(); | |
| 593 } | |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
594 HAL_ICACHE_INVALIDATE_ALL(); |
|
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
595 HAL_DCACHE_INVALIDATE_ALL(); |
| 556 | 596 // set up a temporary context that will take us to the trampoline |
| 1002 | 597 HAL_THREAD_INIT_CONTEXT((CYG_ADDRESS)workspace_end, entry, trampoline, 0); |
| 556 | 598 |
| 599 // switch context to trampoline | |
| 1002 | 600 HAL_THREAD_SWITCH_CONTEXT(&saved_context, &workspace_end); |
| 556 | 601 |
| 602 // we get back here by way of return_to_redboot() | |
| 603 | |
| 604 // undo the changes we made before switching context | |
| 605 if (!cache_enabled) { | |
| 606 HAL_ICACHE_ENABLE(); | |
| 607 HAL_DCACHE_ENABLE(); | |
| 608 } | |
| 609 | |
| 610 CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_DISABLE_LINE_FLUSH); | |
| 611 | |
| 612 HAL_RESTORE_INTERRUPTS(oldints); | |
| 613 | |
| 1002 | 614 diag_printf("\nProgram completed with status %d\n", return_status); |
|
115
6ed91473a1cd
Merge from eCos master repository on 2000-08-21-22:40:54-BST
jlarmour
parents:
diff
changeset
|
615 } |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
616 |
|
151
25e238959bae
Merge from eCos master repository on 2001-02-12-23:44:24-GMT
jlarmour
parents:
150
diff
changeset
|
617 #ifdef HAL_PLATFORM_RESET |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
618 void |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
619 do_reset(int argc, char *argv[]) |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
620 { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
621 diag_printf("... Resetting."); |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
622 CYGACC_CALL_IF_DELAY_US(2*100000); |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
623 diag_printf("\n"); |
|
165
d63db767121d
Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents:
162
diff
changeset
|
624 CYGACC_CALL_IF_RESET(); |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
625 diag_printf("!! oops, RESET not working on this platform\n"); |
|
143
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
626 } |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
627 #endif |
|
6b5f480c6929
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
jlarmour
parents:
141
diff
changeset
|
628 |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
629 #ifdef CYGSEM_REDBOOT_VARIABLE_BAUD_RATE |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
630 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
631 #include <flash_config.h> |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
632 #endif |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
633 |
|
335
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
634 static int |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
635 set_comm_baud_rate(hal_virtual_comm_table_t *chan, int rate) |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
636 { |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
637 int current_rate; |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
638 |
|
1491
ab4a708d689e
* src/main.c (set_comm_baud_rate): Get current rate with GETBAUD
jlarmour
parents:
1475
diff
changeset
|
639 current_rate = CYGACC_COMM_IF_CONTROL(*chan, __COMMCTL_GETBAUD); |
|
335
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
640 if (rate != current_rate) |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
641 return CYGACC_COMM_IF_CONTROL(*chan, __COMMCTL_SETBAUD, rate); |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
642 |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
643 return 0; |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
644 } |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
645 |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
646 int |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
647 set_console_baud_rate(int rate) |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
648 { |
|
791
a2dfa8bf3c57
Export RedBoot FIS functions - from Knud Woehler <knud.woehler@microplex.de>
gthomas
parents:
566
diff
changeset
|
649 int ret = -1; |
|
335
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
650 #ifdef CYGPKG_REDBOOT_ANY_CONSOLE |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
651 if (!console_selected) { |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
652 int cur = CYGACC_CALL_IF_SET_CONSOLE_COMM(CYGNUM_CALL_IF_SET_COMM_ID_QUERY_CURRENT); |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
653 int i; |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
654 // Set baud for all channels |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
655 for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS; i++) { |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
656 CYGACC_CALL_IF_SET_CONSOLE_COMM(i); |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
657 ret = set_comm_baud_rate(CYGACC_CALL_IF_CONSOLE_PROCS(), rate); |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
658 if (ret < 0) |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
659 break; |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
660 } |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
661 CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
662 } else |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
663 #endif |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
664 ret = set_comm_baud_rate(CYGACC_CALL_IF_CONSOLE_PROCS(), rate); |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
665 |
|
335
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
666 if (ret < 0) |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
667 diag_printf("Setting console baud rate to %d failed\n", rate); |
|
a253970d627b
Fix baudrate setting for CYGPKG_REDBOOT_ANY_CONSOLE
msalter
parents:
329
diff
changeset
|
668 |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
669 return ret; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
670 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
671 |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
672 static void |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
673 _sleep(int ms) |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
674 { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
675 int i; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
676 for (i = 0; i < ms; i++) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
677 CYGACC_CALL_IF_DELAY_US((cyg_int32)1000); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
678 } |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
679 } |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
680 |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
681 void |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
682 do_baud_rate(int argc, char *argv[]) |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
683 { |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
684 int new_rate, ret, old_rate; |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
685 bool new_rate_set; |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
686 hal_virtual_comm_table_t *__chan; |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
687 struct option_info opts[1]; |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
688 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
689 struct config_option opt; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
690 #endif |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
691 |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
692 init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM, |
| 1513 | 693 (void *)&new_rate, (bool *)&new_rate_set, "new baud rate"); |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
694 if (!scan_opts(argc, argv, 1, opts, 1, 0, 0, "")) { |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
695 return; |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
696 } |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
697 __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
698 if (new_rate_set) { |
|
208
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
699 diag_printf("Baud rate will be changed to %d - update your settings\n", new_rate); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
700 _sleep(500); // Give serial time to flush |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
701 old_rate = CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_GETBAUD); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
702 ret = set_console_baud_rate(new_rate); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
703 if (ret < 0) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
704 if (old_rate > 0) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
705 // Try to restore |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
706 set_console_baud_rate(old_rate); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
707 _sleep(500); // Give serial time to flush |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
708 diag_printf("\nret = %d\n", ret); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
709 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
710 return; // Couldn't set the desired rate |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
711 } |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
712 // Make sure this new rate works or back off to previous value |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
713 // Sleep for a few seconds, then prompt to see if it works |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
714 _sleep(3000); // Give serial time to flush |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
715 if (!verify_action_with_timeout(5000, "Baud rate changed to %d", new_rate)) { |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
716 _sleep(500); // Give serial time to flush |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
717 set_console_baud_rate(old_rate); |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
718 _sleep(500); // Give serial time to flush |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
719 return; |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
202
diff
changeset
|
720 } |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
721 #ifdef CYGSEM_REDBOOT_FLASH_CONFIG |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
722 opt.type = CONFIG_INT; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
723 opt.enable = (char *)0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
724 opt.enable_sense = 1; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
725 opt.key = "console_baud_rate"; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
726 opt.dflt = new_rate; |
|
161
ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
jlarmour
parents:
160
diff
changeset
|
727 flash_add_config(&opt, true); |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
159
diff
changeset
|
728 #endif |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
729 } else { |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
730 ret = CYGACC_COMM_IF_CONTROL(*__chan, __COMMCTL_GETBAUD); |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
731 diag_printf("Baud rate = "); |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
732 if (ret <= 0) { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
733 diag_printf("unknown\n"); |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
734 } else { |
|
182
f62680ef1804
Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents:
174
diff
changeset
|
735 diag_printf("%d\n", ret); |
|
159
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
736 } |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
737 } |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
738 } |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
739 #endif |
|
511f4dc167f6
Merge from eCos master repository on 2001-05-18-01:30:05-BST
jlarmour
parents:
158
diff
changeset
|
740 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
741 // |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
742 // Validate an address to see if it is within any known RAM area |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
743 // |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
744 bool |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
745 valid_address(unsigned char *addr) |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
746 { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
747 int seg; |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
748 |
|
1223
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
749 for (seg = 0; seg < CYGBLD_REDBOOT_MAX_MEM_SEGMENTS; seg++) { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
750 if (mem_segments[seg].start != NO_MEMORY) { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
751 if ((addr >= mem_segments[seg].start) && (addr < mem_segments[seg].end)) { |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
752 return true; |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
753 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
754 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
755 } |
|
dbcfe4e0dbd2
New platform - TAMS MOAB - and generic changes to support it
gthomas
parents:
1002
diff
changeset
|
756 return false; |
|
132
0ae0bc38e387
Merge from eCos master repository on 2000-10-31-00:30:36-GMT
jlarmour
parents:
130
diff
changeset
|
757 } |
