Microsemi-LGOO

Microchip UG0881 Khởi động và cấu hình PolarFire SoC FPGA

Microchip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-sản phẩm

Bảo hành

Microsemi không bảo đảm, đại diện hoặc đảm bảo về thông tin có trong tài liệu này hoặc tính phù hợp của các sản phẩm và dịch vụ của mình cho bất kỳ mục đích cụ thể nào, Microsemi cũng không chịu bất kỳ trách nhiệm pháp lý nào phát sinh từ ứng dụng hoặc việc sử dụng bất kỳ sản phẩm hoặc mạch nào. Các sản phẩm được bán dưới đây và bất kỳ sản phẩm nào khác do Microsemi bán đã được thử nghiệm hạn chế và không được sử dụng cùng với các thiết bị hoặc ứng dụng quan trọng. Bất kỳ thông số kỹ thuật hiệu suất nào được cho là đáng tin cậy nhưng chưa được xác minh và Người mua phải tiến hành và hoàn thành tất cả hiệu suất và thử nghiệm khác của sản phẩm, một mình và cùng với hoặc được cài đặt trong bất kỳ sản phẩm cuối nào. Người mua sẽ không phụ thuộc vào bất kỳ thông số hoặc thông số dữ liệu và hiệu suất nào do Microsemi cung cấp. Người mua có trách nhiệm xác định độc lập tính phù hợp của bất kỳ sản phẩm nào cũng như kiểm tra và xác minh tương tự. Thông tin do Microsemi cung cấp dưới đây được cung cấp “nguyên trạng, ở đâu” và có mọi sai sót, đồng thời toàn bộ rủi ro liên quan đến thông tin đó hoàn toàn thuộc về Người mua. Microsemi không cấp, rõ ràng hay ngầm định, cho bất kỳ bên nào bất kỳ quyền sáng chế, giấy phép hoặc bất kỳ quyền sở hữu trí tuệ nào khác, cho dù liên quan đến chính thông tin đó hay bất kỳ điều gì được mô tả bởi thông tin đó. Thông tin được cung cấp trong tài liệu này thuộc quyền sở hữu của Microsemi và Microsemi có quyền thực hiện bất kỳ thay đổi nào đối với thông tin trong tài liệu này hoặc đối với bất kỳ sản phẩm và dịch vụ nào vào bất kỳ lúc nào mà không cần thông báo trước.

Về Microsemi

Microsemi, một công ty con thuộc sở hữu hoàn toàn của Microchip Technology Inc. (Nasdaq: MCHP), cung cấp danh mục toàn diện các giải pháp bán dẫn và hệ thống cho hàng không vũ trụ và quốc phòng, truyền thông, trung tâm dữ liệu và thị trường công nghiệp. Các sản phẩm bao gồm các mạch tích hợp tín hiệu hỗn hợp tương tự hiệu suất cao và được tăng cường bức xạ, FPGA, SoC và ASIC; sản phẩm quản lý điện năng; các thiết bị thời gian và đồng bộ hóa và các giải pháp thời gian chính xác, thiết lập tiêu chuẩn của thế giới về thời gian; thiết bị xử lý giọng nói; Giải pháp RF; các thành phần rời rạc; giải pháp lưu trữ và truyền thông doanh nghiệp, công nghệ bảo mật và chống tampsản phẩm er; Giải pháp Ethernet; Nguồn-over-Ethernet IC và midspans; cũng như các khả năng và dịch vụ thiết kế tùy chỉnh. Tìm hiểu thêm tại www.microsemi.com.

Khởi động và cấu hình

