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