The Korat board has two NOR flashes, FLASH0 and FLASH1, which are connected to
chip select 0 and 1, respectively.  FLASH0 contains 16 MiB, and is mapped to
addresses 0xFF000000 - 0xFFFFFFFF as U-Boot Flash Bank #2.  FLASH1 contains
from 16 to 128 MiB, and is mapped to 0xF?000000 - 0xF7FFFFFF as U-Boot Flash
Bank #1 (with the starting address depending on the flash size detected at
runtime).  The write-enable pin on FLASH0 is disabled, so the contents of FLASH0
cannot be modified in the field.  This also prevents FLASH0 from executing
commands to return chip information, so its configuration is hard-coded in
U-Boot.

There are two versions of U-Boot for Korat: "permanent" and "upgradable".  The
permanent U-Boot is pre-programmed at the top of FLASH0, e.g., at addresses
0xFFFA0000 - 0xFFFFFFFF for the current 384 KiB size.  The upgradable U-Boot is
located 256 KiB from the top of FLASH1, e.g. at addresses 0xF7F6000 - 0xF7FC0000
for the current 384 KiB size.  FLASH1 addresses 0xF7FE0000 - 0xF7FF0000 are
used for the U-Boot environmental parameters, and addresses 0xF7FC0000 -
0xF7FDFFFF are used for the redundant copy of the parameters.  These locations
are used by both versions of U-Boot.

On booting, the permanent U-Boot in FLASH0 begins executing.  After performing
minimal setup, it monitors the state of the board's Reset switch (GPIO47).  If
the switch is sensed as open before a timeout period, then U-Boot branches to
address 0xF7FBFFFC.  This causes the upgradable U-Boot to execute from the
beginning.  If the switch remains closed thoughout the timeout period, the
permanent U-Boot activates the on-board buzzer until the switch is sensed as
opened.  It then continues to execute without branching to FLASH1.  The effect
of this is that normally the Korat board boots its upgradable U-Boot, but, if
this has been corrupted, the user can boot the permanent U-Boot, which can then
be used to erase and reload FLASH1 as needed.

Note that it is not necessary for the permanent U-Boot to have all the latest
features, but only that it have sufficient functionality (working "tftp",
"erase", "cp.b", etc.) to repair FLASH1.  Also, the permanent U-Boot makes no
assumptions about the size of FLASH1 or the size of the upgradable U-Boot: it is
sufficient that the upgradable U-Boot can be started by a branch to 0xF7FBFFFC.

The build sequence:

	make korat_config
	make all perm=1

builds the permanent U-Boot by selecting loader file "u-boot.lds" and defining
preprocessor symbol "CONFIG_KORAT_PERMANENT".  The default build:

	make korat_config
	make all

creates the upgradable U-Boot but selecting loader file "u-boot-F7FC.lds" and
leaving preprocessor symbol "CONFIG_KORAT_PERMANENT" undefined.

2008-02-22, Larry Johnson <lrj@acm.org>


The CompactFlash(R) controller on the Korat board provides a hi-speed USB
interface.  This may be connected to either a dedicated port on the on-board
USB controller, or to a USB port on the PowerPC 440EPx processor.  The U-Boot
environment variable "korat_usbcf" can be used to specify which of these two
USB host ports is used for CompactFlash.  The valid setting for the variable are
the strings "pci" and "ppc".  If the variable defined and set to "ppc", then the
PowerPC USB port is used.  In all other cases the on-board USB controller is
used, but if "korat_usbcf" is defined but is set to a string other than the two
valid options, a warning is also issued.

2009-01-28, Larry Johnson <lrj@acm.org>