PolarFire SoC FPGA sử dụng mạch tăng nguồn tiên tiến để đảm bảo bật nguồn đáng tin cậy khi bật nguồn và thiết lập lại. Khi bật nguồn và đặt lại, trình tự khởi động PolarFire SoC FPGA tuân theo Khởi động lại khi bật nguồn (POR), Khởi động thiết bị, Khởi tạo thiết kế, khởi động trước Hệ thống con vi điều khiển (MSS) và khởi động người dùng MSS. Tài liệu này mô tả khởi động trước MSS và khởi động người dùng MSS. Để biết thông tin về POR, khởi động thiết bị và khởi tạo thiết kế, hãy xem UG0890: Hướng dẫn sử dụng khởi động và khởi động lại PolarFire SoC FPGA.
Để biết thêm thông tin về các tính năng MSS, hãy xem UG0880: Hướng dẫn sử dụng PolarFire SoC MSS.

Trình tự khởi động
Trình tự khởi động bắt đầu khi FPGA SoC PolarFire được cấp nguồn hoặc khởi động lại. Nó kết thúc khi bộ xử lý sẵn sàng thực hiện một chương trình ứng dụng. Trình tự khởi động này chạy qua một số stages trước khi nó bắt đầu thực hiện các chương trình.
Một tập hợp các hoạt động được thực hiện trong quá trình Khởi động bao gồm thiết lập lại phần cứng khi bật nguồn, khởi tạo thiết bị ngoại vi, khởi tạo bộ nhớ và tải ứng dụng do người dùng xác định từ bộ nhớ cố định sang bộ nhớ khả biến để thực thi.

Hình dưới đây cho thấy các giai đoạn khác nhau của trình tự Khởi động.

Hình 1  Trình tự khởi độngMicrochip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 1

Khởi động trước MSS

Sau khi hoàn tất thành công Khởi tạo thiết kế, MSS Pre-boot bắt đầu thực thi. MSS được giải phóng khỏi thiết lập lại sau khi hoàn thành tất cả các quy trình khởi động bình thường. Bộ điều khiển hệ thống quản lý việc lập trình, khởi tạo và cấu hình thiết bị. Khởi động trước MSS không xảy ra nếu thiết bị được lập trình được cấu hình cho chế độ treo của bộ điều khiển hệ thống.
Giai đoạn khởi tạo trước MSS được điều phối bởi phần sụn của bộ điều khiển hệ thống, mặc dù nó có thể sử dụng E51 trong Tổ hợp lõi MSS để thực hiện một số phần nhất định của trình tự trước khi khởi động.
Các sự kiện sau xảy ra trong quá trình khởi động trước MSStage:

  • Kích hoạt bộ nhớ không bay hơi nhúng MSS (eNVM)
  • Khởi tạo sửa chữa dự phòng liên quan đến bộ đệm MSS Core Complex L2
  • Xác thực mã khởi động của Người dùng (nếu tùy chọn Khởi động an toàn của người dùng được bật)
  • Bàn giao MSS đang hoạt động cho User Boot code

MSS Core Complex có thể được khởi động ở một trong bốn chế độ. Bảng sau đây liệt kê các tùy chọn tiền khởi động MSS, có thể được cấu hình và lập trình trong sNVM. Chế độ khởi động được xác định bởi tham số người dùng U_MSS_BOOTMODE[1:0]. Dữ liệu cấu hình khởi động bổ sung phụ thuộc vào chế độ và được xác định bởi tham số người dùng U_MSS_BOOTCFG (xem Bảng 3, trang 4 và Bảng 5, trang 6).

Bàn số 1 • Chế độ khởi động phức hợp lõi MSS

U_MSS_BOOTMODE[1:0] Cách thức Sự miêu tả
0 khởi động nhàn rỗi MSS Core Complex khởi động từ boot ROM nếu MSS không được cấu hình
1 Khởi động không an toàn MSS Core Complex khởi động trực tiếp từ địa chỉ được xác định bởi U_MSS_BOOTADDR
2 Người dùng khởi động an toàn MSS Core Complex khởi động từ sNVM
3 Khởi động an toàn nhà máy MSS Core Complex khởi động bằng giao thức khởi động an toàn của nhà máy

Tùy chọn khởi động được chọn như một phần của quy trình thiết kế Libero. Việc thay đổi chế độ chỉ có thể đạt được thông qua việc tạo lập trình FPGA mới file.

