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.
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 mais nova 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.
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.
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).
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.