Mikrosemi-LGOO

Booting dan Konfigurasi Microchip UG0881 PolarFire SoC FPGA

Microchip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-produk

Jaminan

Microsemi tidak memberikan jaminan, pernyataan, atau jaminan mengenai informasi yang terkandung di sini atau kesesuaian produk dan layanannya untuk tujuan tertentu, dan Microsemi juga tidak bertanggung jawab apa pun yang timbul dari penerapan atau penggunaan produk atau sirkuit apa pun. Produk yang dijual di sini dan produk lain yang dijual oleh Microsemi telah menjalani pengujian terbatas dan tidak boleh digunakan bersama dengan peralatan atau aplikasi yang sangat penting. Spesifikasi kinerja apa pun diyakini dapat diandalkan namun tidak diverifikasi, dan Pembeli harus melakukan dan menyelesaikan semua kinerja dan pengujian produk lainnya, sendiri dan bersama-sama dengan, atau dipasang di, produk akhir apa pun. Pembeli tidak boleh bergantung pada data dan spesifikasi kinerja atau parameter apa pun yang disediakan oleh Microsemi. Merupakan tanggung jawab Pembeli untuk secara independen menentukan kesesuaian produk apa pun dan untuk menguji serta memverifikasi produk tersebut. Informasi yang diberikan oleh Microsemi berdasarkan perjanjian ini disediakan “sebagaimana adanya, di mana adanya” dan dengan segala kesalahannya, dan seluruh risiko yang terkait dengan informasi tersebut sepenuhnya menjadi tanggung jawab Pembeli. Microsemi tidak memberikan, secara eksplisit atau implisit, kepada pihak mana pun hak paten, lisensi, atau hak kekayaan intelektual lainnya, baik yang berkaitan dengan informasi itu sendiri atau apa pun yang dijelaskan dalam informasi tersebut. Informasi yang diberikan dalam dokumen ini adalah hak milik Microsemi, dan Microsemi berhak membuat perubahan apa pun terhadap informasi dalam dokumen ini atau pada produk dan layanan apa pun kapan saja tanpa pemberitahuan.

Tentang Mikrosemi

Microsemi, anak perusahaan yang sepenuhnya dimiliki oleh Microchip Technology Inc. (Nasdaq: MCHP), menawarkan portofolio komprehensif semikonduktor dan solusi sistem untuk kedirgantaraan & pertahanan, komunikasi, pusat data, dan pasar industri. Produk meliputi sirkuit terpadu sinyal campuran analog berkinerja tinggi dan dikeraskan radiasi, FPGA, SoC, dan ASIC; produk manajemen daya; perangkat waktu dan sinkronisasi dan solusi waktu yang tepat, menetapkan standar waktu dunia; perangkat pengolah suara; solusi RF; komponen diskrit; solusi penyimpanan dan komunikasi perusahaan, teknologi keamanan, dan anti-t yang dapat diskalakanampeh produk; solusi Ethernet; IC Power-over-Ethernet dan bentang tengah; serta kemampuan dan layanan desain khusus. Pelajari lebih lanjut di www.microsemi.com.

Booting Dan Konfigurasi

PolarFire SoC FPGA menggunakan sirkuit penyalaan canggih untuk memastikan penyalaan yang andal saat penyalaan dan pengaturan ulang. Saat penyalaan dan pengaturan ulang, urutan boot-up PolarFire SoC FPGA mengikuti Power-on reset (POR), Boot perangkat, Inisialisasi desain, pra-boot Subsistem Mikrokontroler (MSS), dan boot pengguna MSS. Dokumen ini menjelaskan pra-boot MSS dan Boot Pengguna MSS. Untuk informasi tentang POR, Boot Perangkat, dan inisialisasi Desain, lihat UG0890: PolarFire SoC FPGA Power-Up dan Reset Panduan Pengguna.
Untuk informasi lebih lanjut tentang fitur MSS, lihat UG0880: Panduan Pengguna MSS SoC PolarFire.

