SoC 부트로더
인텔® SoC FPGA는 부트 로더를 사용하여 HPS(하드 프로세서 시스템)에서 최종 사용자 응용 프로그램을 로드하고 실행합니다. 최종 사용자 응용 프로그램은 간단한 베어 메탈 응용 프로그램 또는 Linux* 운영 체제와 같은 복잡한 운영 체제일 수 있습니다.
이 페이지에서는 부트 로더가 무엇인지 설명하고, 사용 가능한 부팅 로더와 주요 특성을 나열하고, 부트 로더로 시작하는 방법을 설명하고, 추가 리소스를 나열합니다.
1. 부트로더란 무엇인가?
부트로더 정의
SoC 장치가 부팅되면 BootROM이라는 소프트웨어가 처음 실행됩니다. 여러 가지 이유로 BootROM에는 다음과 같은 제한된 기능이 있습니다.
- 그것은 작은해야하므로 온 칩 ROM에 맞게해야합니다
- 그것은 덜 기능을 의미 하는 매우 강력한 해야 그래서 변경 하는 것은 매우 비싸다
- 그것은 모든 것을 가져올 수 없습니다 있도록 시스템이 구성 된 방법을 모른다
반면에 최종 사용자 응용 프로그램은 일반적으로 크고 시스템을 실행하기 전에 최종 사용자가 원하는 대로 구성해야 합니다.
부트로더의 작업은 BootROM과 최종 사용자 응용 프로그램 간의 격차를 해소하는 것입니다.
일반적인 부트 로더 작업은 다음과 같습니다.
- 슬루율, 전압 및 풀업/풀다운과 같은 핀 멀티플렉싱 및 핀 설정 구성
- 시계 트리의 시계 구성
- SDRAM 을 가져오고 보정
- 플래시 메모리 초기화
- 플래시 메모리에서 최종 응용 프로그램 로드
- 최종 응용 프로그램에 제어 전달
위에 나열된 기능 외에도 부트로더는 보다 복잡한 배포와 보다 편리한 개발을 가능하게 하는 다음과 같은 고급 기능을 제공합니다.
- 클라우드에서 최종 사용자 응용 프로그램을 가져오는 네트워크 액세스입니다.
- 문제를 보다 편리하게 진단할 수 있는 디버깅 도구입니다.
- 대화형 명령에 대한 명령줄 인터페이스입니다.
- 간단한 최종 사용자 응용 프로그램을 로드하고 부트 로더에 의해 완료하도록 실행할 수 있는 프레임워크를 실행하는 응용 프로그램입니다. 응용 프로그램이 완료되면 컨트롤이 부트 로더로 다시 전달됩니다.
다단계 부트로더
부트 로더 프로세스를 여러 단계로 나눌 수 있는 경우도 있습니다.
사이클론® V SoC의 경우, BootROM은 SDRAM이 아직 해당 단계에서 키워지지 않았기 때문에 최대 64KB 크기의 부트 로더만 로드할 수 있습니다. 크기 제한으로 인해 네트워킹 이나 복잡한 파일 시스템 액세스와 같은 고급 기능을 수행할 수 없습니다. 이러한 기능을 원하는 경우 부트 로더의 첫 번째 단계는 SDRAM을 가져온 다음 더 많은 기능을 갖춘 두 번째 단계를 로드합니다. 2단계 부트로더는 사이클론 V SoC및 아리아® V SoC의 기본 옵션입니다.
인텔® Arria® 10 SoC는 더 큰 RAM 크기를 가지고 있습니다. 온칩 RAM256 KB를 탑재한 부트로더의 첫 번째 단계는 사이클론 V와 아리아 V SoC보다 더 많은 기능을 가질 수 있습니다. 그렇기 때문에 일반적으로 한 단계만 필요합니다. 그러나 여러 유형의 플래시, 복잡한 파일 시스템 및 네트워킹에 액세스하는 등 훨씬 더 복잡한 경우 사용자는 추가 부트 로더 단계를 자유롭게 사용할 수 있습니다.
인텔® Stratix® 10 SoC의 경우 일반적으로 2단계 부트 로더가 사용됩니다. 첫 번째 소형 부트로더 단계는 FPGA 구성 스트림의 일부이며 보안 장치 관리자(SDM)가 HPS 온칩 RAM에 로드되며, 두 번째 더 큰 부트 로더 스테이지는 HPS가 액세스할 수 있는 곳에 저장할 수 있습니다.
2. 하드웨어 핸드오프
핸드오프 개요
모든 인텔 SoC FPGA 프로젝트는 사용자가 HPS에 영향을 미치는 다양한 시스템 설정을 입력하는 하드웨어 프로젝트로 시작합니다. 여기에는 다음이 포함됩니다.
- 핀 멀티플렉싱
- 핀 설정
- SDRAM 설정
- 시계 설정
이러한 설정을 적용하는 부트 로더의 작업이며 이러한 설정을 수신하는 부트 로더의 프로세스를 하드웨어 간 소프트웨어 핸드오프라고 합니다.
정확한 부트 로더 및 SoC 장치 제품군에 따라 핸드오프는 다양한 형태를 취할 수 있습니다. 일반적 으로:
- 사이클론 V와 Arria V SoC의 경우 핸드오프는 XML 파일, 이진 파일 및 소스 코드 파일의 조합으로 소스 코드로 변환된 다음 프리로더로 컴파일됩니다.
- 인텔 아리아 10 SoC의 경우 핸드오프는 장치 트리 파일로 변환되고 부트 로더에서 사용하는 단일 XML 파일에 포함되어 있습니다.
- 인텔 Stratix 10 SoC의 경우 핸드오프 정보는 FPGA 구성 비트스트림의 일부입니다.
핸드오프 정보를 입력하거나 변경하는 주요 방법은 Qsys에서 편집하는 것입니다.
핸드오프 정보 외에도 부트로더에는 다음 방법을 통해 사용자가 선택할 수 있는 다양한 설정도 있습니다.
- BSP 편집기의 설정 변경
- 부트 로더 소스 코드 편집
- 장치 트리를 사용할 때 부트 로더 장치 트리 편집
사이클론 V 소크와 아리아 V SoC 핸드오프

