#ifndef CONFIG_ARM /* PowerPC and other */
+#ifdef CONFIG_PPC
static void print_str(const char *, const char *);
int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
return 0;
}
+#else /* MIPS */
+
+int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ DECLARE_GLOBAL_DATA_PTR;
+
+ int i;
+ bd_t *bd = gd->bd;
+
+ print_num ("boot_params", (ulong)bd->bi_boot_params);
+ print_num ("memstart", (ulong)bd->bi_memstart);
+ print_num ("memsize", (ulong)bd->bi_memsize);
+ print_num ("flashstart", (ulong)bd->bi_flashstart);
+ print_num ("flashsize", (ulong)bd->bi_flashsize);
+ print_num ("flashoffset", (ulong)bd->bi_flashoffset);
+
+ printf ("ethaddr =");
+ for (i=0; i<6; ++i) {
+ printf ("%c%02X", i ? ':' : ' ', bd->bi_enetaddr[i]);
+ }
+ printf ("\nip_addr = ");
+ print_IPaddr (bd->bi_ip_addr);
+ printf ("\nbaudrate = %d bps\n", bd->bi_baudrate);
+
+ return 0;
+}
+#endif /* MIPS */
+
#else /* ARM */
int do_bdinfo ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
print_num ("boot_params", (ulong)bd->bi_boot_params);
for (i=0; i<CONFIG_NR_DRAM_BANKS; ++i) {
- printf ("DRAM:%02d.start = %08lX\n",
- i, bd->bi_dram[i].start);
- printf ("DRAM:%02d.size = %08lX\n",
- i, bd->bi_dram[i].size);
+ print_num("DRAM bank", i);
+ print_num("-> start", bd->bi_dram[i].start);
+ print_num("-> size", bd->bi_dram[i].size);
}
printf ("ethaddr =");
printf ("%-12s= 0x%08lX\n", name, value);
}
-#ifndef CONFIG_ARM
+#ifdef CONFIG_PPC
static void print_str(const char *name, const char *str)
{
printf ("%-12s= %6s MHz\n", name, str);
}
-#endif /* CONFIG_ARM */
+#endif /* CONFIG_PPC */
#endif /* CFG_CMD_BDI */
addr = simple_strtoul(argv[1], NULL, 16);
- printf ("## Starting application at 0x%08lx ...\n", addr);
+ printf ("## Starting application at 0x%08lX ...\n", addr);
/*
* pass address parameter as argv[0] (aka command name),
rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]);
if (rc != 0) rcode = 1;
- printf ("## Application terminated, rc = 0x%lx\n", rc);
+ printf ("## Application terminated, rc = 0x%lX\n", rc);
return rcode;
}
printf ("## S-Record download aborted\n");
rcode = 1;
} else {
- printf ("## Start Addr = 0x%08lx\n", addr);
+ printf ("## Start Addr = 0x%08lX\n", addr);
load_addr = addr;
}
memcpy ((char *)(store_addr), binbuf, binlen);
}
if ((store_addr) < start_addr)
- start_addr = store_addr;
+ start_addr = store_addr;
if ((store_addr + binlen - 1) > end_addr)
- end_addr = store_addr + binlen - 1;
+ end_addr = store_addr + binlen - 1;
break;
case SREC_END2:
case SREC_END3:
ulong offset = 0;
ulong addr;
- int i;
int load_baudrate, current_baudrate;
int rcode = 0;
+ char *s;
+
+ /* pre-set offset from CFG_LOAD_ADDR */
+ offset = CFG_LOAD_ADDR;
+
+ /* pre-set offset from $loadaddr */
+ if ((s = getenv("loadaddr")) != NULL) {
+ offset = simple_strtoul(s, NULL, 16);
+ }
load_baudrate = current_baudrate = gd->baudrate;
break;
}
}
- printf ("## Ready for binary (kermit) download ...\n");
+ printf ("## Ready for binary (kermit) download "
+ "to 0x%08lX at %d bps...\n",
+ offset,
+ current_baudrate);
addr = load_serial_bin (offset);
- /*
- * Gather any trailing characters (for instance, the ^D which
- * is sent by 'cu' after sending a file), and give the
- * box some time (100 * 1 ms)
- */
- for (i=0; i<100; ++i) {
- if (serial_tstc()) {
- (void) serial_getc();
- }
- udelay(1000);
- }
-
if (addr == ~0) {
load_addr = 0;
printf ("## Binary (kermit) download aborted\n");
rcode = 1;
} else {
- printf ("## Start Addr = 0x%08lx\n", addr);
+ printf ("## Start Addr = 0x%08lX\n", addr);
load_addr = addr;
}