Urutan Booting
Urutan boot-up dimulai ketika SoC FPGA PolarFire dinyalakan atau diatur ulang. Itu berakhir ketika prosesor siap untuk mengeksekusi program aplikasi. Urutan booting ini berjalan melalui beberapa detiktages sebelum memulai eksekusi program.
Serangkaian operasi dilakukan selama proses Boot-up yang mencakup pengaturan ulang perangkat keras, inisialisasi periferal, inisialisasi memori, dan memuat aplikasi yang ditentukan pengguna dari memori non-volatil ke memori volatil untuk dieksekusi.

Gambar berikut menunjukkan tahapan berbeda dari urutan Boot-up.

Gambar 1  Urutan BootingMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 1

MSS Pra-Boot

Setelah berhasil menyelesaikan Inisialisasi Desain, Pra-boot MSS memulai eksekusinya. MSS dilepaskan dari reset setelah selesainya semua prosedur startup normal. Pengontrol sistem mengelola pemrograman, inisialisasi, dan konfigurasi perangkat. Pra-boot MSS tidak terjadi jika perangkat yang diprogram dikonfigurasi untuk mode penangguhan pengontrol sistem.
Fase inisialisasi pra-boot MSS dikoordinasikan oleh firmware pengontrol sistem, meskipun dapat menggunakan E51 di Kompleks Inti MSS untuk menjalankan bagian tertentu dari urutan pra-boot.
Peristiwa berikut ini terjadi selama pra-boot MSStage:

  • Penguatan MSS yang tertanam Memori Non-Volatile (eNVM)
  • Inisialisasi perbaikan redundansi yang terkait dengan cache MSS Core Complex L2
  • Otentikasi kode boot Pengguna (jika opsi boot Aman Pengguna diaktifkan)
  • Serahkan MSS operasional ke kode Boot Pengguna

MSS Core Complex dapat di-boot dalam salah satu dari empat mode. Tabel berikut mencantumkan opsi pra-boot MSS, yang dapat dikonfigurasi dan diprogram ke dalam sNVM. Mode boot ditentukan oleh parameter pengguna U_MSS_BOOTMODE[1:0]. Data konfigurasi boot tambahan bergantung pada mode dan ditentukan oleh parameter pengguna U_MSS_BOOTCFG (lihat Tabel 3, halaman 4 dan Tabel 5, halaman 6).

Tabel 1 • Mode Boot Kompleks Inti MSS

U_MSS_BOOTMODE[1:0] Mode Keterangan
0 Booting menganggur MSS Core Complex melakukan booting dari boot ROM jika MSS tidak dikonfigurasi
1 Booting tidak aman MSS Core Complex melakukan booting langsung dari alamat yang ditentukan oleh U_MSS_BOOTADDR
2 Boot aman pengguna MSS Core Complex melakukan booting dari sNVM
3 Boot aman dari pabrik MSS Core Complex melakukan booting menggunakan protokol boot aman pabrik

Opsi boot dipilih sebagai bagian dari aliran desain Libero. Mengubah mode hanya dapat dicapai melalui pembuatan pemrograman FPGA baru file.

Gambar 2 • Alur Pra-boot MSS Microchip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 2

Booting Menganggur

Jika MSS tidak dikonfigurasi (misalnyaample, perangkat kosong), kemudian MSS Core Complex menjalankan program boot ROM yang menahan semua prosesor dalam loop tak terbatas hingga debugger terhubung ke target. Register vektor boot mempertahankan nilainya hingga perangkat direset atau konfigurasi mode boot baru diprogram. Untuk perangkat yang dikonfigurasi, mode ini dapat diterapkan menggunakan
U_MSS_BOOTMODE=0 opsi booting di konfigurator Libero.

Catatan: Dalam mode ini, U_MSS_BOOTCFG tidak digunakan.

Gambar berikut menunjukkan alur boot Idle.
Gambar 3 • Aliran Boot MenganggurMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 3

Booting Tidak Aman

Dalam mode ini, MSS Core Complex dijalankan dari alamat eNVM tertentu tanpa autentikasi. Ini memberikan opsi boot tercepat, tetapi tidak ada otentikasi gambar kode. Alamat dapat ditentukan dengan mengatur U_MSS_BOOTADDR di Libero Configurator. Mode ini juga dapat digunakan untuk melakukan booting dari sumber daya memori FPGA Fabric mana pun melalui FIC. Mode ini diimplementasikan menggunakan
U_MSS_BOOTMODE=1 opsi booting.
Kompleks Inti MSS dilepaskan dari pengaturan ulang dengan vektor boot yang ditentukan oleh U_MSS_BOOTCFG (seperti yang tercantum dalam tabel berikut).

