RV64GC命令セットアーキテクチャを採用し,Physical Memory Protection(PMP)機能を有するSoCを搭載した,TEE-capableな開発ボード(シングルボードコンピュータ)を見つけた.
これがあればKeyStoneのようなRISC-VベースのTEEを(エミュレーションではなく)ネイティブ動作させることが可能であるようだ.
そこで,これを使ったベアメタルサーバの構築から,RISC-V TEEの動作検証までを,何回かに分けて適当にやっていく.本記事ではパーツ調達のみを行う.組み立てる時間と空間とMPが足りないため.
余談
初めての自作マシンがRISC-Vベアメタルサーバという稀有な体験をする羽目になった.なお,これの後継機であるPremier P550にはUbuntu 24.04がプリインストールされているらしいので,初心者も安心である.初心者はRISC-Vを触らないほうが良いのではないか.
こちらはHypervisor拡張の対応状況が進展しており,仮想化ベースTEE(つまりConfidential VM)も原理的には動かせるようになっているらしい.このあたりの事情は今後どこかで書くかも知れない.
パーツ調達
とりあえず部品を調達する.最低限,SBCとPSUとケーブルがあれば動くが,電子回路を裸のままにしておきたくないため,ケースなども調達する.
パーツリスト
| パーツ | 名称 | サプライヤー | 個数 |
|---|---|---|---|
| SBC | SiFive - HiFive Unmatched Rev B | Mouser Japan | 1 |
| ケース | Cooler Master - NR200P V2 | Amazon US | 1 |
| 電源ユニット | Cooler Master - V SFX ゴールド 750 ATX 3.1 MPY-7501-SFHAGV-3EJP | Amazon Japan | 1 |
| ファン(トップ) | 2 × Cooler Master - Mobius 120 | Amazon Japan | 2 |
| microSDカード | KIOXIA - EXCERIA G2 microSDメモリカード KLMEB128G | Amazon Japan | 1 |
| CR1220バッテリー | 日立マクセル - リチウムコイン電池 CR1220 | Amazon Japan | 1 |
コスト
参考までに2026年7月中旬での調達価格を開示しておく.
SBCはMouser Japanで54630円(関税・送料等込・MSRP 299USD),ケースは29642円,PSUは18760円,microSDカードは5700円である.その他のパーツも合わせて11万円程度である.
HiFive Unmatched Rev Bは性能の割にかなり高額である.同価格帯のSBCと比べると性能面では劣後している.
-
Raspberry Pi 5 - 16GB
- CPU: Broadcom BCM271 - 4-core Arm Cortex-A76 (2.4 GHz, 512KB/core L2, 2MB L3)
- DRAM: 16 GB LPDDR4X-4267
-
Jetson Orin Nano Super 開発者キット
- CPU: 6-core Arm Cortex-A78AE v8.2 (1.7GHz, 1.5MB L2, 4MB L3)
- GPU: NVIDIA Ampere 1024 CUDA cores / 32 tensor cores
- DRAM: 8 GB 128-bit LPDDR5 102GB/s
- 特記事項: 消費電力7–25Wの省電力である.付属するACアダプター(センタープラス)でキャリアボードに19VDC電源を供給すれば動く.高額なPSUを必要としない
- メモ: 記事執筆中にMSRPが大幅に上昇した(249USD→399USD).しかしそれでもなおSFX PSUが不要であることなどを勘案すると安い
もっとも,PMPに対応したRISC-Vプロセッサを搭載したTEE-capableなSBCとなると,他に選択肢は殆どない.
SBCのフォームファクタはMini-ITXである.これがパーツ調達価格に大きな影響を与えている.通常のデスクトップPCに使われるATX PSUではなく,小型PC用のSFX PSUが必要となるのだが,価格が下手すると2倍以上になる.
SBC: SiFive - HiFive Unmatched Rev B
| Spec | Description |
|---|---|
| Form Factor | Mini-ITX |
| SoC | 1 × SiFive Freedom U740-C000 SoC (1.0–1.5 GHz) |
| Memory | 1 × 16GB on-board DDR4 (64-bit 1866 MT/s) |
| Flash Memory | 1 × 32MB QSPI |
| Removable Storage | 1 × microSD |
| 電源コネクタ | 1 × ATX 24 PIN |
| 外部ファンコネクタ | 2 × 12VDC 3-pin |
| RTC電源 | 1 × CR1220 |
| M.2コネクタ | 1 × M.2 Key E for Wifi/Bluetooth 1 × M.2 Key M for NVMe SSD |
| PCIeコネクタ | 1 × PCIe Gen3 x16 |
| SoC Monitor Core Spec | Description |
|---|---|
| Name | Embedded 64-bit SiFive S7 Core |
| ISA | RV64IMAC |
| Parallelism | dual-issue, in-order |
| Modes | Machine, User |
| L1 (inst.) | 16 KiB (2-way) |
| L2 | 2 MiB (16-way, 4 banks) |
| PMP | 8 regions with a 64-byte granularity |
| SoC App Core Spec | Description |
|---|---|
| Name | Quad-core 64-bit SiFive U74 |
| ISA | RV64GC (RV64IMAFDC) |
| Parallelism | dual-issue, in-order |
| Modes | Machine, Supervisor, and User |
| L1 (inst.) | 32 KiB (4-way) |
| L1 (data) | 32 KiB (8-way) |
| L2 | 2 MiB (16-way, 4 banks) |
| PMP | 8 regions with a 4096-byte granularity |
| MMU | Sv39 |
要件
- 電源 — ATX or SFX with min. 150W
- 空冷 — SBCを通り抜ける形でmin. 450 LFM
推奨
- microSD — Application Performance Class A1
- Class A2のmicroSDを使用した際にエラー及びクラッシュが報告されている
SBC付属品
- 32GB SD Card
- SiFive Freedom-U-SDK Linux Distributionが同梱されている
- M.2用スクリュー・ワッシャー
- シャーシマウント用スクリュー・スペーサ
- Cat5eイーサネットケーブル(2m)
- ネットワーク接続する場合に使う
- USB Type A to micro Bケーブル(1.5m)
- ホストマシンからSBCのシリアルコンソールへのアクセスに使う
- 説明書等
ケース: Cooler Master - NR200P V2
- マザーボード規格: Mini-ITX max. 170mm × 180mm
- 容量: 18.25 L
- PSUクリアランス: SFX
- 対応ファン(トップ): 2 × [120mm or 140mm]
-
対応ファン(ボトム): 2 × 120mm
- プリインストール: 1 x Cooler Master SickleFlow 120mm (4-pin 12VDC PWM)
電源ユニット: Cooler Master - V SFX ゴールド 750 ATX 3.1
- 電源容量: 750W
- サイズ: 100mm L x 125mm W x 63.5 mm H
- ATX 24 PIN コネクタ: 有
ファン(ボトム): Cooler Master - Mobius 120
- 直径: 120mm
- ファン速度: 0-2050 RPM ±10%
- ファン風量: 63.1 CFM
- 電源: 4-pin 12VDC PWM(3-pinとして使用)
microSDカード: KIOXIA - EXCERIA G2 128GB
- 容量: 128GB
- max write: 50MB/s
- max read: 100MB/s
- Application Performance Class: A1
References
- HiFive Unmatched Rev B Product Brief. https://www.sifive.com/document-file/hifive-unmatched-revb-product-brief
- HiFive Unmatched Rev B Datasheet. https://www.sifive.com/document-file/hifive-unmatched-revb-datasheet
- SiFive HiFive Unmatched RevB Getting Started Guide, v1p6. English Japanese
- HiFive Unmatched Software Reference Manual, Version 1.1. https://www.sifive.com/document-file/hifive-unmatched-software-reference-manual
- SiFive FU740-C000 Manual, v1p7. https://www.sifive.com/document-file/freedom-u740-c000-manual
- Keystone Official Page. https://keystone-enclave.org/
- Keystone Enclave's documentation. https://docs.keystone-enclave.org/en/latest/index.html
- Keystone: An Open-Source Secure Enclave Framework for RISC-V Processors. https://github.com/keystone-enclave/keystone
- Dayeol Lee, David Kohlbrenner, Shweta Shinde, Krste Asanović, and Dawn Song. 2020. Keystone: an open framework for architecting trusted execution environments. In Proceedings of the Fifteenth European Conference on Computer Systems (EuroSys '20). Association for Computing Machinery, New York, NY, USA, Article 38, 1–16. https://doi.org/10.1145/3342195.3387532 https://arxiv.org/abs/1907.10119