Apakah TianoCore + coreboot UEFI open source sebenarnya?

12

Ada banyak kontroversi seputar UEFI, tetapi suka atau tidak, itu menjadi satu-satunya pilihan ketika datang ke motherboard desktop yang tersedia secara umum. Saya telah menghindari UEFI mobos selama beberapa waktu, tetapi sekarang menjadi sangat sulit karena vendor mobo mengirimkan produk UEFI dengan lebih banyak fitur daripada yang BIOS (yaitu dukungan untuk lebih banyak RAM). Itu dalam pikiran, saya ingin memastikan bahwa setidaknya ada opsi untuk menjadi open source di masa depan, dan jika tidak ada, saya dapat menanggung lebih sedikit fitur tetapi lebih banyak kebebasan.

TianoCore adalah implementasi open source antarmuka UEFI dari Intel dan Wikipedia mengatakan ini :

TianoCore tidak memiliki driver khusus yang menginisialisasi fungsi chipset, yang sebaliknya disediakan oleh Coreboot, di mana TianoCore adalah salah satu dari banyak opsi payload. Pengembangan Coreboot membutuhkan kerja sama dari produsen chipset untuk memberikan spesifikasi yang diperlukan untuk mengembangkan driver inisialisasi.

Pertanyaan saya adalah, apakah driver yang disediakan oleh coreboot ini masih memerlukan beberapa jenis binary blob dari vendor chipset? Juga, Ronald G. Minnich mengatakan ini tentang EFI:

Akses ke alamat I / O IDE, atau alamat memori tertentu, dapat terjebak ke kode EFI dan berpotensi diperiksa dan dimodifikasi atau dibatalkan. Banyak yang melihat ini sebagai upaya untuk membangun "DRM BIOS".

Dalam pengaturan TianoCore + coreboot, adakah bagian yang berpotensi melakukan open source atau firmware biner yang disediakan oleh vendor perangkat keras?

Merah
sumber

Jawaban:

4

Apakah TianoCore + coreboot UEFI open source sebenarnya?

Untuk platform Intel (saya telah melakukan pengembangan untuk papan Intel dan saya tidak dapat berbicara untuk AMD meskipun saya percaya kasusnya masih sama), tidak, karena TianoCore dengan sendirinya tidak dapat melakukan inisialisasi perangkat keras tingkat rendah dan memerlukan coreboot untuk melakukan init hardware ini terlebih dahulu. Tetapi bagaimana coreboot melakukan ini? coreboot memanggil gumpalan biner tertentu untuk melakukan fungsi-fungsi ini. Bagaimana gumpalan biner ini (mis. Pembaruan mikrokode, binari FSP, binari ME, dll) dihasilkan? Ya, Anda tidak dapat membuat biner-biner ini sendiri karena mereka adalah kode berpemilik Intel. Paling-paling, Anda dapat mengambil yang terkait dengan platform Anda dan memasukkannya ke dalam proses pembuatan coreboot. Sampai Anda dapat secara bebas dan terbuka memodifikasi sumber untuk gumpalan biner ini, Anda tidak akan memiliki UEFI open source asli atau coreboot dalam hal ini.

Pertanyaan saya adalah, apakah driver yang disediakan oleh coreboot ini masih memerlukan beberapa jenis binary blob dari vendor chipset?

iya nih

Sumber:

Pengalaman

kode sumber coreboot

http://www.coreboot.org/TianoCore

Paket Dukungan Intel Firmware (FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

Pembaruan Mikrokode (Sering diterapkan oleh BIOS tetapi tidak harus.)
Https://wiki.debian.org/Microcode

penguin4hire
sumber
2
Milind R membuat poin yang baik juga dalam perangkat keras terbuka merupakan persyaratan yang diperlukan.
penguin4hire
4

Dimungkinkan untuk menggabungkan coreboot (melakukan inisialisasi perangkat keras awal) dan TianoCore (menyediakan UEFI API) ke implementasi firmware UEFI yang lengkap. Namun itu masih dalam pengembangan. Ini juga tidak akan menjadi UEFI "kanonik" karena lapisan luar akan menjadi coreboot.

Satu pendekatan, berdasarkan Duet, dapat ditemukan di http://notabs.org/coreboot/duet-payload/ - ia melakukan booting sedikit pada perangkat keras nyata.

Upaya lain (pengungkapan: proyek saya) yang mencoba menggunakan kembali Tiano dan lebih dekat dengan arsitektur UEFI ada di github: https://github.com/pgeorgi/edk2/ . Yang ini belum melihat banyak pengujian pada perangkat keras nyata, hanya Qemu.

Pada prinsipnya itu juga bisa berfungsi untuk mengambil kode coreboot dan membuat paket tianocore dari mereka, sehingga terlihat dan terasa seperti UEFI di setiap aspek (bukan hanya yang terlihat oleh pengguna dan OS). Jelas pengembang coreboot tidak terlalu tertarik dengan hal itu.

Patrick Georgi
sumber
3

Inisialisasi chipset dan kode spesifik perangkat keras tingkat rendah lainnya selalu merupakan sumber tertutup. BIOS / UEFI tidak mengubah fakta bahwa detail inisialisasi pengontrol memori, dll. Jarang diungkapkan oleh vendor board.

Untuk memiliki papan sumber terbuka sejati, Anda harus mencari perangkat keras sumber terbuka, beberapa vendor yang memaparkan semua spesifikasi setiap komponen perangkat keras pada motherboard. Itu sulit ditemukan, untuk sedikitnya.

Milind R
sumber