Tabel 2 • Penggunaan U_MSS_BOOTCFG dalam Mode Boot Tidak Aman 1

Offset (byte)  

Ukuran (bytes)

 

Nama

 

Keterangan

0 4 BOOTVEC0 Vektor boot untuk E51
4 4 BOOTVEC1 Vektor boot untuk U540
8 4 BOOTVEC2 Vektor boot untuk U541
16 4 BOOTVEC3 Vektor boot untuk U542
20 4 BOOTVEC4 Vektor boot untuk U543

Gambar berikut menunjukkan alur boot tidak aman.
Gambar 4 • Aliran Booting Tidak AmanMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 4

Boot Aman Pengguna
Mode ini memungkinkan pengguna untuk mengimplementasikan boot aman khusus mereka sendiri dan kode boot aman pengguna ditempatkan di sNVM. sNVM adalah memori non-volatil 56 KB yang dapat dilindungi oleh Fungsi Fisik yang Tidak Dapat Dikloning (PUF) bawaan. Metode booting ini dianggap aman karena halaman sNVM yang ditandai sebagai ROM tidak dapat diubah. Saat dinyalakan, pengontrol sistem menyalin kode boot aman pengguna dari sNVM ke Data Tightly Integrated Memory (DTIM) dari inti Monitor E51. E51 mulai mengeksekusi kode boot aman pengguna.
Jika ukuran kode boot aman pengguna lebih besar dari ukuran DTIM maka pengguna perlu membagi kode boot menjadi dua.tagyaitu. sNVM mungkin berisi s berikutnyatage dari urutan boot pengguna, yang dapat melakukan otentikasi pada boot berikutnyatage menggunakan algoritma otentikasi/dekripsi pengguna.
Jika halaman yang diautentikasi atau dienkripsi digunakan maka kunci USK yang sama (yaitu,
U_MSS_BOOT_SNVM_USK) harus digunakan untuk semua halaman yang diautentikasi/terenkripsi.
Jika otentikasi gagal, MSS Core Complex dapat diatur ulang dan BOOT_FAIL tampeh bendera bisa dikibarkan. Mode ini diimplementasikan menggunakan opsi boot U_MSS_BOOTMODE=2.

Tabel 3 •  Penggunaan U_MSS_BOOTCFG di Boot Aman Pengguna

Offset (byte) Ukuran (bytes) Nama Keterangan
0 1 U_MSS_BOOT_SNVM_PAGE Halaman awal di SNVM
1 3 DISIMPAN Untuk penyelarasan
4 12 U_MSS_BOOT_SNVM_USK Untuk halaman yang diautentikasi/terenkripsi

Gambar berikut menunjukkan alur boot aman pengguna.
Gambar 5 • Alur Boot Aman PenggunaMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 5

Boot Aman Pabrik
Dalam mode ini, pengontrol sistem membaca Secure Boot Image Certificate (SBIC) dari eNVM dan memvalidasi SBIC. Jika validasi berhasil, Pengontrol Sistem menyalin kode boot aman pabrik dari area memori pribadinya yang aman dan memuatnya ke DTIM inti Monitor E51. Boot aman default melakukan pemeriksaan tanda tangan pada image eNVM menggunakan SBIC yang disimpan di eNVM. Jika tidak ada kesalahan yang dilaporkan, reset dilepaskan ke MSS Core Complex. Jika kesalahan dilaporkan, MSS Core Complex ditempatkan di reset dan BOOT_FAIL tampeh bendera dikibarkan. Kemudian, pengontrol sistem aktif diamper flag yang menegaskan sinyal ke struktur FPGA untuk tindakan pengguna. Mode ini diimplementasikan menggunakan opsi boot U_MSS_BOOTMODE=3.

SBIC berisi alamat, ukuran, hash, dan tanda tangan Elliptic Curve Digital Signature Algorithm (ECDSA) dari gumpalan biner yang dilindungi. ECDSA menawarkan varian Algoritma Tanda Tangan Digital yang menggunakan kriptografi kurva elips. Ini juga berisi vektor reset untuk setiap Perangkat Keras
thread/inti/inti prosesor (Hart) dalam sistem.

