First and foremost, you might want to decide what exactely you plan on debugging.
If it's just a normal application (plus some minor calls to the kernel), you should be fine with gdb (or kgdb) via Ethernet; you probably won't need any hardware at all but it requires some configuration and you can't go any deeper than kgdb allows. Yet, this should suffice for most requirements. You can find some documents on module debugging on the Freescale website.
If you're going the low-level way (debugging bootloaders, deep kernel debugging, start-up behaviour) you might want to go the (far more) expensive way and look for either ARMs DS-5/DSTREAM combination or you might want to look at the Lauterbach Tools, e.g. Trace32. Both of them come at a .. price, we're talking a few k€. Using the latter, you will be able to perform debugging and tracing, usually through an interface called ETM (Embedded Trace Macrocell). This can be available via JTAG or via separate Pins (for high speed trace applications).