Hình 2 • Luồng tiền khởi động MSS Microchip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 2

Khởi động nhàn rỗi

Nếu MSS không được cấu hình (ví dụample, thiết bị trống), sau đó MSS Core Complex thực thi chương trình ROM khởi động giữ tất cả các bộ xử lý trong một vòng lặp vô hạn cho đến khi trình gỡ lỗi kết nối với mục tiêu. Thanh ghi vectơ khởi động duy trì giá trị của chúng cho đến khi thiết bị được đặt lại hoặc cấu hình chế độ khởi động mới được lập trình. Đối với các thiết bị được định cấu hình, chế độ này có thể được triển khai bằng cách sử dụng
Tùy chọn khởi động U_MSS_BOOTMODE=0 trong bộ cấu hình Libero.

Ghi chú: Ở chế độ này, U_MSS_BOOTCFG không được sử dụng.

Hình dưới đây cho thấy quy trình Khởi động nhàn rỗi.
Hình 3 • Luồng khởi động nhàn rỗiMicrochip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 3

Khởi động không an toàn

Trong chế độ này, MSS Core Complex thực thi từ một địa chỉ eNVM được chỉ định mà không cần xác thực. Nó cung cấp tùy chọn khởi động nhanh nhất, nhưng không có xác thực hình ảnh mã. Có thể chỉ định địa chỉ bằng cách đặt U_MSS_BOOTADDR trong Bộ cấu hình Libero. Chế độ này cũng có thể được sử dụng để khởi động từ bất kỳ tài nguyên bộ nhớ FPGA Fabric nào thông qua FIC. Chế độ này được thực hiện bằng cách sử dụng
U_MSS_BOOTMODE=1 tùy chọn khởi động.
MSS Core Complex được giải phóng khỏi thiết lập lại với các vectơ khởi động được xác định bởi U_MSS_BOOTCFG (như được liệt kê trong bảng sau).

Bàn số 2 • Sử dụng U_MSS_BOOTCFG trong Chế độ khởi động không an toàn 1

Độ lệch (byte)  

Kích thước (byte)

 

Tên

 

Sự miêu tả

0 4 BOOTVEC0 Vectơ khởi động cho E51
4 4 BOOTVEC1 Vectơ khởi động cho U540
8 4 BOOTVEC2 Vectơ khởi động cho U541
16 4 BOOTVEC3 Vectơ khởi động cho U542
20 4 BOOTVEC4 Vectơ khởi động cho U543

Hình dưới đây cho thấy quy trình khởi động không an toàn.
Hình 4 • Luồng khởi động không an toànMicrochip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 4

Khởi động an toàn cho người dùng
Chế độ này cho phép người dùng triển khai khởi động an toàn tùy chỉnh của riêng họ và mã khởi động an toàn của người dùng được đặt trong sNVM. sNVM là bộ nhớ cố định 56 KB có thể được bảo vệ bằng Chức năng không thể sao chép vật lý (PUF) tích hợp sẵn. Phương thức khởi động này được coi là an toàn vì các trang sNVM được đánh dấu là ROM là bất biến. Khi bật nguồn, bộ điều khiển hệ thống sao chép mã khởi động an toàn của người dùng từ sNVM sang Bộ nhớ tích hợp chặt chẽ dữ liệu (DTIM) của lõi Màn hình E51. E51 bắt đầu thực thi mã khởi động an toàn của người dùng.
Nếu kích thước của mã khởi động an toàn của người dùng lớn hơn kích thước của DTIM thì người dùng cần chia mã khởi động thành hai stages. sNVM có thể chứa s tiếp theotage của trình tự khởi động người dùng, có thể thực hiện xác thực lần khởi động tiếp theo stage sử dụng thuật toán xác thực/giải mã người dùng.
Nếu các trang được xác thực hoặc mã hóa được sử dụng thì cùng một khóa USK (nghĩa là
U_MSS_BOOT_SNVM_USK) phải được sử dụng cho tất cả các trang được xác thực/mã hóa.
Nếu xác thực không thành công, MSS Core Complex có thể được đặt lại và BOOT_FAIL tampcờ er có thể được nâng lên. Chế độ này được triển khai bằng tùy chọn khởi động U_MSS_BOOTMODE=2.

