mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-11-04 02:11:25 +01:00 
			
		
		
		
	- Added Motorola CPU 8540/8560 support (cpu/85xx) - Added Motorola MPC8540ADS board support (board/mpc8540ads) - Added Motorola MPC8560ADS board support (board/mpc8560ads) * Minor code cleanup
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
 | 
						|
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
 |