ศูนย์นักพัฒนา SoC FPGA Bootloader
SoC FPGA Bootloader Developer Center จัดให้มีบู๊ตโหลด SoC ที่มีคุณสมบัติหลัก วิธีการเริ่มต้นใช้งาน และแหล่งข้อมูลเพิ่มเติม
Intel® SoC FPGAs ใช้ bootloader เพื่อโหลดและเรียกใช้แอปพลิเคชันผู้ใช้ปลายทางบนระบบฮาร์ดโปรเซสเซอร์ (HPS) แอปพลิเคชันผู้ใช้ปลายทางอาจเป็นแอปพลิเคชันเซิร์ฟเวอร์เฉพาะ หรือระบบปฏิบัติการที่ซับซ้อน เช่น ระบบปฏิบัติการ Linux*
หน้านี้จะอธิบายว่า bootloader คืออะไร แสดงรายการตัวโหลดการบูตที่มีอยู่และคุณลักษณะหลัก อธิบายวิธีการเริ่มต้นใช้งานบูตโหลดและแสดงรายการทรัพยากรเพิ่มเติม
1. Bootloader คืออะไร
คําจํากัดความของ Bootloader
เมื่ออุปกรณ์ SoC บูทขึ้นมา ชิ้นส่วนซอฟต์แวร์ที่เรียกว่า BootROM จะถูกเรียกใช้ครั้งแรก ด้วยเหตุผลหลายประการ BootROM มีฟังก์ชันการทํางานที่จํากัดดังต่อไปนี้:
- มันต้องพอดีกับ ROM บนชิปดังนั้นจึงมีขนาดเล็ก
- มันมีราคาแพงมากที่จะเปลี่ยนแปลงดังนั้นจึงจะต้องแข็งแกร่งมากซึ่งหมายถึงคุณสมบัติที่น้อยกว่า
- ไม่ทราบว่าระบบได้รับการกําหนดค่าอย่างไรจึงไม่สามารถนําทุกอย่างมาได้
ในทางกลับกัน แอปพลิเคชันผู้ใช้ปลายทางมีขนาดใหญ่เป็นปกติ และกําหนดให้ระบบได้รับการกําหนดค่าตามที่ต้องการโดยผู้ใช้ก่อนจึงจะรันได้
งานของ bootloader คือการเชื่อมช่องว่างระหว่าง BootROM และแอปพลิเคชันของผู้ใช้ปลายทาง
Single Stage Bootloader
งาน Bootloader ทั่วไป
- การปรับตั้งค่าการมัลติเพล็กซ์และพินของพิน เช่น อัตราการฆ่า แรงดันไฟฟ้า และแบบดึงขึ้น/ดึงลง
- การกําหนดค่านาฬิกาในโครงสร้างนาฬิกา
- การนํามาใช้และปรับเทียบ SDRAM
- การเริ่มต้นหน่วยความจําแฟลช
- การกําหนดค่า FPGA Fabric
- การโหลดแอปพลิเคชันสิ้นสุดจากหน่วยความจําแฟลช
- ส่งการควบคุมไปยังแอปพลิเคชันปลายทาง
นอกเหนือจากคุณสมบัติที่ระบุไว้ข้างต้น bootloaders ยังมีคุณสมบัติขั้นสูงที่สามารถเปิดใช้งานการปรับใช้ที่ซับซ้อนมากขึ้นและการพัฒนาที่สะดวกมากขึ้น:
- การเข้าถึงเครือข่ายที่นําแอปพลิเคชันผู้ใช้ออกจากระบบคลาวด์
- เครื่องมือดีบักที่ช่วยให้สามารถทําการวินิจฉัยปัญหาได้สะดวกยิ่งขึ้น
- อินเทอร์เฟซบรรทัดคําสั่งสําหรับคําสั่งแบบโต้ตอบ
- แอปพลิเคชันที่ทํางานบนเฟรมเวิร์กที่สามารถทําให้การโหลดและเรียกใช้แอปพลิเคชันของผู้ใช้อย่างง่ายเสร็จสิ้นโดย bootloader หลังจากแอปพลิเคชันเสร็จสิ้น การควบคุมจะถูกส่งไปยัง bootloader
Multi-Stage Bootloaders
บางครั้งกระบวนการ bootloader สามารถแบ่งออกเป็นหลายขั้นตอนโดยทั่วไปสอง
สําหรับ Cyclone® V SoC นั้น BootROM สามารถโหลดตัวโหลดการบูตที่มีขนาดสูงสุด 64 KB เท่านั้น เนื่องจาก SDRAM ยังไม่ได้ถูกสร้างขึ้นในขั้นตอนนั้น ในทํานองเดียวกันสําหรับ Intel® Arria® 10 SoC BootROM สามารถโหลดเครื่องบูตโหลดได้ขนาดสูงสุด 256 KB เท่านั้น เนื่องจากข้อจํากัดด้านขนาดเหล่านี้ คุณจึงไม่สามารถบรรลุข้อจํากัดด้านคุณสมบัติขั้นสูง เช่น ระบบเครือข่าย หรือการเข้าถึงระบบไฟล์ที่ซับซ้อนได้ หากต้องการคุณสมบัติดังกล่าวขั้นตอนแรกของ bootloader นํา SDRAM มาแล้วจึงโหลดขั้นตอนที่สองพร้อมฟังก์ชันเพิ่มเติม เวิร์กโหลดสองขั้นตอนเป็นตัวเลือกเริ่มต้นสําหรับ Cyclone V SoCs, Arria® V SoC และ Arria® 10 SoC
Bootloaders สําหรับอุปกรณ์ที่ใช้ SDM
สําหรับ Intel® Stratix® 10 SoC โดยทั่วไปแล้ว Intel® Agilex® 7 SoC และ Intel® Agilex® 5 SoC จะเป็นบูตโหลดสองชั้น ขั้นตอน bootloader ขนาดเล็กครั้งแรกเป็นส่วนหนึ่งของบิตสตรีมการกําหนดค่า FPGA และโหลดโดยตัวจัดการอุปกรณ์ที่ปลอดภัย (SDM) เข้าไปใน HPS on-chip RAM ในขณะที่ขั้นที่สองบูตโหลดเดอร์ที่ใหญ่กว่าจะต้องเก็บไว้ในตําแหน่งที่ HPS สามารถเข้าถึงได้
2.ฮาร์ดแวร์แฮนด์ออฟ
ภาพรวมงานฝีมือ
โครงการ Intel SoC FPGA ทั้งหมดเริ่มต้นด้วยโครงการฮาร์ดแวร์ที่การตั้งค่าระบบต่างๆ ที่ส่งผลกระทบต่อผู้ใช้ HPS ซึ่งรวมถึง:
- ปักหมุดการมัลติเพล็กซ์
- การตั้งค่าพิน
- การตั้งค่า SDRAM
- การตั้งค่านาฬิกา
เป็นงานของ bootloader ในการใช้การตั้งค่าเหล่านี้และกระบวนการของ bootloader ที่ได้รับการตั้งค่าเหล่านี้เรียกว่าการแจกของฮาร์ดแวร์กับซอฟต์แวร์
การแฮนด์ออฟอาจมีหลายรูปแบบ ขึ้นอยู่กับ bootloader และตระกูลอุปกรณ์ SoC ที่แน่นอน มัก จะ:
- สําหรับ Cyclone V และ Arria V SoC การแฮนด์ออฟคือการรวมไฟล์ XML, ไฟล์ไบนารี และไฟล์ซอร์สโค้ดซึ่งจะถูกแปลงเป็นซอร์สโค้ดแล้วคอมไพล์ลงใน bootloader
- สําหรับ Intel Arria 10 SoC การแฮนด์ออฟจะอยู่ในไฟล์ XML เดียวซึ่งถูกแปลงเป็นไฟล์แผนผังอุปกรณ์และใช้โดย bootloader
- สําหรับ Intel Stratix 10 SoC, Intel Agilex 7 SoCs และ Intel Agilex 5 SoC ข้อมูลการส่งต่อเป็นส่วนหนึ่งของบิตสตรีมการกําหนดค่า FPGA
วิธีหลักในการป้อน หรือเปลี่ยนแปลงข้อมูลการโอนคือ การแก้ไขข้อมูลนั้นผ่านการแก้ไขใน Quartus Platform Designer
นอกจากข้อมูลการคัดเลือกแล้ว bootloaders ยังมีการตั้งค่าต่างๆ ที่ผู้ใช้สามารถเลือกได้โดยผ่านวิธีการต่อไปนี้:
- การแก้ไขซอร์สโค้ด bootloader
- การแก้ไขโครงสร้างอุปกรณ์ bootloader เมื่อใช้โครงสร้างอุปกรณ์
Cyclone V Soc และ Arria V SoC Handoff
Intel Arria 10 SoC แฮนด์ออฟ
Intel Stratix 10 SoC, Intel Agilex 7 SoC, และ SoC Intel Agilex 5
3.bootloaders ที่มีอยู่
ภาพรวมของ Bootloaders ที่มีอยู่
ตารางต่อไปนี้แสดงรายการ bootloaders ที่มีอยู่ ประเภทของใบอนุญาต SoC ที่รองรับ และความพร้อมในการสนับสนุนแบบสองขั้นตอน:
Bootloader |
ประเภทสิทธิ์การใช้งาน |
Cyclone V SoC, |
Intel Arria 10 SoC |
Intel Stratix 10 SoC, Intel Agilex 7 SoC, SoC Intel Agilex 5 |
---|---|---|---|---|
ยูบูต |
GPL |
ใช่ |
ใช่ |
ใช่ |
ATF |
Bsd |
- |
- |
ใช่ |
ยูบูต
U-Boot เป็นบูทโหลดเดอร์ที่ใช้กันอย่างแพร่หลายในอุตสาหกรรมและนําเสนอความสามารถมากมาย:
- ตัวเลือกขั้นแรกที่เรียกว่า "SPL" สําหรับระบบที่มี RAM บนชิปจํากัด (เช่น Cyclone V SoC และ Arria V SoC)
- ความสามารถด้านเครือข่าย
- รองรับหน่วยความจําแฟลช
- อินเทอร์เฟสบรรทัดคําสั่ง
- เขียน สคริปต์
- แอปพลิเคชันแบบกําหนดเอง U-Boot
U-Boot ได้รับการพัฒนาภายใต้ใบอนุญาตสาธารณะทั่วไป (GPL) ดังนั้นการมีส่วนร่วมใด ๆ ที่จะดําเนินการกับผลิตภัณฑ์ที่ถูกส่งไปยังสาธารณชนจะต้องเผยแพร่ต่อสาธารณะด้วย
ซอร์สโค้ด U-Boot มีอยู่ใน หน้า FPGA U-Boot SoC บนเว็บไซต์ GitHub
หน้าหลัก U-Boot ทั่วไปตั้งอยู่ที่ หน้าเว็บ Das U-Boot - หน้าเว็บ Universal Boot Loader
ATF
Arm Trusted Firmware (ATF) เป็นการปรับใช้ข้อมูลอ้างอิงของซอฟต์แวร์โลกที่ปลอดภัยสําหรับ ARMv8-a ซึ่งใช้มาตรฐานอินเทอร์เฟซ ARM ต่างๆ เช่น Trusted Board Boot Requirements (TBBR) และ Secure Monitor Call (SMC)
ATF ได้รับการพัฒนาร่วมกันภายใต้สิทธิ์การใช้งาน BSD ซึ่งช่วยให้การพัฒนาและการปรับใช้เป็นไปอย่างสะดวก
สามารถเข้าถึงซอร์สโค้ดสําหรับพอร์ต Intel SoC FPGA ของ ATF ได้ที่ https://github.com/altera-opensource/arm-trusted-firmware
5.แหล่งข้อมูล
คู่มือผู้ใช้
มีคู่มือผู้ใช้ต่อไปนี้
ซอร์สโค้ด
สามารถรับซอร์สโค้ดได้จากเว็บไซต์ต่อไปนี้:
เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้