Skip to content
Snippets Groups Projects
README.INCA-IP 2.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    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