Melhorias para OpenRISC e suporte a placas FPGA chegam ao Kernel Linux 6.20

OpenRISC e FPGAs: O Kernel Linux 6.20 entrega estabilidade multicore e suporte nativo para desenvolvedores!

Escrito por
Emanuel Negromonte
Emanuel Negromonte é Jornalista, Mestre em Tecnologia da Informação e atualmente cursa a segunda graduação em Engenharia de Software. Com 14 anos de experiência escrevendo sobre...
  • Suporte Nativo: O Kernel Linux 6.20 agora oferece suporte oficial "out-of-the-box" para a placa FPGA Terasic DE0-Nano.
  • Correção Multicore: Um patch crítico resolve falhas no sistema SMP, permitindo que o Kernel Linux 6.20 gerencie múltiplos núcleos em OpenRISC sem travamentos.
  • Compatibilidade de Drivers: A definição da macro nop() específica para a arquitetura elimina erros de compilação em diversos drivers no Kernel Linux 6.20.
  • Modularidade Técnica: A nova estrutura de Device Tree (DTS) facilita a configuração de sistemas embarcados complexos, separando definições comuns de especificações de hardware.
  • Ciclo de Lançamento: As mudanças, enviadas por Stafford Horne, devem alcançar a versão estável em abril de 2026.

O desenvolvedor Stafford Horne enviou recentemente um pedido de pull para Linus Torvalds contendo atualizações significativas para a arquitetura OpenRISC. O foco principal deste conjunto de mudanças é aprimorar o suporte “pronto para uso” (out-of-the-box) do Kernel Linux 6.20 em placas de desenvolvimento baseadas em FPGA, facilitando a vida de engenheiros e entusiastas de hardware aberto.

As modificações trazem suporte oficial para a popular placa Terasic DE0-Nano, incluindo configurações tanto para sistemas de núcleo único quanto para multicore. Além disso, o pacote corrige bugs críticos que impediam a inicialização correta do sistema em ambientes SMP (Symmetric Multiprocessing) e resolve falhas de compilação que afetavam diversos drivers.

O que isso significa na prática:

Para quem utiliza hardware programável (FPGA), o Kernel Linux agora reconhece nativamente a placa DE0-Nano. Antes, rodar o sistema exigia ajustes manuais exaustivos. Com a correção nas interrupções entre processadores, o sistema torna-se estável em configurações com mais de um núcleo, evitando travamentos que ocorriam logo na inicialização por falha de comunicação interna do chip.

Detalhes da implementação

A atualização impacta diretamente os subsistemas arch/openrisc e drivers/irqchip. O ponto técnico de maior relevância é a correção no gerenciamento de IPIs (Inter-Processor Interrupts). Em sistemas multicore simples baseados em OpenRISC, as interrupções enviadas para as CPUs secundárias estavam sendo mascaradas (bloqueadas) indevidamente, o que impedia que esses núcleos iniciassem suas tarefas coordenadas pelo kernel.

Outra mudança importante foi a definição da macro nop() (No Operation) específica para a arquitetura. A ausência dessa definição estava quebrando o processo de compilação de drivers genéricos que tentavam utilizar instruções de espera ou alinhamento de código no OpenRISC.

Alterações na árvore de dispositivos (Device tree)

A organização dos arquivos .dts foi reformulada para permitir maior modularidade:

ArquivoFunção
de0-nano.dtsConfiguração padrão para a placa DE0-Nano (Single-core).
de0-nano-multicore.dtsSuporte a múltiplos núcleos na mesma FPGA.
de0-nano-common.dtsiDefinições de hardware compartilhadas entre as versões.

Quando isso chega no meu PC?

A mudança foi integrada à árvore principal durante a janela de mesclagem (merge window) do Kernel Linux 6.20.

  • Versão Estável: Previsão de lançamento oficial para abril de 2026.
  • Distribuições: Usuários de distribuições voltadas para sistemas embarcados e automação (como o Yocto Project ou Buildroot) devem receber as atualizações nos toolchains logo após o lançamento estável do kernel.
Compartilhe este artigo