public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Vitaly Andrianov <vitalya@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-boot][PATCH] keystone2: add support for UART download
Date: Mon, 16 Feb 2015 15:56:00 -0500	[thread overview]
Message-ID: <54E25960.5010005@ti.com> (raw)
In-Reply-To: <54E24FDB.3070304@ti.com>



On 02/16/2015 03:15 PM, Nishanth Menon wrote:
> 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?

We already have u-boot linked to the 0x0c001000 address. Why do we need 
to build another version for one time process.

>>
>> 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?

Relocation logic to where? ROM bootloader? I can put a branch 
instruction at the beginning, but we still need 4k of pad, which will be 
loaded anyways. So, adding the branch will reduce several microseconds 
out of ~40 seconds.

>
>>
>> Signed-off-by: Vitaly Andrianov <vitalya@ti.com>
>> Acked-by: Murali Karicheri <m-karicheri2@ti.com>
>> Tested-by: Murali Karicheri <m-karicheri2@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?

Cleaning up what?
The u-boot.uart.pad is cleaned by the "clean" target.

>
>> +
>> +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?
>
Will remove

>> +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:

All point to have uart download is when the flashed u-boot is broken and 
board doesn't boot up at all. In that case it cannot run regular OS you 
are talking about. If u-boot can run regular OS, it can also upgrade the 
u-boot by itself.

> ----
> 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?

Will remove

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

  reply	other threads:[~2015-02-16 20:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-16 18:22 [U-Boot] [U-boot][PATCH] keystone2: add support for UART download Vitaly Andrianov
2015-02-16 20:15 ` Nishanth Menon
2015-02-16 20:56   ` Vitaly Andrianov [this message]
2015-02-16 21:29     ` Nishanth Menon
2015-02-17 22:27   ` Murali Karicheri
2015-02-17 22:47     ` Nishanth Menon
2015-02-18 13:12       ` Vitaly Andrianov
2015-02-18 15:35         ` menon.nishanth at gmail.com
2015-03-03 17:27           ` Nishanth Menon
2015-03-03 18:29             ` Vitaly Andrianov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54E25960.5010005@ti.com \
    --to=vitalya@ti.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox