Centro de desenvolvedores do Bootloader SoC FPGA
O Centro de desenvolvedores do SoC FPGA Bootloader oferece aos bootloaders SoC disponíveis com as principais características, como começar e recursos adicionais.
Os FPGAs SoC Intel® usam um carregador de inicialização para carregar e executar o aplicativo do usuário final no hard processor system (HPS). A aplicação do usuário final pode ser uma aplicação bare-metal simples ou um sistema operacional complexo como o sistema operacional Linux*.
Esta página descreve o que é um bootloader, lista os carregadores de inicialização disponíveis e suas principais características, descreve como começar com os carregadores de inicialização e lista recursos adicionais.
1. O que é um bootloader
Definição do bootloader
Quando um dispositivo SoC é inicializado, um pedaço de software chamado BootROM é executado pela primeira vez. Por vários motivos, o BootROM tem a seguinte funcionalidade limitada:
- Ele precisa se encaixar na ROM no chip, então tem que ser pequena
- É muito caro mudar, por isso tem que ser muito robusto, o que implica menos recursos
- Ele não sabe como o sistema foi configurado, portanto não pode criar tudo
O aplicativo do usuário final, por outro lado, é normalmente grande e requer que o sistema seja configurado conforme desejado pelo usuário final antes que possa ser executado.
O trabalho do bootloader é preencher a lacuna entre o BootROM e o aplicativo do usuário final.
Carregador de inicialização de estágio único
Tarefas típicas do bootloader
- Configuração das configurações de multiplexação e pinos do pino, como taxa de série, tensão e pull-up/pull-down
- Configurando os clocks na árvore de clock
- Trazendo para cima e calibrando a SDRAM
- Inicializando a memória flash
- Como configurar a malha FPGA
- Carregando a aplicação final da memória flash
- Passagem de controle para o aplicativo final
Além dos recursos listados acima, os carregadores de inicialização também oferecem os seguintes recursos avançados que podem permitir uma implantação mais complexa e um desenvolvimento mais conveniente:
- Acesso de rede que traz a aplicação do usuário final da nuvem.
- Ferramentas de depuração que permitem um diagnóstico mais conveniente de problemas.
- Interface de linha de comando para comandos interativos.
- Aplicativo executando um framework que pode permitir que aplicativos simples para o usuário final sejam carregados e executados até a conclusão pelo bootloader. Após a conclusão do aplicativo, o controle é remetido para o bootloader.
Carregadores de inicialização multi estágios
Às vezes, o processo do bootloader pode ser dividido em vários estágios, tipicamente dois.
Para Cyclone® V SoCs, o BootROM só pode carregar um carregador de inicialização de até 64 KB de tamanho porque a SDRAM ainda não foi criada nessa fase. Da mesma forma, para Intel® Arria® 10 SoCs, o BootROM só pode carregar um carregador de inicialização de até 256 KB de tamanho. Devido a essas limitações de tamanho, recursos avançados como redes ou acesso complexo a sistemas de arquivos não podem ser realizados. Se tais recursos forem desejados, a primeira etapa do bootloader traz a SDRAM e carrega uma segunda etapa com mais funcionalidade. Um bootloader de dois estágios é a opção padrão para SoCs Cyclone V, SoCs Arria® V e SoCs Arria® 10.
Carregadores de inicialização para dispositivos baseados em SDM
Para Intel® Stratix® 10 SoCs, os SoCs Intel® Agilex® 7 e SoCs Intel® Agilex® 5, um carregador de inicialização de duas fases, são normalmente usados. A primeira etapa do carregador de inicialização pequeno faz parte do fluxo de bits da configuração FPGA e é carregada pelo gerenciador de dispositivos seguro (SDM) para a RAM do HPS no chip, enquanto a segunda maior etapa de bootloader precisa ser armazenada em um local acessível pelo HPS.
2. Entrega do hardware
Visão geral de handoff
Todos os Intel SoC FPGA projetos começam com um projeto de hardware no qual várias configurações de sistema que afetam o HPS são inseridas pelo usuário. Elas incluem:
- Multiplexação de pinos
- Configurações do pino
- Configurações da SDRAM
- Configurações de clock
É trabalho do bootloader aplicar essas configurações e o processo do bootloader que recebe essas configurações é chamado de entrega de hardware para software.
Dependendo da família exata de bootloader e dispositivo SoC, a entrega pode tomar várias formas. Normalmente:
- Para os SoCs Cyclone V e Arria V, a entrega é uma combinação de arquivos XML, arquivos binários e arquivos de código fonte, que são convertidos em código fonte e depois compilados no bootloader
- Para Intel Arria 10 SoCs, a entrega é contida em um único arquivo XML que é convertido em arquivo de árvore de dispositivo e usado pelo carregador de inicialização
- Para Intel Stratix 10 SoCs, SoCs Intel Agilex 7 e SoCs Intel Agilex 5, as informações de entrega fazem parte do fluxo de bits da configuração FPGA
O método principal para inserir ou alterar as informações de entrega é editá-las no Quartus Platform Designer.
Além das informações de entrega, os carregadores de inicialização também possuem várias configurações que podem ser selecionadas pelo usuário através dos seguintes métodos:
- Edição do código-fonte do bootloader
- Edição da árvore de dispositivo bootloader quando uma árvore de dispositivo é usada
Entrega do SoC Cyclone V e Do SoC Arria V
Intel Arria 10 entrega do SoC
Entrega do SoC Intel Stratix 10, SoC Intel Agilex 7 e SoC Intel Agilex 5
3. Carregadores de inicialização disponíveis
Visão geral dos bootloaders disponíveis
A tabela a seguir lista os carregadores de inicialização disponíveis, os tipos de licenças, os SoCs suportados e a disponibilidade de suporte para duas etapas:
Bootloader |
Tipo de licença |
SoC Cyclone V, |
Intel Arria 10 SoC |
SoC Intel Stratix 10, SoC Intel Agilex 7 Intel Agilex 5 SoC |
---|---|---|---|---|
U-Boot |
GPL |
Sim |
Sim |
Sim |
ATF |
BSD |
- |
- |
Sim |
U-Boot
O U-Boot é um carregador de inicialização amplamente utilizado pelo setor e oferece inúmeros recursos:
- Primeira etapa opcional chamada "SPL" para sistemas com RAM no chip limitada (por exemplo, SoC Cyclone V e SoC Arria V)
- Capacidade de rede
- Suporte para memória flash
- Interface de linha de comando
- Script
- Aplicativos personalizados U-Boot
A U-Boot é desenvolvida sob uma licença pública geral (GPL) para que quaisquer contribuições feitas para um produto que está sendo entregue ao público também sejam tornadas públicas.
O código-fonte U-Boot está disponível na página U-Boot SoC FPGA no site do GitHub.
A página principal da página inicialização U-Boot genérica está localizada na página Das U-Boot -- a página do carregador universal de inicialização.
ATF
O Arm Trusted Firmware (ATF) é uma implementação de referência de software mundial seguro para ARMv8-a, implementando vários padrões de interface ARM, como Requisitos de inicialização de placa confiável (TBBR) e Secure Monitor Call (SMC).
O ATF é desenvolvido de forma colaborativa sob uma licença BSD, que permite desenvolvimento e implantação convenientes.
O código-fonte para Intel SoC FPGA porta de ATF pode ser acessado em https://github.com/altera-opensource/arm-trusted-firmware.
5. Recursos
Guias do usuário
Estão disponíveis os seguintes guias de usuário:
Código-fonte
O código-fonte pode ser obtido nos seguintes sites:
O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.