Mercurial > ecos
diff packages/redboot/current/src/main.c @ 161:ac086aa3217e
Merge from eCos master repository on 2001-06-08-21:11:51-BST
| author | jlarmour |
|---|---|
| date | Sun, 10 Jun 2001 19:35:23 +0000 |
| parents | 0d0f03f76f6a |
| children | 2395031e7a66 |
line wrap: on
line diff
--- a/packages/redboot/current/src/main.c +++ b/packages/redboot/current/src/main.c @@ -58,6 +58,14 @@ #include <cyg/hal/plf_stub.h> #endif +#ifdef CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS +#define CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS \ + (CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS+CYGNUM_HAL_VIRTUAL_VECTOR_AUX_CHANNELS) +#else +#define CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS \ + CYGNUM_HAL_VIRTUAL_VECTOR_COMM_CHANNELS +#endif + // Builtin Self Test (BIST) externC void bist(void); @@ -215,7 +223,7 @@ cyg_start(void) } #ifdef CYGPKG_COMPRESS_ZLIB -#define ZLIB_COMPRESSION_OVERHEAD 0xB400 +#define ZLIB_COMPRESSION_OVERHEAD 0xB800 #else #define ZLIB_COMPRESSION_OVERHEAD 0 #endif @@ -269,8 +277,17 @@ cyg_start(void) } else { if (res == _GETS_GDB) { int dbgchan; + hal_virtual_comm_table_t *__chan; + int i; // Special case of '$' - need to start GDB protocol gdb_active = true; + // Mask interrupts on all channels + for (i = 0; i < CYGNUM_HAL_VIRTUAL_VECTOR_NUM_CHANNELS; i++) { + CYGACC_CALL_IF_SET_CONSOLE_COMM(i); + __chan = CYGACC_CALL_IF_CONSOLE_PROCS(); + CYGACC_COMM_IF_CONTROL( *__chan, __COMMCTL_IRQ_DISABLE ); + } + CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); #ifdef HAL_ARCH_PROGRAM_NEW_STACK HAL_ARCH_PROGRAM_NEW_STACK(breakpoint); @@ -300,7 +317,7 @@ void do_caches(int argc, char *argv[]) { unsigned long oldints; - int dcache_on, icache_on; + int dcache_on=0, icache_on=0; if (argc == 2) { if (strcmpci(argv[1], "on") == 0) { @@ -321,8 +338,12 @@ do_caches(int argc, char *argv[]) printf("Invalid cache mode: %s\n", argv[1]); } } else { +#ifdef HAL_DCACHE_IS_ENABLED HAL_DCACHE_IS_ENABLED(dcache_on); +#endif +#ifdef HAL_ICACHE_IS_ENABLED HAL_ICACHE_IS_ENABLED(icache_on); +#endif printf("Data cache: %s, Instruction cache: %s\n", dcache_on?"On":"Off", icache_on?"On":"Off"); } } @@ -521,7 +542,7 @@ do_baud_rate(int argc, char *argv[]) opt.enable_sense = 1; opt.key = "console_baud_rate"; opt.dflt = new_rate; - flash_add_config(&opt); + flash_add_config(&opt, true); #endif set_console_baud_rate(new_rate); } else {
