如果您的ZC2564-M1或ZC25128-M1的SPI flash emulator已經升級韌體到ZC25Q64或是ZC25Q1128的版本
準備好要搭配Haswell 主板來跑Quad I/O 的話
要注意下列幾個事項
1. 檢查線路上原來的#WP和#Hold這兩根訊號是否有接到PCH去
如果沒有接到PCH而是拉電阻Pull high到Vcc的話
那應該只能跑Dual I/O (因為沒接到PCH就表示要跑Quad I/O的IO2和IO3沒接)
2. SPI flash emulator可以視為是一顆 SPI flash (只是多了條 USB的download 通道)
所以如果板子上已經有 SPI flash 的話必須先移除掉
否則會有一個PCH的SPI Host上面會有兩個SPI 的device在那邊搶BUS而造成衝突
(因為真正要跑Quad I/O的話當然就不會讓利用#Hold PIN的分壓來做replac的功能出現)
3. SPI flash emulator如果接排線到主板也要看一下排線是否是PIN to PIN的排線
(以往配件中附的replace功能的排線, 這種線試只能開Dual I/O, 無法開Quad I/O)
可以買條短一點的PIN to PIN的cable.
4. 接下來是SPI flash emulator的韌體需要更新到最新版有支援Quad I/O功能的
SAMEFILE也請下載最新的版本來使用, 新韌體搭配新軟體的話會自動辨識秀出
新版的Debugview 新增了更多支援的SPI command
透過Real time的監看就可以輕易知道您是否有跑Quad I/O或是降級到跑Dual I/O
5. 接下來很重要的是您的code和採用的SPI flash chip. 因為ME是會認5A command的.
一開電ME第一個動作是下5A commad 做讀取SFDP的動作. 不同SPI flash的vendor與partnumber
就會有不同的 SFDP table, 所以用SPI Flash emulator選要模擬的device一定要選對
萬一選到ME沒有建到support table的當然也開不到Qaud I/O
SFDP table是可以看著Datsheet去建的, 懶一點的話可以用我們公司出的燒錄器(ZC2511, ZC2512, ZC2502, ZC2514皆可)
去把對應的real flash chip的SFDP Table給吸取出來再倒給模擬器使用!
6. 接下來就是您compile的binary code之前的設定也是需要注意 Quad I/O的support一定要記得設True
還有對應的頻率設定要設一下看是用33MHz或是50MHz, SPI模擬器如果到PCH的整體SPI BSU的Trace
如果太長的話建議您先用33MHz先試, 因為如果實在太長的話搞不好連33MHz都跑不了, 如果可以跑的話
再設成50MHz, 慢速先可以再往高速爬!
7. 如果您Dual I/O與Quad I/O的support都有設定成True的話, 有可能ME一跑起來讀取SFDP tabel和
QE bit等等的初期驗證沒有過的話, 也是有可能沒有跑Quad I/O, 而是降級去跑Dual I/O了
這個也是個盲點, 有人開發很久了一直以為有跑Quad I/O, 其實是只有跑 Dual I/O.
因為大家的code size都不夠大, 所以跑Quad I/O和 Dual I/O開機所花費的時間比較不容易感覺出來!