Commit 31a64923 authored by wdenk's avatar wdenk

* Add automatic update support for LWMON board

* Enable MSDOS/VFAT filesystem support for LWMON board

* Clear Block Lock-Bits when erasing flash on LWMON board.

* Fix return code of "fatload" command

* Disable debugging for TQM5200 board
parent 89394047
......@@ -2,6 +2,14 @@
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
......
......@@ -315,12 +315,12 @@ MiniFAP_config: unconfig
@[ -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
......
......@@ -403,6 +403,26 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
/* 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 */
......@@ -427,6 +447,7 @@ int flash_erase (flash_info_t *info, int s_first, int s_last)
putc ('.');
last = now;
}
udelay (1000); /* to trigger the watchdog */
}
*addr = 0x00FF00FF; /* reset to read mode */
......
......@@ -86,7 +86,7 @@ int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
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);
......@@ -114,14 +114,15 @@ int do_fat_fsload (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
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;
}
......
......@@ -27,8 +27,6 @@
#ifndef __CONFIG_H
#define __CONFIG_H
#define DEBUG 1
/*
* High Level Configuration Options
* (easy to change)
......@@ -64,7 +62,7 @@
*/
#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
......
......@@ -78,12 +78,24 @@
#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" \
......@@ -153,6 +165,7 @@
CFG_CMD_ASKENV | \
CFG_CMD_DHCP | \
CFG_CMD_DATE | \
CFG_CMD_FAT | \
CFG_CMD_I2C | \
CFG_CMD_EEPROM | \
CFG_CMD_IDE | \
......@@ -276,18 +289,12 @@
*/
#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
*/
......@@ -488,6 +495,8 @@
/* Offset for alternate registers */
#define CFG_ATA_ALT_OFFSET 0x0100
#define CONFIG_SUPPORT_VFAT /* enable VFAT support */
/*-----------------------------------------------------------------------
*
*-----------------------------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment