Changes for U-Boot 1.1.3:
 ======================================================================
 
+* Patch by Jerry Van Baren, 08 Nov 2004:
+  - Add low-boot option for MPC8260ADS board (if lowboot is selected,
+    the jumper for the HRCW source should select flash. If lowboot is
+    not selected, the jumper for the HRCW source should select the
+    BCSR.
+  - change default load base address to 0x00400000
+
 * Patch by Yuli Barcohen, 08 Nov 2004:
   Add support for Analogue & Micro Rattler boards.
   Tested on Rattler8248.
 
        @./mkconfig -a ISPAN ppc mpc8260 ispan
 
 MPC8260ADS_config      \
+MPC8260ADS_lowboot_config      \
 MPC8260ADS_33MHz_config        \
+MPC8260ADS_33MHz_lowboot_config        \
 MPC8260ADS_40MHz_config        \
+MPC8260ADS_40MHz_lowboot_config        \
 MPC8272ADS_config      \
+MPC8272ADS_lowboot_config      \
 PQ2FADS_config         \
+PQ2FADS_lowboot_config         \
 PQ2FADS-VR_config      \
+PQ2FADS-VR_lowboot_config      \
 PQ2FADS-ZU_config      \
+PQ2FADS-ZU_lowboot_config      \
 PQ2FADS-ZU_66MHz_config        \
+PQ2FADS-ZU_66MHz_lowboot_config        \
        :               unconfig
        $(if $(findstring PQ2FADS,$@), \
        @echo "#define CONFIG_ADSTYPE CFG_PQ2FADS" > include/config.h, \
        @echo "#define CONFIG_8260_CLKIN" $(subst MHz,,$(word 2,$(subst _, ,$@)))"000000" >> include/config.h, \
        $(if $(findstring VR,$@), \
        @echo "#define CONFIG_8260_CLKIN 66000000" >> include/config.h))
+       @[ -z "$(findstring lowboot_,$@)" ] || \
+               { echo "TEXT_BASE = 0xFF800000" >board/mpc8260ads/config.tmp ; \
+                 echo "... with lowboot configuration" ; \
+               }
        @./mkconfig -a MPC8260ADS ppc mpc8260 mpc8260ads
 
 MPC8266ADS_config:     unconfig
 
 # MPC8260ADS, MPC8266ADS, and PQ2FADS-ZU/VR boards
 #
 
-TEXT_BASE = 0xfff00000
+sinclude $(TOPDIR)/board/$(BOARDDIR)/config.tmp
+
+ifndef TEXT_BASE
+## Standard: boot high
+TEXT_BASE = 0xFFF00000
+endif
 
        b       boot_warm
 
 boot_cold:
-#if defined(CONFIG_MPC8260ADS)
+#if defined(CONFIG_MPC8260ADS) && defined(CFG_DEFAULT_IMMR)
        lis     r3, CFG_DEFAULT_IMMR@h
        nop
        lwz     r4, 0(r3)
        nop
        stw     r4, 0(r3)
        nop
-#endif /* CONFIG_MPC8260ADS */
+#endif /* CONFIG_MPC8260ADS && CFG_DEFAULT_IMMR */
 boot_warm:
        mfmsr   r5                      /* save msr contents            */
 
 
 
 #define CONFIG_MPC8260ADS      1       /* Motorola PQ2 ADS family board */
 
+/*
+ * Figure out if we are booting low via flash HRCW or high via the BCSR.
+ */
+#if (TEXT_BASE != 0xFFF00000)          /* Boot low (flash HRCW) */
+#   define CFG_LOWBOOT          1
+#endif
+
+
 /* ADS flavours */
 #define CFG_8260ADS            1       /* MPC8260ADS */
 #define CFG_8266ADS            2       /* MPC8266ADS */
 #define CFG_MEMTEST_START      0x00100000      /* memtest works on */
 #define CFG_MEMTEST_END                0x00f00000      /* 1 ... 15 MB in DRAM  */
 
-#define CFG_LOAD_ADDR          0x100000        /* default load address */
+#define CFG_LOAD_ADDR          0x400000        /* default load address */
 
 #define CFG_HZ                 1000    /* decrementer freq: 1 ms ticks */
 
 #define CFG_JFFS_CUSTOM_PART
 
 /* this is stuff came out of the Motorola docs */
+#ifndef CFG_LOWBOOT
 #define CFG_DEFAULT_IMMR       0x0F010000
+#endif
 
 #define CFG_IMMR               0xF0000000
 #define CFG_BCSR               0xF4500000
 #define CFG_INIT_SP_OFFSET     CFG_GBL_DATA_OFFSET
 
 
-/* 0x0EA28205 */
+#ifdef CFG_LOWBOOT
+/* PQ2FADS flash HRCW = 0x0EB4B645 */
+#define CFG_HRCW_MASTER (   ( HRCW_BPS11 | HRCW_CIP )                      |\
+                           ( HRCW_L2CPC10 | HRCW_DPPC11 | HRCW_ISB100 )    |\
+                           ( HRCW_BMS | HRCW_MMR11 | HRCW_LBPC01 | HRCW_APPC10 ) |\
+                           ( HRCW_CS10PC01 | HRCW_MODCK_H0101 )             \
+                       )
+#else
+/* PQ2FADS BCSR HRCW = 0x0CB23645 */
 #define CFG_HRCW_MASTER (   ( HRCW_BPS11 | HRCW_CIP )                      |\
                            ( HRCW_L2CPC10 | HRCW_DPPC10 | HRCW_ISB010 )    |\
                            ( HRCW_BMS | HRCW_APPC10 )                      |\
                            ( HRCW_MODCK_H0101 )                             \
                        )
+#endif
 /* no slaves */
 #define CFG_HRCW_SLAVE1 0
 #define CFG_HRCW_SLAVE2 0