annotate packages/hal/mips/arch/current/src/redboot_linux_exec.c @ 172:cd45958b28ff

Merge from eCos master repository on 2001-07-20-10:24:43-BST
author jlarmour
date Fri, 20 Jul 2001 10:23:16 +0000
parents 42f843b391aa
children 38892b97b685
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
1 //==========================================================================
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
2 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
3 // redboot_linux_exec.c
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
4 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
5 // RedBoot exec command for Linux booting
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
6 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
7 //==========================================================================
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
8 //####COPYRIGHTBEGIN####
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
9 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
10 // -------------------------------------------
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
11 // The contents of this file are subject to the Red Hat eCos Public License
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
12 // Version 1.1 (the "License"); you may not use this file except in
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
13 // compliance with the License. You may obtain a copy of the License at
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
14 // http://www.redhat.com/
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
15 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
16 // Software distributed under the License is distributed on an "AS IS"
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
17 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
18 // License for the specific language governing rights and limitations under
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
19 // the License.
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
20 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
21 // The Original Code is eCos - Embedded Configurable Operating System,
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
22 // released September 30, 1998.
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
23 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
24 // The Initial Developer of the Original Code is Red Hat.
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
25 // Portions created by Red Hat are
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
26 // Copyright (C) 1998, 1999, 2000, 2001 Red Hat, Inc.
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
27 // All Rights Reserved.
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
28 // -------------------------------------------
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
29 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
30 //####COPYRIGHTEND####
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
31 //==========================================================================
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
32 //#####DESCRIPTIONBEGIN####
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
33 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
34 // Author(s): t@keshi.org
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
35 // Contributors: t@keshi.org, jskov, dwmw2
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
36 // Date: 2001-07-09
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
37 // Purpose: RedBoot exec command for Linux booting
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
38 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
39 //####DESCRIPTIONEND####
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
40 //
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
41 //===========================================================================
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
42
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
43 #include <redboot.h>
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
44
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
45 #include <cyg/infra/cyg_type.h>
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
46 #include <cyg/hal/hal_intr.h>
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
47 #include <cyg/hal/hal_cache.h>
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
48
172
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
49 // Not all platforms define this the same way
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
50 #if defined(CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD)
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
51 #define DEFAULT_BAUD CYGNUM_HAL_VIRTUAL_VECTOR_CHANNELS_DEFAULT_BAUD
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
52 #elif defined(CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD)
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
53 #define DEFAULT_BAUD CYGNUM_HAL_VIRTUAL_VECTOR_CONSOLE_CHANNEL_BAUD
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
54 #else
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
55 #define DEFAULT_BAUD 38400 // Probably wrong
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
56 #endif
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
57
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
58 #define xstr(s) str(s)
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
59 #define str(s...) #s
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
60
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
61 typedef struct
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
62 {
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
63 char *name;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
64 char *val;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
65 } t_env_var;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
66
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
67 struct parmblock {
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
68 t_env_var memsize;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
69 t_env_var modetty0;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
70 t_env_var ethaddr;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
71 t_env_var env_end;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
72 char *argv[2];
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
73 char text[0];
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
74 };
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
75
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
76 static void do_exec(int argc, char *argv[]);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
77 RedBoot_cmd("exec",
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
78 "Execute an image",
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
79 "[-b <argv addr>] [-c \"kernel command line\"] [-w <timeout>]\n"
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
80 " [<entry point>]",
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
81 do_exec
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
82 );
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
83
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
84 static void
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
85 do_exec(int argc, char *argv[])
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
86 {
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
87 cyg_uint32 entry = (cyg_uint32)entry_address?:CYGDAT_REDBOOT_MIPS_LINUX_BOOT_ENTRY;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
88 cyg_uint32 base_addr = CYGDAT_REDBOOT_MIPS_LINUX_BOOT_ARGV_ADDR;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
89 char *cmd_line = xstr(CYGDAT_REDBOOT_MIPS_LINUX_BOOT_COMMAND_LINE);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
90 bool base_addr_set, cmd_line_set, wait_time_set;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
91 int wait_time, res;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
92 char line[8];
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
93
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
94 struct option_info opts[3];
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
95 char *pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
96 struct parmblock *pb;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
97 void (*linux)(int, char **, void *);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
98 int oldints;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
99
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
100 init_opts(&opts[0], 'b', true, OPTION_ARG_TYPE_NUM,
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
101 (void **)&base_addr, &base_addr_set, "base address");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
102 init_opts(&opts[1], 'w', true, OPTION_ARG_TYPE_NUM,
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
103 (void **)&wait_time, (bool *)&wait_time_set, "wait timeout");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
104 init_opts(&opts[2], 'c', true, OPTION_ARG_TYPE_STR,
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
105 (void **)&cmd_line, &cmd_line_set, "kernel command line");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
106
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
107 if (!scan_opts(argc, argv, 1, opts, 3, (void *)&entry,
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
108 OPTION_ARG_TYPE_NUM, "entry address"))
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
109 return;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
110
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
111 linux = (void *)entry;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
112
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
113 printf("Now booting linux kernel:\n");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
114 printf(" Base address 0x%08x Entry 0x%08x\n", base_addr, entry);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
115 printf(" Cmdline : %s\n", cmd_line);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
116
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
117 if (wait_time_set) {
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
118 printf("About to start execution at %p - abort with ^C within %d seconds\n",
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
119 (void *)entry, wait_time);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
120 res = gets(line, sizeof(line), wait_time*1000);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
121 if (res == _GETS_CTRLC) {
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
122 return;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
123 }
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
124 }
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
125
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
126 HAL_DISABLE_INTERRUPTS(oldints);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
127
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
128 pb = (struct parmblock *)base_addr;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
129 pcmd = pb->text;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
130
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
131 pb->memsize.name = pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
132 pcmd += sprintf(pcmd, "memsize");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
133 pb->memsize.val = ++pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
134 pcmd += sprintf(pcmd, "0x%08x", (ram_end - ram_start + 0xFFFFF) & ~0xFFFFF);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
135
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
136 pb->modetty0.name = ++pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
137 pcmd += sprintf(pcmd, "modetty0");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
138 pb->modetty0.val = ++pcmd;
172
cd45958b28ff Merge from eCos master repository on 2001-07-20-10:24:43-BST
jlarmour
parents: 171
diff changeset
139 pcmd += sprintf(pcmd, "%d,n,8,1,hw", DEFAULT_BAUD);
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
140
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
141 #ifdef CYGPKG_REDBOOT_NETWORKING
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
142 pb->ethaddr.name = ++pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
143 pcmd += sprintf(pcmd, "ethaddr");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
144 pb->ethaddr.val = ++pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
145 pcmd += sprintf(pcmd, "%02x.%02x.%02x.%02x.%02x.%02x",
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
146 __local_enet_addr[0], __local_enet_addr[1],
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
147 __local_enet_addr[2], __local_enet_addr[3],
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
148 __local_enet_addr[4], __local_enet_addr[5]);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
149 pb->env_end.name = NULL;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
150 pb->env_end.val = NULL;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
151 #else
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
152 pb->ethaddr.name = NULL;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
153 pb->ethaddr.val = NULL;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
154 #endif
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
155
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
156 /* Point argv[0] at a handy `\0` */
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
157 pb->argv[0] = pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
158 pb->argv[1] = ++pcmd;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
159
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
160 strcpy(pcmd, cmd_line);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
161
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
162 HAL_DCACHE_SYNC();
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
163 HAL_ICACHE_DISABLE();
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
164 HAL_DCACHE_DISABLE();
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
165 HAL_DCACHE_SYNC();
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
166 HAL_ICACHE_INVALIDATE_ALL();
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
167 HAL_DCACHE_INVALIDATE_ALL();
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
168
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
169 linux(2, pb->argv, pb);
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents:
diff changeset
170 }