Finally I received my female/male cables for inter-board connects (my soldering skill is close to zero) and got FTDI-based TTL/USB converter work. I had more luck with it then with my old trusty TTL/RS232 converter. No garbage in linux output, serial input works for u-boot.

You can find content of boot partition of SD-card I use here.

Fully functional serial port means that boot-over-serial should work and I do not need to move SD-card between R-Pi and card reader to get new version of u-boot running. So based on this post I managed to automate compile/run/fix cycle to some extent. Not C-Kermit expert here, so the script is lame but it does its work:

#!/home/gonzo/bin/wermit

# Serial port setup.  These settings will likely need to be
# changed to match the configuration of your workstation
# and the ARM board you're working with.
set line /dev/ttyUSB3
set speed 115200
set serial 8n1

# General C-Kermit settings.  These probably don't need to change.
set flow-control none
set file type bin
set carrier-watch off
set prefixing all
set modem none

# load binary
input 90 "Raspberry-Pi # "
lineout "loadb 0x00000000"
# This should be the absolute path to your kernel uImage file.
send /home/gonzo/1/kernel.img

# This command drops you into a console where you can interact
# with the kernel.
connect

So now when I’m working on USB support for R-Pi the development cycle looks like this:

  • Hack-hack-hack, compile, generate kernel.img, place kernel.img to ~gonzo/1/
  • power-cycle board, run script
  • Press Enter to trigger file upload and wait for this:
## Total Size      = 0x0002b6d0 = 177872 Bytes
## Start Addr      = 0x00000000
  • Issue go 0 command
  • Issue usb start command, wait for results and start over