ตัวโหลดบูต SoC
Intel® SoC FPGAs ใช้ตัวโหลดบูตเพื่อโหลดและเรียกใช้แอปพลิเคชันผู้ใช้ในระบบโปรเซสเซอร์แข็ง (HPS) แอปพลิเคชันผู้ใช้อาจเป็นแอปพลิเคชันโลหะเปลือยที่เรียบง่ายหรือระบบปฏิบัติการที่ซับซ้อนเช่นระบบปฏิบัติการ Linux *
หน้านี้อธิบายถึงสิ่งที่ bootloader เป็นรายการตัวโหลดบูตที่มีอยู่และลักษณะหลักของพวกเขาอธิบายวิธีการเริ่มต้นใช้งาน bootloaders และแสดงรายการทรัพยากรเพิ่มเติม
1. Bootloader คืออะไร
ข้อกําหนดของตัวโหลดบูต
เมื่ออุปกรณ์ SoC บู๊ตขึ้นซอฟต์แวร์ที่เรียกว่า BootROM จะทํางานครั้งแรก ด้วยเหตุผลหลายประการ BootROM มีฟังก์ชันการทํางานที่ จํากัด ดังต่อไปนี้:
- มันจะต้องพอดีกับรอมบนชิปดังนั้นจึงต้องมีขนาดเล็ก
- มันมีราคาแพงมากที่จะเปลี่ยนดังนั้นจึงต้องแข็งแกร่งมากซึ่งหมายถึงคุณสมบัติที่น้อยลง
- ไม่ทราบว่าระบบได้รับการกําหนดค่าอย่างไรดังนั้นจึงไม่สามารถนําทุกอย่างขึ้นมาได้
แอปพลิเคชันผู้ใช้ในอีกด้านหนึ่งมักจะมีขนาดใหญ่และต้องการให้ระบบได้รับการกําหนดค่าตามที่ผู้ใช้ปลายทางต้องการก่อนที่จะสามารถรันได้
งานของ bootloader คือการเชื่อมต่อช่องว่างระหว่าง BootROM และแอปพลิเคชันผู้ใช้ปลายทาง
งานทั่วไปของโปรแกรมโหลดบูตได้แก่:
- การกําหนดค่าการตั้งค่ามัลติเพล็กซ์และพินของพิน เช่น อัตราการฆ่า แรงดันไฟฟ้า และการดึงขึ้น/ดึงลง
- การตั้งค่าคอนฟิกนาฬิกาในแผนภูมินาฬิกา
- การหยิบขึ้นมาและปรับเทียบ SDRAM
- กําลังเตรียมใช้งานหน่วยความจําแฟลช
- การโหลดแอปพลิเคชันสุดท้ายจากหน่วยความจําแฟลช
- ผ่านการควบคุมไปยังแอปพลิเคชันสุดท้าย
นอกเหนือจากคุณสมบัติที่ระบุไว้ข้างต้น bootloaders ยังมีคุณสมบัติขั้นสูงต่อไปนี้ที่สามารถเปิดใช้งานการปรับใช้ที่ซับซ้อนมากขึ้นและการพัฒนาที่สะดวกยิ่งขึ้น:
- การเข้าถึงเครือข่ายที่นําแอปพลิเคชันผู้ใช้ปลายทางจากระบบคลาวด์
- เครื่องมือการดีบักที่ช่วยให้การวินิจฉัยปัญหาสะดวกยิ่งขึ้น
- อินเทอร์เฟซบรรทัดคําสั่งสําหรับคําสั่งแบบโต้ตอบ
- แอปพลิเคชันที่เรียกใช้เฟรมเวิร์กที่สามารถเปิดใช้งานแอปพลิเคชันผู้ใช้อย่างง่ายเพื่อโหลดและเรียกใช้ให้เสร็จสมบูรณ์โดย bootloader หลังจากแอปพลิเคชันเสร็จสิ้นการควบคุมจะถูกส่งกลับไปยัง bootloader
ตัวโหลดบูตแบบหลายขั้นตอน
บางครั้งกระบวนการ bootloader สามารถแบ่งออกเป็นหลายขั้นตอนโดยทั่วไปเป็นสองขั้นตอน
สําหรับไซโคลน® V SoCs BootROM สามารถโหลดโหลดบูตที่มีขนาดไม่เกิน 64 KB เท่านั้นเนื่องจาก SDRAM ยังไม่ถูกนําขึ้นมาในขั้นตอนนั้น คุณสมบัติขั้นสูง เช่น ระบบเครือข่ายหรือระบบแฟ้มที่ซับซ้อนจึงไม่สามารถทําได้ หากต้องการคุณสมบัติดังกล่าวขั้นตอนแรกของ bootloader จะนํา SDRAM ขึ้นมาแล้วโหลดขั้นตอนที่สองที่มีฟังก์ชันการทํางานมากขึ้น ตัวโหลดบูตสองขั้นตอนเป็นตัวเลือกเริ่มต้นสําหรับไซโคลน V SoCs และ Arria® V SoCs
Intel® Arria® 10 SoCs มีขนาด RAM ที่ใหญ่กว่า ด้วย RAM บนชิป 256 KB ขั้นตอนแรกของ bootloader สามารถมีฟังก์ชันการทํางานมากกว่าพายุไซโคลน V และ Arria V SoCs ด้วยเหตุนี้โดยทั่วไปจึงจําเป็นต้องมีเพียงขั้นตอนเดียว อย่างไรก็ตามสําหรับกรณีที่ซับซ้อนยิ่งขึ้นเช่นการเข้าถึงแฟลชหลายประเภทระบบไฟล์ที่ซับซ้อนและระบบเครือข่ายผู้ใช้มีอิสระที่จะใช้ขั้นตอน bootloader เพิ่มเติม
สําหรับ Intel® Stratix® 10 SoCs โดยทั่วไปจะใช้ตัวโหลดบูตแบบสองขั้นตอน ขั้นตอนการบู๊ตโหลดขนาดเล็กครั้งแรกเป็นส่วนหนึ่งของกระแสข้อมูลการกําหนดค่า FPGA และโหลดโดยตัวจัดการอุปกรณ์ที่ปลอดภัย (SDM) ลงใน RAM บนชิป HPS ในขณะที่ขั้นตอน bootloader ขนาดใหญ่ที่สองสามารถจัดเก็บได้ทุกที่ที่ HPS สามารถเข้าถึงได้
2. การส่งมอบฮาร์ดแวร์
ภาพรวมการแจก
โครงการ Intel SoC FPGA ทั้งหมดเริ่มต้นด้วยโครงการฮาร์ดแวร์ที่ผู้ใช้ป้อนการตั้งค่าระบบต่าง ๆ ที่ส่งผลกระทบต่อ HPS เหล่านี้รวมถึง:
- พินมัลติเพล็กซ์
- การตั้งค่าพิน
- การตั้งค่า SDRAM
- การตั้งค่านาฬิกา
มันเป็นหน้าที่ของ bootloader ที่จะใช้การตั้งค่าเหล่านี้และกระบวนการของ bootloader ที่ได้รับการตั้งค่าเหล่านี้เรียกว่าการส่งมอบฮาร์ดแวร์กับซอฟต์แวร์
ขึ้นอยู่กับ bootloader ที่แน่นอนและตระกูลอุปกรณ์ SoC การส่งมอบสามารถใช้รูปแบบต่างๆ อย่างเป็นแบบฉบับ:
- สําหรับ Cyclone V และ Arria V SoCs การส่งมอบเป็นการรวมกันของไฟล์ XML ไฟล์ไบนารีและไฟล์ซอร์สโค้ดซึ่งจะถูกแปลงเป็นซอร์สโค้ดแล้วรวบรวมลงใน preloader
- สําหรับ Intel Arria 10 SoCs การมอบจะอยู่ในไฟล์ XML เดียวที่แปลงเป็นไฟล์ทรีอุปกรณ์และใช้โดย bootloader
- สําหรับ Intel Stratix 10 SoCs ข้อมูลการส่งมอบเป็นส่วนหนึ่งของบิตสตรีมการกําหนดค่า FPGA
วิธีการหลักในการป้อนหรือเปลี่ยนแปลงข้อมูลการส่งมอบคือการแก้ไขใน Qsys
นอกเหนือจากข้อมูลการส่งมอบแล้ว bootloaders ยังมีการตั้งค่าต่าง ๆ ที่ผู้ใช้สามารถเลือกได้ผ่านวิธีการต่อไปนี้:
- การเปลี่ยนแปลงการตั้งค่าในตัวแก้ไข BSP
- การแก้ไขซอร์สโค้ดของโปรแกรมโหลดบูต
- การแก้ไขทรีอุปกรณ์ bootloader เมื่อมีการใช้งานทรีอุปกรณ์
พายุไซโคลน V Soc และ Arria V SoC แฮนด์ออฟ