Bàn số 3 •  Sử dụng U_MSS_BOOTCFG trong Khởi động an toàn cho người dùng

Độ lệch (byte) Kích thước (byte) Tên Sự miêu tả
0 1 U_MSS_BOOT_SNVM_PAGE Trang bắt đầu trong SNVM
1 3 KÍN ĐÁO Để căn chỉnh
4 12 U_MSS_BOOT_SNVM_USK Đối với các trang được xác thực/mã hóa

Hình dưới đây cho thấy luồng khởi động an toàn của người dùng.
Hình 5 • Luồng khởi động an toàn cho người dùngMicrochip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 5

Khởi động an toàn tại nhà máy
Ở chế độ này, bộ điều khiển hệ thống đọc Chứng chỉ hình ảnh khởi động an toàn (SBIC) từ eNVM và xác thực SBIC. Khi xác thực thành công, Bộ điều khiển Hệ thống sao chép mã khởi động an toàn ban đầu từ vùng bộ nhớ riêng tư, an toàn của nó và tải mã đó vào DTIM của lõi Màn hình E51. Khởi động an toàn mặc định thực hiện kiểm tra chữ ký trên hình ảnh eNVM bằng SBIC được lưu trữ trong eNVM. Nếu không có lỗi nào được báo cáo, quá trình đặt lại sẽ được giải phóng cho MSS Core Complex. Nếu lỗi được báo cáo, MSS Core Complex được đặt lại và BOOT_FAIL tampcờ er được nâng lên. Sau đó, bộ điều khiển hệ thống kích hoạt lúcampcờ er xác nhận tín hiệu tới cấu trúc FPGA cho hành động của người dùng. Chế độ này được triển khai bằng tùy chọn khởi động U_MSS_BOOTMODE=3.

SBIC chứa địa chỉ, kích thước, hàm băm và chữ ký Thuật toán Chữ ký số Đường cong Elliptic (ECDSA) của blob nhị phân được bảo vệ. ECDSA cung cấp một biến thể của Thuật toán chữ ký số sử dụng mật mã đường cong elip. Nó cũng chứa véc tơ đặt lại cho từng Phần cứng
luồng/lõi/lõi bộ xử lý (Hart) trong hệ thống.

Bàn số 4 •  Chứng chỉ hình ảnh khởi động an toàn (SBIC)

Bù lại Kích thước (byte) Giá trị Sự miêu tả
0 4 HÌNH ẢNH ĐỊA CHỈ Địa chỉ của UBL trong bản đồ bộ nhớ MSS
4 4 HÌNH ẢNH Kích thước của UBL tính bằng byte
8 4 BOOTVEC0 Vectơ khởi động trong UBL cho E51
12 4 BOOTVEC1 Vectơ khởi động trong UBL cho U540
16 4 BOOTVEC2 Vectơ khởi động trong UBL cho U541
20 4 BOOTVEC3 Vectơ khởi động trong UBL cho U542
24 4 BOOTVEC4 Vectơ khởi động trong UBL cho U543
28 1 TÙY CHỌN[7:0] tùy chọn SBIC
28 3 KÍN ĐÁO  
32 8 PHIÊN BẢN SBIC/Phiên bản hình ảnh
40 16 DSN Liên kết DSN tùy chọn
56 48 H Băm SHA-384 hình ảnh UBL
104 104 MÃ SỐ Chữ ký ECDSA được mã hóa DER
Tổng cộng 208 Byte  

DSN
Nếu trường DSN khác XNUMX, trường này sẽ được so sánh với số sê-ri của chính thiết bị. Nếu so sánh không thành công, thì boot_fail tampcờ er được đặt và xác thực bị hủy bỏ.

