Rabbit Note

技術的な事柄をメモしていきます.

IvyBridge on HP ProLiant ML110 G7

現時点(2013.3.27)において, ML110 G7 は IvyBridge に対応していませんが,これを強引に動作させる方法をご紹介.

IvyBridge 起動画面

概要

ここで説明する手順では主に次の2つのことを行います.

  • BIOS に含まれている,対応 CPU のリストを改変
  • BIOS に含まれている,SandyBridge 用の microcode を IvyBridge 用のもので置換

従って,この手順に沿って改変した BIOS を書き込んだ場合,SandyBridge は動作しなくなります.ご注意ください.

対象

対象にしているのは,E-1 stepping な IvyBridge です.C-0, D-0, E-0 stepping の場合は,適宜読みかえる必要があります.

準備

作業は,Windows 上で行います.次のものを準備します.

手順

  1. microdecode.exe を使用して,microcode.dat をデコード.

    多くのファイルが生成されますが,使用するのは cpu000306a9_plat00000012_ver00000013_date20120716.bin のみ.

  2. BIOS 書き換えツールをインストールしたフォルダでコマンドプロンプトを開き,次のコマンドを実行.

  3. 「DUMP」というファイルが生成されているので,これをバイナリエディタで開き,アドレス 0x003e5070 に移動.

  4. 上記に含まれるデータを次のように修正.(一行目が ASCII 表現,二行目がそれに対応する16 進表現)

  5. 最初に生成した cpu000306a9_plat00000012_ver00000013_date20120716.bin の中身をアドレス 0x361800 から始まる場所に上書き

    ちなみに, 0x361800 から始まる場所には,SandyBridge 用の micorocode が格納されています.(最初のステップで生成されたファイル郡に含まれる 「cpu000206a7_plat00000012_ver00000028_date20120424.bin」の内容と一致)

  6. 以上の書き換えによって計算されるチェックサムが変わってしまうので,チェックサムが変わらないように適当な場所の値を改変.
    チェックサムはバイト単位で積和した下位 8bit です.
  7. 修正後の「DUMP」ファイルを保存.
  8. コマンドプロンプトで次のコマンドを実行して,「CPQJ0102.984」ファイルを更新.

  9. HPQUSB.exe を使って USB メモリに BIOS 書き換えデータをコピー.
  10. LM110 に UBS を差して起動し,BIOS を更新.
    ここで,「Invalid values in header in file」と出る場合,チェックサムの不一致が発生しているので,再度チェックサム合わせからやり直します.
  11. 更新できたら,電源を OFF して CPU を IvyBridge に乗せ換えれば完了.電源 ON すれば IvyBridge が動いてくれます.

既知の問題

  • リセット後起動しません.一旦電源を落とす必要があります.

免責事項

ここで紹介した手順については,自己責任で利用願います.なんらかの不利益が生じたとしても一切責任は持てません.

参考文献

Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3A [キャッシュ]
microdata がどういうものなのか理解するため,「9.11 MICROCODE UPDATE FACILITIES」を参照しました.
Intel Processor Identification and the CPUID Instruction [キャッシュ]
IvyBridge に対応した microcode を特定するのに,「Table 5-4. Intel486 and Subsequent Processor Signatures」を参考にしました.
CPU World
使おうとしている CPU のステッピングを調べるのに参照しました.例えば,E3-1270 V2 の SR0P6 は E-1 stepping ということが分かります.
Pocket

, ,

