Intel Galileo BoardとQuarkに関するまとめ(勝手にFAQ)

はじめに

先週末からいろいろと書いてきたIntel Galileo Board、Intel Quark SoC X1000、Intel Quark Coreに関する情報のまとめとして、勝手に想定するFAQを書いてみたいとおもいます。

勝手にFAQ

Intel Quark Core関係

詳細については「Intel Quark Core自体の仕様(コードネームはLakemont Core?)」を参照ください。

プロセッサーコアは何を採用していますか?

Intel DX4(あるいはIntel 486DX4とも呼ばれる)を元に、現在のOSやアプリケーションを動作させるために必要な拡張を行ったプロセッサーコアIPを採用しています。

主な変更点は以下の通りです:

  • Pentium 4(Prescott)で採用されたXD(eXecute Disable)ビットとCore iシリーズ(Ivy Bridge)で導入されたSMEP(Supervisor Mode Execution Protection)に対応するために、アドレスは32ビットのままPAE(Physical Address Extension)に対応している。
  • Pentium(P54C)と互換の命令セット(ISA)を採用している。

EE Timesの記事にアウトオブオーダーって書いてありましたが?

その記事は誤りで、Intel Quark SoC X1000に統合されているシステムメモリコントローラーのアウトオブオーダーを混同したものだと思われます。

クロック周波数はどのくらいですか?

Intel Quark SoC X1000では最大400MHzです。Intel Quark Coreの設計としては最大533MHzまでのフルレンジ対応です。

命令セット(ISA)は何ですか?

Pentium(P54C)互換です。MMXのサポートはありません。

外部キャッシュの追加はできますか?

可能です(ただし、Intel Quark SoC X1000はできません)。

キャッシュはライトバック対応ですか?

標準では対応していません。ライトバックはライトバックオプションを選択することでサポートされます。

Intel Quark SoC X1000関係

詳細については「Intel Quark SoC X1000自体の仕様」を参照ください。

このSoCに含まれる要素には何がありますか?

CPUコアシステムメモリコントローラー組み込みSRAMパワーマネジメントコントローラーセキュリティ用ブートROMPCI Expressコントローラー100BASE-TX/10BASE-T Ethernetコントローラー(論理)USB 2.0ホストコントローラーUSB 2.0デバイスコントローラーSD/SDIO/eMMCコントローラーI²CマスターコントローラーGPIOSPIマスターコントローラーUARTコントローラーレガシーブリッジが集積されています。

使用できるメモリはなんですか?

標準8ビットDDR3 800MT/sで、1、2、4ギガビットのものを最大2ランク、16ビット幅で接続できます。

最大でどのくらいDDR3メモリを詰めますか?

2ギガバイトです。

内訳は8ビット幅の4ギガビット(512メガバイト)のメモリを16ビット分(2枚)、2ランクで接続、すなわち、512メガバイト×2×2=2048メガバイト=2ギガバイトです。

メモリマップはどのようになっていますか?

IBM PC/AT互換です。

I/Oマップはどのようになっていますか?

IBM PC/AT互換です。

割り込み割り当てはどのようになっていますか?

IBM PC/AT互換です。

I/Oレベルは何ボルトですか?

3.3V(CMOS3.3)です。

Intel Galileo Board関係

詳細については「Intel Quark SoC X1000搭載Intel Galileo Boardを発表」を参照ください。

このボードはなんですか?

Arduino互換のマイコンボードです。Sketchと呼ばれるユーザーアプリケーションの実行やShieldと呼ばれる外部機器を制御することができます。

価格はいくらですか?

2013年10月9日現在決定はしていませんが、アメリカでは60ドル以下の予定です。日本では7000円前後で販売される予定です。

発売はいつごろですか?

アメリカでは2013年11月29日くらいから取り扱うディストリビューター経由で提供される予定です。日本では2013年12月中旬より販売される予定でしたが2014年1月中旬に延期されました。

OSはなんですか?

Linux(Yocto ProjectのPoky 9.0系)がファームウェアROMに内蔵されています。ジャック型のシリアルポートを通じて外部機器(例えばパソコン)からコマンドを実行できます。また、Galileo専用のSDカード用ブートイメージがIntelから提供され、それを使用すればさらに多くのコマンドを使用できます。

必要に応じて独自にLinuxをビルドして使用することも可能です。

SketchからはArduinoエミュレーション層のArduino I/O AdapterというインターフェースからLinuxへアクセスする形を取っています。

ファームウェアの更新方法やビルドの方法については別の記事「Intel Quark SoC X1000 BSP Rel 1.0.0 ビルド&ソフトウェア ユーザーガイド」にまとめました。

最初にすべきことはなんですか?

ファームウェアをArudino IDEを使用して更新するか、あるいはIntelがバイナリー形式で配布しているものを使用して更新する必要があります。初期状態のファームウェアではmicroSDメモリーカードからのブートが行えなかったり、一部の機能が正常に動作しないなどの制限があります。

Linuxのclocksourceは何を使っていますか?

HPETです。

このボードでWindowsやMS-DOSは動きますか?

Intel Galileo BoardはMS-DOSなどのレガシーOSの起動をサポートしない仕様です。

以下、利用者の側で何らかの方法で使用するとした場合です:

MS-DOSにはBIOSが必要ですが、Intel Galileo BoardはUEFIのため、BIOSに相当するプログラムが別途必要になるでしょう。※1※2

