
Flash programming on the INCA-IP board is complicated because of the
EBU swapping unit. A BDI2000 can be used for flash programming only
if the EBU swapping unit is enabled; otherwise it will not detect the
flash memory. But the EBU swapping unit is disadbled after reset, so
if you program some code to flash with the swapping unit on, it will
not be runnable with the swapping unit off.

The consequence is that you have to write a pre-swapped image to
flash using the BDI2000. A simple host-side tool "inca-swap-bytes" is
provided in the "tools/" directory. Use it as follows:

	bash$ ./inca-swap-bytes <u-boot.bin >u-boot.bin.swp

Note that the current BDI config file _disables_ the EBU swapping
unit for the flash bank 0. To enable it, (this is required for the
BDI flash commands to work) uncomment the following line in the
config file:

	;WM32   0xb8000260      0x404161ff ; Swapping unit enabled

and comment out

	WM32    0xb8000260      0x004161ff ; Swapping unit disabled

Alternatively, you can use "mm 0xb8000260 <value>" commands to
enable/disable the swapping unit manually.

Just for reference, here is the complete sequence of actions we took
to install a U-Boot image into flash.

    1. ./inca-swap-bytes <u-boot.bin >u-boot.bin.swp

    2. From BDI:

	mm 0xb8000260  0x404161ff
	erase 0xb0000000
	erase 0xb0010000
	prog 0xb0000000 /tftpboot/INCA/u-boot.bin.swp bin
	mm 0xb8000260 0x004161ff
	go 0xb0000000



Ethernet autonegotiation needs some time to complete. Instead of
delaying the boot process in all cases, we just start the
autonegotiation process when U-Boot comes up and that is all. Most
likely, it will complete by the time the network transfer is
attempted for the first time. In the worst case, if a transfer is
attempted before the autonegotiation is complete, just a single
packet would be lost resulting in a single timeout error, and then
the transfer would proceed normally. So the time that we would have
lost unconditionally waiting for the autonegotiation to complete, we
have to wait only if the file transfer is started immediately after
reset. We've verified that this works for all the clock
configurations.

(C) 2003 Wolfgang Denk
