File:		README.COBRA5272
Author:		Florian Schlote for Sentec elektronik (linux@sentec-elektronik.de)
Contents:	This is the README of U-Boot (Universal bootloader) for our
		COBRA5272 board.
Version:	v01.00
Date:		Tue Mar 30 00:28:33 CEST 2004
License:	This document is published under the GNU GPL
______________________________________________________________________

CHANGES
040330   v01.00 Creation

______________________________________________________________________


CONFIGURING
-----------

1. Modify include/configs/cobra5272.h acc. to your prefs

2. If necessary, modify board/cobra5272/config.mk (see below)

3.

> make cobra5272_config

> make


Please refer to u-boot README (general info, u-boot-x-x-x/README),
to u-boot-x-x-x/board/cobra5272/README and
to the comments in u-boot-x-x-x/include/configs/cobra5272.h

Configuring U-Boot is done by commenting/uncommenting preprocessor defines.

Default configuration is

	FLASH version (for further info see subsection below)
	link address 0xffe00000

	16 MB RAM

	network enabled
	no default IP address for target, host set, no MACaddress set

	bootdelay for autoboot 5 sec.
	autoboot disabled


#-----------------------------------
# U-Boot FLASH version & RAM version
#-----------------------------------

The U-Boot bootloader for Coldfire processors can be configured

	1. as a standalone bootloader residing in flash & relocating itself to RAM on
	startup automatically => "FLASH version"

	2. as a RAM version which will not load from flash automatically as it needs a
	prestage bootloader ("chainloading") & is running only from the RAM address it
	is linked to => "RAM version"

	This version may be very helpful when installing U-Boot for the first time
	since it can be used to make available s. th. like a "bootstrap
	mechanism".


How to build the different images:

------------------------------
Flash version
------------------------------

Compile U-Boot

in dir ./u-boot-x-x-x/

please first check:

	in ./configs/cobra5272_defconfig

		CONFIG_MONITOR_IS_IN_RAM has to be not present in the file

	=> U-Boot as single bootloader starting from flash


	in configs/cobra5272_defconfig CONFIG_TEXT_BASE should be

		CONFIG_TEXT_BASE=0xffe00000

	=> linking address for U-Boot as single bootloader stored in flash

then:

	host> make cobra5272_config
		rm -f include/config.h include/config.mk
		Configuring for cobra5272 board...
	host> make
		[...]

	host> cp u-boot.bin /tftpboot/u-boot_flash.bin


------------------------------
RAM version
------------------------------

in dir ./u-boot-x-x-x/

	host> make distclean

please modify the settings:
	in ./configs/cobra5272_defconfig

		CONFIG_MONITOR_IS_IN_RAM now has to be enabled, e. g. as follows:

		CONFIG_MONITOR_IS_IN_RAM=y

	=> U-Boot as RAM version, chainloaded by another bootloader or using bdm cable


	in configs/cobra5272_defconfig CONFIG_TEXT_BASE should be

		CONFIG_TEXT_BASE=0x00020000

	=> target linking address for RAM


then:

	host> make cobra5272_config
		rm -f include/config.h include/config.mk
		Configuring for cobra5272 board...
	host> make
		[...]

	host> cp u-boot.bin /tftpboot/u-boot_ram.bin


----
HINT
----

If the m68k-elf-toolchain & the m68k-bdm-gdb is installed you can run the RAM
version by typing (in dir ./u-boot-x-x-x/)
"board/cobra5272/bdm/load-cobra_uboot" ,
in ./u-boot-x-x-x/ the RAM version u-boot (elf format) has to be available.
