====== JTAG and the Texas Instruments ACX100/ACX111 Wireless LAN chip ====== The TI ACX100/ACX111 is an already somewhat outdated 802.11 wireless LAN chipset, which is based on an ARM7TDMI core. There is an [[http://acx100.sourceforge.net/|open source project]] which develops a Linux kernel driver. ^ Chip ^ ACX100 ^ ACX111 ^ | TI name | [[http://focus.ti.com/general/docs/bcg/bcgprodcontent.tsp?templateId=6116&navigationId=12147&path=templatedata/cm/product/data/acx100|TNETW1100]]| [[http://focus.ti.com/general/docs/bcg/bcgprodcontent.tsp?templateId=6116&navigationId=12246&contentId=4039|TNETW1130]]| | standard | IEEE802.11b+ | IEE802.11g+ | | speed | 22Mbps | 54Mbps | For a full list of devices see [[http://acx100.sourceforge.net/matrix.html|here]]. ====== ACX100 JTAG Port ====== When taking apart a Level1 WBR-2401B router, I noticed that the used ACX100 CardBus-card has a 6-pin header. {{:acx100_jtag.jpg?800|ACX100 card with JTAG header}} As it turned out by try and error, it is connected to the JTAG pins of the ACX100 chip. Once it was clear that the first 2 pins are GND and VDD (+3.3V), I tried all combinations of the JTAG signals. ^ Pin ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ |signal | GND | VDD | TCK | TDI | TDO | TMS | ==== OpenOCD ==== I used [[http://openocd.berlios.de/web/|OpenOCD]] to connect to the [[http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0210c/Chdeaegh.html|EmbeddedICE]] unit of the ARM7TDMI core. Since the ACX1xx contains a pretty standard TI TMS470 ARM7 core, it uses the TMS470 IDCODE: Info : clock speed 6000 kHz Info : JTAG tap: acx1xx.cpu tap/device found: 0x3100e02f (mfg: 0x017, part: 0x100e, ver: 0x3) Info : Embedded ICE version 1 Info : acx1xx.cpu: hardware has 2 breakpoint/watchpoint units This is the used configuration file for OpenOCD (using the [[http://wiki.openmoko.org/wiki/Debug_Board_v3|OpenMoko Debug Board]]) as JTAG interface: interface ft2232 ft2232_device_desc "Debug Board for Neo1973 A" ft2232_layout "jtagkey" ft2232_vid_pid 0x1457 0x5118 reset_config trst_and_srst jtag_khz 6000 jtag newtap acx1xx cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id 0x3100e02f target create acx1xx.cpu arm7tdmi -chain-position acx1xx.cpu -endian little -variant arm7tdmi