找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 21047|回复: 73

关于 Atheros 类型 jtag 接口的一些见解和疑问

[复制链接]
发表于 2010-3-30 09:50 | 显示全部楼层 |阅读模式
本帖最后由 jiuweiljp 于 2010-3-30 18:02 编辑

本人帮朋友忙,刷写一个 atheros 类型的无线路由,型号为nec wr7800h.本人在此之前从未接触过该类型的无线路由,在为上手之前也做过一些功课,网上基本上没有这款路由器的资料,有也是 fon 及 ag108的,无外乎使用redboot然后在redboot 中刷,已我的linux能力因该能完成这样的工作。但后面......
       上手后拆机,很容易找到了ttl端口(以后有时间拍照上图)波特率设置为9600,8,1,n,使用超级终端发现根本不是redboot,以下是启动过程

  1. IPL:HARD-RESET
  2. memory test ... ok

  3. boot version: 1.0.0
  4. Boot:post start
  5. DRAM test ...
  6. PASS
  7. Timer test ...
  8. PASS
  9. post success
  10. now booting Firmware ...

  11. Aterm system software start

  12. BASE LEVEL CONTROL START

  13. welcome to debug console

  14. Loop Forever
  15. debug>
复制代码
,按什么键也不起作用目前暂时无法判定用的什么系统。没有办法了吗?no 还有jtag呢,靠!网上jtag接口图片倒是不少就是没有它的,本论坛倒是有关于它的帖子
https://www.right.com.cn/forum/v ... amp;highlight=7800h
但楼主也未提供jtag接口图片,联系搂主也无回复。(未完待续,请不要跟贴)
 楼主| 发表于 2010-3-30 12:13 | 显示全部楼层
 楼主| 发表于 2010-3-30 12:18 | 显示全部楼层
中间走过很多弯路就不提了,最后判定我的wr7800h jtag接口如下:


连接方式(可能)如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2010-3-30 12:28 | 显示全部楼层
Atheros 的芯片我估计必须要将TRST接口电位上拉(也就是在TRST与VCC之间接一个电阻,图中所示用100欧,我测试用4.7K都没有问题)。
在不上拉这个TRST脚的电位前我测试过在WR7800H上无法识别CPU(在这一点上我可是费了不少时间精力)

http://www.eda121.com/arm/jcarm/200812/1483.html

上提到一些JTAG的知识

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2010-3-30 12:44 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-3-30 18:13 编辑

本以为大功告成但新的问题来了,(注:以下提到的TJTAG是指软件)
首先备份CFE
TJTAG -BACKUP:CFE
提示无法识别FLASH芯片
  1. ==========================================
  2. EJTAG Debrick Utility v2.1.4-Tornado-MOD
  3. ==========================================

  4. Probing bus ... Done

  5. Instruction Length set to 5

  6. CPU Chip ID: 00000000000000000000000000000001 (00000001)
  7. *** Found a Atheros AR531X/231X CPU chip ***

  8.     - EJTAG IMPCODE ....... : 00000000000000000000000000000000 (00000000)
  9.     - EJTAG Version ....... : 1 or 2.0
  10.     - EJTAG DMA Support ... : Yes
  11.     - EJTAG Implementation flags: R4k MIPS32

  12. Issuing Processor / Peripheral Reset ... Done
  13. Enabling Memory Writes ... Done
  14. Halting Processor ... <Processor did NOT enter Debug Mode!> ... Done
  15. Clearing Watchdog ... DoneDone
  16. Enabling Atheros Flash Read/Write ... Done

  17. Probing Flash at (Flash Window: 0x1fc00000) ... Done

  18. *** Unknown or NO Flash Chip Detected ***

  19. *** REQUESTED OPERATION IS COMPLETE ***
复制代码
,WR7800H 用的是 MX290LV320ATTC-90 的FLASH BOOT区在顶端的(TOP)
在TJTAG中找到相应的参数 /FC:33 或 /FC:34
  1. /fc:33 ............. MX29LV320T 2Mx16 TopB      (4MB)
  2. /fc:34 ............. MX29LV320T 2Mx16 TopB      (4MB)
