void serial_initialize (void) { #if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2) serial_register (&serial_smc_device); #endif #if defined(CONFIG_8xx_CONS_SCC1) || defined(CONFIG_8xx_CONS_SCC2) \ || defined(CONFIG_8xx_CONS_SCC3) || defined(CONFIG_8xx_CONS_SCC4) serial_register (&serial_scc_device); #endif #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_440) \ || defined(CONFIG_405EP) || defined(CONFIG_405EZ) || defined(CONFIG_MPC5xxx) serial_register(&serial0_device); serial_register(&serial1_device); #endif #if defined(CFG_NS16550_SERIAL) #if defined(CFG_NS16550_COM1) serial_register(&eserial1_device); #endif #if defined(CFG_NS16550_COM2) serial_register(&eserial2_device); #endif #if defined(CFG_NS16550_COM3) serial_register(&eserial3_device); #endif #if defined(CFG_NS16550_COM4) serial_register(&eserial4_device); #endif #endif /* CFG_NS16550_SERIAL */ serial_assign (default_serial_console ()->name); }
/** * serial_initialize() - Register all compiled-in serial port drivers * * This function registers all serial port drivers that are compiled * into the U-Boot binary with the serial core, thus making them * available to U-Boot to use. Lastly, this function assigns a default * serial port to the serial core. That serial port is then used as a * default output. */ void serial_initialize(void) { mpc8xx_serial_initialize(); ns16550_serial_initialize(); pxa_serial_initialize(); s3c24xx_serial_initialize(); s5p_serial_initialize(); mpc512x_serial_initialize(); bfin_serial_initialize(); bfin_jtag_initialize(); uartlite_serial_initialize(); zynq_serial_initalize(); au1x00_serial_initialize(); asc_serial_initialize(); jz_serial_initialize(); mpc5xx_serial_initialize(); mpc8260_scc_serial_initialize(); mpc8260_smc_serial_initialize(); mpc85xx_serial_initialize(); iop480_serial_initialize(); leon2_serial_initialize(); leon3_serial_initialize(); marvell_serial_initialize(); amirix_serial_initialize(); bmw_serial_initialize(); cogent_serial_initialize(); cpci750_serial_initialize(); evb64260_serial_initialize(); ml2_serial_initialize(); sconsole_serial_initialize(); p3mx_serial_initialize(); altera_jtag_serial_initialize(); altera_serial_initialize(); atmel_serial_initialize(); lpc32xx_serial_initialize(); mcf_serial_initialize(); oc_serial_initialize(); sandbox_serial_initialize(); clps7111_serial_initialize(); imx_serial_initialize(); ixp_serial_initialize(); ks8695_serial_initialize(); lh7a40x_serial_initialize(); max3100_serial_initialize(); mxc_serial_initialize(); pl01x_serial_initialize(); sa1100_serial_initialize(); sh_serial_initialize(); arm_dcc_initialize(); mxs_auart_initialize(); arc_serial_initialize(); serial_assign(default_serial_console()->name); }
void serial_initialize (void) { #if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2) serial_register (&serial_smc_device); #endif #if defined(CONFIG_8xx_CONS_SCC1) || defined(CONFIG_8xx_CONS_SCC2) \ || defined(CONFIG_8xx_CONS_SCC3) || defined(CONFIG_8xx_CONS_SCC4) serial_register (&serial_scc_device); #endif #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_440) \ || defined(CONFIG_405EP) || defined(CONFIG_405EZ) || defined(CONFIG_405EX) \ || defined(CONFIG_MPC5xxx) serial_register(&serial0_device); serial_register(&serial1_device); #endif #if defined(CONFIG_SYS_NS16550_SERIAL) #if defined(CONFIG_SYS_NS16550_COM1) serial_register(&eserial1_device); #endif #if defined(CONFIG_SYS_NS16550_COM2) serial_register(&eserial2_device); #endif #if defined(CONFIG_SYS_NS16550_COM3) serial_register(&eserial3_device); #endif #if defined(CONFIG_SYS_NS16550_COM4) serial_register(&eserial4_device); #endif #endif /* CONFIG_SYS_NS16550_SERIAL */ #if defined (CONFIG_FFUART) serial_register(&serial_ffuart_device); #endif #if defined (CONFIG_BTUART) serial_register(&serial_btuart_device); #endif #if defined (CONFIG_STUART) serial_register(&serial_stuart_device); #endif #if defined(CONFIG_S3C2410) || defined(CONFIG_S3C2440) serial_register(&s3c24xx_serial0_device); serial_register(&s3c24xx_serial1_device); serial_register(&s3c24xx_serial2_device); #endif #if defined(CONFIG_S5PC1XX) serial_register(&s5pc1xx_serial0_device); serial_register(&s5pc1xx_serial1_device); serial_register(&s5pc1xx_serial2_device); serial_register(&s5pc1xx_serial3_device); #endif serial_assign (default_serial_console ()->name); }
/** * serial_initialize() - Register all compiled-in serial port drivers * * This function registers all serial port drivers that are compiled * into the U-Boot binary with the serial core, thus making them * available to U-Boot to use. Lastly, this function assigns a default * serial port to the serial core. That serial port is then used as a * default output. */ void serial_initialize(void) { atmel_serial_initialize(); au1x00_serial_initialize(); mcf_serial_initialize(); mpc85xx_serial_initialize(); mpc8xx_serial_initialize(); mxc_serial_initialize(); ns16550_serial_initialize(); pl01x_serial_initialize(); pxa_serial_initialize(); sh_serial_initialize(); serial_assign(default_serial_console()->name); }
void serial_initialize (void) { #if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2) serial_register (&serial_smc_device); #endif #if defined(CONFIG_8xx_CONS_SCC1) || defined(CONFIG_8xx_CONS_SCC2) \ || defined(CONFIG_8xx_CONS_SCC3) || defined(CONFIG_8xx_CONS_SCC4) serial_register (&serial_scc_device); #endif #if defined(CONFIG_405GP) || defined(CONFIG_405CR) || defined(CONFIG_440) \ || defined(CONFIG_405EP) serial_register(&serial0_device); serial_register(&serial1_device); #endif serial_assign (default_serial_console ()->name); }
int _do_env_set (int flag, int argc, char * const argv[]) { bd_t *bd = gd->bd; int i, len; int console = -1; char *name, *value, *s; ENTRY e, *ep; name = argv[1]; if (strchr(name, '=')) { printf("## Error: illegal character '=' in variable name \"%s\"\n", name); return 1; } env_id++; /* * search if variable with this name already exists */ e.key = name; e.data = NULL; hsearch_r(e, FIND, &ep, &env_htab); /* Check for console redirection */ if (strcmp(name, "stdin") == 0) console = stdin; else if (strcmp(name, "stdout") == 0) console = stdout; else if (strcmp(name, "stderr") == 0) console = stderr; if (console != -1) { if (argc < 3) { /* Cannot delete it! */ printf("Can't delete \"%s\"\n", name); return 1; } #ifdef CONFIG_CONSOLE_MUX i = iomux_doenv(console, argv[2]); if (i) return i; #else /* Try assigning specified device */ if (console_assign(console, argv[2]) < 0) return 1; #ifdef CONFIG_SERIAL_MULTI if (serial_assign(argv[2]) < 0) return 1; #endif #endif /* CONFIG_CONSOLE_MUX */ } /* * Some variables like "ethaddr" and "serial#" can be set only * once and cannot be deleted; also, "ver" is readonly. */ if (ep) { /* variable exists */ #ifndef CONFIG_ENV_OVERWRITE if ((strcmp(name, "serial#") == 0) || ((strcmp(name, "ethaddr") == 0) #if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) && defined(CONFIG_ETHADDR) && (strcmp(ep->data, MK_STR(CONFIG_ETHADDR)) != 0) #endif /* CONFIG_OVERWRITE_ETHADDR_ONCE && CONFIG_ETHADDR */ ) ) { printf("Can't overwrite \"%s\"\n", name); return 1; } #endif /* * Switch to new baudrate if new baudrate is supported */ if (strcmp(name, "baudrate") == 0) { int baudrate = simple_strtoul(argv[2], NULL, 10); int i; for (i = 0; i < N_BAUDRATES; ++i) { if (baudrate == baudrate_table[i]) break; } if (i == N_BAUDRATES) { printf("## Baudrate %d bps not supported\n", baudrate); return 1; } printf ("## Switch baudrate to %d bps and press ENTER ...\n", baudrate); udelay(50000); gd->baudrate = baudrate; #if defined(CONFIG_PPC) || defined(CONFIG_MCF52x2) gd->bd->bi_baudrate = baudrate; #endif serial_setbrg(); udelay(50000); for (;;) { if (getc() == '\r') break; } } } /* Delete only ? */ if ((argc < 3) || argv[2] == NULL) { int rc = hdelete_r(name, &env_htab); return !rc; } /* * Insert / replace new value */ for (i = 2, len = 0; i < argc; ++i) len += strlen(argv[i]) + 1; value = malloc(len); if (value == NULL) { printf("## Can't malloc %d bytes\n", len); return 1; } for (i = 2, s = value; i < argc; ++i) { char *v = argv[i]; while ((*s++ = *v++) != '\0') ; *(s-1) = ' '; } if (s != value) *--s = '\0'; e.key = name; e.data = value; hsearch_r(e, ENTER, &ep, &env_htab); free(value); if (!ep) { printf("## Error inserting \"%s\" variable, errno=%d\n", name, errno); return 1; } /* * Some variables should be updated when the corresponding * entry in the environment is changed */ if (strcmp(name, "ipaddr") == 0) { char *s = argv[2]; /* always use only one arg */ char *e; unsigned long addr; bd->bi_ip_addr = 0; for (addr = 0, i = 0; i < 4; ++i) { ulong val = s ? simple_strtoul(s, &e, 10) : 0; addr <<= 8; addr |= (val & 0xFF); if (s) s = (*e) ? e+1 : e; } bd->bi_ip_addr = htonl(addr); return 0; } else if (strcmp(argv[1], "loadaddr") == 0) { load_addr = simple_strtoul(argv[2], NULL, 16); return 0; } #if defined(CONFIG_CMD_NET) else if (strcmp(argv[1], "bootfile") == 0) { copy_filename(BootFile, argv[2], sizeof(BootFile)); return 0; } #endif return 0; }
int _do_setenv (int flag, int argc, char *argv[]) { int i, len, oldval; int console = -1; uchar *env, *nxt = NULL; char *name; bd_t *bd = gd->bd; uchar *env_data = env_get_addr(0); if (!env_data) /* need copy in RAM */ return 1; name = argv[1]; if (strchr(name, '=')) { printf ("## Error: illegal character '=' in variable name \"%s\"\n", name); return 1; } /* * search if variable with this name already exists */ oldval = -1; for (env=env_data; *env; env=nxt+1) { for (nxt=env; *nxt; ++nxt) ; if ((oldval = envmatch((uchar *)name, env-env_data)) >= 0) break; } /* * Delete any existing definition */ if (oldval >= 0) { #ifndef CONFIG_ENV_OVERWRITE /* * Ethernet Address and serial# can be set only once, * ver is readonly. */ if ( #ifdef CONFIG_HAS_UID /* Allow serial# forced overwrite with 0xdeaf4add flag */ ((strcmp (name, "serial#") == 0) && (flag != 0xdeaf4add)) || #else (strcmp (name, "serial#") == 0) || #endif ((strcmp (name, "ethaddr") == 0) #if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) && defined(CONFIG_ETHADDR) && (strcmp ((char *)env_get_addr(oldval),MK_STR(CONFIG_ETHADDR)) != 0) #endif /* CONFIG_OVERWRITE_ETHADDR_ONCE && CONFIG_ETHADDR */ ) ) { printf ("Can't overwrite \"%s\"\n", name); return 1; } #endif /* Check for console redirection */ if (strcmp(name,"stdin") == 0) { console = stdin; } else if (strcmp(name,"stdout") == 0) { console = stdout; } else if (strcmp(name,"stderr") == 0) { console = stderr; } if (console != -1) { if (argc < 3) { /* Cannot delete it! */ printf("Can't delete \"%s\"\n", name); return 1; } #ifdef CONFIG_CONSOLE_MUX i = iomux_doenv(console, argv[2]); if (i) return i; #else /* Try assigning specified device */ if (console_assign (console, argv[2]) < 0) return 1; #ifdef CONFIG_SERIAL_MULTI if (serial_assign (argv[2]) < 0) return 1; #endif #endif /* CONFIG_CONSOLE_MUX */ } /* * Switch to new baudrate if new baudrate is supported */ if (strcmp(argv[1],"baudrate") == 0) { int baudrate = simple_strtoul(argv[2], NULL, 10); int i; for (i=0; i<N_BAUDRATES; ++i) { if (baudrate == baudrate_table[i]) break; } if (i == N_BAUDRATES) { printf ("## Baudrate %d bps not supported\n", baudrate); return 1; } printf ("## Switch baudrate to %d bps and press ENTER ...\n", baudrate); udelay(50000); gd->baudrate = baudrate; #if defined(CONFIG_PPC) || defined(CONFIG_MCF52x2) gd->bd->bi_baudrate = baudrate; #endif serial_setbrg (); udelay(50000); for (;;) { if (getc() == '\r') break; } } if (*++nxt == '\0') { if (env > env_data) { env--; } else { *env = '\0'; } } else { for (;;) { *env = *nxt++; if ((*env == '\0') && (*nxt == '\0')) break; ++env; } } *++env = '\0'; } #ifdef CONFIG_NET_MULTI if (strncmp(name, "eth", 3) == 0) { char *end; int num = simple_strtoul(name+3, &end, 10); if (strcmp(end, "addr") == 0) { eth_set_enetaddr(num, argv[2]); } } #endif /* Delete only ? */ if ((argc < 3) || argv[2] == NULL) { env_crc_update (); return 0; } /* * Append new definition at the end */ for (env=env_data; *env || *(env+1); ++env) ; if (env > env_data) ++env; /* * Overflow when: * "name" + "=" + "val" +"\0\0" > ENV_SIZE - (env-env_data) */ len = strlen(name) + 2; /* add '=' for first arg, ' ' for all others */ for (i=2; i<argc; ++i) { len += strlen(argv[i]) + 1; } if (len > (&env_data[ENV_SIZE]-env)) { printf ("## Error: environment overflow, \"%s\" deleted\n", name); return 1; } while ((*env = *name++) != '\0') env++; for (i=2; i<argc; ++i) { char *val = argv[i]; *env = (i==2) ? '=' : ' '; while ((*++env = *val++) != '\0') ; } /* end is marked with double '\0' */ *++env = '\0'; /* Update CRC */ env_crc_update (); /* * Some variables should be updated when the corresponding * entry in the enviornment is changed */ if (strcmp(argv[1],"ethaddr") == 0) { char *s = argv[2]; /* always use only one arg */ char *e; for (i=0; i<6; ++i) { bd->bi_enetaddr[i] = s ? simple_strtoul(s, &e, 16) : 0; if (s) s = (*e) ? e+1 : e; } #ifdef CONFIG_NET_MULTI eth_set_enetaddr(0, argv[2]); #endif return 0; } if (strcmp(argv[1],"ipaddr") == 0) { char *s = argv[2]; /* always use only one arg */ char *e; unsigned long addr; bd->bi_ip_addr = 0; for (addr=0, i=0; i<4; ++i) { ulong val = s ? simple_strtoul(s, &e, 10) : 0; addr <<= 8; addr |= (val & 0xFF); if (s) s = (*e) ? e+1 : e; } bd->bi_ip_addr = htonl(addr); return 0; } if (strcmp(argv[1],"loadaddr") == 0) { load_addr = simple_strtoul(argv[2], NULL, 16); return 0; } #if defined(CONFIG_CMD_NET) if (strcmp(argv[1],"bootfile") == 0) { copy_filename (BootFile, argv[2], sizeof(BootFile)); return 0; } #endif #ifdef CONFIG_AMIGAONEG3SE if (strcmp(argv[1], "vga_fg_color") == 0 || strcmp(argv[1], "vga_bg_color") == 0 ) { extern void video_set_color(unsigned char attr); extern unsigned char video_get_attr(void); video_set_color(video_get_attr()); return 0; } #endif /* CONFIG_AMIGAONEG3SE */ return 0; }
int env_check_apply(const char *name, const char *oldval, const char *newval, int flag) { int console = -1; /* Default value for NULL to protect string-manipulating functions */ newval = newval ? : ""; /* Check for console redirection */ if (strcmp(name, "stdin") == 0) console = stdin; else if (strcmp(name, "stdout") == 0) console = stdout; else if (strcmp(name, "stderr") == 0) console = stderr; if (console != -1) { if ((newval == NULL) || (*newval == '\0')) { /* We cannot delete stdin/stdout/stderr */ if ((flag & H_FORCE) == 0) printf("Can't delete \"%s\"\n", name); return 1; } #ifdef CONFIG_CONSOLE_MUX if (iomux_doenv(console, newval)) return 1; #else /* Try assigning specified device */ if (console_assign(console, newval) < 0) return 1; if (serial_assign(newval) < 0) return 1; #endif /* CONFIG_CONSOLE_MUX */ } /* * Some variables like "ethaddr" and "serial#" can be set only once and * cannot be deleted, unless CONFIG_ENV_OVERWRITE is defined. */ #ifndef CONFIG_ENV_OVERWRITE if (oldval != NULL && /* variable exists */ (flag & H_FORCE) == 0) { /* and we are not forced */ if (strcmp(name, "serial#") == 0 || (strcmp(name, "ethaddr") == 0 #if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) && defined(CONFIG_ETHADDR) && strcmp(oldval, __stringify(CONFIG_ETHADDR)) != 0 #endif /* CONFIG_OVERWRITE_ETHADDR_ONCE && CONFIG_ETHADDR */ )) { printf("Can't overwrite \"%s\"\n", name); return 1; } } #endif /* * When we change baudrate, or we are doing an env default -a * (which will erase all variables prior to calling this), * we want the baudrate to actually change - for real. */ if (oldval != NULL || /* variable exists */ (flag & H_NOCLEAR) == 0) { /* or env is clear */ /* * Switch to new baudrate if new baudrate is supported */ if (strcmp(name, "baudrate") == 0) { int baudrate = simple_strtoul(newval, NULL, 10); int i; for (i = 0; i < N_BAUDRATES; ++i) { if (baudrate == baudrate_table[i]) break; } if (i == N_BAUDRATES) { if ((flag & H_FORCE) == 0) printf("## Baudrate %d bps not " "supported\n", baudrate); return 1; } if (gd->baudrate == baudrate) { /* If unchanged, we just say it's OK */ return 0; } printf("## Switch baudrate to %d bps and" "press ENTER ...\n", baudrate); udelay(50000); gd->baudrate = baudrate; #if defined(CONFIG_PPC) || defined(CONFIG_MCF52x2) gd->bd->bi_baudrate = baudrate; #endif serial_setbrg(); udelay(50000); while (getc() != '\r') ; } } /* * Some variables should be updated when the corresponding * entry in the environment is changed */ if (strcmp(name, "loadaddr") == 0) { load_addr = simple_strtoul(newval, NULL, 16); return 0; } #if defined(CONFIG_CMD_NET) else if (strcmp(name, "bootfile") == 0) { copy_filename(BootFile, newval, sizeof(BootFile)); return 0; } #endif return 0; }
/************************************************************************ * Set a new environment variable, * or replace or delete an existing one. * * This function will ONLY work with a in-RAM copy of the environment */ int _do_setenv(int flag, int argc, char *argv[]){ int i, len, oldval; int console = -1; uchar *env, *nxt = NULL; char *name; bd_t *bd = gd->bd; uchar *env_data = env_get_addr(0); if(!env_data){ /* need copy in RAM */ return(1); } name = argv[1]; /* * search if variable with this name already exists */ oldval = -1; for(env = env_data; *env; env = nxt + 1){ for(nxt = env; *nxt; ++nxt); if((oldval = envmatch((uchar *)name, env - env_data)) >= 0){ break; } } /* * Delete any existing definition */ if(oldval >= 0){ /* Check for console redirection */ if(strcmp(name, "stdin") == 0){ console = stdin; } else if(strcmp(name, "stdout") == 0){ console = stdout; } else if(strcmp(name, "stderr") == 0){ console = stderr; } if(console != -1){ if(argc < 3){ /* Cannot delete it! */ printf("## Error: can't delete \"%s\"\n", name); return(1); } /* Try assigning specified device */ if(console_assign(console, argv[2]) < 0){ return(1); } #ifdef CONFIG_SERIAL_MULTI if(serial_assign(argv[2]) < 0){ return(1); } #endif } /* * Switch to new baudrate if new baudrate is supported */ if(strcmp(argv[1], "baudrate") == 0){ int baudrate = simple_strtoul(argv[2], NULL, 10); int i; for(i = 0; i < N_BAUDRATES; ++i){ if(baudrate == baudrate_table[i]){ break; } } if(i == N_BAUDRATES){ printf("## Error: baudrate %d bps is not supported,\n", baudrate); printf(" choose one from the list:\n\n"); for(i = 0; i < N_BAUDRATES; ++i){ printf("- %7d bps%s\n", baudrate_table[i], baudrate_table[i] == gd->baudrate ? " [current]" : ""); } printf("\n"); return(1); } printf("Switch baudrate to %d bps and press ENTER...\n", baudrate); udelay(50000); gd->baudrate = baudrate; serial_setbrg(); udelay(50000); for(;;){ if(getc() == '\r'){ break; } } } if(*++nxt == '\0'){ if(env > env_data){ env--; } else { *env = '\0'; } } else { for(;;){ *env = *nxt++; if((*env == '\0') && (*nxt == '\0')){ break; } ++env; } } *++env = '\0'; } #ifdef CONFIG_NET_MULTI if(strncmp(name, "eth", 3) == 0){ char *end; int num = simple_strtoul(name + 3, &end, 10); if(strcmp(end, "addr") == 0){ eth_set_enetaddr(num, argv[2]); } } #endif /* Delete only ? */ if((argc < 3) || argv[2] == NULL){ env_crc_update(); return(0); } /* * Append new definition at the end */ for(env = env_data; *env || *(env + 1); ++env); if(env > env_data){ ++env; } /* * Overflow when: * "name" + "=" + "val" +"\0\0" > ENV_SIZE - (env-env_data) */ len = strlen(name) + 2; /* add '=' for first arg, ' ' for all others */ for(i = 2; i < argc; ++i){ len += strlen(argv[i]) + 1; } if(len > (&env_data[ENV_SIZE] - env)){ printf("## Error: environment overflow, \"%s\" deleted\n", name); return(1); } while((*env = *name++) != '\0'){ env++; } for(i = 2; i < argc; ++i){ char *val = argv[i]; *env = (i == 2) ? '=' : ' '; while((*++env = *val++) != '\0'); } /* end is marked with double '\0' */ *++env = '\0'; /* Update CRC */ env_crc_update(); /* * Some variables should be updated when the corresponding * entry in the enviornment is changed */ if(strcmp(argv[1], "ethaddr") == 0){ char *s = argv[2]; /* always use only one arg */ char *e; for(i = 0; i < 6; ++i){ bd->bi_enetaddr[i] = s ? simple_strtoul(s, &e, 16) : 0; if(s){ s = (*e) ? e + 1 : e; } } #ifdef CONFIG_NET_MULTI eth_set_enetaddr(0, argv[2]); #endif return(0); } if(strcmp(argv[1], "ipaddr") == 0){ char *s = argv[2]; /* always use only one arg */ char *e; unsigned long addr; bd->bi_ip_addr = 0; for(addr = 0, i = 0; i < 4; ++i){ ulong val = s ? simple_strtoul(s, &e, 10) : 0; addr <<= 8; addr |= (val & 0xFF); if(s){ s = (*e) ? e + 1 : e; } } bd->bi_ip_addr = htonl(addr); return(0); } if(strcmp(argv[1], "loadaddr") == 0){ load_addr = simple_strtoul(argv[2], NULL, 16); return(0); } #if (CONFIG_COMMANDS & CFG_CMD_NET) if(strcmp(argv[1], "bootfile") == 0){ copy_filename(BootFile, argv[2], sizeof(BootFile)); return(0); } #endif /* CFG_CMD_NET */ return(0); }
void serial_initialize (void) { #if defined(CONFIG_8xx_CONS_SMC1) || defined(CONFIG_8xx_CONS_SMC2) serial_register (&serial_smc_device); #endif #if defined(CONFIG_8xx_CONS_SCC1) || defined(CONFIG_8xx_CONS_SCC2) \ || defined(CONFIG_8xx_CONS_SCC3) || defined(CONFIG_8xx_CONS_SCC4) serial_register (&serial_scc_device); #endif #if defined(CONFIG_SYS_NS16550_SERIAL) #if defined(CONFIG_SYS_NS16550_COM1) serial_register(&eserial1_device); #endif #if defined(CONFIG_SYS_NS16550_COM2) serial_register(&eserial2_device); #endif #if defined(CONFIG_SYS_NS16550_COM3) serial_register(&eserial3_device); #endif #if defined(CONFIG_SYS_NS16550_COM4) serial_register(&eserial4_device); #endif #endif /* CONFIG_SYS_NS16550_SERIAL */ #if defined (CONFIG_FFUART) serial_register(&serial_ffuart_device); #endif #if defined (CONFIG_BTUART) serial_register(&serial_btuart_device); #endif #if defined (CONFIG_STUART) serial_register(&serial_stuart_device); #endif #if defined(CONFIG_S3C2410) serial_register(&s3c24xx_serial0_device); serial_register(&s3c24xx_serial1_device); serial_register(&s3c24xx_serial2_device); #endif #if defined(CONFIG_S5P) serial_register(&s5p_serial0_device); serial_register(&s5p_serial1_device); serial_register(&s5p_serial2_device); serial_register(&s5p_serial3_device); #endif #if defined(CONFIG_MPC512X) #if defined(CONFIG_SYS_PSC1) serial_register(&serial1_device); #endif #if defined(CONFIG_SYS_PSC3) serial_register(&serial3_device); #endif #if defined(CONFIG_SYS_PSC4) serial_register(&serial4_device); #endif #if defined(CONFIG_SYS_PSC6) serial_register(&serial6_device); #endif #endif #if defined(CONFIG_SYS_BFIN_UART) serial_register_bfin_uart(); #endif #if defined(CONFIG_XILINX_UARTLITE) # ifdef XILINX_UARTLITE_BASEADDR serial_register(&uartlite_serial0_device); # endif /* XILINX_UARTLITE_BASEADDR */ # ifdef XILINX_UARTLITE_BASEADDR1 serial_register(&uartlite_serial1_device); # endif /* XILINX_UARTLITE_BASEADDR1 */ # ifdef XILINX_UARTLITE_BASEADDR2 serial_register(&uartlite_serial2_device); # endif /* XILINX_UARTLITE_BASEADDR2 */ # ifdef XILINX_UARTLITE_BASEADDR3 serial_register(&uartlite_serial3_device); # endif /* XILINX_UARTLITE_BASEADDR3 */ #endif /* CONFIG_XILINX_UARTLITE */ serial_assign (default_serial_console ()->name); }
void InitApp(void) { /* Send Low Level Voltage to all ports */ LATA = 0x0000; LATB = 0x0000; LATC = 0x0000; LATD = 0x0000; LATE = 0x0000; LATF = 0x0000; LATG = 0x0000; #if defined(__dsPIC33EP512MU814__) LATH = 0x0000; LATJ = 0x0000; LATK = 0x0000; #endif /* Disable all analog inputs */ ANSELA = 0x0000; ANSELB = 0x0000; ANSELC = 0x0000; ANSELD = 0x0000; ANSELE = 0x0000; ANSELG = 0x0000; /* Configure all digital ports as outputs */ TRISA = 0x0000; TRISB = 0x0000; TRISC = 0x0000; TRISD = 0x0000; TRISE = 0x0000; TRISF = 0x0000; TRISG = 0x0000; #if defined(__dsPIC33EP512MU814__) TRISH = 0x0000; TRISJ = 0x0000; TRISK = 0x0000; #endif #if STARTKITBOARD mInitAllLEDs(); mInitAllSwitches(); #endif /* Configure Nested Interrupts */ INTCON1bits.NSTDIS = 0b0; // Interrupt nesting enabled initClock(); #if USE_UART1 serial_assign(&Serial1, 1u); Serial1.init(); Serial1.open(); XBeeInit(&Xbee1, XBEE1_ATAP, &Serial1); #endif /*USE_UART1*/ #if USE_UART2 serial_assign(&Serial2, 2u); Serial2.init(); Serial2.open(); XBeeInit(&Xbee2, XBEE2_ATAP, &Serial2); #endif /*USE_UART2*/ #if USE_UART3 serial_assign(&Serial3, 3u); Serial3.init(); Serial3.open(); XBeeInit(&Xbee3, XBEE3_ATAP, &Serial3); #endif /*USE_UART3*/ #if USE_UART4 serial_assign(&Serial4, 4u); Serial4.init(); Serial4.open(); XBeeInit(&Xbee4, XBEE4_ATAP, &Serial4); #endif /*USE_UART4*/ #if USE_ADC1 ADC1Init(); ADC1Start(); #endif #if USE_ENC EncInit(); #endif #if USE_PWM PWMxInit(); PWMxStart(); #endif #if USE_PWM && USE_ADC1 ServoInit(); asm ("repeat #640;"); Nop(); ServoStart(); #endif /* USE_PWM && USE_ADC1 */ #if USE_IMU IMUInit(); IMUStart(); #endif #if USE_SPIS SPISInit(); SPISStart(); #endif }