To make this happen an Open Hardware PowerPC Notebook will be Produced soon.
Pronto para migrar para o GNU/Linux em PowerPC
Atualmente, o GNU/Linux roda em muitos dispositivos em praticamente todas as arquiteturas.
Agora é a hora certa para fazer novas escolhas. Faça acontecer com um notebook GNU/Linux rodando em PowerPC!
Nossa paixão por inovação e por este projeto já motivou um fabricante a começar o desenho da placa-mãe deste notebook PowerPC. Sua participação faz toda a diferença para projetar e fabricar o dispositivo ideal!
Estamos construindo uma comunidade fundada na solidariedade para autorizar um fabricante inovador a fabricar um notebook PowerPC. Estamos trabalhando juntos em busca de um preço justo para todos.
Procuramos por entusiastas apaixonados por inovação e que gostariam de ajudar a tornar o projeto realidade!
Junte-se a nós e fortaleça a equipe do projeto notebook PowerPC! Assine o nosso jornal. O nosso entusiasmo já levou um fabricante a começar o desenho da placa-mãe.
Graças à contribuição de nossos doadores, atingimos a meta da nossa campanha para financiar a fase 1B do “fast simulation bus”.
O design do PCB (placa de circuito impresso) está em fase final. Assim que o revirmos, ele será publicado no nosso Git. Esta última fase é fundamental, pois podemos verificar se o design está correto, abrindo alas para a próxima campanha.
Já passamos da fase mais difícil da pesquisa e desenvolvimento, suas incertezas e desafios. Já atingimos a ambiciosa meta financeira das campanhas anteriores e agradecemos às muitas pessoas que nos ajudaram a chegar aqui.
Estamos prontos para lançar a fase 2 – produção e entrega de cinco protótipos funcionais” com uma meta de 10500 Euros (cerca de 12720 dólares).
A nossa meta é atingir esse resultado na primavera de 2021. Estamos novamente trabalhando com a paciente equipe da ACube Systems que vai ajudar-nos a produzir os protótipos.
Esses protótipos serão muito importantes, pois:
serão a prova de fogo do PCB
aprenderemos a inicializar o hardware corretamente
Até agora, usamos o U-Boot no Devkit NXP T2080, mas ele é muito diferente da nossa placa-mãe, que é bem mais complexa. Temos que ajustar o U-Boot diretamente no hardware final, e os protótipos serão essenciais para tal. Além disso, precisamos configurar corretamente o framebuffer. Até agora, só pudemos acessar o console do U-Boot em modo serial. A ACube Systems vai nos ajudar nessa tarefa.
A placa-mãe foi projetada para se encaixar dentro do chassis Eclipse Notebook que hospedará os protótipos.
Também precisaremos redesenhar os dissipadores de calor, pois são ligeiramente diferentes dos originais para o notebook Eclipse.
A jornada ainda não acabou. Precisamos que vocês divulguem o nosso projeto. Precisamos de mais entusiastas e mais doações.
2021 é o nosso ano! Tornemos este projeto uma realidade!
No último post, mencionamos que uma nova versão da esquemática elétrica está em andamento. Após algumas rodadas de revisões internas e aprimoramentos, uma nova versão está pronta para ser publicada.
Nós publicamos uma versão PDF das esquemáticas exportadas do software ORCAD que está sendo usado pelo projetista. Você pode navegar pelo documento e investigar cada componente. Infelizmente, devido à complexidade do documento, alguns visualizadores PDF não conseguem exibi-lo corretamente. Caso isso aconteça, use outro leitor de PDFs.
Após receber as novas esquemáticas, já solicitamos algumas mudanças ao projetista. Gostaríamos particularmente de elevar o consumo máximo de energia da placa-mãe para 90W, para suportar placas de vídeo MXM3 de 55W. Por exemplo, a AMD Radeon E9174 (GCN 4.0) dissipa um máximo de 50W.
Se você acha que uma capacidade de dissipação térmica de 90W é muito para um laptop, digo que no laptop que estou usando para digitar este post (um Dell XPS 15 9570 de 2018), após conectá-lo a um medidor de força, o consumo oscila entre 40W e 90W (não sei o motivo – só tenho um navegador aberto). Também tentei jogar jogos 3D no Dell e o consumo atinge 110W ou até 130W, que é o limite da fonte de alimentação.
Na versão atual da placa-mãe, como você pode ver nas esquemáticas elétricas (páginas 3 e 4), existem 2 slots SO-DIMM DDR3L que suportam memória DD3L não-ECC (com um máximo de 1866 MT/s, PC3-14900). Optamos por módulos não-ECC porque são muito mais fáceis de achar no mercado e mais baratos que ECC. Será fácil ter 32GB de RAM (2x 16GB), ou até o limite de 64GB, se você puder encontrar módulos de 32GB SO-DIMM.
Diagrama de bloco do notebook PowerPC, maio de 2020
Neste diagrama de bloco, você encontra um extensor GPIO. Ele será útil para debug dos protótipos e será removido do projeto final.
Graças aos apoiadores do nosso projeto (lista), mesmo com as dificuldades impostas pelo impacto do coronavírus no cotidiano de todos, já atingimos 60% da nossa meta, dando-nos confiança de que será possível obter o design do PCB em tempo razoável.
Ainda precisamos arrecadar 40% (7600 EUR, 8400 USD) para atingir nossa meta atual. Pedimos a colaboração de todos.
Gostaríamos também de convidar a todos os que tenham a habilidade técnica para contactar-nos caso possam ajudar com a revisão das nossas esquemáticas de hardware e melhorar a qualidade da nossa placa-mãe final.
Enfatizamos que a associação Power Progress Community por trás deste projeto tem como meta de longo prazo remover as barreiras para o acesso e compartilhamento de conhecimento tecnológico. Poder compartilhar livremente o design de uma placa-mãe de laptop vai melhorar dramaticamente a situação atual onde acessar esse tipo de informação é difícil para profissionais da área, ainda mais para estudantes e entusiastas. Além do mais, focar em tecnologias alternativas ajuda a disseminar uma cultura de diversidade, tão importante em um mundo onde as gerações mais novas nem imaginam que exista um mundo além do x86 ou ARM.
Trabalho no U-Boot
Nosso devkit T2080RDB inicia com placas AMD Radeon HD o GNU/Linux PPC. Até agora, testamos com sucesso o Debian 10, o OpenSuse, o VoidLinux e o Fienix. Porém, por falta de apoiadores experientes no U-Boot, ainda não temos suporte à saída de vídeo antes do kernel do Linux. Recentemente, um grupo de apoiadores nos contactou e se juntou ao projeto. Graças a eles, estamos confiantes de que resolveremos o problema, e que até atualizaremos a versão maisnova do U-Boot. Esperamos poder anunciar boas novas em um futuro não muito distante.
Progresso na versão big endian da Unreal Engine PPC64 no VoidLinux
Graças ao JT, do grupo VoidLinux que suporta o PowerPC, entendemos que o problema atual da ABI que enfrentamos quando tentamos compilar a Unreal Engine 4.23 no nosso sistema Debian Sid PPC64 é que, sob o Debian PPC64, o compilador clang suporta abiv1, mas o linker LLD não. Como se não bastasse, JT nos disse que a biblioteca Mesa em big endian suporta o OpenGL 3.2 mas, infelizmente, o Unreal Engine parece precisar de uma versão mais nova do OpenGL.
Esse problema da ABI durante a compilação pode ser resolvido obtendo-se uma versão do abiv2 ou substituindo-se o linker usado (por exemplo, pelo ld.bfd). É difícil dizer se a UE precisa dele para algo. A ABI v1 não é boa de qualquer jeito, e tem umas estranhices como descritores de função que fazem chamadas à bibliotecas mais lentas e precisando de pointers de função mais longos que 8 byes, precisando de uma indireção dupla, enquanto a versão 2 nova da ABI tem um design muito melhor e funciona até em sistemas big endian, mesmo que tenha sido projetada em 2013 com sistemas little endian em mente.
O VoidLinux suporta o novo ABI v2, então nossa intenção é instalá-lo na nossa VM Power9 na OSU, substituindo a versão atual baseada no Debian. Apenas resolvendo os problemas da ABI poderemos finalmente compilar a Unreal em uma máquina PPC64 big endian.
Como a máquina Power9 que estamos usando na OSU depende do OpenStack, teremos que criar uma imagem VoidLinux para aquela. No momento, o VoidLinux não tem o pacote cloud-init requerido pelo OpenStack. Portanto, começamos a trabalhar nisso seguindo a documentação do cloud-init.
Testando a integração do cloud-init no VoidLinux PPC64 rodando no QEMU no G5.
Seremos gratos por qualquer ajuda para apoiar-nos nesse esforço importante, particularmente aqueles que tem conhecimento sobre como preparar o cloud-init. Um problema extra é que o nosso membro que está trabalhando nesta tarefa não tem acesso a nenhum hardware PPC64 e depende de uma imagem lenta emulada de PPC64 no QEMU 4.2.0 rodando em hardware x86.
VoidLinux PPC64 rodando no QEMU em uma máquina x86.
Na busca de sistemas adicionais que suportam a ABI v2, também investigamos o Adelié Linux, que lançou recentemente a versão 1.0RC1 para ppc64. Infelizmente, não suporta nativamente cloud-init.
Colaboração com o Libre-SOC
Gostamos muito do trabalho dos nossos amigos do Libre-SOC. Entramos em contato para estabelecer um bom relacionamento para apoiar os ideais de hardware aberto.
O Libre-SOC é um projeto de hardware e software livre que visa criar um SOC POWER com CPU, GPU, VPU e controlador DDR. Todo o hardware e software, desde driver até o RTL e células VLSI são software livre. A Libre-SOC também provê todos os drivers necessários, incluindo o Kazan (um driver 3D Vulkan) e o código-fonte completo da firmware ROM de boot, com suporte total a boot a frio sem ROM para maior confiabilidade.
O mercado alvo inclui consumidores que precisam de sistemas integrados acelerados sem precisar contar com a ARM ou drivers proprietários, famosos por causar problemas no passado.
A primeira versão da Libre-SOC tem como meta um sistema single-core 180nm. Versões futuras tem como meta núcleos SMP menores, para projetos SBC.
Entrevista com Roberto Innocenti sobre o nosso projeto, graças ao Charbax da ARMDevices
No fim de abril, graças ao Charbax da armdevices.net, Roberto Innocenti, o idealizador do laptop PowerPC e co-fundador da Power Progress Community foi entrevistado. A entrevista foi sobre o projeto do laptop e outras atividades realizadas pela associação sem fins lucrativos. Abaixo você encontrará a lista de tópicos discutidos durante a entrevista. Achamos que a entrevista é interessante e cobre bem a abordagem que seguimos, mesmo que às vezes o inglês de Roberto seja difícil de entender. Durante a entrevista, alguém perguntou sobre o Manjaro para PowerPC. Parece que esta distribuição não suporta o PowerPC.
0:13 – Apresentação de Roberto Innocenti 0:45 – A comunidade Power Progress 1:34 – O projeto do notebook PowerPC 3:15 – A história da arquitetura PowerPC 6:13 – A fundação OpenPOWER 7:11 – Por que a CPU NXP e não IBM? 9:40 – PowerPC no Linux 11:35 – Distribuições Linux que rodam no PowerPC 13:36 – Futuro do PowerPC embutido 15:21 – Fatos interessantes sobre o processador Cell 18:27 – Esquemáticas e diagramas do notebook PowerPC 19:31 – Especificações da CPU NXP 20:13 – GPU atualizável AMD Radeon MXM 21:02 – Contribuição da comunidade Power Progress e da ACube Systems Srl 22:24 – Dissipação térmica, uso comercial e aptidões da CPU NXP 27:40 – Armazenamento 28:28 – Mais sobre a GPU AMD Radeon MXM 30:14 – A performance de um MacBook PowerPC antigo comparada à do kit de desenvolvimento do notebook PowerPC 31:41 – Quem é o melhor? Roberto Innocenti ou Steve Jobs? 😉 32:25 – Pessoas por trás do projeto do notebook PowerPC 34:07 – PowerPC vs. ARM 37:35 – Mais sobre a fundação OpenPOWER 40:43 – Detalhes sobre a campanha de arrecadação 43:52 – Chassis Slimbook Eclipse 46:50 – E um dispositivo estilo mini-desktop ou NUC? 48:44 – Preço estimado do notebook PowerPC 51:55 – Fabricação dos componentes 52:50 – Situação com a COVID-19 56:23 – Jovens envolvidos no projeto do notebook PowerPC 57:11 – Diversidade no processo de design de hardware, produção e distribuição 1:04:50 – Transparência da CPU NXP 1:06:13 – Mais sobre a fabricação dos componentes e dependência da China 1:09:21 – Ubuntu e Debian no PowerPC 1:11:03 – Manjaro e outras distribuições Linux no PowerPC 1:12:30 – Fase atual da campanha de arrecadação 1:14:00 – Sucessor potencial da CPU NXP
Atividades educacionais
Nesses tempos difíceis e com as restrições impostas pelo coronavírus, pelo menos na Itália, as escolas estão fechadas. Consequentemente, alunos dependem fortemente de dispositivos digitais para acompanhar as aulas e para manter contato com os amigos. Nem todas as famílias podem bancar um computador ou tablet para cada criança e algumas vezes, alunos são obrigados e estudar documentos longos em seus telefones, quando têm um. Estamos contribuindo com os sistemas de educação online mantidos pelas escolas provendo notebooks reciclados, e chamamos este projeto de “Reviva com Scratch” (“Rivivo con Scratch” in Italian).
Em escolas com nosso projeto “Reviva com Scratch”
Notebooks reciclados foram coletados por nós durante 2019 e 2020 (todos baseados em CPUs x86 relativamente antigas) e inicialmente alocadas para cursos de programação usando o software Scratch e para aprender matemática com o Gcompris. Para melhor servir às atividades dos alunos, optamos por um sistema Linux equipado com o ChromiumOS que é leve e funciona bem com os nossos notebooks reciclados e com o pacote Google Gsuite que é intensamente usado em salas de aula, especialmente nas escolas primárias, que são o foco principal do nosso projeto.
Estamos próximos dos 50% da meta de arrecadação da campanha de doação para a PCB. Agradecemos a todos que nos permitiram atingir o que muitos consideravam impossível. “A chave para o que se faz está no coração do que você acredita.” (Mario Luis Rodrigues Cobos)
Como todos nós, a maioria dos voluntários, colaboradores e doadores envolvidos em nosso projeto sofre com as consequências da epidemia de covid-19, levando a uma considerável redução das doações.
Por outro lado, muitas pessoas estão aproveitando a situação de estarem confinados para passar mais tempo com as suas famílias, com seus hobbies e para perseguirem o que almejam. Para muitos, isso significa mais tempo pensando, desenvolvendo e usando software de código livre, graças à liberdade para executar, copiar, distribuir, estudar, personalizar e melhorar o seu software. Para outros, significa ter mais tempo para desenvolver hardware de código livre, hardware de livre design mecânico e eventualmente retribuir à comunidade.
Entretanto, o impacto econômico da situação significa termos menos dinheiro à disposição, já que são outras as prioridades nas nossas vidas.
Depois de deliberarmos internamente, decidimos adiar o prazo final para doar para a campanha até o dia 30 de junho de 2020, esperando que tudo voltará ao normal em breve. No meio tempo, continuaremos dando o nosso melhor para manter o projeto em andamento.
Próxima rodada do block diagram e da planta elétrica
Desde janeiro, já transferimos à ACube Systems 8500 euros (cerca de 9200 dólares americanos). Portando, o projeto já está em andamento por um tempo.
Recebemos dos engenheiros uma versão atualizada do diagrama elétrico, que leva em consideração as últimas novidades. Esta está sendo avaliada antes de sua publicação, o que acontecerá em provavelmente uma semana.
Entre outras mudanças, atualizamos o switch PCIe da Pericom do modelo anterior (PI7C9X2G608GP) para o mais capaz PI7C9X2G612GP, que oferece 12 faixas em vez de 8. Este switch conecta a placa-mãe à placa de entrada e saída Eclipse via PCIe, conectando essa à porta Ethernet Realtek RTL8111F, ao leitor de cartões SD Realtek RTS571x e às duas portas USB 3.
A nova versão do diagrama também inclui um hub USB 2 extra, gerenciado pelo MicroChip USB2514 que será conectado à uma das portas USB do T2080. A esse hub conectaremos o teclado SK5126 e a um leitor de cartões SD controlado pelo chip Realtek RTS571X da placa de expansão de entrada de saída Eclipse, e com o WLAN e o LTE M2.
Uma porta MicroSD será conectada diretamente à interface controladora eSDHC do T2080.
Abaixo, o diagrama atualizado
Diagrama da placa-mãe PowerPC do notebook de hardware aberto – Abril de 2020
Compilando a Unreal Engine PPC64
Recentemente novos colaboradores juntaram-se às nossas atividades e estão ajudando o projeto e outras atividades da nossa associação. Por exemplo, graças a eles, progredimos na compilação da Unreal Engine no PowerPC 64 Big Endian, um software de grande importância que preparamos para o nosso notebook.
Script para baixar e compilar clang
O primeiro passo é obter a toolchain clang necessária pelo script de compilação da engine. Como uma toolchain PowerPC não está disponível do repositório da Epic, precisamos prepará-la nós mesmos.
O script principal é o build_linux_toolchain.sh encontrado no diretório Engine/Build/BatchFiles/Linux/Toolchain/DockerOnWindows/build_linux_toolchain.
Baseado na versão ppc64le, o script baixa e compila o gcc 9.2.0 usando a crosstool-ng e depois faz o mesmo com o clang. A nossa versão de referência é a 8.0.1 do repositório oficial no git https://github.com/llvm/llvm-project.git.
Temos alguns problemas durante a cópia final da toolchain, quando o gcc e o clang são movidos para o sysroot. Depois disso, os executáveis dentro do sysroot geram uma falha de segmentação.
Atualizações nos diagramas estão sendo transpostos ao design da PCB
Em fevereiro, o projetista analisou o switch PCIe PI7C9X2G608GP da Pericom com suporte direto da sua equipe. O switch foi completamente testado e toda a preparação necessária foi concluída. O projetista completou a inclusão de toda a informação pertinente à nova versão do diagrama, começando a dar luz à PCB.
O projetista também atualizou as conexões SerDes de acordo com as nossas sugestões e considerando as notas que fornecemos. Esperamos uma nova versão do diagrama em breve.
Arctic-Fox 27.10.1 PPC64 no nosso repo
O colaborador principal ao Arctic-Fox, Riccardo Mottola, membro da associação Power Progress Community, lançou a nova versão 27.10.1+bo, que compilamos e adicionamos à nossa repo Debian PPC64. De acordo com Riccardo, “session store, código significantemente melhorado comparando-se com as versões anteriores, melhorias na performance na engine html e também um novo sistema de compilação importado do Firefox. Essa versão é uma grande melhoria quando comparada à 27.9.19.”
Arctic-Fox 27.10.1 PPC64 no nosso T2080-RDB, que tem o mesmo processador que nosso futuro notebook.
Progresso na Unreal Engine para PowerPC64 Big Endian
Modificamos os scripts originais para compilar para o PPC64 Big Endian mas, até agora, ainda temos muitos erros para resolver antes que possamos gerar um executável funcional. Você pode encontrar nosso fork da versão PPC64 aqui (você precisa aceitar a licença da Epic Games).
Estamos compilando o código-fonte usando uma máquina virtual Power9 fornecida pela Open OSU e nosso kit de desenvolvimento NXP T2080-RDP usando o Debian PPC64 SID instável. Se você quer ajudar a resolver os erros de compilação, você pode começar pela UnrealEnginePPC64 Wiki e entrar em contato conosco.
Uma screenshot da compilação da Unreal Engine em progresso no nosso kit de desenvolvimento T2080-RDB, que tem o mesmo processador PPC64 Big Endian que nosso futuro notebook.
Conforme mencionado anteriormente, já contratamos a ACube Systems, que já iniciou os trabalhos na nossa PCB. Este post reporta o progresso desse trabalho.
Atualmente, o projetista está analisando o switch Pericom com seu suporte direto.
O switch PCIe PI7C9X2G608GP da Pericom é de segunda geração que fornece uma porta de saída x4 ou x1, e 4 ou 5 portas de entrada que suportam operação x1. A dissipação do chip é de 1,2W.
Na nossa placa-mãe, o PI7C9X2G608GP é essencial porque permite-nos conectar um controlador PCIe 2.0 da CPU NXP T2080 com quatro chips ou placas PCIe: uma placa 3G/LTE M.2, uma placa M.2 Wi-Fi, um controlador Renesas USB3 e um chipset de áudio da C-Media.
A CPU NXP T2080 tem quatro controladores PCI Express (dois deles suportam PCIe 2.0 com largura máxima de linha x8, e outros dois suporam PCIe 3.0 com largura máxima de linha x4).
Ela também suporta partição de recursos e tem uma Datapath Acceleration Architecture (DPAA) com muitas capacidades. Algumas delas listadas abaixo:
Processamento de protocolos de segurança SEC 5.2
Engine de compressão e descompressão DEC 1.0
Engine de correspondência de padrões PME 2.1
Aberto a vários sistemas operacionais
Um dos critérios usados na seleção dos componentes da nossa placa-mãe foi a compatibilidade com vários sistemas operacionais livres e até sistemas compatíveis com Amiga.
A ACube Systems está em contato com a comunidade Amiga para facilitar o suporte. Além disso, a ACube está trabalhando em um driver para o nosso chip de áudio C-Media com suporte à sistemas compatíveis com Amiga.
Lista de componentes e pinagem
Abaixo, você encontrará a lista atualizada de componentes do diagrama da nossa placa-mãe, que é uma versão melhorada da lista anterior.
Na versão 0.2 do nosso diagrama elétrico, a pinagem do Slimbook Eclipse Notebook foi integrada como mostrado na galeria.