Add support for high-boot on TQM5200 and TQM5200S boards.

Hint: the CPLD on the TQM5200 must be programmed with a software
version supporting the high boot option! The new TQM5200S is
already supporting this option. On the TQM5200 this option will be
supported in configurations with MPC5200 rev B processors.

To actually "high boot", set jumper X30 on the STK52xx.

Patch by Martin Krause, 12 Jul 2006
diff --git a/CHANGELOG b/CHANGELOG
index d3d6c8b..291204b 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,11 +2,20 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Add support for high-boot on TQM5200 and TQM5200S boards.
+  Hint: the CPLD on the TQM5200 must be programmed with a software
+  version supporting the high boot option! The new TQM5200S is
+  already supporting this option. On the TQM5200 this option will be
+  supported in configurations with MPC5200 rev B processors.
+  To actually "high boot", set jumper X30 on the STK52xx.
+  Patch by Martin Krause, 12 Jul 2006
+
 * Add support for new TQM5200 revisions
   - Support for TQM5200S (short version without graphic controller)
   - Support for modules with 'N' type S29GL128N Spansion flashes
     (requires changes to flash layout)
   - Support for MPC5200B cpu (mostly support for second SDRAM bank)
+  Patch by Martin Krause, 07 Jul 2006
 
 * Fix support for PS/2 keyboard on TQM85xx boards
   The PS/2 keyobard driver for the TQM85xx modules only supports the
diff --git a/Makefile b/Makefile
index e39af35..4188ff6 100644
--- a/Makefile
+++ b/Makefile
@@ -407,6 +407,7 @@
 TQM5200_config	\
 TQM5200_STK100_config \
 TQM5200_B_config \
+TQM5200_B_HIGHBOOT_config \
 MiniFAP_config:	unconfig
 	@ >include/config.h
 	@[ -z "$(findstring MiniFAP,$@)" ] || \
@@ -421,6 +422,9 @@
 		{ echo "#define CONFIG_TQM5200_B"	>>include/config.h ; \
 		  echo "... with MPC5200B processor" ; \
 		}
+	@[ -z "$(findstring HIGHBOOT,$@)" ] || \
+		{ echo "TEXT_BASE = 0xFFF00000" >board/tqm5200/config.tmp ; \
+		}
 	@echo "#define CONFIG_CS_AUTOCONF">>include/config.h ;
 	@echo "... with automatic CS configuration" ;
 	@./mkconfig -a TQM5200 ppc mpc5xxx tqm5200
diff --git a/board/tqm5200/config.mk b/board/tqm5200/config.mk
index 585a99a..84ddee8 100644
--- a/board/tqm5200/config.mk
+++ b/board/tqm5200/config.mk
@@ -28,12 +28,17 @@
 #
 #	0xFC000000   boot low (standard configuration with room for max 64 MByte
 #		     Flash ROM)
+#	0xFFF00000   boot high (for a backup copy of U-Boot)
 #	0x00100000   boot from RAM (for testing only)
 #
 
+sinclude $(TOPDIR)/board/$(BOARDDIR)/config.tmp
+
 ifndef TEXT_BASE
 ## Standard: boot low
 TEXT_BASE = 0xFC000000
+## For a backup copy of U-Boot at the end of flash: boot high
+# TEXT_BASE = 0xFFF00000
 ## For testing: boot from RAM
 # TEXT_BASE = 0x00100000
 endif
diff --git a/include/configs/TQM5200.h b/include/configs/TQM5200.h
index 032177e..0ef0b91 100644
--- a/include/configs/TQM5200.h
+++ b/include/configs/TQM5200.h
@@ -308,7 +308,7 @@
 /*
  * Flash configuration
  */
-#define CFG_FLASH_BASE		TEXT_BASE /* 0xFC000000 */
+#define CFG_FLASH_BASE		0xFC000000
 
 /* use CFI flash driver */
 #define CFG_FLASH_CFI		1	/* Flash is CFI conformant */
@@ -319,15 +319,11 @@
 #define CFG_MAX_FLASH_SECT	512	/* max num of sects on one chip */
 #define CFG_FLASH_USE_BUFFER_WRITE	1
 
-#if !defined(CFG_LOWBOOT)
-#define CFG_ENV_ADDR		(CFG_FLASH_BASE + 0x00760000 + 0x00800000)
-#else	/* CFG_LOWBOOT */
 #if defined(CONFIG_TQM5200_B)
 #define CFG_ENV_ADDR		(CFG_FLASH_BASE + 0x00080000)
 #else
 #define CFG_ENV_ADDR		(CFG_FLASH_BASE + 0x00060000)
 #endif /* CONFIG_TQM5200_B */
-#endif	/* CFG_LOWBOOT */
 #define CFG_MAX_FLASH_BANKS	1	/* max num of flash banks
 					   (= chip selects) */