Z2PCBA@gmail.com +66-897725026
ทำความรู้จักกับ ZYNQ VIVADO ของ Xilinx – Basic FSBL
Saturday July 14th, 2018
0

ZYNQ Vivado(Tutorial): Basic FSBL

บทความนี้เราจะมาทำความรู้จักเพิ่มเติมกับ ZYNQ VIVADO ของ Xilinx โดยจากบทความก่อนหน้าเราได้ทำความรู้จักกับการออกแบบตัวโปรแกรม(PL) และการออกแบบในส่วนของการประมวลผล(PS) กันไปแล้ว ในบทความนี้ เราจะมาลงรายละเอียดตรงส่วนของการออกแบบ FSBL ซึ่งจะทำหน้าที่สำหรับเป็น Bootloader กันครับ

เนื่องจาก ZYNQ นั้นเวลา Boot นั้นจะต้อง Boot ด้วย PS เสมอ ดังนั้นไม่ว่าอย่างไรวงจรที่ออกแบบควรจะมี PS เสมอ ซึ่งการที่จะให้ ZYNQ Boot นั้นสามารถทำได้ 2 วิธีคือ Boot ผ่าน SD Card หรือ Boot ผ่าน Flash ซึ่งในบทความนี้จะอธิบายวิธีการทำทั้ง 2 วิธีให้ดูกันในบทความนี้นะครับ

FSBL( First Stage Bootloader )

เริ่มด้วยการสร้าง Files FSBL ซึ่งเป็นไฟล์ที่ทำหน้าที่เป็น Bootloader โดยหลังจากที่เราได้ Compile ทดสอบสิ่งที่เราออกแบบเสร็จแล้ว ให้ทำการไปสร้าง “Application Project” ใหม่ แต่คราวนี้เราจะไม่เลือก Hello World แต่เราจะเลือกเมนู “ZYNQ FSBL” แทนดังรูป
สร้างโปรเจคใหม่โดยใช้ template ZYNQ FSBL

เมื่อสร้างเสร็จเราจะได้ Folder เพิ่มมาอีก 2 Folder ดังรูป จากนั้นให้เราไปเลือกเมนู “Xilinx > Create Boot Image
เลือกเมนู Xilinx > Create Boot Image

หลังจากเลือกเมนู “Create Boot Image” จะเห็นหน้าตาออกมาดังรูป
ตรงข้อมูลของ Boot image partion ให้ระบุ Bootloader จาก FSBL ที่เพิ่งสร้างเสร็จ และ .bit ซึ่งเป็นส่วนของ PL

ซึ่งให้สังเกตุตรงข้อมูล Boot image partitions จะเห็นว่ามีไฟล์อยู่ 2 files คือ

  1. Bootloader จาก FSBL ที่เราเพิ่งจะสร้าง
  2. .bit ไฟล์ที่เป็นไฟล์ของ PL ดังนั้นเราจะต้องทำการใส่ Code ของฝั่ง SDK เข้าไปด้วย

โดยมีข้อควรจำว่า ไฟล์แรกต้องเป็น Bootloader ส่วนไฟล์ที่ 2 ต้องเป็น file PL ส่วนอื่นๆให้อยู่ถัดไปครับ

จากนั้นให้ทำการกดปุ่ม “Add” โดยไฟล์ Hello World ที่เราได้สร้างไปตะกี้จะอยู่ในที่ “Project > Project.sdk > Helloworld > Debug” แล้วทำการเลือกไฟล์ “Helloworld.elf” แล้วทำการกดปุ่ม “Create Image” เพียงแค่นี้ก็จะเป็นการเสร็จสิ้นการเตรียมการ FSBL
เลือกไฟล์ .elf  แล้วจึงกดปุ่ม Create Image

เตรียมการ Boot ด้วย SD CARD

เมื่อเราทำการ Create Image เสร็จแล้ว ถ้าเราอยากที่จะ Boot ด้วย SD CARD วิธีก็ง่ายๆ เพียงแค่เรา Copy file “Boot.bin” ที่เราได้สร้างไว้เข้าไปใน SD CARD เพียงเท่านี้ก็เรียบร้อย(โดย Default Boot image file จะอยู่ที่ “project.sdk > FSBL > bootimage”)

หลังจากที่เราได้เราได้ Copy ลงไปใน SD CARD เรียบร้อยแล้วให้เราใส่ SD CARD ดังกล่าวนั้นเข้าไปในบอร์ดแล้วทำการตั้ง Mode ให้ Boot ผ่าน SD CARD ซึ่งดูที่ขา MIO(5..3) โดย SD CARD จะเป็น “110”

เตรียมการ Boot ด้วย Flash

วิธีการ Boot ด้วย Flash นั้นให้ไปเลือก “Xilinx > Program Flash” แล้วทำการเลือก file Image ที่เราได้ Create เอาไว้แล้ว(“ไฟล์ Boot.bin”) และต้องใส่ข้อมูล file FSBL แล้วจึงทำการเลือกชนิดของ Flash ให้ถูกตามที่ใช้ จากนั้นทำการ Program ได้เลย
เลือก Xilinx > Program Flash เมื่อจะสร้าง Bootloader ด้วย flash

จากนั้นให้ทำการตั้ง Mode ให้ Boot ผ่าน Flash ซึ่งดูที่ขา MIO(5..3) โดย ของผมเป็น Quad SPI Flash จะเป็น “100” แล้วทำการ เปิดปิดไฟ ก็จะมีการ Boot ผ่าน Flash เกิดขึ้นครับ