Rigo的胡言乱语录

Rigo's Stupid Blogs Archives

View on GitHub

龙芯 EJTAG 逆向工程项目

此项目源于龙芯向大众市场推广其嵌入式 SoC 产品,龙芯 2K0300。由于我个人做嵌入式裸机开发比较多,所以自然想要在这款芯片上也玩一玩裸机开发。但是龙芯的芯片基本都只给出了寄存器定义之类的东西,至于用来做裸机调试之类功能用的 EJTAG 几乎没有文档,与市场上广泛采用的 ARM 微控制器都采用共同的、公开的调试器接口很不相同。而且,龙芯的 EJTAG 调试探头的硬件设计在十多年间一直没有更新过,内含一颗 FPGA,硬件成本极大增加,且由于此平台的应用稀少几乎没有任何相关资料。所以,我个人做了第一个吃螃蟹的人,开始做 EJTAG 的逆向工程。

此博客描述的所有技术性信息的有效性,笔者均不作任何保证。

对于逆向工程可能导致的知识产权问题,笔者认为,龙芯目前正处于其市场与生态的推进阶段,而 EJTAG 资料的缺失很大程度上对社区嵌入式开发者自由地使用其新产品产生了阻碍。而且,EJTAG 调试器除了开发人员使用,在信息安全研究方面也具有其重要性,可以帮助第三方研究者更好地探察产品中的危险漏洞。因此,笔者认为这些逆向工程的工作实际上是对当下对龙芯的生态发展大有裨益的,故决定将这些逆向工程的成果公开,希望能对各位 hacker 作出帮助,祝大家玩信创灵车玩得开心!

索引

  1. EJTAG 电路简介
  2. TAP 寄存器
  3. 官方 EJTAG 调试探头
  4. EJTAG 调试原理