作者cassine (Savannah)
看板Modchip
标题Re: [X360] 来研究一下脉冲启动自制系统
时间Sat Oct 29 14:43:59 2011
※ 引述《cheweichang (夏天就是要游泳 CheWei)》之铭言:
: (前文del......)
: (1)电路相关
: XC2C64A C-mod CPLD 目前买的山寨版有四种Layout
: 相关的电路图下面有
: http://libxenon.org/index.php?topic=211.0
: 没屋顶能买到的那个版本,要改的电话颇多(正反面都要改),请注意!
: (2)能不能用其他IC/单晶片取代?(如PIC系列)
: 理论上可以,下方有原始码,有兴趣自己看。
: https://github.com/gligli/tools/tree/master/reset_glitch_hack
: 但为何原作者要用CPLD来做,一定有他的道理。
个人的看法是这东西需要非常精准的触发时序才有可能成功。上面连结中的说明
显示,在厚机的破解上,必须在POST CODE 36时插入CPU_PLL_BYPASS指令,扰乱
CPU的时序,然後在POST CODE 39开始时启动计时器,并在达到 62%指令时间时
送入长度为100 ns(10 MHz)的CPU_RESET 指令(个人猜测有部份的暂存器因此
被清空,导致memcmp的回传值被判为真),最後再等候一段时间,才关闭
CPU_PLL_BYPASS指令。
在薄机上,由於没有脚位可以注入CPU_PLL_BYPASS指令,因此扰乱 CPU时序必须
另寻他途,幸好薄机采用了可调式的倍频生器,而且可自 I2C汇流排下达锁相回
路的设定值,薄机的 I2C汇流排又完全不设防,因此成为扰乱 CPU时序的工具。
一样,在POST CODE D8时藉由 I2C汇流排将降频的指令送给倍频器,然後等待
POST CODE D8的到来启动计时器,等到计时器达到指定值时,给予长度达 20 ns
(50 MHz)的CPU_RESET 指令,最後隔一段时间才回复正确的频率设置。
在精准度要求很高的状况中,连取样造成的时间延迟都必须正确估计,因此作者
采用了比较易於估计时间延迟的CPLD。当然拿FPGA板来弄应该也可以,作者他们
写的是VHDL,这东西并不太困难懂,比 C/C++还简单。他们整个程式才 138列而
已。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.120.31.137
1F:→ jikanson:138列的程式码就搞死凶盒子 10/29 15:41
2F:→ cassine:那只不过是想法的实证(Proof of Concept)而已 10/29 16:23
3F:→ M5D6:用DSP作 ?? XD 10/29 20:55
4F:→ cassine:只要能精密估计时间延迟的可程式化元件应该都可以应用 10/30 18:07
5F:→ cassine:TI那堆贵得要死的DSP应该也能达成类似功能 10/30 18:07
6F:推 suvsuv:这串好专业 看不懂 不过我希望可以降价 改自制好贵 11/02 01:03
7F:推 currencly:这串专业到 不知怎麽发问.. 02/12 03:06