Intel Galileo BoardやKips Bayのファームウェア更新について

2014年1月22日追記

この記事は情報が古くなっています。ファームウェアの更新については「Intel Quark SoC X1000搭載ボード向けビルド&書き込みガイド」をご参照ください。

はじめに

この記事は「Intel Galileo Development Board(以下、Galileo)」や「Intel Quark SoC X1000(以下、SoC)」のリファレンスボード「Kips Bay(Kips Bay Fab C)」などのファームウェアの更新について調べたものを、自分のメモ用にまとめたものです。確証がない部分も含めてまとめただけであり、信頼性もそういうレベルですので、読まれる場合にはその点にご注意ください。

2014年1月15日追記:別の記事「Intel Quark SoC X1000搭載ボード向けビルド&書き込みガイド」にファームウェア(Linux OS)のビルドやボードへの書き込み方法などについてまとめました。

GalileoとKips Bayの差

リファレンスボードのKips Bayについては、緑色の基板のものを指すとあり、これが「Kips Bay Fab C(以下、これをKips Bayと呼ぶ)」に相当するようです。これとは別に「Kips Bay Fab D」とも呼ばれるものがありますが、これは青色の基板の「Galileo」を指すようです。それぞれには何らかの違いがあるようですが、プラットフォームIDが異なる以外の詳細は不明です。この2枚の基板は、外見上は色が異なることを除いて概ね同じ設計を採用しているように見えます。→2013年12月1日追記:別の記事「Intel Galileo(Fab D)とKips Bay Fab Cとの違い」に解説を追加しました。

以下にGalileoボードとKips Bay(正確には「KIPSBAY」とシルク印刷のある)ボードの写真を引用します(GalileoとKips Bayはシルク印刷を基準にして基板が180度回転しています):

Intel Galileo Development Board

Product Brief Intel® Galileo Boardより引用

Intel KIPSBAY G87173 203 VER 01 Arduino-Compatible

インテル、IoTで“次の勝ち組”になるための取り組みを説明PC Watch
Quark X1000搭載のリファレンスボードより引用

ファームウェアについて

ブートシーケンス

Galileo/Kips BayボードはUEFIを採用しています。このUEFIがSPI接続されたROM内のLinux(Yocto Project 1.4 – Poky 9.0.0を採用している模様)を起動する仕組みとなっています。Galileoは続いてArduino互換レイヤーが起動されて、Arduino互換の動作が開始されます。

Kips BayがArduino互換レイヤーを起動するかどうかは不明ですが、「ARDUINO COMPATIBLE」と基板にシルク印刷があることや起動しなければ互換にならないことを考えると、おそらくは起動しているのではないかと思われます。

  1. SoC内部のROMから起動(Secure Boot対応SKUのIntel Quark SoC X1000の搭載時に限る。それ以外のSKUでは本プロセスは省かれる)
  2. Legacy BridgeのSPI接続による外部FlashからUEFIを起動
  3. UEFIからOSを起動(micro SDカードに記録されたEFI System partition(ESP)領域からも起動できる)

なお、後述の資料にはMS-DOSなどのレガシーOSの起動はサポートしていない旨の記述があります。

ファームウェアのアップデート方法

Galileo用とIntel Quark SoC X1000関連ボード用のアップデートについて説明したPDFは以下のところからダウンロードできます:

  • [PDF/英語]Intel® Galileo Board Getting Started Guide

    Galileo用に、micro SDの指定ディレクトリーに指定ファイルを置いて、UEFI Intenal Shellから更新する方法について記載があります。ただし、独自にビルドを行う方法についての記載はなく、配布されたファイルを元に書き込む方法についてのみです。必要に応じて次項のIntel Quark SoC X1000ボード用のPDFを参照する必要があるでしょう。

  • [PDF/英語]Intel® Quark SoC X1000 Board Support Package (BSP) Build Guide

    GalileoおよびKips Bayなどのボードのファームウェアをアップデート方法の記載があり、UEFI Internal Shellから更新する方法とボード上のSPI Flashに直接プログラムを書き込む方法、それに独自にビルドをする方法の説明があります。

    ボード上のSPI Flashに直接プログラムを書き込む際にはDediprog社のSF100 – SPI Flash ISP Programmerを使用します(リンク先の価格表記は230ドル)。これについても記載がありますので、誤った領域に書き込んでUEFIをつぶさないようにしましょう。

    Galileo用のPDFとは異なり、SPI Flash用イメージファイルの作り方についても解説があります。基本的には各関連ボードでの作成方法は同じですが、一部は設定が異なる(例えばPlatform data file)ので注意が必要です。

    この資料にはMS-DOSなどのレガシーOSの起動をサポートしないと記載があります。

記載のある各種コードネーム

別記事の「Intel Quark関連コードネームまとめ」にまとめました。

単にmicro SDカードから起動する

micro SDカードに起動用のイメージと起動ファイルシステムのフルイメージなどを展開して所定の形式で書き込むと、それを起動することができます。ファームウェアを書き換えずに各種テストを行う場合にはこちらの手段を使用したほうが安全でしょう。

BIOS(CSM)は存在するか?

レガシーOSの起動をサポートしていない旨の記述があることや、ファームウェアのイメージ作成方法に関する説明を見る限り、GRUBなどもUEFIの流儀に合わせて設定を行っていることから、存在しないと考える方が妥当性が高そうに思います。このため、BIOSが必要なMS-DOSなどを実行するためには、そのためにBIOSとして動作するソフトウェアを別途用意する必要があるでしょう。

まとめ

一通り調べたことを簡単にまとめてみました。細かい部分については紹介したPDFを参照していただければと思います。

といったところで、適当にまとめてみましたが、いかがでしょうか?

なお、最初にも書きましたが実物が手元になく裏を取らずに書いていますので、信頼性のレベルはそれなりだということをお忘れなきようにお願いします。

2013年11月19日更新

Intel Quark関連コードネームまとめ」を作成し、その内容とこの記事の内容の整合性を取るために以下の変更を行いました:

  • Kips Bayは緑色の基板のKips Bay Fab Cのことを指す。
  • Kips Bay Fab Dは青色の基板のGalileoのことを指す。
  • 単にKips Bayと呼ぶ場合には緑色の基板のKips Bay Fab Cを指す。

また、これらの修正に合わせて各種記述を大幅に変更しました。

2013年11月26日更新

Secure SKUのIntel Quark SoC X1000を搭載すると明記されているのは「Cross Hill」だけであるため、Root of Trust関連の記述をいったん削除しました。

関連記事