Firmware PSP Publik AMD Gagal Mem-boot Prosesor Turin, Memaksa Developer Menggunakan Kunci Pra-Produksi

Tim Komunitas BigGo
Firmware PSP Publik AMD Gagal Mem-boot Prosesor Turin, Memaksa Developer Menggunakan Kunci Pra-Produksi

Komunitas firmware open-source telah menemukan hambatan signifikan dalam mengembangkan solusi BIOS alternatif untuk prosesor server Turin terbaru AMD . Meskipun AMD menerbitkan apa yang seharusnya menjadi set lengkap firmware blobs Platform Security Processor ( PSP ) yang diperlukan untuk inisialisasi sistem, komponen publik ini tidak cukup untuk benar-benar mem-boot perangkat keras.

Firmware Blobs Publik Menciptakan Sistem yang Tidak Dapat Di-boot

Engineer yang bekerja pada porting coreboot ke sistem Gigabyte MZ33-AR1 Turin menemukan bahwa PSP blobs yang tersedia secara publik dari AMD sama sekali tidak berfungsi. Ketika mencoba membuat image yang dapat di-boot menggunakan hanya komponen resmi ini, sistem gagal melakukan inisialisasi sepenuhnya. Akar masalahnya tampaknya terkait dengan verifikasi kunci kriptografi dalam struktur firmware PSP .

Analisis mengungkapkan bahwa blobs publik menggunakan AMD Root Key ID yang berbeda (0x00) dibandingkan dengan image vendor yang berfungsi (0x02). Root Key ini berfungsi sebagai fondasi untuk memverifikasi semua komponen firmware PSP selama proses boot. Ketika kunci yang salah hadir, seluruh rantai kepercayaan gagal, mencegah CPU dilepaskan dari keadaan reset awalnya.

Komponen Firmware Utama:

  • Embedded Firmware Structure (EFS): Header file yang menunjukkan lokasi blob PSP
  • AMD Root Key: Kunci kriptografi utama untuk verifikasi blob PSP (ID 0x00 pada publik vs 0x02 pada vendor)
  • Direktori PSP: Sistem file yang berisi 30-50+ komponen firmware individual
  • Pelatihan memori: Proses inisialisasi 2+ menit pada setiap boot server AMD

Komunitas Menemukan Solusi Menggunakan Kunci Pra-Produksi

Terobosan terjadi ketika developer memperoleh akses ke paket Turin Pi AMD , yang berisi firmware blobs pra-produksi dengan kunci penandatanganan yang berbeda. Komponen-komponen ini berhasil mem-boot sistem, mengkonfirmasi bahwa perangkat keras dan implementasi coreboot berfungsi dengan benar ketika firmware yang tepat tersedia.

Ini bukan tentang konfigurasi tetapi lebih kepada kunci yang dibakar ke dalam silikon CPU yang digunakan untuk memverifikasi kunci yang digunakan dalam blobs dan tanda tangan dari blobs tersebut.

Penemuan ini telah memicu diskusi tentang ketersediaan firmware terbuka untuk sistem modern. Anggota komunitas mengekspresikan frustrasi bahwa bahkan dengan kerjasama AMD yang tampak dalam menerbitkan komponen firmware, kenyataannya adalah tiga megabyte kode yang tidak dapat diaudit masih tidak cukup untuk operasi sistem dasar.

Analisis Teknis Mengungkap Struktur Firmware yang Kompleks

Investigasi memerlukan reverse engineering ekstensif dari arsitektur firmware PSP AMD . Developer meningkatkan tool yang ada seperti amdtool dan PSPTool untuk mem-parse struktur firmware spesifik Turin dengan benar, mengungkap kompleksitas signifikan dalam bagaimana prosesor modern melakukan inisialisasi.

Firmware PSP terdiri dari beberapa tingkat direktori yang berisi puluhan komponen individual. Image BIOS vendor biasanya mencakup lebih dari 50 entri dalam direktori PSP mereka, dibandingkan dengan hanya 30-41 entri yang tersedia melalui saluran publik. Gap ini mewakili kode inisialisasi kritis yang tetap tidak tersedia untuk developer independen.

Memory training pada platform server AMD menambah lapisan kompleksitas lain, memerlukan waktu inisialisasi 2+ menit terlepas dari performa BIOS . Tidak seperti sistem Intel yang dapat melewati langkah inisialisasi tertentu untuk waktu boot yang lebih cepat, arsitektur AMD melakukan memory training penuh pada setiap cold boot.

Perbandingan Entri Direktori PSP:

  • Vendor BIOS: PSP1 (53 entri), PSP2 (48 entri), BIOSL1 (25 entri), BIOSL2 (54 entri)
  • Coreboot dengan blob publik: PSP1 (30 entri), PSP2 (41 entri), BIOSL1 (11 entri), BIOSL2 (19 entri)

Implikasi untuk Pengembangan Hardware Terbuka

Situasi ini menyoroti tantangan berkelanjutan dalam menciptakan solusi firmware yang benar-benar terbuka untuk perangkat keras server modern. Sementara AMD telah melakukan upaya untuk mendukung pengembangan firmware alternatif dengan menerbitkan PSP blobs, pembatasan kriptografi yang dibangun ke dalam silikon itu sendiri menciptakan hambatan yang tidak dapat diatasi melalui software saja.

Temuan ini menunjukkan bahwa firmware terbuka yang fungsional untuk prosesor Turin mungkin memerlukan baik blobs publik yang diperbarui dengan kunci penandatanganan yang benar dari AMD , atau akses ke komponen paket Turin Pi yang terbatas yang berfungsi dengan perangkat keras produksi.

Referensi: Analisis AMD PSP blob pada sistem Gigabyte MZ33-AR1 Turin