O desenvolvedor Jiayu Du enviou uma nova série de patches que introduz o suporte oficial aos controladores SDHCI (Secure Digital Host Controller Interface) para o SoC Canaan K230. Essa atualização é fundamental para habilitar o armazenamento interno e a conectividade de periféricos em dispositivos baseados nesta arquitetura RISC-V. O patch foca na integração dos controladores Synopsys DWCMSHC, garantindo que o Kernel Linux 7.0-rc1 gerencie nativamente tanto memórias eMMC quanto módulos SDIO.
O que isso significa na prática
Na prática, essa implementação permite que placas de desenvolvimento e dispositivos equipados com o processador K230 utilizem armazenamento de alta velocidade (eMMC 5.0) e expansões via cartões SD ou módulos de rede. Sem esse suporte, o sistema operacional teria dificuldades em acessar arquivos de forma eficiente ou até mesmo em realizar a inicialização (boot) a partir da memória interna. A separação dos controladores garante que cada tipo de hardware opere em sua capacidade máxima, com o MMC0 focado em estabilidade para o sistema e o MMC1 para flexibilidade de periféricos.
Detalhes da implementação
A mudança foi aplicada no subsistema MMC, afetando especificamente o driver sdhci-of-dwcmshc.c. Tecnicamente, os controladores MMC0 e MMC1 do SoC K230 possuem designs de hardware distintos, o que exigiu a criação de compatíveis separados no Device Tree. Um ponto crítico resolvido pelo patch é a ativação do modo de clock programável (SDHCI_PROG_CLOCK_MODE), um ajuste específico do fabricante necessário para que a memória eMMC consiga realizar operações de leitura e escrita sem erros.
Essa evolução técnica reforça o amadurecimento do suporte à arquitetura. Vale lembrar que, como acompanhamos recentemente no SempreUpdate, o Kernel Linux 7.0 também introduziu proteções críticas de segurança CFI para RISC-V, consolidando esta versão como um marco para o hardware aberto.
Curiosidades e bastidores da discussão
Durante a revisão do patch em sua segunda versão (v2), a comunidade focou na limpeza do código de inicialização do PHY. Houve uma mudança significativa na forma como o driver acessa o PHY USB do K230, substituindo buscas genéricas por referências diretas via phandles no Device Tree. Além disso, a lógica de seleção de energia foi simplificada para evitar loops de atraso manuais, optando-se por funções padrão do Kernel Linux como read_poll_timeout, o que torna o processo de detecção do hardware mais robusto e menos propenso a falhas de temporização em diferentes ambientes.
Quando isso chega no meu PC?
Como o suporte foi integrado para o ciclo do Kernel Linux 7.0-rc1, a versão estável final deve ser lançada em aproximadamente oito a dez semanas. Para usuários de distribuições focadas em RISC-V, como o Fedora ou Debian RISC-V, o suporte deve aparecer assim que as imagens forem atualizadas para a base 7.0. Desenvolvedores que utilizam a placa CanMV-K230 já podem testar a funcionalidade compilando o kernel a partir da árvore mainline.