UEFIをめぐって多くの論争がありましたが、好むと好まざるとにかかわらず、一般に入手可能なデスクトップマザーボードに関しては、UEFIが唯一の選択肢になりつつあります。私はしばらくの間UEFImoboを避けてきましたが、moboベンダーがBIOS製品よりも多くの機能(つまり、より多くのRAMのサポート)を備えたUEFI製品を出荷するため、今では非常に困難になりました。そのことを念頭に置いて、将来的には少なくともオープンソースに移行するオプションがあることを確認したいと思います。そうでない場合は、機能は少なくても自由度が高くなります。
TianoCoreはIntelのUEFIインターフェースのオープンソース実装であり、 ウィキペディアはそれについてこれについて述べています :
TianoCoreには、チップセット関数を初期化する専用のドライバーがありません。これらのドライバーは、代わりにCorebootによって提供され、TianoCoreは多くのペイロードオプションの1つです。 Corebootの開発には、初期化ドライバーの開発に必要な仕様を提供するために、チップセットメーカーの協力が必要です。
私の質問は、corebootによって提供されるこれらのドライバーには、チップセットベンダーからのある種のバイナリブロブがまだ必要ですか?また、 Ronald G. Minnichはこう言っています EFIについて:
IDE I/Oアドレスまたは特定のメモリアドレスへのアクセスは、EFIコードにトラップされ、潜在的に検査、変更、または中止される可能性があります。多くの人がこれを「DRMBIOS」を構築するための取り組みと見なしています。
TianoCore + corebootセットアップで、ハードウェアベンダーが提供するオープンソースまたはバイナリファームウェアを実行できる可能性のあるパーツはありますか?
TianoCore + corebootは真のオープンソースUEFIですか?
Intelプラットフォームの場合(私はIntelボードの開発を行っており、AMDについて話すことはできませんが、ケースは同じだと思います)、いいえ。TianoCore自体は低レベルのハードウェア初期化を実行できず、このハードウェア初期化を最初に実行するにはcorebootが必要です。しかし、corebootはこれをどのように行いますか? corebootは、特定のバイナリblobを呼び出して、これらの機能を実行します。これらのバイナリブロブ(マイクロコードの更新、FSPバイナリ、MEバイナリなど)はどのように生成されますか?これらのバイナリはIntel独自のコードであるため、自分でビルドすることはできません。せいぜい、プラットフォームに関連するものを取得して、corebootビルドプロセスに含めることができます。これらのバイナリブロブのソースを自由かつオープンに変更できるようになるまで、真のオープンソースUEFIまたはコアブートはありません。
私の質問は、corebootによって提供されるこれらのドライバーには、チップセットベンダーからのある種のバイナリブロブがまだ必要ですか?
はい
出典:
経験
corebootソースコード
http://www.coreboot.org/TianoCore
インテルファームウェアサポートパッケージ(FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html
マイクロコードの更新(多くの場合、BIOSによって適用されますが、必須ではありません。)
https://wiki.debian.org/Microcode
Coreboot(ハードウェアの初期初期化を行う)とTianoCore(UEFI APIを提供する)を組み合わせて、完全なUEFIファームウェア実装にすることができます。ただし、それはまだ開発中です。また、外層がコアブートになるため、「正規の」UEFIにはなりません。
Duetに基づく1つのアプローチは、 http://notabs.org/coreboot/duet-payload/ -実際のハードウェアでいくらか起動します。
Tianoをより多く再利用し、UEFIアーキテクチャに近づこうとする別の(開示:私のプロジェクト)試みは、githubにあります: https://github.com/pgeorgi/edk2/ 。これは実際のハードウェアでのテストはまだ多くありません。Qemuだけです。
原則として、corebootコードを取得し、それらからtianocoreパッケージを作成することもできます。そのため、(ユーザーとOSに表示されるものだけでなく)あらゆる面でUEFIのように見えます。明らかに、coreboot開発者はそれにあまり興味がありません。
チップセットの初期化やその他の非常に低レベルのハードウェア固有のコードは、常にほとんどがクローズドソースでした。 BIOS/UEFIは、メモリコントローラーの初期化などの詳細がボードベンダーによってめったに開示されないという事実を変更しません。
真のオープンソースボードを入手するには、マザーボード上の各ハードウェアコンポーネントのすべての仕様を公開しているベンダーであるオープンソースハードウェアを探す必要があります。控えめに言っても、それを見つけるのは難しいです。