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 de SoC 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 carregador de inicialização, lista os carregadores de inicialização disponíveis e suas principais características, descreve como começar a usar os bootloaders e lista os recursos do Agilex™ 7 e Agilex™ 5, SoC Stratix® 10, SoC Arria® 10, SoC Cyclone® 10 GX, SoC Cyclone® 10 LP, SoC Arria® V, dispositivos SoC Cyclone® V.
Obtenha suporte adicional para o desenvolvimento de software Agilex™ 7 e desenvolvimento de software Agilex™ 5, jornadas guiadas passo a passo para fluxos de desenvolvimento padrão que acompanham os principais recursos e documentação essenciais.
Para outros dispositivos, pesquise nas Coleções de Suporte de Dispositivos e Produtos.
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 para dispositivos baseados em SDM
Para SoCs Agilex™ 7 e SoCs Agilex™ 5, e Stratix® 10 SoCs, um bootloader de dois estágios é usado normalmente. 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.
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 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.
2. Entrega do hardware
Visão geral de handoff
Todos os projetos de SoC FPGA começam com um projeto de hardware, no qual várias configurações de sistema listadas abaixo são configuradas pelo usuário que afetará o HPS.
- 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 abaixo.
- 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 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 SoCs Agilex 7, SoCs Agilex 5 e SoCs Stratix 10, 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 métodos a seguir.
- Edição do código-fonte do bootloader
- Edição da árvore de dispositivo bootloader quando uma árvore de dispositivo é usada
Entrega do SoC Agilex™ 7 e Agilex™ 5, Stratix® 10
- Para Agilex 7 e Agilex 5, Stratix 10 SoC, as informações de distribuição fazem parte do fluxo de bits da configuração FPGA.
Entrega do SoC Arria® 10
- Para 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
Entrega do SoC Cyclone® V e Do SoC Arria® V
- 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
3. Carregadores de inicialização disponíveis
Visão geral dos bootloaders disponíveis
Carregadores de inicialização disponíveis, tipos de licenças, SoCs suportados e disponibilidade de suporte para duas etapas.
Dispositivo | Bootloader |
Tipo de licença |
Descrição |
---|---|---|---|
Agilex™ 7 Agilex™ 5 dia 10 de Stratix® |
ATF | BSD | 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 a FPGA porta SoC de ATF pode ser acessado na https://github.com/altera-opensource/arm-trusted-firmware. |
Agilex™ 7 Agilex™ 5 dia 10 de Stratix® dia 10 de Arria® Arria® V Cyclone® V |
U-Boot |
GPL |
O U-Boot é um carregador de inicialização amplamente utilizado pelo setor e oferece inúmeros recursos:
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. |
5. Recursos
SoC tipo | 7 Agilex™ | ™ 7 | Stratix® 10 SoC | Arria® 10 e SoC Cyclone® V |
---|---|---|---|---|
Exemplos de projeto | Kit de desenvolvimento SoC série F | Kit de desenvolvimento premium da série E Kit de desenvolvimento modular da série E
|
||
Guia do usuário | Guia do usuário de inicialização do HPS | Guia do usuário de inicialização do HPS | ||
Código-fonte | Altera SoC FPGA U-Boot no GitHub |
Altera SoC FPGA U-Boot no GitHub |
|
|
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.