12 thoughts on “IvyBridge on HP ProLiant ML110 G7
  • jacls より:

    すばらしい記事ありがとうございます。参考にさせていただきます!

  • Jokinawa より:

    Could you post a download link? I am worried that the instructions will be lost in Google translation and mess my ML110 G7 up. Thank you.

  • Jokinawa より:

    Could you post the checksum of your modified bios file? Thank you.

  • Lim より:

    すばらしい、ありがとうございます。
    しかし、BIOSの更新をしたら、PCI-e slot 1,slot 2 が使えなくなりました。
    PCI-e slot 3,slot 4は使えます。
    そんなことありませんか?

    • Kim より:

      It looks like that same thing happened to me. It booted successfully using E3-1230 V2, but can’t access a card at slot 2. Have you found a solution for it?

  • msnb より:

    オリジナルBIOSのマイクロコードは206A5と206A7が入っているようなので、206A7を残して206A5を306A9に置き換えればSandyもIvyも動くような気がするのですがどうでしょう?
    それと、チェックサム合わせはマイクロコード置換した直後のアドレスのFFを必要なだけ00にするのと、ASCII文字部分をHALからIBMみたいにいじるのだったらどっちが低リスクかな。
    リダンダントBIOSがあるとはいえ、ビビッてますw

  • Vishal Shinde より:

    Hi Kimata,

    I am trying to do the same stuff on HP-DL120 G7 to enable it to use the V2 processor untill now am unable to get success i would appreciate if you can provide me some help.If possible please share your mail id.

    Regards,
    Vishal Shinde

  • mrco より:

    Very helpful !

    Can you sent me your modified bios contain the microcode of E3-1230 V2?

    (The latest version Bios will be much exciting for me!)

    best wishes !

  • Quinn より:

    Does not work for me, I getting different results when I type the following A7 (or a7) at 00361800 0C

    01 00 00 00 28 00 00 00 12 20 24 04 A7 06 02 00 = ….(…. $.§…
    5D 93 E9 F3 01 00 00 00 12 00 00 00 D0 23 00 00 = ]”éó……..D#

    And so on, I cannot replicate the same. Is it possible that you could post/mail the files please?

    Many thanks.

    私は、次のA7を入力(またはA7)00361800℃でとき、私は別の結果を得る、私のために動作しません

    01 00 00 00 28 00 0000 12 20 24 04 A7060200=….(….$。§…
    5D93 E9 F30100000012000000 D0230000=]”EO…….. D#

    というように、私は同じを複製することはできません。それはあなたがファイルを/メールをください投稿できることは可能ですか?

    感謝します。

  • Umar Ranjha より:

    Hi There,

    Just wondering if you give me the link for the Modified Bios?

    THanks.

    Regards,

  • ひらの より:

    有益な情報をありがとうございます。
    …ですが、全体としての理屈と場所がハッキリしてないので、簡単には
    出来そうにないですね。

    最初の書き換え部分は、BIOSが認識出来るCPUIDとその名称、microcode
    へのポインター(?)のテーブルみたいですが、その後のmicrocodeの書き換え
    部分では、CPUID=206a7の部分を書き換え…と、なんだか、良く分かりません。
    最初のテーブル部分では、CPUID=306a0の部分を306a9に書き換えてるように
    思えるのですが…。詳細はまだ理解出来てないので、どうしてこうなるのか
    出来れば詳しく教えて頂きたいです。

    それと、

    -_ T S _ . . . . . . . . . S a n d y B r i d g e A – 0 .
    -5f 54 53 5f 03 19 a0 06 03 0f 00 00 00 53 61 6e 64 79 20 42 72 69 64 67 65 20 41 2d 30 00
    +_ T S _ . . . . . . . . . I v y B r i d g e D T E – 1 .
    +5f 54 53 5f 03 19 a9 06 04 0f 00 00 00 49 76 79 42 72 69 64 67 65 20 44 54 20 45 2d 31 00

    この部分ですが、下の行の7Byte目からは、a9 06 03 (IvyBridge CPUID) じゃないでしょうか?

    • ひらの より:

      すみません、
      このバージョンのBIOSの場合には、CRCの位置だけ間違わなければ、
      という条件付きなら、簡単に出来ます。

      ですが、現在、新BIOSパッチ(2013.07.01A)になっており、アドレスの
      変更が必要になるため、適用には詳細な理由が分かってないと、不可能の為
      コメント致しました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です