[U-Boot] [U-boot][PATCH] keystone2: add support for UART download

Nishanth Menon nm at ti.com
Mon Feb 16 21:15:23 CET 2015


On 02/16/2015 12:22 PM, Vitaly Andrianov wrote:
> Currently to flash u-boot image onto NAND or SPI NOR flash, very first
> time user need to use Code Composer Studio (CCS). This is cumbersome for
> an user not familiar with CCS. This patch add simpler procedure using
> uart boot mode for K2 EVMs.
> 
> When UART bootmode is set and board is rebooted, the ROM boot loader
> transfers the image at the beginning of the MSMC. After the transfer

please explain MSMC.

> is complete the boot-loader sets the PC to the first MSMC address
> 0x0c000000. The u-boot.bin is linked to the address 0x0c001000.
why not just shift u-boot.bin to start of MSMC address?
> 
> In order to use the u-boot.bin as an image for UART download, we need to
> add 4K zeros prefix that act as 1K NOP instructions before reaching
> 0xc001000.

OR, add a relocation logic which saves the 1k NOP and resultant load time?

> 
> Signed-off-by: Vitaly Andrianov <vitalya at ti.com>
> Acked-by: Murali Karicheri <m-karicheri2 at ti.com>
> Tested-by: Murali Karicheri <m-karicheri2 at ti.com>
> ---
>  Makefile                |  6 ++++++
>  board/ti/ks2_evm/README | 17 +++++++++++++++++
>  2 files changed, 23 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 36a9a28..7a86cac 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -940,6 +940,12 @@ u-boot-nand.gph: u-boot.bin FORCE
>  	$(call if_changed,mkimage)
>  	@dd if=/dev/zero bs=8 count=1 2>/dev/null >> $@
>  
> +u-boot.uart.pad:
> +	@dd if=/dev/zero bs=4 count=1024 2>/dev/null > $@

How about the cleaning up?
is it not better to do this algorithmically?

> +
> +u-boot.uart: u-boot.uart.pad u-boot.bin FORCE
> +	$(call if_changed,cat)
> +
>  # x86 uses a large ROM. We fill it with 0xff, put the 16-bit stuff (including
>  # reset vector) at the top, Intel ME descriptor at the bottom, and U-Boot in
>  # the middle.
> diff --git a/board/ti/ks2_evm/README b/board/ti/ks2_evm/README
> index 9ee90a4..a1fc943 100644
> --- a/board/ti/ks2_evm/README
> +++ b/board/ti/ks2_evm/README
> @@ -81,6 +81,23 @@ To build u-boot-nand.gph
>    >make k2hk_evm_defconfig
>    >make u-boot-nand.gph
>  
> +To build u-boot.uart
> +  >make k2hk_evm_defconfig
> +  >make u-boot.uart
> +
> +

extra EOL?

> +Load and Run U-Boot on keystone EVMs using UART download
> +========================================================
> +
> +Open BMC and regular UART terminals.
> +
> +1. On the regular UART port start xmodem transfer of the u-boot.uart
> +2. Using BMC terminal set the ARM-UART bootmode and reboot the EVM
> +   BMC> bootmode #4
> +   MBC> reboot
> +3. When xmodem is complete you should see the u-boot starts on the UART port
This is hard to do in practice. At times when one has regular OS
running already in uart port, it tends to mess up xmodem before we
switch terminal and issue bootmode #4 and reboot to BMC.
instead, the only failsafe sequence I could come up with is as follows:
----
In this method, we use xmodem to download and start the modified
version of uart binary to the target over serial port. Open the BCM
and regular UART port at 115200n8 configuration. Steps are rather trivial:

1. At the BCM terminal, select the following to configure DSP noboot:
       bootmode #15
       reboot
   This should prevent any existing bootloader OR OS from starting up
   on UART
2. Start Xmodem transfer of the file u-boot-uart.gph on the regular
UART port
   using minicom OR appropriate terminal emulator.
3. At the BCM terminal, Switch over to UART mode and restart.
       bootmode #4
       reboot
4. At the UART terminal, the transfer completes and u-boot startsup.
This may
   be used to download and flash u-boot to nand/spi etc.
----
> +
> +
extra EOL?

>  Load and Run U-Boot on keystone EVMs using CCS
>  =========================================
>  
> 


-- 
Regards,
Nishanth Menon


More information about the U-Boot mailing list