看板 PC_Shopping 關於我們 聯絡資訊
※ 引述《cody880528 (CYPuzzle)》之銘言: 大家對刷BIOS (你看看UEFI喊了n年我們還是叫他BIOS) 這麼有興趣 就來稍微聊聊刷BIOS是怎麼個回事. 目前業界主要使用的是UEFI架構 太細我們不講 UEFI架構下 Firmware會有兩個最主要的區塊: PEI / DXE 這點在目前的主要 IBV(出BIOS firmware的廠商:AMI Insyde Phoenix)做法都差不多 除了Intel自家好像 會搞些奇奇怪怪的設計而把Firmware切得更奇怪一點. 然後再加上AMD的PSP/Intel的ME 以及用來存放設定的一些小區塊 總之大概是這樣: SPI ROM (假設16M) |---------------------------------------------------------------------------| |----------------------------|-----|-------|------------------|-------------| ME/PSP NVRAM 不知三小 DXE PEI 以上廢話, 總之記得"每個區塊有一定的size" 總之BIOS大概就分成這些區域 那以這次AMD的設計我們可能會面對幾個問題 1.PSP因為多次向下相容造成肥大化 2.PEI/DXE也多次向下相容肥大化 3.設定項目改變 最基本的就是總容量的問題, 放不下就啥都不用講了. 所以勢必得放棄部分的向下相容 讓程式碼的總需求維持在16M 再來就是為了讓刷BIOS的時候不會一失敗就直接死透 通常的設計我們會是把最重要的 區塊最後處理 甚至是某些區域不更新 例如NVRAM跟那個不知三小 有時候是用來存放 一些設定跟板廠的一些初始資料 譬如你主機板的序號等等的東西 這些區塊我們更新 BIOS的時候是跳過的 然後通常因為PEI中會放置一些程式碼 當意外發生而讓DXE爛掉時 還能救回 所以有時候我們會跳過 或是等DXE部分刷完後驗證都正確才去刷PEI. 至於PSP,就是看AMD有沒有針對新CPU更新 有的話就需要一起刷掉. 所以我們可以把更新BIOS的流程大概看做這樣: 刷NVRAM和不知三小(or跳過)->刷DXE->刷PEI->刷PSP (好像啦 我也忘了) 好那麼問題來了 既然是分區分塊刷, 首先的問題就是 如果因為容量的關係工程師想調整 區塊的size 那很抱歉 舊->新 這個狀況下我們還可以故意在新BIOS中加入一些程式碼來 處理一些區塊size改變造成的問題 且此時就難以透過分區的方式來避免刷一半停電之類 狀況造成需要做recovery自救. 存放在舊的NVRAM設定如果想保留, 也必須要額外處理, 或是就乾脆全刷掉. 但是新->舊的話以上都不可能 因為舊的BIOS肯定看不懂新的配置 唯一選擇是完全清除 所以降版最大的問題往往都在於 新的BIOS有方法可以看懂舊的BIOS的設定配置參數等 但反之不行, 改SPI rom的區塊就更不行. 最後就是有人手殘 明明用的是最舊的Zen1刷了不支援Zen1的新BIOS, GG. 所以通常此時廠商就直接不給降版了, 因為風險高, RMA會很累. AMD要凹這些廠商願意去做這件事情 就得幫他們想出可行的辦法 像是怎麼讓更新過程更 安全, 或是最佳化程式碼來盡量塞入能夠相容最多款CPU 至於用離線燒錄的方式 那當然是沒啥問題 反正都刷光光了 原廠會有方法保留他們想保留的東西 或甚至調出主板資料重新寫入 不過這就跟RMA一樣 成本問題. 以上騙騙P幣 話說這種改版, 板卡廠的反應大概是: engineer: 幹. 又要升code. 林老師A合完連compile都過不了, 出bug要搞到哪時候. QA: 幹. 改版改成這樣連testplan都要改嗎. PM: 快點啦人家雞排都出了我們石頭哪時候才要release. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.14.162.153 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1589934578.A.AE5.html ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 08:30:22 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 08:30:43
chenszhanx : 那32MB rom應該能降? 05/20 08:35
總容量應該是ok 但是之前的分割塞不塞得下就難說. 假設當初PEI割太小了 新Agesa塞不下 那就糗了. SPI又不能像硬碟一樣來個Partition Magic不損失資料重新分割
ejsizmmy : 跟你說,不一定一定要存NVRAM 05/20 08:36
跟你說 UEFI的Variable主要就是放在NVRAM (SPI)
cz031300 : 說明給推 05/20 08:36
sharkbay : 抓到!你是相關從業人員吧? 05/20 08:36
4der
tkhunter : 專業推 05/20 08:39
henry4621 : 先推 免得別人以為我看不懂 05/20 09:01
LoveShibeInu: 看gn接招 32mb也只是切成16+16 因為舊的U不能支援 05/20 09:01
LoveShibeInu: 32mb 05/20 09:01
這我就不太清楚 但通常都是能支援大的啦 然後廠商因為成本因素硬要塞進小的
zone0016 : 聽不懂下一位 05/20 09:02
jim924211 : 先推,我絕不是看不懂喔 05/20 09:06
skycat2216 : 那能把一部分的程式碼存進EMCP之類的地方,由晶片 05/20 09:07
skycat2216 : 組負責開機嗎? 05/20 09:07
不行,SOC/CPU能從哪裡開機是看晶片組的支援 x86幾乎都得要來一顆SPI. 不過Intel有搞過一顆小容量SPI然後剩下的部分放在eMMC的方案給低價平板使用 後來好像還是沒啥人玩(話說Intel平板幾乎=0..) 但eMMC/Flash啥的也要錢啊. 本來DT/NB就沒相關設計又硬要多搞一個上去 更貴吧 不如把SPI加大. ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 09:27:18 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 09:31:16
tomsawyer : (舉手 如果有雞排的dual bios484就可以一次刷乾淨? 05/20 09:29
其實全刷本來就不是問題 問題發生在 1.想保留部分舊的資料/設定參數 2.萬一刷一半出包時救援方案 dual bios比較有能力解決的是#2. 但就算dual bios應該也是要面對退版問題 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 09:38:58
waiter337 : 我都把bios存在硬碟 05/20 09:48
waiter337 : ㄟㄟㄟ 你們幹嘛架住我 ㄟㄟㄟ~~~~ㄟ 聲音逐漸變小 05/20 09:49
HDD沒接連BIOS都進不了啦啦啦..
ejsizmmy : 謝謝你看了我的留言,我想給個反饋,有個東西叫BB 05/20 10:14
ejsizmmy : 雖然現在都是NVRAM了沒錯啦 05/20 10:15
BB? 我想到的是boot block 這是傳統說法 相當於UEFI架構下的PEI 跟存設定沒啥關係. 還是你說的是BB霜 這我就不太熟.
terry12369 : 專業推 05/20 10:16
MrDisgrace : basic input output system 沒錯啊XD 只是不basic了 05/20 10:23
Black Infinite Orbit Stream!! 我覺得這個比較中二!! ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 10:46:31
raphael0811 : 專業 推 05/20 10:40
goldie : 巷子內仔推 05/20 10:42
goldie : 推最後一段板廠反應XD 05/20 10:43
henry46277 : 推 專業 05/20 11:16
Aquarius126 : 不能出2個版本的bios嗎,一個支援1-2代,另一個支援 05/20 11:41
Aquarius126 : 2-3代? 0.0 05/20 11:41
engineer/QA: 求放過...
littlefish1 : 有些板子有雙bios 05/20 11:45
littlefish1 : 那能不能做一個選配插槽 05/20 11:45
littlefish1 : 讓消費者自己裝 像微動那樣 05/20 11:45
littlefish1 : 也不用刷 直接買來插 05/20 11:45
理論上可以 但那也只有有這種設計的板子可以 AMD現在掛這個保證意思就是要讓所有的B450/X470都可以 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 11:53:05
sharkbay : @littlefish1 別啊 ROM裝反會燒掉啊 05/20 11:51
Server用的大顆SPI還蠻耐的XD 插反兩三次還活著 NB/DT的上次插反就直接焦掉了.. ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 11:54:22
CARLORFFLIN : 工程師應該很懷念Intel板子?都直接換腳位哪來這些 05/20 11:56
sharkbay : @Aquarius126 別被SW的人聽到 會氣死 05/20 11:57
CARLORFFLIN : 雞雞歪歪的相容,用戶一片吃三代還不滿足還影響銷量 05/20 11:58
sharkbay : 最好乖乖去買離線燒錄器來燒 最保險 05/20 11:59
waiter337 : 認真問 這可以叫做 真˙魔改了八 05/20 12:01
ejsizmmy : 所以我已經跟你說了阿, BB...欸,我的留言有這麼不 05/20 12:08
ejsizmmy : 明確嗎? 05/20 12:08
ejsizmmy : 還有,我跟你說,現在一樣有放在BB的喔,要放哪裡 05/20 12:09
ejsizmmy : 只是一個選擇而已 05/20 12:09
BB肯定是縮寫阿 我不清楚你的BB是什麼東西的縮寫 所以我也答不出來 抱歉嘍 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 12:10:48
ejsizmmy : 喔,還是說你們家的都只放NVRAM? 05/20 12:12
ejsizmmy : 是沒錯啦,那東西叫NVRAM VARIABLE.... 05/20 12:13
ejsizmmy : 「恩對啦,我上面就說得是BB霜,絕對不是指BOOT B 05/20 12:14
ejsizmmy : LOCK喔」 05/20 12:14
ejsizmmy : 你要我這樣回答才開心嗎?QQ 05/20 12:15
因為google BB看到最多的就BB霜阿BB美白啥的 我自己是遇過額外放EEPROM的啦, 但很少就是 至於BB我就真的不清楚你指的是啥 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 12:20:02
k03004748549: 有懂有推 長姿勢 05/20 12:20
ejsizmmy : 好啦不鬧你了我講的就是boot block 05/20 12:22
ejsizmmy : boot block目前還是存在的,只是可能就是你說的變 05/20 12:23
ejsizmmy : 成pei了? 05/20 12:23
是阿 變成PEI很久了 或稱FV_BB 這稱呼從Legacy non-efi bios來的 很多廠商 還是習慣這麼叫
sharkbay : I(O)BB (Initial/OEM Boot Block) 還有OBB喔 05/20 12:23
AMD表示:不要分這麼細 我們PSP沒這麼複雜 XD ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 12:27:59
sharkbay : 通常會扯到 IBB/OBB, 大概是搞BtG/CBnT的人才 05/20 12:25
sharkbay : CBnT : Converged Boot Guard and TXT 補縮寫 05/20 12:28
今年很多客戶吵著一定要上了 engineer表示:好煩 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 12:29:28
alpha17 : HW RD表示:自己買個flash燒錄器,線接好就隨便燒囉 05/20 12:29
sharkbay : @alpha17 然後線路接錯燒東西 又要RMA了 05/20 12:32
ejsizmmy : 最怕蜂鳴器突然安靜....最怕顧客突然的安靜... 05/20 12:34
ejsizmmy : 最怕電路突然翻攪著不平息... 05/20 12:35
commandoEX : 我在想為何不把DIY板上OEM CPU支援砍一砍空間就騰出 05/20 12:45
commandoEX : 來了,每次看CPU支援列表一長串其實都買不到 05/20 12:46
ejsizmmy : 沒哦,樓上,cpu的支援度主要是依據步進去看得,只 05/20 12:53
ejsizmmy : 要同步進基本都一起支援,不會因為某些拿掉了這就 05/20 12:53
ejsizmmy : 瘦下來 05/20 12:53
ejsizmmy : 我講的很粗,其實很多變因在裏面 05/20 12:54
sharkbay : @commandoEX 你會覺得9900K跟9900的BIOS不一樣嗎? 05/20 12:56
sharkbay : SW看起來就是一樣的東西 支援列表就要是列 QA就要 05/20 12:58
sharkbay : 是驗 使用者就是要問 沒辦法啊 05/20 12:58
ccbbaa : 以前有些主板還有主打雙bios的 讓你猛刷@@ 05/20 13:12
ejsizmmy : 某場最強了,直接能用usb不進bios刷 05/20 13:19
ejsizmmy : 我絕對不會說是微星 05/20 13:19
其實免CPU/不需要進BIOS就能刷BIOS 這個功能以減少RMA來說倒是相當有用的 我覺得人人都應該要(ry) 但這功能也變相又多了一個安全性上的突破點 還需要一些額外的考量 不過如果我們回到升降板的問題來看的話 不管你用哪種手段 都刷光光其實一直都是最 乾淨的方式 可惜升降板會卡到的問題 多半就是當你不被允許都刷光光的時候 所得要面對的東西 ※ 編輯: comipa (101.14.162.153 臺灣), 05/20/2020 13:25:59
sharkbay : 結果現在市面上也沒有大流行 存在就是正義 05/20 13:24
sharkbay : 不好用 或是 成本太高 自然就被淘汰 05/20 13:24
Doub1eK : 嗯嗯 跟我想的一樣 05/20 13:37
Windcws9Z : 技嘉也沒有雙BIOS惹? 05/20 13:39
ctes940008 : 怕,看來雙BIOS也不能降版 05/20 14:00
alpha17 : @ejsizmmy 大小石頭的flashback跟技嘉的q flash都可 05/20 14:09
alpha17 : 以用USB做到不進BIOS更新啦,只是通常是高階板才有 05/20 14:09
ketrobo : 如果免CPU就能降版,這次為什麼要特別強調無法降版 05/20 14:40
ketrobo : ? 05/20 14:40
sdbb : 降版後變回只能用舊版cpu,不能用新版cpu 05/20 15:10
sdbb : 若降版後,手上已無zen1 zen2怎麼辦? 05/20 15:12
sdbb : 不給降版,算防呆吧 05/20 15:12
sdbb : 降版後,裝上新cpu不能用,除非手上有留舊的 05/20 15:13
sdbb : 如果把flash拆下來直接刷,就隨便啦 05/20 15:16
friedpig : flashback是石頭最早吧 小星星算很後面才有的 05/20 15:17
sdbb : flashback最早的是macross 05/20 15:18
HMKRL : 推解說 很多人都以為走軟體刷跟接燒錄器一樣XD 05/20 17:07
StarHero : 我都把BIOS幹下來硬刷~ 05/20 17:23
ejsizmmy : 我剛特別去找了MACROSS...還真的有 05/20 18:45
Sswatt : 並不是所有的 B450 X470 都會支援 05/20 19:10
ltyintw : 為什麼bios rom不能隨意更換不同大小的flash rom呢 05/20 21:15
skycat2216 : 也就是說如果晶片組支援還是能這樣做對吧? 05/20 21:25
skycat2216 : 說到intel平板,我曾經在我家附近的回收場看到Clov 05/20 21:25
skycat2216 : erland的開發機 05/20 21:25
ejsizmmy : 不能換其實不是不能換,是因BIOS大小是固定的 05/20 21:30
沒錯 比喻來說 就像你換了大容量的HDD/SSD 如果舊資料要直接轉過去 484其實還是要重新分割? 不然多出來的空間根本沒用到 而且BIOS很多東西是直接用位址去存取的 改空間規劃等於所有用到這種位址的東西 可能都得改 事情就麻煩多了
laputab : 感謝這麼有營養的文章 05/20 23:53
a951l753vin : PM:客戶需求,開始動作! 05/21 01:41
RaiGend0519 : 好文推 05/21 02:17
※ 編輯: comipa (220.133.98.140 臺灣), 05/21/2020 06:13:03
ry3298 : 推 05/21 21:42