อินเทล อาร์เรีย 10 ซอค แฮนด์ออฟ

อินเทล สแตรทเท็กซ์ 10 โซซี แฮนด์ออฟ

3. บู๊ตโหลดที่มีอยู่
ภาพรวมของตัวโหลดบูตที่มีอยู่
ตารางต่อไปนี้แสดงรายการโปรแกรมโหลดบูตประเภทใบอนุญาต SoCs ที่สนับสนุนและความพร้อมของการสนับสนุนสองขั้นตอนที่มีอยู่:
Bootloader |
ชนิดใบอนุญาต |
ไซโคลน V Soc |
อาเรีย V ซอค |
อินเทล อาร์เรีย 10 โซค |
อินเทล สแตรทิกซ์ 10 โซซี |
การสนับสนุนสองขั้นตอน |
---|---|---|---|---|---|---|
ยูบูต |
จีพีแอล |
ใช่ |
ใช่ |
ใช่ |
ใช่ |
ใช่ |
เอ็มพีแอล |
บีSดี |
ใช่ |
ใช่ |
ใช่ |
- |
- |
ยูฟ่า |
บีSดี |
- |
- |
ใช่ |
ใช่ |
ใช่ |
เอทีเอฟ |
บีSดี |
- |
- |
- |
ใช่ |
- |
ยูบูต
U-Boot เป็นโปรแกรมโหลดบูตที่ใช้กันอย่างแพร่หลายในอุตสาหกรรมและมีความสามารถมากมาย:
- ขั้นตอนแรกที่เป็นตัวเลือกที่เรียกว่า "SPL" สําหรับระบบที่มี RAM บนชิป จํากัด (ตัวอย่างเช่นพายุไซโคลน V SoC และ Arria V SoC)
- ความสามารถในการเชื่อมต่อเครือข่าย
- รองรับหน่วยความจําแฟลช
- อินเทอร์เฟสบรรทัดคําสั่ง
- เขียน สคริปต์
- แอปพลิเคชัน U-Boot แบบกําหนดเอง
U-Boot ได้รับการพัฒนาภายใต้ใบอนุญาตสาธารณะทั่วไป (GPL) ดังนั้นการมีส่วนร่วมใด ๆ ที่ทํากับผลิตภัณฑ์ที่จะส่งมอบให้กับสาธารณชนจะต้องเผยแพร่สู่สาธารณะด้วย
ซอร์สโค้ด U-Boot มีให้บริการที่ หน้า U-Boot SoC FPGA บนเว็บไซต์ GitHub
สําหรับ Intel Arria 10 SoC, Arria V SoC และพายุไซโคลน V SoC ซอร์สโค้ด U-Boot จะรวมอยู่ในชุดพัฒนาแบบฝังตัว Intel SoC FPGA (SoC EDS) ซึ่งอํานวยความสะดวกในกระบวนการพัฒนาที่ง่ายและสะดวก
โปรดทราบว่าการสนับสนุนพายุไซโคลน V และ Arria V SoCs เป็นหลักในต้น Git U-Boot อย่างเป็นทางการบนเว็บไซต์ GitHub งานกําลังดําเนินการเพื่อสนับสนุน Intel Arria 10 SoCs หลัก
หน้าแรกหลักของ U-Boot ตั้งอยู่ที่ Das U-Boot - หน้าเว็บตัวโหลดบูตสากล.
เอ็มพีแอล
มินิมอลพรีโหลดเกอร์ (MPL) เป็นบู๊ตโหลดที่พัฒนาขึ้นโดยใช้ไลบรารีนามธรรมฮาร์ดแวร์โลหะเปลือย Intel SoC FPGA (HWLIBs) มันเป็นบูลโหลดขั้นตอนเดียวที่ออกแบบมาสําหรับรอยเท้าน้อยที่สุด
MPL พร้อมใช้งานสําหรับอุปกรณ์ต่อไปนี้:
- ไซโคลน V Soc
- อาเรีย V ซอค
- อินเทล อาร์เรีย 10 โซค
MPL มีให้ด้วยใบอนุญาตการกระจายซอฟต์แวร์เบิร์กลีย์ (BSD) ซึ่งช่วยให้การพัฒนาและการปรับใช้สะดวกยิ่งขึ้น
MPL ถูกส่งเป็นส่วนหนึ่งของ SoC EDS และเป็นที่เก็บโครงการในโฟลเดอร์การติดตั้ง SoC EDS <> / ฝังตัว / ตัวอย่าง / ซอฟต์แวร์ / Intel® FPGA-SoCFPGA-HardwareLib-MPL.tar.gz ไฟล์ ที่เก็บถาวรมีแฟ้มที่ชื่อ README.txtซึ่งมีคําอธิบาย MPL โดยละเอียดและข้อมูลการใช้งาน
ยูฟ่า
อินเทอร์เฟซเฟิร์มแวร์แบบขยายได้แบบครบวงจร (UEFI) เป็นข้อกําหนดเฟิร์มแวร์มาตรฐานที่ช่วยลดความยุ่งยากในการเริ่มต้นแพลตฟอร์มและการบูตเฟิร์มแวร์
ตัวโหลดบูต UEFI พร้อมใช้งานสําหรับอุปกรณ์ต่อไปนี้:
- อินเทล อาร์เรีย 10 โซค
- อินเทล สแตรทิกซ์ 10 โซซี
เนื่องจาก UEFI ได้รับการระบุเป็นอย่างดีและใช้โดย บริษัท เทคโนโลยีหลายร้อยแห่งจึงสามารถนํารหัสจํานวนมากกลับมาใช้ใหม่ได้ทําให้วงจรการพัฒนาเร็วขึ้น
UEFI ที่นํามาใช้ใน Intel SoC FPGAs ประกอบด้วยสองขั้นตอนที่แตกต่างกัน:
- ระยะการเริ่มต้นก่อน Efi (PEI) ขั้นตอนนี้กําหนดค่าแพลตฟอร์มและโหลดแอปพลิเคชันผู้ใช้หรือ DXE
- สภาพแวดล้อม eXecution ของโปรแกรมควบคุม (DXE) ขั้นตอนนี้โหลดไดรเวอร์ UEFI เพิ่มเติมและช่วยให้มีความสามารถเพิ่มเติมเช่นเครือข่ายและอินเตอร์เฟซบรรทัดคําสั่ง
ตัวโหลดบูต UEFI ยังมีความสามารถในการเรียกใช้แอปพลิเคชันพิเศษที่กําหนดเป้าหมายสภาพแวดล้อม DXE แอปพลิเคชันดังกล่าวสามารถดําเนินการได้เมื่อการควบคุมการออกจากกลับไปที่ DXE
UEFI มีใบอนุญาต BSD ซึ่งช่วยให้การพัฒนาและการปรับใช้สะดวกยิ่งขึ้น
ซอร์สโค้ด UEFI สามารถดูได้ที่ หน้า UEFI SoC FPGA บนเว็บไซต์ GitHub
สําหรับ Intel Arria 10 SoCs ยูฟ่ายังมาพร้อมกับ SoC EDS ทําให้สามารถพัฒนาได้เช่นเดียวกับ U-Boot
เอทีเอฟ
ARM Trusted Firmware (ATF) เป็นข้อมูลอ้างอิงการใช้งานซอฟต์แวร์โลกที่ปลอดภัยสําหรับ ARMv8-a โดยใช้มาตรฐานอินเทอร์เฟซ ARM ต่างๆเช่นข้อกําหนดการบูตบอร์ดที่เชื่อถือได้ (TBBR) และการโทรการตรวจสอบความปลอดภัย
ATF ได้รับการพัฒนาร่วมกันภายใต้ใบอนุญาต BSD ซึ่งช่วยให้การพัฒนาและการปรับใช้สะดวก
ATF มีรอยขนาดเล็กและได้รับการออกแบบให้เป็น Bootloader ขั้นแรก (FSBL) มันถูกใช้กับ UEFI เพื่อโหลด PXE แล้ว DXE แต่ก็สามารถใช้ในการโหลดแอปพลิเคชันโลหะเปลือยอย่างง่าย
ซอร์สโค้ดสําหรับพอร์ต Intel SoC FPGA ของ ATF สามารถเข้าถึงได้ที่ https://github.com/Intel FPGA-opensource / แขนที่เชื่อถือได้เฟิร์มแวร์.
4. การเริ่มต้นใช้งาน
การเริ่มต้นใช้งาน U-Boot
แหล่งข้อมูลต่อไปนี้พร้อมให้คุณเริ่มต้นใช้งาน U-Boot:
- การสร้างและการรวบรวมพายุไซโคลน V Preloader
- การสร้างและการรวบรวม Arria 10 U-Boot
การเริ่มต้นใช้งาน MPL
MPL ถูกส่งเป็นส่วนหนึ่งของ SoC EDS และเป็นที่เก็บโครงการในโฟลเดอร์ การติดตั้ง <SoC EDS> / ฝังตัว / ตัวอย่าง / ซอฟต์แวร์ / Intel FPGA-SoCFPGA-HardwareLib-MPL.tar.gz ไฟล์ ที่เก็บถาวรมีไฟล์ชื่อ README.txt พร้อมข้อมูลการใช้งานโดยละเอียดสําหรับ Intel Arria 10 SoCs, Arria V SoCs และไซโคลน V SoCs
การเริ่มต้นใช้งาน UEFI
แหล่งข้อมูลต่อไปนี้พร้อมให้คุณเริ่มต้นใช้งาน UEFI:
- อินเทลอาร์เรีย 10 Soc UEFI เริ่มต้น
- คู่มือผู้ใช้ตัวโหลดบูต Intel Arria 10 SoC UEFI
- คู่มือผู้ใช้ตัวโหลดบูต Intel Stratix 10 SoC UEFI
รหัสแหล่งที่มา
ซอร์สโค้ดสามารถรับได้จากเว็บไซต์ต่อไปนี้:
- อินเทล โซซี เอฟพีจีเอ ยู-บูท ออน กิทฮับ
- ซอร์สโค้ด Denx U-Boot อย่างเป็นทางการ
- Intel SoC FPGA UEFI on GitHub
- เฟิร์มแวร์ที่เชื่อถือได้ของ ARM บน GitHub
- SoC EDS สําหรับพายุไซโคลน V, Arrial V และ Arria 10 U-Boot ซอร์สโค้ดและซอร์สโค้ด Arria 10 UEFI ซอร์สโค้ดถูกสร้างขึ้นโดยการเรียกใช้เครื่องมือตัวแก้ไข bsp ดูรายละเอียดเพิ่มเติมใน คู่มือผู้ใช้ SoC EDSบท "คู่มือผู้ใช้เครื่องมือบูต"
- SoC EDS สําหรับ S10 SoC U-Boot ซอร์สโค้ด, ในโฟลเดอร์ การติดตั้ง EDS<SoC>/ฝังตัว/host_tools/Intel FPGA/bootloaders/stratix10/u-boot/uboot-socfpga.tar.gz ไฟล์.
- ซอร์สโค้ด SoC EDS สําหรับซอร์สโค้ด MPL ซึ่งอยู่ใน โฟลเดอร์การติดตั้ง EDS <SoC>/ฝังตัว/ตัวอย่าง/ซอฟต์แวร์/Intel FPGA-SoCFPGA-ฮาร์ดแวร์Lib-MPL.tar.gz ไฟล์
เนื้อหาในหน้านี้เป็นการผสมผสานระหว่างการแปลเนื้อหาต้นฉบับภาษาอังกฤษโดยมนุษย์และคอมพิวเตอร์ เนื้อหานี้จัดทำขึ้นเพื่อความสะดวกของคุณและเพื่อเป็นข้อมูลทั่วไปเท่านั้นและไม่ควรอ้างอิงว่าสมบูรณ์หรือถูกต้อง หากมีความขัดแย้งใด ๆ ระหว่างเวอร์ชันภาษาอังกฤษของหน้านี้กับคำแปล เวอร์ชันภาษาอังกฤษจะมีผลเหนือกว่าและควบคุม ดูเวอร์ชันภาษาอังกฤษของหน้านี้