인텔 아리아 10 SoC 핸드오프

인텔 지층 10 SoC 핸드오프

3. 사용 가능한 부트 로더
사용 가능한 부트로더 개요
다음 표에는 사용 가능한 부트 로더, 라이센스 유형, 지원되는 SoC 및 2단계 지원 가용성이 나열됩니다.
U-부팅
U-Boot는 업계에서 널리 사용되고 다양한 기능을 제공하는 부트 로더입니다.
- 제한된 온칩 RAM시스템을 위한 "SPL"이라는 선택적 첫 번째 단계(예: 사이클론 V SoC 및 아리아 V SoC)
- 네트워킹 기능
- 플래시 메모리 지원
- 명령줄 인터페이스
- 스크립팅
- U-부팅 사용자 지정 응용 프로그램
U-Boot는 일반 공공 라이센스(GPL)에 따라 개발되므로 대중에게 전달되는 제품에 대한 모든 기여도 공개되어야 합니다.
U-Boot 소스 코드는 GitHub 웹 사이트의 U-Boot SoC FPGA 페이지에서 사용할 수 있습니다.
인텔 아리아 10 SoC, 아리아 V SoC 및 사이클론 V SoC의 경우 U-Boot 소스 코드는 인텔 SoC FPGA 임베디드 개발 스위트(SoC EDS)에 포함되어 있어 간단하고 편리한 개발 프로세스를 용이하게 합니다.
사이클론 V와 아리아 V SoCs에 대한 지원은 GitHub 웹 사이트의 공식 U-Boot git 트리에 메인라인되었습니다. 인텔 아리아 10 SoC에 대한 주요 지원도 진행 중입니다.
주요 일반 U-부팅 홈 페이지는 다스 U-Boot - 유니버설 부트 로더 웹 페이지에있습니다.
MPL
최소 프리로더(MPL)는 인텔 SoC FPGA 베어메탈 하드웨어 추상화 라이브러리(HWLIB)를 사용하여 개발된 부트로더입니다. 설치 공간을 최소화하도록 설계된 단일 스테이지 부트로더입니다.
MPL은 다음 장치에서 사용할 수 있습니다.
- 사이클론 V SoC
- 아리아 V SoC
- 인텔 아리아 10 SoC
MPL은 버클리 소프트웨어 배포(BSD) 라이선스와 함께 제공되어 보다 편리한 개발 및 배포를 가능하게 합니다.
MPL은 SoC EDS의 일부로 제공되며 <SoC EDS 설치 폴더>/임베디드/예제/소프트웨어/인텔® FPGA-SoCFPGA-HardwareLib-MPL.tar.gz 파일의 프로젝트 아카이브입니다. 아카이브에는 자세한 MPL 설명 과 사용 정보가 포함된 README.txt라는파일이 포함되어 있습니다.
UEFI
통합 형 펌웨어 인터페이스 (UEFI)는 플랫폼 초기화 및 펌웨어 부트 스트랩을 단순화 표준화 된 펌웨어 사양입니다.
UEFI 부트 로더는 다음 장치에 사용할 수 있습니다.
- 인텔 아리아 10 SoC
- 인텔 지층 10 SoC
UEFI는 수백 개의 기술 회사에서 매우 잘 지정되고 사용되므로 많은 코드를 재사용할 수 있으므로 더 빠른 개발 주기를 가능하게 합니다.
인텔 SoC FPGA에 구현된 UEFI는 두 단계로 구성됩니다.
- 사전 Efi 초기화 단계 (PEI). 이 단계에서는 플랫폼을 구성하고 최종 사용자 응용 프로그램 또는 DXE를 로드합니다.
- 드라이버 eXecution 환경 (DXE). 이 단계에서는 추가 UEFI 드라이버를 로드하고 네트워킹 및 명령줄 인터페이스와 같은 확장된 기능을 허용합니다.
또한 UEFI 부트로더는 DXE 환경을 대상으로 하는 특수 응용 프로그램을 실행할 수 있는 기능을 제공합니다. 이러한 응용 프로그램은 종료 제어가 DXE로 돌아오면 실행될 수 있습니다.
UEFI는 BSD 라이선스와 함께 제공되어 보다 편리한 개발 및 배포를 가능하게 합니다.
UEFI 소스 코드는 GitHub 웹 사이트의 UEFI SoC FPGA 페이지에서 사용할 수 있습니다.
인텔 아리아 10 SoC의 경우 UEFI는 SoC EDS와 함께 제공되어 U-Boot와 동일한 개발 흐름을 가능하게 합니다.
ATF
ARM Trusted 펌웨어(ATF)는 ARMv8-a용 안전한 세계 소프트웨어를 참조구현하여 신뢰할 수 있는 보드 부팅 요구 사항(TBBR) 및 보안 모니터 호출과 같은 다양한 ARM 인터페이스 표준을 구현합니다.
ATF는 BSD 라이선스로 협업하여 개발되어 편리한 개발 및 배포를 가능하게 합니다.
ATF는 설치 공간이 작으며 첫 번째 단계 부트 로더(FSBL)로 설계되었습니다. 그것은 PXE 다음 DXE를로드하기 위해 UEFI와 함께 사용되지만, 예를 들어 간단한 베어 메탈 응용 프로그램을로드하는 데 사용할 수 있습니다.
ATF의 인텔 SoC FPGA 포트의 소스 코드는 https://github.com/Intel FPGA 오픈소스/암 신뢰할 수 있는 펌웨어에서액세스할 수 있습니다.
4. 시작하기
U-부팅 시작
U-Boot로 시작하는 데 사용할 수 있습니다.
- 사이클론 V 프리로더 생성 및 컴파일
- 아리아 10 U-부팅 생성 및 컴파일
MPL 시작
MPL은 SoC EDS의 일부로 제공되며 <SoC EDS 설치 폴더>/임베디드/예제/소프트웨어/인텔 FPGA-SoCFPGA-HardwareLib-MPL.tar.gz 파일의 프로젝트 아카이브입니다. 아카이브에는 README라는 파일이 포함되어 있으며.txt 인텔 아리아 10 SoC, Arria V SoC 및 사이클론 V SoC에 대한 자세한 사용 정보가 포함되어 있습니다.
UEFI 시작
다음과 같은 리소스를 사용하여 UEFI로 시작할 수 있습니다.
- 인텔 아리아 10 SoC UEFI 시작
- 인텔 아리아 10 SoC UEFI 부트 로더 사용자 가이드
- 인텔 지층 10 SoC UEFI 부트 로더 사용자 가이드
5. 자원
사용자 가이드
다음 사용자 가이드를 사용할 수 있습니다.
소스 코드
소스 코드는 다음 웹 사이트에서 얻을 수 있습니다.
- 지트허브의 인텔 소C FPGA U-부팅
- 공식 Denx U-부팅 소스 코드
- 지트허브의 인텔 소C FPGA UEFI
- GitHub에 ARM 신뢰할 수 있는 펌웨어
- 사이클론 V, 아리알 V 및 아리아 10 U-부팅 소스 코드와 아리아 10 UEFI 소스 코드에 대한 SoC EDS. 소스 코드는 bsp-편집기 도구를 실행하여 생성됩니다. SoC EDS 사용자 가이드,"부팅 도구 사용자 가이드" 장에서 자세한 내용을 확인하세요.
- S10 SoC U-Boot 소스 코드용 SoC EDS는 <SoC EDS 설치 폴더>/임베디드/host_tools/인텔 FPGA/부트로더/stratix10/u-boot/uboot-socfpga.tar.gz 파일입니다.
- MPL 소스 코드에 대한 SoC EDS는 <SoC EDS 설치 폴더>/임베디드/예제/소프트웨어/인텔 FPGA-SoCFPGA-HardwareLib-MPL.tar.gz 파일에 있습니다.
이 페이지의 콘텐츠는 원본 영어 콘텐츠에 대한 사람 번역 및 컴퓨터 번역의 조합으로 완성되었습니다. 이 콘텐츠는 편의와 일반적인 정보 제공을 위해서만 제공되었으며, 완전하거나 정확한 것으로 간주되어선 안 됩니다. 이 페이지의 영어 버전과 번역 간 모순이 있는 경우, 영어 버전이 우선적으로 적용됩니다. 이 페이지의 영어 버전을 확인하십시오.