复制代码
但是备份中我发现除了第一个字节有效外其他全是 00000000
  1. ==========================================
  2. EJTAG Debrick Utility v2.1.4-Tornado-MOD
  3. ==========================================

  4. Probing bus ... Done

  5. Instruction Length set to 5

  6. CPU Chip ID: 00000000000000000000000000000001 (00000001)
  7. *** Found a Atheros AR531X/231X CPU chip ***

  8.     - EJTAG IMPCODE ....... : 00000000000000000000000000000000 (
  9.     - EJTAG Version ....... : 1 or 2.0
  10.     - EJTAG DMA Support ... : Yes
  11.     - EJTAG Implementation flags: R4k MIPS32

  12. Issuing Processor / Peripheral Reset ... Done
  13. Enabling Memory Writes ... Done
  14. Halting Processor ... <Processor did NOT enter Debug Mode!>...
  15. Clearing Watchdog ... DoneDone
  16. Enabling Atheros Flash Read/Write ... Done

  17. Manual Flash Selection ... Done

  18. Flash Vendor ID: 00000000000000000000000011000010 (000000C2)
  19. Flash Device ID: 00000000000000000000000010100111 (000000A7)
  20. *** Manually Selected a MX29LV320T 2Mx16 TopB      (4MB) Flash C

  21.     - Flash Chip Window Start .... : 1fc00000
  22.     - Flash Chip Window Length ... : 00400000
  23.     - Selected Area Start ........ : 1fc00000
  24.     - Selected Area Length ....... : 00040000

  25. *** You Selected to Backup the CFE.BIN ***

  26. =========================
  27. Backup Routine Started
  28. =========================

  29. Saving CFE.BIN.SAVED_20100330_180942 to Disk...
  30. [  0% Backed Up]   1fc00000: 003c000f 00000000 00000000 00000000
  31. [  0% Backed Up]   1fc00010: 00000000 00000000 00000000 00000000
  32. [  0% Backed Up]   1fc00020: 00000000 00000000 00000000 00000000
  33. [  0% Backed Up]   1fc00030: 00000000 00000000 00000000 00000000
  34. [  0% Backed Up]   1fc00040: 00000000 00000000 00000000 00000000
  35. [  0% Backed Up]   1fc00050: 00000000 00000000 00000000 00000000
  36. [  0% Backed Up]   1fc00060: 00000000 00000000 00000000 00000000
  37. [  0% Backed Up]   1fc00070: 00000000 00000000 00000000 00000000
  38. [  0% Backed Up]   1fc00080: 00000000 00000000 00000000 00000000
  39. [  0% Backed Up]   1fc00090: 00000000 00000000 00000000 00000000
  40. [  0% Backed Up]   1fc000a0: 00000000 00000000 00000000 00000000
  41. [  0% Backed Up]   1fc000b0: 00000000 00000000 00000000 00000000
  42. [  0% Backed Up]   1fc000c0: 00000000 00000000 00000000 00000000
  43. [  0% Backed Up]   1fc000d0: 00000000 00000000 00000000 00000000
  44. [  0% Backed Up]   1fc000e0: 00000000 00000000 00000000 00000000
复制代码
TJTAG -BACKUP:WHOFLASH 也一样
并且TJTAG 很难进入 ATHEROS CPU的DEBUG模式
Halting Processor ... <Processor did NOT enter Debug Mode!> ...
 楼主| 发表于 2010-3-30 12:56 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-3-30 22:07 编辑

以下的过程就是乱来了(请勿模仿):
上文提过ATHEROS 必须上拉TRSR,哪SRST呢需要怎样?
(上文图片中有说SRST需要接目标扳的复位脚)
我哪里去找复位脚???
我测试过SRST接电阻上拉VCC没有效果。哪我就下拉,将SRST接电阻到7800H的地(经测试需要在100欧左右才有效(注:100欧以下我未测试))。
ATHEROS 的CPU终于可以进入DEBUG 模式了,
但备份出的数据全是FFFFFFFF 了。
(暂完)
有谁可以帮助我!!!!MAIL:528375@QQ.COM
发表于 2010-3-30 21:13 | 显示全部楼层
AR9132,下面这个帖子的LZ,可以Jtag备份Whole Flash和CFE
但是没有实现写入和擦除

https://www.right.com.cn/forum/viewthread.php?tid=34645
 楼主| 发表于 2010-3-30 22:06 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-4-5 01:23 编辑

经过2天的奋战,终于有了点结果

过程重点:
1、论坛上的JTAG线不能用我上面发的JTAG图只能作为参考,必须用 wiggler 的JTAG 线。

我估计ATHEROS 的 MIPS CPU 必须用这种线。
2、ATHEROS 的内部存储是32字节翻转的。
FLASH        复制后的存储结构 2042 5355 5245 5441 334C 574D 0030 3530 (BSURETA3LWM.050)
FIRMWARE 文件的存储结构   5553 4220 4154 4552 4D57 4C33 3035 3000 (USB ATERMWL3050)
如果想改称REDBOOT的BOOT必须将BIN文件翻转过来,方法有两种
   1.用HEX WORKSHOP 将文件翻转过来
   2.用EJTAG Debrick Utility v3.0.1 翻转过来具体方法如下(操作时间很长的哦)
        一、
  1. jtag3 -flash:custom  jtag3 -flash:custom /window:1fc00000 /start:1fc00000 /length:11c78 /wiggler /bypass /noerase
复制代码
将redboot原始文件改名为custom.bin 写进flash 注意:/window:1fc00000 /start:1fc00000 与flash芯片有关, /length:11c78 于你redboot 文件长度有关也就是你文件长度换算成16进制的数字
      二、
  1. tjtag3 -backup:custom /window:1fc00000 /start:1FC00000 /length:11c78 /wiggler /swap_endian
复制代码
将redboot文从flash中翻转的读出来
      三、然后将读出的文件改名为custom.bin按照第一步的方法写进flash

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
 楼主| 发表于 2010-4-3 18:03 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-4-5 01:57 编辑

修复过程中也用到了urjtag 这个工具更强大
http://lzdz.3322.org/urjtag/CDM%202.06.00%20WHQL%20Certified.zip
http://lzdz.3322.org/urjtag/libusb-win32-filter-bin-0.1.12.2.exe
http://lzdz.3322.org/urjtag/urjtag-0.10.exe
  1. cable wiggler parallel 0x378
  2. detect
  3. include atheros/ar2312/ar2312
  4. poke 0x58400000 0x100e3ce1
  5. detectflash 0x3fc00000
复制代码
上面是涉及到的部分命令,参考:
http://blog.chinaunix.net/u/31934/showart_1877809.html
http://urjtag.org/book/index.html

这是执行的结果,有兴趣的人可以看一下
  1. C:\Program Files\UrJTAG>jtag.exe

  2. UrJTAG 0.10 #1502
  3. Copyright (C) 2002, 2003 ETC s.r.o.
  4. Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors

  5. UrJTAG is free software, covered by the GNU General Public License, and you are
  6. welcome to change it and/or distribute copies of it under certain conditions.
  7. There is absolutely no warranty for UrJTAG.

  8. WARNING: UrJTAG may damage your hardware!
  9. Type "quit" to exit, "help" for help.

  10. jtag> cable wiggler parallel 0x378
  11. Initializing parallel port at 0x378
  12. jtag> detect
  13. IR length: 5
  14. Chain length: 1
  15. Device Id: 00000000000000000000000000000001 (0x0000000000000001)
  16.   Unknown manufacturer!
  17. chain.c(149) Part 0 without active instruction
  18. chain.c(200) Part 0 without active instruction
  19. chain.c(149) Part 0 without active instruction
  20. jtag> include atheros/ar2312/ar2312
  21. ImpCode=01000000010000000100000000000000 40404000
  22. EJTAG version: 2.6
  23. EJTAG Implementation flags: R4k ASID_8 NoDMA MIPS32
  24. Processor entered Debug Mode.
  25. jtag> detectflash 0x3fc00000
  26. Query identification string:
  27.         Primary Algorithm Command Set and Control Interface ID Code: 0x0002 (AMD/Fujitsu Standard Co
  28. mmand Set)
  29.         Alternate Algorithm Command Set and Control Interface ID Code: 0x0000 (null)
  30. Query system interface information:
  31.         Vcc Logic Supply Minimum Write/Erase or Write voltage: 2700 mV
  32.         Vcc Logic Supply Maximum Write/Erase or Write voltage: 3600 mV
  33.         Vpp [Programming] Supply Minimum Write/Erase voltage: 0 mV
  34.         Vpp [Programming] Supply Maximum Write/Erase voltage: 0 mV
  35.         Typical timeout per single byte/word program: 16 us
  36.         Typical timeout for maximum-size multi-byte program: 0 us
  37.         Typical timeout per individual block erase: 1024 ms
  38.         Typical timeout for full chip erase: 0 ms
  39.         Maximum timeout for byte/word program: 512 us
  40.         Maximum timeout for multi-byte program: 0 us
  41.         Maximum timeout per individual block erase: 16384 ms
  42.         Maximum timeout for chip erase: 0 ms
  43. Device geometry definition:
  44.         Device Size: 4194304 B (4096 KiB, 4 MiB)
  45.         Flash Device Interface Code description: 0x0002 (x8/x16)
  46.         Maximum number of bytes in multi-byte program: 1
  47.         Number of Erase Block Regions within device: 2
  48.         Erase Block Region Information:
  49.                 Region 0:
  50.                         Erase Block Size: 65536 B (64 KiB)
  51.                         Number of Erase Blocks: 63
  52.                 Region 1:
  53.                         Erase Block Size: 8192 B (8 KiB)
  54.                         Number of Erase Blocks: 8
  55. Primary Vendor-Specific Extended Query:
  56.         Major version number: 1
  57.         Minor version number: 1
  58.         Address Sensitive Unlock: Required
  59.         Erase Suspend: Read/write
  60.         Sector Protect: 4 sectors per group
  61.         Sector Temporary Unprotect: Not supported
  62.         Sector Protect/Unprotect Scheme: 29BDS640 mode (Software Command Locking)
  63.         Simultaneous Operation: Not supported
  64.         Burst Mode Type: Supported
  65.         Page Mode Type: Not supported
  66.         ACC (Acceleration) Supply Minimum: 11500 mV
  67.         ACC (Acceleration) Supply Maximum: 12500 mV
  68.         Top/Bottom Sector Flag: Top boot device
  69. jtag>
复制代码
 楼主| 发表于 2010-4-5 01:34 | 显示全部楼层
代续。。。。。未完
发表于 2010-4-5 10:49 | 显示全部楼层
本帖最后由 glk17 于 2010-4-5 10:51 编辑

楼主,你的NEC wr7800具体是哪颗U?

最近我也刚看到 EJTAG Debrick Utility v3.0.1 Tornado-MOD也可以支持Atheros的U
http://www.dd-wrt.com/wiki/index.php/JTAG

EJTAG Debrick Utility v3.0.1 Tornado-MOD

           Supported Chips
           ---------------
           Broadcom BCM4702 Rev 1 CPU
           Broadcom BCM4704 KPBG Rev 9 CPU
           Broadcom BCM4704 Rev 8 CPU
           Broadcom BCM4712 Rev 1 CPU
           Broadcom BCM4712 Rev 2 CPU
           Broadcom BCM4716 Rev 1 CPU
           Broadcom BCM4785 Rev 1 CPU
           Broadcom BCM5350 Rev 1 CPU
           Broadcom BCM5352 Rev 1 CPU
           Broadcom BCM5354 KFBG Rev 1 CPU
           Broadcom BCM5354 KFBG Rev 2 CPU
           Broadcom BCM5354 KFBG Rev 3 CPU
           Broadcom BCM3345 KPB Rev 1 CPU
           Broadcom BCM5365 Rev 1 CPU
           Broadcom BCM5365 Rev 1 CPU
           Broadcom BCM6345 Rev 1 CPU
           Broadcom BCM6348 Rev 1 CPU
           Broadcom BCM6338 Rev 1 CPU
           Broadcom BCM6358 Rev 1 CPU
           Broadcom BCM6368 Rev 1 CPU
           Broadcom BCM4321 RADIO STOP
           Broadcom BCM4321L RADIO STOP
           TI AR7WRD TNETD7300GDU Rev 1 CPU
           BRECIS MSP2007-CA-A1 CPU
           TI TNETV1060GDW CPU
           Linkstation 2 with RISC K4C chip
           Atheros AR531X/231X CPU
           XScale IXP42X 266mhz
           XScale IXP42X 400mhz
           XScale IXP42X 533mhz
           ARM 940T
           Marvell Feroceon 88F5181
           LX4380


下载网页:http://www.tiaowiki.com/download//file.php?id=24
发表于 2010-4-5 11:00 | 显示全部楼层
感觉Atheros的好多东西都可以刷DD,感觉这个东西和DI-784有点相同
 楼主| 发表于 2010-4-5 19:11 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-4-5 22:21 编辑

找了些不同版本的redboot,大约明白了atheros 的cpu分类
我这个5312 的cpu好像被归为ap30了,5212与5312是同一类型的cpu.
但是网上我没有发现有ap30的redboot.查了些文档发现在dd-wrt的CHANGELOG中ap48包含了该cpu类型。
http://svn.dd-wrt.com:8000/dd-wr ... roredboot?rev=13107
在网站中下了一份 ap48的microredboot ,刷进后显示 波特率115200,8,N,1
  1. MicroRedBoot v1.3, (c) 2009 DD-WRT.COM (Jul  6 2009)
  2. CPU Clock: 180Mhz
  3. Device not known: FLASH MANID: 10 DEVID: 1 DEVID2: 0 DEVID3: 0
  4. no bootable image found, try default location 0xbfc10000
  5. Booting Linux
  6. loading
  7. data corrupted!
  8. switching to recovery RedBoot
  9. loading.....
复制代码
注意:我的交换芯片为RTL的在DD的文档中提到RTL 与 kendin的芯片通用,并且交换芯片在刷好后可以驱动了。
还有一点在dd-wrt 的网站中redboot 的 .ELF 文件是已经翻转过来的了,直接刷就可以了。
下一步怎样做我还在思考中。。。
 楼主| 发表于 2010-4-6 23:47 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-4-8 01:29 编辑

论坛好了,呵呵
我看了一下,好像我的redboot 启动不成功,看来我要重新编译了microredboot。希望有人帮助我。
--------------------------------------------------
编译 redboot绝对不是一个好工作,从网上下载源代码就花了3 4个小时,好像有500多MB。
编译起来不是差这个文件就是差那个文件,还要在网上自己下,有的还需要安装,TMD不是人干的活。
 楼主| 发表于 2010-5-23 10:28 | 显示全部楼层
本帖最后由 jiuweiljp 于 2010-5-23 10:36 编辑

前段时间太忙,这两天抽空巩固了一下,有了突破。

下面这段是没有修改源代码编译后执行的结果
  1. +FLASH: driver init failed: Driver does not support device
  2. $T0525:9fc1b0a8;1d:80701f60;#c9$T0525:9fc1b0a8;1d:80701f60;#c9
复制代码
经过不懈努力修改代码后编译后结果
  1. +**Warning** FLASH configuration checksum error or invalid key
  2. Use 'fconfig -i' to [re]initialize database
  3. enet_mac_address_get:Mac addr failed sanity check.
  4. Couldn't find valid MAC address for enet1. Using default!
  5. /media/usbdisk/redboot_cobra/ecos/packages/devs/eth/mips/ar531x/current/src/ae531xecos.c#402:ae531x_send eth1 Tx: cannot get txDesc
  6. Ethernet eth1: MAC address 00:03:7f:e0:02:bf
  7. IP: 0.0.0.0/255.255.255.0, Gateway: 0.0.0.0
  8. Default server: 0.0.0.0

  9. RedBoot(tm) bootstrap and debug environment [ROM]
  10. Non-certified release, version UNKNOWN - built 01:21:45, May 23 2010

  11. Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
  12. Copyright (C) 2007 NewMedia-NET GmbH (DD-WRT build)

  13. Board: ap30
  14. RAM: 0x80000400-0x80ff0400, [0x80000400-0x80fd1400] available
  15. FLASH: 0xbfc00000 - 0xbffe0000, 64 blocks of 0x00010000 bytes each.
  16. RedBoot>
复制代码
从反馈结果来看 cpu flash memory 都已经驱动成功,但不知道为什么 网卡 好像没有驱动成功。
但更为致命的是在 “redboot>” 状态下无法输入任何字符 (希望得到网友的帮助)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-7-4 11:38

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表