Apollo的串口启动需要通过Ymodem协议从PC端接收软件。
Windows下面用HyperTerminal可以。
Ubuntu下面的选择比较多,包括kermit,minicom和cutecom。
上面的任意一种都需要安装lrzsz (Tools for zmodem/xmodem/ymodem),提供给上述工具文件传输时的协议支持。

step 1: sudo apt-get install lrzsz

下面分别叙述。
1.cutecom
$ sudo cutecom
选择YModem传输uldr,然后传输u-boot,在input输入栏输入命令可以进入u-boot
当然为了方便,可以这个时候退出cutecom,然后打开minicom

2. minicom
$ sudo minicom
注:按CTRL + A 然后 'o',选择"File transfer protocols"可以看到ymodem的使用依赖于/usr/bin/sb即源于lrzsz
按 CTRL + A 然后 's',选择ymodem, 选择文件传输
遗憾的是,uldr传输成功后,要传输u-boot总是失败。。。

3. kermit
本人偏向使用kermit。
$sudo apt-get install ckermit
编辑.mykermrc如下
--------------------------------------------------------
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set handshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
set protocol ymodem
-------------------------------------------------------
$sudo kermit
$cd to_directory_of_flash_bin
$send uldr_padded_64k.bin
$send u-boot.bin (可能比较慢)
$c
$按任意键进入u-boot命令行
注意,从C-Kermit中退出的方法CTRL+\,然后按c
中途有失败就重试。
 

甚至在u-boot下面可以运行loady或loadb,然后回到kermit下面传送vmlinux.bin,在u-boot下go 0x00008000运行。

cat uldr.bin /dev/zero | dd bs=1 count=64k > uldr_padded_64k.bin

For error as below, use sudo kermit to fix it.
Sorry, you must SET LINE or SET HOST first