Windowsの場合にもMS-DOSと同様にBIOSが必要です。※3また、Intel Quark SoC X1000に対応する各種ドライバーおよびINFファイルを用意する必要があるため、MS-DOSよりも困難でしょう。

ファームウェアROMのサイズはどのくらいですか?

8メガバイトです。

RAMはどのくらい載っていますか?

DDR3 DRAMが256メガバイトと、このDRAMなどのアドレス空間にマッピングあるいは別のブロックとして使用できる低レイテンシーSRAMがIntel Quark SoC X1000内部に512キロバイト集積されています。

ストレージは何がありますか?

SketchがファームウェアROMの中の256~512キロバイトを占有して使用することができます。これとは別にmicro SDカード(32ギガバイトまで)、USB 2.0互換外部ストレージを使用することができます。

再起動するとSketchが消えてしまうようですが?

Sketchが消えないようにするためには、microSDメモリーカードを使用します。microSDメモリーカードにIntelが提供するLinuxイメージを書き込んでIntel Galileo Boardを起動するとSketchなどが維持されるようになります。詳しくは「microSDメモリーカードに書き込んだLinuxを起動させる」を参照ください。

専用のシリアル・ケーブル(あるいはシリアル変換ケーブル)がないと困ることはありますか?

以下の操作あるいは表示が行えません:

  • UEFIに対する操作ができません。
  • GRUBに対する操作ができません。
  • 起動時のブートログを見ることができません。

Intel Galileo Board標準のLinuxで日時を設定するにはどうしたらいいですか?

以下のようにdateコマンドで指定します:

date 月日時分年.秒

月 = 2桁
日 = 2桁
時 = 2桁
分 = 2桁
年 = 西暦4桁
秒 = 2桁

2013年12月22日22時48分00秒を指定する例を以下に示します(強調部分が入力する部分です):

root@clanton:~# date 122222482013.00
Sun Dec 22 22:48:00 UTC 2013

続いて以下のコマンドを実行します:

root@clanton:~# hwclock --systohc

Intel Galileo Boardなどでrebootコマンドで正常にリブートできません

Intel Galileo BoardなどのSKU4 (Non-Secure) SoC搭載ボードにおいて、デフォルトでボードに搭載されているLinuxで正常にrebootコマンドが動作しないことがあります。このような症状が出る場合には、以下の2通りの方法で回避できます:

  • ブート対象のboot/grub/grub.confファイル内のreboot=efi,warmと記述のある部分を削除することで対応できます(※USBメモリーあるいはmicroSDメモリーカードに書き込まれた標準Linuxである必要があります)。
  • 起動時にGRUBの表示が行われているときに起動対象を選択してEキーを押し、さらにカーネルの設定を選択してEキーを押して編集状態にし、reboot=efi,warmという記述を削除してENTERキーを押して確定し、Bキーを押して起動することでも対応可能です(※要シリアル・ケーブルあるいはシリアル変換ケーブルによる接続)。この変更は保存されないので毎回行う必要があります。※4

まとめ

いろいろと書いてきましたが、とりあえず、書くべきことはこれで書いたかな、と思います。今後は新しい情報やIntel Galileo Boardの発売を楽しみに待ちたいと思います。

※内容については注意を払っていますが、何ら保証するものではありません。

2013年12月1日変更

  • 従来は記事内に変更前の内容を残したうえで直接日付と変更内容を加えていましたが、そういう部分が増えて読みづらくなったので、この際古い記述はすっぱり削除して新しいもののみに置き換えました。

2014年1月9日変更

  • SMEP(Supervisor Mode Execution Protection)に関する記述を追加しました。

2014年1月31日変更

  • Sketchを維持する方法を追加しました
  • シリアル・ケーブル(あるいはシリアル変換ケーブル)がないとできないことを追加しました。

2014年2月4日変更

  • 標準Linuxで日時を設定する方法を追記しました。
  • 標準Linuxでrebootコマンドが正常に動作しない場合の対応を追記しました。

2014年3月21日変更

  • 日時を設定する方法にRTCへの書き込みコマンドが抜けていたので記述を追加しました。

2014年3月27日変更

  • Intel Galileo BoardにはCSMが存在しないことを明記しました。
  • Windows 8以降はIntel Quark Coreでは実行できないことを明記しました。

2014年5月5日変更

  • LinuxのclocksourceがHPETであることを追記しました。

関連記事


  • 一度Linuxを起動してから、それをローダーとして起動させるのが近道だろうとは思いますが、実現には手間がかかるでしょう。
  • UEFIとBIOSは全く別のファームウェアです。UEFIは後方互換のためにオプションでBIOS相当の機能を提供するCSMが存在しますが、Intel Galileo Boardでは提供されていません。
  • Intel Quark Coreでは実行できないWindows 8以降を除くとUEFIに対応しているWindowsは64ビット版のみですが、Intel Quark SoC X1000は32ビットのため、Windowsも32ビットの必要があり、このためBIOSが必要となるわけです。なお、Intel Galileo Board標準のファームウェアはUEFIから同じファームウェア内のGRUBを自動起動する専用設計となっているため、外部のUEFI対応プログラムを自動的に直接起動することはできません。
  • ファームウェアを独自に変更する場合を除く。
このエントリーをはてなブックマークに追加