PHIÊN BẢN
Nếu việc thu hồi SBIC được kích hoạt bởi U_MSS_REVOCATION_ENABLE, thì SBIC bị từ chối trừ khi giá trị của VERSION lớn hơn hoặc bằng ngưỡng thu hồi.

LỰA CHỌN THU HỒI SBIC
Nếu việc thu hồi SBIC được kích hoạt bởi U_MSS_REVOCATION_ENABLE và OPTIONS[0] là '1', thì tất cả các phiên bản SBIC nhỏ hơn VERSION sẽ bị thu hồi sau khi xác thực hoàn toàn SBIC. Ngưỡng thu hồi vẫn ở giá trị mới cho đến khi nó tăng trở lại bởi SBIC trong tương lai với OPTIONS[0] = '1' và trường VERSION cao hơn. Ngưỡng thu hồi chỉ có thể được tăng lên khi sử dụng cơ chế này và chỉ có thể được đặt lại bằng luồng bit.
Khi ngưỡng thu hồi được cập nhật động, ngưỡng này được lưu trữ bằng cách sử dụng sơ đồ lưu trữ dự phòng được sử dụng cho mật mã sao cho sự cố mất điện trong quá trình khởi động thiết bị không khiến lần khởi động thiết bị tiếp theo không thành công. Nếu cập nhật ngưỡng hủy bỏ không thành công, giá trị ngưỡng được đảm bảo là giá trị mới hoặc giá trị trước đó.

Bàn số 5 • Sử dụng U_MSS_BOOTCFG trong Chế độ bộ tải khởi động của nhà máy

Độ lệch (byte)  

Kích thước (byte)

 

Tên

 

Sự miêu tả

0 4 U_MSS_SBIC_ADDR Địa chỉ của SBIC trong không gian địa chỉ MSS
4 4 U_MSS_REVOCATION_ENABLE Cho phép thu hồi SBIC nếu khác không

Hình dưới đây cho thấy quy trình khởi động an toàn của nhà máy.
Hình 6 • Luồng khởi động an toàn của nhà máyMicrochip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 6 Microchip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 7

Khởi động người dùng MSS 

Quá trình khởi động người dùng MSS diễn ra khi quyền điều khiển được chuyển từ Bộ điều khiển hệ thống sang Tổ hợp lõi MSS. Sau khi khởi động trước MSS thành công, bộ điều khiển hệ thống sẽ giải phóng thiết lập lại cho Tổ hợp lõi MSS. MSS có thể được khởi động theo một trong các cách sau:

  • Ứng dụng kim loại trần
  • Ứng dụng Linux
  • AMP Ứng dụng

Ứng dụng kim loại trần

Các ứng dụng kim loại trần cho PolarFire SoC có thể được phát triển bằng công cụ SoftConsole. Công cụ này cung cấp đầu ra files ở dạng .hex có thể được sử dụng trong luồng Libero để đưa vào luồng bit lập trình file. Công cụ tương tự có thể được sử dụng để gỡ lỗi các ứng dụng Bare Metal bằng JTAG
giao diện.
Hình dưới đây cho thấy ứng dụng SoftConsole Bare Metal có năm lõi (Lõi) bao gồm lõi Màn hình E51.

Hình 7 • Dự án SoftConsole Microchip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 8

Ứng dụng Linux

Phần này mô tả trình tự khởi động cho Linux chạy trên tất cả các lõi U54.
Một quá trình khởi động điển hình bao gồm ba stages. S đầu tiêntage boot loader (FSBL) được thực thi từ Boot flash trên chip (eNVM). FSBL tải s thứ haitage bộ tải khởi động (SSBL) từ thiết bị khởi động sang RAM hoặc Bộ nhớ cache bên ngoài. Thiết bị khởi động có thể là eNVM hoặc vi điều khiển bộ nhớ nhúng (eMMC) hoặc SPI Flash bên ngoài. SSBL tải hệ điều hành Linux từ thiết bị khởi động sang RAM bên ngoài. Trong những giây thứ batage, Linux được thực thi từ RAM bên ngoài.

