One of our projects is using Raspberry Pi as a hardware platform. For us to allow fail-safe remote upgrade we needed to boot Linux using U-Boot.
As a base we were using Oleksandr Tymoshenko's U-Boot changes. Because Oleksander's tree was developed with FreeBSD in mind it didn't immediately work with Linux. The problem was with Linux command line parameters.
To pass command line parameters from U-Boot to Linux we needed to add the address where these parameters are put. This can be defined in file arch/arm/include/asm/u-boot.h where the board is initialized by U-Boot:
Now Raspberry Pi can chainload U-Boot and Linux.