Tabel 4 •  Sertifikat Gambar Boot Aman (SBIC)

Mengimbangi Ukuran (bytes) Nilai Keterangan
0 4 IMAGEADDR Alamat UBL di peta memori MSS
4 4 GAMBAR Ukuran UBL dalam byte
8 4 BOOTVEC0 Boot vektor di UBL untuk E51
12 4 BOOTVEC1 Boot vektor di UBL untuk U540
16 4 BOOTVEC2 Boot vektor di UBL untuk U541
20 4 BOOTVEC3 Boot vektor di UBL untuk U542
24 4 BOOTVEC4 Boot vektor di UBL untuk U543
28 1 OPSI[7:0] Opsi SBIC
28 3 DISIMPAN  
32 8 VERSI SBIC/Versi Gambar
40 16 DSN Pengikatan DSN opsional
56 48 H Gambar UBL hash SHA-384
104 104 KODESIG Tanda tangan ECDSA berkode DER
Total 208 Byte adalah satu-satunya kata yang digunakan dalam bahasa Inggris.  

DSN
Jika bidang DSN bukan nol, bidang tersebut dibandingkan dengan nomor seri perangkat itu sendiri. Jika perbandingan gagal, maka boot_fail tamper flag disetel dan otentikasi dibatalkan.

VERSI
Jika pencabutan SBIC diaktifkan oleh U_MSS_REVOCATION_ENABLE, SBIC ditolak kecuali nilai VERSION lebih besar atau sama dengan ambang pencabutan.

OPSI PENCABUTAN SBIC
Jika pencabutan SBIC diaktifkan oleh U_MSS_REVOCATION_ENABLE dan OPTIONS[0] adalah '1', semua versi SBIC kurang dari VERSION akan dicabut setelah otentikasi SBIC lengkap. Ambang pencabutan tetap pada nilai baru hingga bertambah lagi sebesar SBIC mendatang dengan OPTIONS[0] = '1' dan bidang VERSION yang lebih tinggi. Ambang batas pencabutan hanya dapat ditingkatkan menggunakan mekanisme ini dan hanya dapat diatur ulang melalui aliran bit.
Ketika ambang pencabutan diperbarui secara dinamis, ambang batas disimpan menggunakan skema penyimpanan redundan yang digunakan untuk kode sandi sehingga kegagalan daya selama booting perangkat tidak menyebabkan kegagalan booting perangkat berikutnya. Jika pemutakhiran ambang batas pencabutan gagal, maka dijamin bahwa nilai ambang batas tersebut adalah nilai baru atau nilai sebelumnya.

Tabel 5 • Penggunaan U_MSS_BOOTCFG dalam Mode Boot Loader Pabrik

Offset (byte)  

Ukuran (bytes)

 

Nama

 

Keterangan

0 4 U_MSS_SBIC_ADDR Alamat SBIC di ruang alamat MSS
4 4 U_MSS_REVOCATION_ENABLE Aktifkan pencabutan SBIC jika bukan nol

Gambar berikut menunjukkan aliran boot aman pabrik.
Gambar 6 • Alur Boot Aman PabrikMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 6 Microchip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 7

Boot Pengguna MSS 

Boot pengguna MSS terjadi ketika kontrol diberikan dari Pengontrol Sistem ke Kompleks Inti MSS. Setelah pra-boot MSS berhasil, pengontrol sistem melepaskan pengaturan ulang ke Kompleks Inti MSS. MSS dapat di-boot dengan salah satu cara berikut:

  • Aplikasi Logam Telanjang
  • Aplikasi Linux
  • AMP Aplikasi

Aplikasi Logam Telanjang

Aplikasi bare metal untuk SoC PolarFire dapat dikembangkan menggunakan alat SoftConsole. Alat ini memberikan output files dalam bentuk .hex yang dapat digunakan dalam aliran Libero untuk dimasukkan ke dalam bitstream pemrograman file. Alat yang sama dapat digunakan untuk men-debug aplikasi Bare Metal menggunakan JTAG
antarmuka.
Gambar berikut menunjukkan aplikasi SoftConsole Bare Metal yang memiliki lima hart (Cores) termasuk inti Monitor E51.