Hình dưới đây cho thấy luồng Quá trình khởi động Linux.
Hình 8 • Quy trình khởi động Linux điển hìnhMicrochip-UG0881-PolarFire-SoC-FPGA-Khởi động-Và-Cấu hình-fig 9

Chi tiết về bản dựng FSBL, Cây thiết bị, Linux và YOCTO, cách xây dựng và định cấu hình Linux sẽ được cung cấp trong bản phát hành tương lai của tài liệu này.

AMP Ứng dụng
Mô tả chi tiết về Bộ cấu hình Libero MSS và cách gỡ lỗi các ứng dụng đa bộ xử lý bằng SoftConsole sẽ được cung cấp trong lần phát hành tài liệu này trong tương lai.

Các nguồn khởi động khác nhau
Sẽ được cập nhật trong các phiên bản tương lai của tài liệu này.

Cấu hình khởi động
Sẽ được cập nhật trong các phiên bản tương lai của tài liệu này.

Từ viết tắt

Các từ viết tắt sau đây được sử dụng trong tài liệu này.

Bàn số 1 •  Danh sách các từ viết tắt

từ viết tắt mở rộng

  • AMP Đa xử lý bất đối xứng
  • DTIM Bộ nhớ tích hợp dữ liệu chặt chẽ (còn gọi là SRAM)
  • ECDSA Thuật toán chữ ký số đường cong Elliptic
  • eNVM bộ nhớ không bay hơi được nhúng
  • FSBL S đầu tiêntage Bộ tải khởi động
  • Con Hươu Luồng phần cứng/lõi/lõi bộ xử lý
  • Bản thảo Hệ thống con bộ vi xử lý
  • POR Bật nguồn Đặt lại
  • PUF Chức năng không thể mở được về mặt vật lý
  • Bộ nhớ trong Bộ nhớ chỉ đọc
  • SCB Cầu điều khiển hệ thống
  • sNVM Bộ nhớ không bay hơi an toàn

Lịch sử sửa đổi

Lịch sử sửa đổi mô tả những thay đổi đã được triển khai trong tài liệu. Các thay đổi được liệt kê theo bản sửa đổi, bắt đầu với ấn phẩm hiện tại.

Bản sửa đổi 2.0
Sau đây là tóm tắt những thay đổi được thực hiện trong bản sửa đổi này.

  • Thông tin về Factory Secure Boot đã được cập nhật.
  • Thông tin về Ứng dụng Bare Metal đã được cập nhật.

Bản sửa đổi 1.0
Lần xuất bản đầu tiên của tài liệu này.

Trụ sở chính của Microsemi
Một doanh nghiệp, Aliso Viejo,
CA 92656 Hoa Kỳ
Trong phạm vi Hoa Kỳ: +1 800-713-4113
Ngoài Hoa Kỳ: +1 949-380-6100
Việc bán hàng: +1 949-380-6136
Fax: +1 949-215-4996
E-mail: sales.support@microsemi.com
www.microsemi.com

© 2020 Microsemi, công ty con thuộc sở hữu hoàn toàn của Microchip Technology Inc. Mọi quyền được bảo lưu. Microsemi và biểu trưng Microsemi là các nhãn hiệu đã đăng ký của Microsemi Corporation. Tất cả các nhãn hiệu và nhãn hiệu dịch vụ khác là tài sản của chủ sở hữu tương ứng.

Tài liệu / Tài nguyên

Microchip UG0881 Khởi động và cấu hình PolarFire SoC FPGA [tập tin pdf] Hướng dẫn sử dụng
UG0881 Khởi động và cấu hình PolarFire SoC FPGA, UG0881, Khởi động và cấu hình PolarFire SoC FPGA, Khởi động và cấu hình

Tài liệu tham khảo

Để lại bình luận

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *