Since busybox 1.6.0, "hwclock --systohc" takes 25 seconds to complete on a Freescale i.MX21 (an ARM-based SoC) running at 266MHz. This is due to the ""2010-01-06 hwclock: fix sizeof bug (used it on pointer, not array); make --systohc exact" change introduced in busybox 1.16.0. Changing TWEAK_USEC from 200 to 1000 brought this time down again to less than 0.1 second. By default TWEAK_USEC appears to be tuned for a 2.2GHz Intel Core 2. It would appear that when building for a typical embedded device, busybox must be patched to have 'hwclock --systohc' complete in an acceptable timespan.
Correction: Since busybox 1.6.0 -> Since busybox 1.16.0
Fix: http://busybox.net/downloads/fixes-1.16.1/busybox-1.16.1-hwclock.patch