When using a Cyclone Programmer, customers often ask whether programming a target through Ethernet is faster than USB or vice versa. While it's certainly true that the transfer time of data from the PC to the Cyclone occurs faster over an Ethernet link, the actual programming time is bottlenecked by the BDM Shift Frequency. BDM Shift Frequency refers to the rate at which signals are handshaked (shifted) from one of the interface ports of a Cyclone unit to the Background Debug port of the target unit. This handshake can occur synchronously or asynchronously, the former requiring the presence of a clock source (note that some ColdFire devices such as the MCF5272 require a synchronous interface), and may also require a power cycle sequence as part of entry into background mode, which is performed automatically by the Cyclone. BDM Shift Frequency directly reflects the operating clock frequency of the device. For example, a ColdFire processor operating at 200 MHz will support a much faster BDM Shift Frequency than the same processor would if operated at a slower speed of 50 MHz. Because processors can be configured to operate at different frequencies given an identical clock source, we take advantage of this and programmatically put the processor into a faster gear when possible by configuring the appropriate PLL entries from our programming algorithm. How fast can the BDM Shift Frequency be? The answer isn't uniform across all processors and can be found in each processor’s specific user’s manual. However, the rule of thumb is to use a value which is at most one-fifth of the bus clock frequency of the device, while keeping in mind all pertinent signal integrity issues and using proper cable length for connection to devices which operate faster than 100 MHz (see earlier post regarding cable length). In short, whether using Ethernet or USB, or even in Stand-alone mode, all programming times are ultimately bounded by the BDM Shift Frequency that you select. It often pays to experiment to identify the fastest BDM Shift frequency, given the guidelines above, and to select the rate for the fastest programming times.