Gambar 7 • Proyek Konsol Lunak Microchip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 8

Aplikasi Linux

Bagian ini menjelaskan urutan boot untuk Linux yang berjalan pada semua core U54.
Proses booting pada umumnya terdiri dari tiga detiktages. yang pertamatagboot loader (FSBL) dijalankan dari Boot flash (eNVM) on-chip. FSBL memuat detiktage boot loader (SSBL) dari perangkat boot ke RAM eksternal atau Cache. Perangkat boot dapat berupa eNVM atau mikrokontroler memori tertanam (eMMC) atau SPI Flash eksternal. SSBL memuat sistem operasi Linux dari perangkat boot ke RAM eksternal. Di detik ketigatage, Linux dijalankan dari RAM eksternal.

Gambar berikut menunjukkan alur Proses Boot Linux.
Gambar 8 • Alur Proses Boot Linux yang KhasMicrochip-UG0881-PolarFire-SoC-FPGA-Booting-Dan-Konfigurasi-gbr 9

Rincian FSBL, Device tree, Linux, dan YOCTO build, cara membangun dan mengkonfigurasi Linux akan disediakan dalam rilis dokumen ini di masa mendatang.

AMP Aplikasi
Penjelasan rinci tentang Libero MSS Configurator dan cara men-debug aplikasi multi-prosesor menggunakan SoftConsole akan disediakan dalam rilis dokumen ini di masa mendatang.

Berbagai Sumber Booting
Untuk diperbarui dalam versi mendatang dari dokumen ini.

Boot Configuration
Untuk diperbarui dalam versi mendatang dari dokumen ini.

Akronim

Akronim berikut digunakan dalam dokumen ini.

Tabel 1 •  Daftar Akronim

Akronim Diperluas

  • AMP Multi-pemrosesan Asimetris
  • DTIM Memori Data Terintegrasi Secara Ketat (juga disebut sebagai SRAM)
  • ECDSA Algoritma Tanda Tangan Digital Tanda Tangan Elliptic
  • eNVM Memori Non-Volatil tertanam
  • FSBL S Pertamatage Pemuat Boot
  • Jantung Thread perangkat keras/inti/inti prosesor
  • MSS Subsistem Mikroprosesor
  • POR Nyalakan Reset
  • puf Fungsi yang Tidak Dapat Dikloning Secara Fisik
  • Bahasa Indonesia: ROM Memori Hanya Baca
  • SCB Jembatan Pengontrol Sistem
  • sNVM Amankan Memori Non-volatil

Riwayat Revisi

Riwayat revisi menjelaskan perubahan yang diterapkan dalam dokumen. Perubahan dicantumkan berdasarkan revisi, dimulai dengan publikasi saat ini.

Revisi 2.0
Berikut ringkasan perubahan yang dilakukan dalam revisi ini.

  • Informasi tentang Boot Aman Pabrik telah diperbarui.
  • Informasi tentang Aplikasi Bare Metal telah diperbarui.

Revisi 1.0
Publikasi pertama dari dokumen ini.

Markas Mikrosemi
Satu Perusahaan, Aliso Viejo,
CA 92656 AS
Di Amerika Serikat: +1 Telepon: 800-713-4113
Di luar AS: +1 Telepon: 949-380-6100
Penjualan: +1 Telepon: 949-380-6136
Fax: +1 Telepon: 949-215-4996
E-mail: penjualan.support@microsemi.com
www.microsemi.com

© 2020 Microsemi, anak perusahaan yang sepenuhnya dimiliki oleh Microchip Technology Inc. Hak cipta dilindungi undang-undang. Microsemi dan logo Microsemi adalah merek dagang terdaftar dari Microsemi Corporation. Semua merek dagang dan merek layanan lainnya adalah milik dari pemiliknya masing-masing.

Dokumen / Sumber Daya

Booting dan Konfigurasi Microchip UG0881 PolarFire SoC FPGA [Bahasa Indonesia:] Panduan Pengguna
Booting dan Konfigurasi UG0881 PolarFire SoC FPGA, UG0881, Booting dan Konfigurasi FPGA SoC PolarFire, Booting dan Konfigurasi

Referensi

Tinggalkan komentar

Alamat email Anda tidak akan dipublikasikan. Bidang yang wajib diisi ditandai *