Changes since U-Boot 1.1.1:
======================================================================
+* Add automatic update support for LWMON board
+
+* Clear Block Lock-Bits when erasing flash on LWMON board.
+
+* Fix return code of "fatload" command
+
+* Enable MSDOS/VFAT filesystem support for LWMON board
+
* Patch by Martin Krause, 03 Aug 2004:
change timing for SM501 graphics controller on TQM5200 module
@[ -z "$(findstring AB,$@)" ] || \
{ echo "#define CONFIG_TQM5200_AB" >>include/config.h ; \
echo "... with 64 MB Flash, 64 MB SDRAM, 32 kB EEPROM, 512 kB SRAM" ; \
- echo "... with Grafic Controller"; \
+ echo "... with Graphics Controller"; \
}
@[ -z "$(findstring AC,$@)" ] || \
{ echo "#define CONFIG_TQM5200_AC" >>include/config.h ; \
echo "... with 4 MB Flash, 128 MB SDRAM" ; \
- echo "... with Grafic Controller"; \
+ echo "... with Graphics Controller"; \
}
@./mkconfig -a TQM5200 ppc mpc5xxx tqm5200
/* Disable interrupts which might cause a timeout here */
flag = disable_interrupts();
+ *addr = 0x00600060; /* clear lock bit setup */
+ *addr = 0x00D000D0; /* clear lock bit confirm */
+
+ udelay (1000);
+ /* This takes awfully long - up to 50 ms and more */
+ while (((status = *addr) & 0x00800080) != 0x00800080) {
+ if ((now=get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
+ printf ("Timeout\n");
+ *addr = 0x00FF00FF; /* reset to read mode */
+ return 1;
+ }
+
+ /* show that we're waiting */
+ if ((now - last) > 1000) { /* every second */
+ putc ('.');
+ last = now;
+ }
+ udelay (1000); /* to trigger the watchdog */
+ }
+
*addr = 0x00500050; /* clear status register */
*addr = 0x00200020; /* erase setup */
*addr = 0x00D000D0; /* erase confirm */
putc ('.');
last = now;
}
+ udelay (1000); /* to trigger the watchdog */
}
*addr = 0x00FF00FF; /* reset to read mode */
if (argc < 5) {
printf ("usage: fatload <interface> <dev[:part]> <addr> <filename> [bytes]\n");
- return (0);
+ return 1;
}
dev = (int)simple_strtoul (argv[2], &ep, 16);
dev_desc=get_dev(argv[1],dev);
if(size==-1) {
printf("\n** Unable to read \"%s\" from %s %d:%d **\n",argv[4],argv[1],dev,part);
- } else {
- printf ("\n%ld bytes read\n", size);
-
- sprintf(buf, "%lX", size);
- setenv("filesize", buf);
+ return 1;
}
- return size;
+ printf ("\n%ld bytes read\n", size);
+
+ sprintf(buf, "%lX", size);
+ setenv("filesize", buf);
+
+ return 0;
}
#ifndef __CONFIG_H
#define __CONFIG_H
-#define DEBUG 1
-
/*
* High Level Configuration Options
* (easy to change)
*/
#define CONFIG_PCI 0
#define CONFIG_PCI_PNP 1
-#define CONFIG_PCI_SCAN_SHOW 1
+/* #define CONFIG_PCI_SCAN_SHOW 1 */
#define CONFIG_PCI_MEM_BUS 0x40000000
#define CONFIG_PCI_MEM_PHYS CONFIG_PCI_MEM_BUS
#define CONFIG_BOOTCOMMAND "run flash_self"
+/*
+ * Keyboard commands:
+ * # = 0x28 = ENTER : enable bootmessages on LCD
+ * 2 = 0x3A+0x3C = F1 + F3 : enable update mode
+ * 3 = 0x3C+0x3F = F3 + F6 : enable test mode
+ */
#define CONFIG_EXTRA_ENV_SETTINGS \
"kernel_addr=40080000\0" \
"ramdisk_addr=40280000\0" \
- "magic_keys=#3\0" \
+ "magic_keys=#23\0" \
"key_magic#=28\0" \
"key_cmd#=setenv addfb setenv 'bootargs $bootargs console=tty0'\0" \
+ "key_magic2=3A+3C\0" \
+ "key_cmd2=echo *** Entering Update Mode ***;" \
+ "if fatload ide 0:3 10000 update.scr;" \
+ "then autoscr 10000;" \
+ "else echo *** UPDATE FAILED ***;" \
+ "fi\0" \
"key_magic3=3C+3F\0" \
"key_cmd3=echo *** Entering Test Mode ***;" \
"setenv add_misc 'setenv bootargs $bootargs testmode'\0" \
CFG_CMD_ASKENV | \
CFG_CMD_DHCP | \
CFG_CMD_DATE | \
+ CFG_CMD_FAT | \
CFG_CMD_I2C | \
CFG_CMD_EEPROM | \
CFG_CMD_IDE | \
*/
#define CFG_FLASH_BUFFER_SIZE (2*32)
-#if 1
-/* Put environment in flash which is much faster to boot */
+/* Put environment in flash which is much faster to boot than using the EEPROM */
#define CFG_ENV_IS_IN_FLASH 1
#define CFG_ENV_ADDR 0x40040000 /* Address of Environment Sector */
#define CFG_ENV_SIZE 0x2000 /* Total Size of Environment */
#define CFG_ENV_SECT_SIZE 0x40000 /* we have BIG sectors only :-( */
-#else
-/* Environment in EEPROM */
-#define CFG_ENV_IS_IN_EEPROM 1
-#define CFG_ENV_OFFSET 0
-#define CFG_ENV_SIZE 2048
-#endif
+
/*-----------------------------------------------------------------------
* I2C/EEPROM Configuration
*/
/* Offset for alternate registers */
#define CFG_ATA_ALT_OFFSET 0x0100
+#define CONFIG_SUPPORT_VFAT /* enable VFAT support */
+
/*-----------------------------------------------------------------------
*
*-----------------------------------------------------------------------