- 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:
| Arquivo | Função |
de0-nano.dts | Configuração padrão para a placa DE0-Nano (Single-core). |
de0-nano-multicore.dts | Suporte a múltiplos núcleos na mesma FPGA. |
de0-nano-common.dtsi | Definiçõ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.
