Commit 5da91f6c authored by Heiko Schocher's avatar Heiko Schocher Committed by Wolfgang Denk
Browse files

Merge with /home/hs/Atronic/u-boot-dev-new

parents 01159530 fad63407
......@@ -238,7 +238,13 @@ void load_sernum_ethaddr (void)
}
/* Env doesnt exist -> hang */
status_led_blink ();
hang ();
/* here we do this "handy" because we have no interrupts
at this time */
puts ("### EEPROM ERROR ### Please RESET the board ###\n");
for (;;) {
__led_toggle (12);
udelay (100000);
}
return;
}
......@@ -416,7 +422,13 @@ static void pcs440ep_checksha1 (void)
if ((cs_test = getenv ("cs_test")) == NULL) {
/* Env doesnt exist -> hang */
status_led_blink ();
hang ();
/* here we do this "handy" because we have no interrupts
at this time */
puts ("### SHA1 ERROR ### Please RESET the board ###\n");
for (;;) {
__led_toggle (2);
udelay (100000);
}
}
if (strncmp (cs_test, "off", 3) == 0) {
......@@ -517,7 +529,7 @@ void spd_ddr_init_hang (void)
status_led_set (1, STATUS_LED_ON);
/* we cannot use hang() because we are still running from
Flash, and so the status_led driver is not initialized */
puts ("### ERROR ### Please RESET the board ###\n");
puts ("### SDRAM ERROR ### Please RESET the board ###\n");
for (;;) {
__led_toggle (4);
udelay (100000);
......
......@@ -56,13 +56,6 @@ DECLARE_GLOBAL_DATA_PTR;
#include <hush.h>
#endif
#ifdef CONFIG_SHOW_BOOT_PROGRESS
# include <status_led.h>
# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg)
#else
# define SHOW_BOOT_PROGRESS(arg)
#endif
#ifdef CFG_INIT_RAM_LOCK
#include <asm/cache.h>
#endif
......@@ -176,7 +169,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
addr = simple_strtoul(argv[1], NULL, 16);
}
SHOW_BOOT_PROGRESS (1);
show_boot_progress (1);
printf ("## Booting image at %08lx ...\n", addr);
/* Copy header so we can blank CRC field for re-calculation */
......@@ -200,11 +193,11 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
#endif /* __I386__ */
{
puts ("Bad Magic Number\n");
SHOW_BOOT_PROGRESS (-1);
show_boot_progress (-1);
return 1;
}
}
SHOW_BOOT_PROGRESS (2);
show_boot_progress (2);
data = (ulong)&header;
len = sizeof(image_header_t);
......@@ -214,10 +207,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (crc32 (0, (uchar *)data, len) != checksum) {
puts ("Bad Header Checksum\n");
SHOW_BOOT_PROGRESS (-2);
show_boot_progress (-2);
return 1;
}
SHOW_BOOT_PROGRESS (3);
show_boot_progress (3);
#ifdef CONFIG_HAS_DATAFLASH
if (addr_dataflash(addr)){
......@@ -238,12 +231,12 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
puts (" Verifying Checksum ... ");
if (crc32 (0, (uchar *)data, len) != ntohl(hdr->ih_dcrc)) {
printf ("Bad Data CRC\n");
SHOW_BOOT_PROGRESS (-3);
show_boot_progress (-3);
return 1;
}
puts ("OK\n");
}
SHOW_BOOT_PROGRESS (4);
show_boot_progress (4);
len_ptr = (ulong *)data;
......@@ -272,10 +265,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
#endif
{
printf ("Unsupported Architecture 0x%x\n", hdr->ih_arch);
SHOW_BOOT_PROGRESS (-4);
show_boot_progress (-4);
return 1;
}
SHOW_BOOT_PROGRESS (5);
show_boot_progress (5);
switch (hdr->ih_type) {
case IH_TYPE_STANDALONE:
......@@ -297,10 +290,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
data += 4;
break;
default: printf ("Wrong Image Type for %s command\n", cmdtp->name);
SHOW_BOOT_PROGRESS (-5);
show_boot_progress (-5);
return 1;
}
SHOW_BOOT_PROGRESS (6);
show_boot_progress (6);
/*
* We have reached the point of no return: we are going to
......@@ -351,7 +344,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (gunzip ((void *)ntohl(hdr->ih_load), unc_len,
(uchar *)data, &len) != 0) {
puts ("GUNZIP ERROR - must RESET board to recover\n");
SHOW_BOOT_PROGRESS (-6);
show_boot_progress (-6);
do_reset (cmdtp, flag, argc, argv);
}
break;
......@@ -368,7 +361,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
CFG_MALLOC_LEN < (4096 * 1024), 0);
if (i != BZ_OK) {
printf ("BUNZIP2 ERROR %d - must RESET board to recover\n", i);
SHOW_BOOT_PROGRESS (-6);
show_boot_progress (-6);
udelay(100000);
do_reset (cmdtp, flag, argc, argv);
}
......@@ -378,11 +371,11 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (iflag)
enable_interrupts();
printf ("Unimplemented compression type %d\n", hdr->ih_comp);
SHOW_BOOT_PROGRESS (-7);
show_boot_progress (-7);
return 1;
}
puts ("OK\n");
SHOW_BOOT_PROGRESS (7);
show_boot_progress (7);
switch (hdr->ih_type) {
case IH_TYPE_STANDALONE:
......@@ -409,10 +402,10 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (iflag)
enable_interrupts();
printf ("Can't boot image type %d\n", hdr->ih_type);
SHOW_BOOT_PROGRESS (-8);
show_boot_progress (-8);
return 1;
}
SHOW_BOOT_PROGRESS (8);
show_boot_progress (8);
switch (hdr->ih_os) {
default: /* handled by (original) Linux case */
......@@ -458,7 +451,7 @@ int do_bootm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
#endif
}
SHOW_BOOT_PROGRESS (-9);
show_boot_progress (-9);
#ifdef DEBUG
puts ("\n## Control returned to monitor - resetting...\n");
do_reset (cmdtp, flag, argc, argv);
......@@ -637,7 +630,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
#endif
if (argc >= 3) {
debug ("Not skipping initrd\n");
SHOW_BOOT_PROGRESS (9);
show_boot_progress (9);
addr = simple_strtoul(argv[2], NULL, 16);
......@@ -648,7 +641,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
if (ntohl(hdr->ih_magic) != IH_MAGIC) {
puts ("Bad Magic Number\n");
SHOW_BOOT_PROGRESS (-10);
show_boot_progress (-10);
do_reset (cmdtp, flag, argc, argv);
}
......@@ -660,11 +653,11 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
if (crc32 (0, (uchar *)data, len) != checksum) {
puts ("Bad Header Checksum\n");
SHOW_BOOT_PROGRESS (-11);
show_boot_progress (-11);
do_reset (cmdtp, flag, argc, argv);
}
SHOW_BOOT_PROGRESS (10);
show_boot_progress (10);
print_image_hdr (hdr);
......@@ -697,19 +690,19 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
if (csum != ntohl(hdr->ih_dcrc)) {
puts ("Bad Data CRC\n");
SHOW_BOOT_PROGRESS (-12);
show_boot_progress (-12);
do_reset (cmdtp, flag, argc, argv);
}
puts ("OK\n");
}
SHOW_BOOT_PROGRESS (11);
show_boot_progress (11);
if ((hdr->ih_os != IH_OS_LINUX) ||
(hdr->ih_arch != IH_CPU_PPC) ||
(hdr->ih_type != IH_TYPE_RAMDISK) ) {
puts ("No Linux PPC Ramdisk Image\n");
SHOW_BOOT_PROGRESS (-13);
show_boot_progress (-13);
do_reset (cmdtp, flag, argc, argv);
}
......@@ -720,7 +713,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
u_long tail = ntohl(len_ptr[0]) % 4;
int i;
SHOW_BOOT_PROGRESS (13);
show_boot_progress (13);
/* skip kernel length and terminator */
data = (ulong)(&len_ptr[2]);
......@@ -739,7 +732,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
/*
* no initrd image
*/
SHOW_BOOT_PROGRESS (14);
show_boot_progress (14);
len = data = 0;
}
......@@ -890,7 +883,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
initrd_start = nsp;
}
SHOW_BOOT_PROGRESS (12);
show_boot_progress (12);
debug ("## initrd at 0x%08lX ... 0x%08lX (len=%ld=0x%lX)\n",
data, data + len - 1, len, len);
......@@ -926,7 +919,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
debug ("## Transferring control to Linux (at address %08lx) ...\n",
(ulong)kernel);
SHOW_BOOT_PROGRESS (15);
show_boot_progress (15);
#if defined(CFG_INIT_RAM_LOCK) && !defined(CONFIG_E500)
unlock_ram_in_cache();
......@@ -1115,7 +1108,7 @@ do_bootm_netbsd (cmd_tbl_t *cmdtp, int flag,
printf ("## Transferring control to NetBSD stage-2 loader (at address %08lx) ...\n",
(ulong)loader);
SHOW_BOOT_PROGRESS (15);
show_boot_progress (15);
/*
* NetBSD Stage-2 Loader Parameters:
......@@ -1578,7 +1571,7 @@ do_bootm_rtems (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[],
printf ("## Transferring control to RTEMS (at address %08lx) ...\n",
(ulong)entry_point);
SHOW_BOOT_PROGRESS (15);
show_boot_progress (15);
/*
* RTEMS Parameters:
......
......@@ -12,13 +12,6 @@
#include <malloc.h>
#include <asm/io.h>
#ifdef CONFIG_SHOW_BOOT_PROGRESS
# include <status_led.h>
# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg)
#else
# define SHOW_BOOT_PROGRESS(arg)
#endif
#if (CONFIG_COMMANDS & CFG_CMD_DOC)
#include <linux/mtd/nftl.h>
......@@ -216,7 +209,7 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
image_header_t *hdr;
int rcode = 0;
SHOW_BOOT_PROGRESS (34);
show_boot_progress (34);
switch (argc) {
case 1:
addr = CFG_LOAD_ADDR;
......@@ -237,27 +230,27 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
break;
default:
printf ("Usage:\n%s\n", cmdtp->usage);
SHOW_BOOT_PROGRESS (-35);
show_boot_progress (-35);
return 1;
}
SHOW_BOOT_PROGRESS (35);
show_boot_progress (35);
if (!boot_device) {
puts ("\n** No boot device **\n");
SHOW_BOOT_PROGRESS (-36);
show_boot_progress (-36);
return 1;
}
SHOW_BOOT_PROGRESS (36);
show_boot_progress (36);
dev = simple_strtoul(boot_device, &ep, 16);
if ((dev >= CFG_MAX_DOC_DEVICE) ||
(doc_dev_desc[dev].ChipID == DOC_ChipID_UNKNOWN)) {
printf ("\n** Device %d not available\n", dev);
SHOW_BOOT_PROGRESS (-37);
show_boot_progress (-37);
return 1;
}
SHOW_BOOT_PROGRESS (37);
show_boot_progress (37);
printf ("\nLoading from device %d: %s at 0x%lX (offset 0x%lX)\n",
dev, doc_dev_desc[dev].name, doc_dev_desc[dev].physadr,
......@@ -266,10 +259,10 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (doc_rw (doc_dev_desc + dev, 1, offset,
SECTORSIZE, NULL, (u_char *)addr)) {
printf ("** Read error on %d\n", dev);
SHOW_BOOT_PROGRESS (-38);
show_boot_progress (-38);
return 1;
}
SHOW_BOOT_PROGRESS (38);
show_boot_progress (38);
hdr = (image_header_t *)addr;
......@@ -281,18 +274,18 @@ int do_docboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
cnt -= SECTORSIZE;
} else {
puts ("\n** Bad Magic Number **\n");
SHOW_BOOT_PROGRESS (-39);
show_boot_progress (-39);
return 1;
}
SHOW_BOOT_PROGRESS (39);
show_boot_progress (39);
if (doc_rw (doc_dev_desc + dev, 1, offset + SECTORSIZE, cnt,
NULL, (u_char *)(addr+SECTORSIZE))) {
printf ("** Read error on %d\n", dev);
SHOW_BOOT_PROGRESS (-40);
show_boot_progress (-40);
return 1;
}
SHOW_BOOT_PROGRESS (40);
show_boot_progress (40);
/* Loading ok, update default load address */
......
......@@ -59,13 +59,6 @@ unsigned long mips_io_port_base = 0;
#endif
#endif
#ifdef CONFIG_SHOW_BOOT_PROGRESS
# include <status_led.h>
# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg)
#else
# define SHOW_BOOT_PROGRESS(arg)
#endif
#ifdef CONFIG_IDE_8xx_DIRECT
DECLARE_GLOBAL_DATA_PTR;
#endif
......@@ -385,7 +378,7 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
image_header_t *hdr;
int rcode = 0;
SHOW_BOOT_PROGRESS (41);
show_boot_progress (41);
switch (argc) {
case 1:
addr = CFG_LOAD_ADDR;
......@@ -401,50 +394,50 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
break;
default:
printf ("Usage:\n%s\n", cmdtp->usage);
SHOW_BOOT_PROGRESS (-42);
show_boot_progress (-42);
return 1;
}
SHOW_BOOT_PROGRESS (42);
show_boot_progress (42);
if (!boot_device) {
puts ("\n** No boot device **\n");
SHOW_BOOT_PROGRESS (-43);
show_boot_progress (-43);
return 1;
}
SHOW_BOOT_PROGRESS (43);
show_boot_progress (43);
dev = simple_strtoul(boot_device, &ep, 16);
if (ide_dev_desc[dev].type==DEV_TYPE_UNKNOWN) {
printf ("\n** Device %d not available\n", dev);
SHOW_BOOT_PROGRESS (-44);
show_boot_progress (-44);
return 1;
}
SHOW_BOOT_PROGRESS (44);
show_boot_progress (44);
if (*ep) {
if (*ep != ':') {
puts ("\n** Invalid boot device, use `dev[:part]' **\n");
SHOW_BOOT_PROGRESS (-45);
show_boot_progress (-45);
return 1;
}
part = simple_strtoul(++ep, NULL, 16);
}
SHOW_BOOT_PROGRESS (45);
show_boot_progress (45);
if (get_partition_info (&ide_dev_desc[dev], part, &info)) {
SHOW_BOOT_PROGRESS (-46);
show_boot_progress (-46);
return 1;
}
SHOW_BOOT_PROGRESS (46);
show_boot_progress (46);
if ((strncmp((char *)info.type, BOOT_PART_TYPE, sizeof(info.type)) != 0) &&
(strncmp((char *)info.type, BOOT_PART_COMP, sizeof(info.type)) != 0)) {
printf ("\n** Invalid partition type \"%.32s\""
" (expect \"" BOOT_PART_TYPE "\")\n",
info.type);
SHOW_BOOT_PROGRESS (-47);
show_boot_progress (-47);
return 1;
}
SHOW_BOOT_PROGRESS (47);
show_boot_progress (47);
printf ("\nLoading from IDE device %d, partition %d: "
"Name: %.32s Type: %.32s\n",
......@@ -455,29 +448,29 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (ide_dev_desc[dev].block_read (dev, info.start, 1, (ulong *)addr) != 1) {
printf ("** Read error on %d:%d\n", dev, part);
SHOW_BOOT_PROGRESS (-48);
show_boot_progress (-48);
return 1;
}
SHOW_BOOT_PROGRESS (48);
show_boot_progress (48);
hdr = (image_header_t *)addr;
if (ntohl(hdr->ih_magic) != IH_MAGIC) {
printf("\n** Bad Magic Number **\n");
SHOW_BOOT_PROGRESS (-49);
show_boot_progress (-49);
return 1;
}
SHOW_BOOT_PROGRESS (49);
show_boot_progress (49);
checksum = ntohl(hdr->ih_hcrc);
hdr->ih_hcrc = 0;
if (crc32 (0, (uchar *)hdr, sizeof(image_header_t)) != checksum) {
puts ("\n** Bad Header Checksum **\n");
SHOW_BOOT_PROGRESS (-50);
show_boot_progress (-50);
return 1;
}
SHOW_BOOT_PROGRESS (50);
show_boot_progress (50);
hdr->ih_hcrc = htonl(checksum); /* restore checksum for later use */
print_image_hdr (hdr);
......@@ -490,10 +483,10 @@ int do_diskboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (ide_dev_desc[dev].block_read (dev, info.start+1, cnt,
(ulong *)(addr+info.blksz)) != cnt) {
printf ("** Read error on %d:%d\n", dev, part);
SHOW_BOOT_PROGRESS (-51);
show_boot_progress (-51);
return 1;
}
SHOW_BOOT_PROGRESS (51);
show_boot_progress (51);
/* Loading ok, update default load address */
......
......@@ -25,14 +25,6 @@
#include <watchdog.h>
#include <malloc.h>
#include <asm/byteorder.h>
#ifdef CONFIG_SHOW_BOOT_PROGRESS
# include <status_led.h>
# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg)
#else
# define SHOW_BOOT_PROGRESS(arg)
#endif
#include <jffs2/jffs2.h>
#include <nand.h>
......@@ -486,19 +478,19 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
r = nand_read(nand, offset, &cnt, (u_char *) addr);
if (r) {
puts("** Read error\n");
SHOW_BOOT_PROGRESS(-56);
show_boot_progress (-56);
return 1;
}
SHOW_BOOT_PROGRESS(56);
show_boot_progress (56);
hdr = (image_header_t *) addr;
if (ntohl(hdr->ih_magic) != IH_MAGIC) {
printf("\n** Bad Magic Number 0x%x **\n", hdr->ih_magic);
SHOW_BOOT_PROGRESS(-57);
show_boot_progress (-57);
return 1;
}
SHOW_BOOT_PROGRESS(57);
show_boot_progress (57);
print_image_hdr(hdr);
......@@ -507,10 +499,10 @@ static int nand_load_image(cmd_tbl_t *cmdtp, nand_info_t *nand,
r = nand_read(nand, offset, &cnt, (u_char *) addr);
if (r) {
puts("** Read error\n");
SHOW_BOOT_PROGRESS(-58);
show_boot_progress (-58);
return 1;
}
SHOW_BOOT_PROGRESS(58);
show_boot_progress (58);
/* Loading ok, update default load address */
......@@ -562,7 +554,7 @@ int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
}
#endif
SHOW_BOOT_PROGRESS(52);
show_boot_progress(52);
switch (argc) {
case 1:
addr = CFG_LOAD_ADDR;
......@@ -586,26 +578,26 @@ int do_nandboot(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
usage:
#endif
printf("Usage:\n%s\n", cmdtp->usage);
SHOW_BOOT_PROGRESS(-53);
show_boot_progress(-53);
return 1;
}
SHOW_BOOT_PROGRESS(53);
show_boot_progress(53);
if (!boot_device) {
puts("\n** No boot device **\n");
SHOW_BOOT_PROGRESS(-54);
show_boot_progress(-54);
return 1;
}
SHOW_BOOT_PROGRESS(54);
show_boot_progress(54);
idx = simple_strtoul(boot_device, NULL, 16);
if (idx < 0 || idx >= CFG_MAX_NAND_DEVICE || !nand_info[idx].name) {
printf("\n** Device %d not available\n", idx);
SHOW_BOOT_PROGRESS(-55);
show_boot_progress(-55);
return 1;
}
SHOW_BOOT_PROGRESS(55);
show_boot_progress(55);
return nand_load_image(cmdtp, &nand_info[idx], offset, addr, argv[0]);
}
......@@ -627,11 +619,11 @@ U_BOOT_CMD(nboot, 4, 1, do_nandboot,
#include <asm/io.h>
#include <watchdog.h>
#ifdef CONFIG_SHOW_BOOT_PROGRESS
#ifdef CONFIG_show_boot_progress
# include <status_led.h>
# define SHOW_BOOT_PROGRESS(arg) show_boot_progress(arg)
# define show_boot_progress(arg) show_boot_progress(arg)
#else
# define SHOW_BOOT_PROGRESS(arg)
# define show_boot_progress(arg)
#endif
#if (CONFIG_COMMANDS & CFG_CMD_NAND)
......@@ -894,7 +886,7 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
ulong offset = 0;
image_header_t *hdr;
int rcode = 0;
SHOW_BOOT_PROGRESS(52);
show_boot_progress (52);
switch (argc) {
case 1:
addr = CFG_LOAD_ADDR;
......@@ -915,27 +907,27 @@ int do_nandboot (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
break;
default:
printf ("Usage:\n%s\n", cmdtp->usage);
SHOW_BOOT_PROGRESS (-53);
show_boot_progress (-53);
return 1;
}
SHOW_BOOT_PROGRESS(53);
show_boot_progress (53);
if (!boot_device) {
puts ("\n** No boot device **\n");