看板 PC_Shopping 關於我們 聯絡資訊
閒聊仔又來了 Q: 為什麼有的平台不支援SPI 32MB? A: 因為原本的SPI ROM用的指令碼(03h)後面帶的位址只有3byte, 上限只有16MB, 後來32MB SPI ROM新增了指令碼(13h), 或是使用 4byte 模式, 才能支援更高的容量, 所以才引發平台相容性問題, 有興趣請看規格書: https://www.winbond.com/resource-files/w25q128fv_revhh1_100913_website1.pdf https://www.winbond.com/resource-files/w25q256fv_revg1_120214_qpi_website_rev_g.pdf 順便聊聊SPI ROM災難恢復的演進簡史 第一代的雙SPI簡要原理圖: +---+ +---+ +------+ | P | | M |---| SPI1 | | C |---| U | +------+ | H | | X |---| SPI2 | +---+ +---+ +------+ 這種結構最簡單, 甚至簡化到只靠Jumper就完成切換, 進階版本就是搭配各種微控制器, 甚至還加上計時器(指定時間內沒完成開機就自動重開機後切換到#2). 但是, 同一個時間只有一顆SPI在線上, 所以開機後只能一顆吃到4byte模式切換命令, 此時你的燒錄軟體試圖#1燒完要接著燒#2就完蛋了 (定址模式錯亂). 兩顆都要更新就變成要分兩次開機燒錄. 第二代的雙SPI簡要原理圖: +---+ +---+ +------+ | P |---| M |---| SPI1 | | C | | U | +------+ | H |---| X |---| SPI2 | +---+ +---+ +------+ 為了解決第一代缺點, 只好把兩顆SPI同時掛在線上, 透過刻意地分區規劃, 例如在64MB的檔案尾巴挖了32MB的洞, 並設定這個洞為無效區, 再把頭部32MB複製進去. 創造出兩顆SPI檔案內容完全一樣且能夠任意交換開機. 搭配各種創意的燒錄策略, 例如直接燒#1直接開機, 或是一律先燒#2(下次開機就交換). 但是阿, PCH一定會檢查兩顆SPI的可用性, 一旦任意一顆壞了(無回應), 整套系統就GG. 好處同時可以將兩顆刷成新版本. 之後江湖上就很少出雙SPI了, 但是災難恢復的需求持續存在 +---+ +---+ +-----+ | P | | M | | | | C |---| C |---| SPI | | H | | U | | | +---+ +---+ +-----+ 一樣吸收第二代的招數發揚光大, 在原先的檔案內挖了兩個洞, 分別叫暫存區&黃金區, 剩下的區域叫活動區, 燒錄軟體一開始只能燒到暫存區, 下次開機後MCU發現暫存區有東西 , 就會試圖檢查RSA金鑰, 如果合法就燒回主動區. 如果主動區未能在指定時間內開完機, 下次開機就從黃金區燒回主動區. 唯一不變的是SPI容量需求一直變大... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.116.207 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1589983994.A.887.html
Cubelia : 推推 05/20 22:21
sdbb : 05/20 22:38
ltyintw : 快推免得 05/20 22:45
LastAttack : 被人發現看不懂=ˇ= 05/20 22:50
s815225 : 推 05/21 01:29
a58524andy : 還是不太懂g1 spi那邊為什麼不能一次更新? 05/21 01:58
https://www.intel.com.tw/content/dam/www/public/us/en/documents/technical-specifications/300-series-chipset-on-package-pch-datasheet-vol-2.pdf 8.2.2 Hardware Sequencing Flash Status and Control (BIOS_HSFSTS_CTL)—Offset 4h Bit 20~17: Flash Cycle (FCYCLE) 裡面並沒有讓燒錄軟體切換 4byte 模式的開關, SPI的模式切換都靠 ME 來做, 每次開機只做一次, 開機那一瞬間哪一顆SPI掛在BUS上, 那就只有那顆吃到. 所以32MB SPI開始導入後 就沒人用這種方式了(加錢裝MCU灌指令的也是可行)
terry12369 : 只能推 05/21 02:09
※ 編輯: sharkbay (106.1.116.207 臺灣), 05/21/2020 06:32:38
comipa : 用比喻就是1.離線外接HDD 2.偽.RAID1 3.還原點機制 05/21 07:37
stja : 05/21 08:42
MrDisgrace : 推推 05/21 09:42
robin80829 : 動保法要出推 05/21 11:04
robin80829 : 推太快字沒清= =拍謝 05/21 11:05
a58524andy : 喔喔 感謝 05/21 12:09
derekjj : 跟我想的一樣 05/21 18:49