O que uma reconstrução de firmware envolve de verdade
Os cinco passos entre um pedido de firmware pago e uma placa que enumera. Dois deles são seus, não nossos.
Por Lethal Hardware Desk
Um pedido de firmware personalizado não te entrega um arquivo que já existia. Ele inicia uma compilação. E essa compilação precisa de um dado que só você pode fornecer: o identificador gravado no FPGA da sua placa. É por isso que o catálogo diz que uma linha de firmware é preparada, e não entregue na hora. É o único produto daqui que não consegue se concluir sozinho enquanto você espera. Abaixo está a sequência, escrita por extenso, para que um pedido parado dentro da janela de produção fique legível em vez de silencioso.
Uma imagem, um chip
Todo FPGA Artix-7 carrega um device DNA único, um número de série gravado no silício. O firmware personalizado é gerado contra esse valor. A imagem não configura outro chip. Esse único fato comanda todo o resto. A compilação não começa antes de o DNA estar no ticket. O arquivo não pode ser reaproveitado numa segunda placa. Trocar de placa significa uma compilação nova, não uma cópia. E significa também que a imagem não vale nada para mais ninguém, que é justamente o motivo de amarrá-la ao chip.
O que o ticket precisa ter antes de qualquer coisa começar
- O número do pedido, para que a compilação se prenda a um pedido pago e não a uma conversa
- O DNA ID, lido da sua própria placa no segundo PC
- Uma foto da placa incluindo o modelo e a revisão impressos na serigrafia
- A marcação do FPGA, lida no próprio chip e não copiada do anúncio
- O jogo que você pretende rodar, porque o nível e o perfil são escolhidos em função dele
Nada disso é burocracia. A revisão da serigrafia decide qual ponte USB e qual chip de flash a imagem precisa controlar. Duas placas que dizem 75T no mesmo anúncio podem diferir nas duas coisas. A marcação do FPGA decide a peça. O DNA decide o vínculo. Um ticket com as cinco linhas anda. Um ticket com o nome de um jogo e mais nada, não.
Não mande um valor tirado de um vídeo, do print de um amigo ou de um pedido antigo. O DNA ID é lido no seu segundo PC, da placa que está na sua máquina. Uma imagem construída contra o valor errado não vai configurar a sua. Se você não tem certeza de que leu direito, diga isso no ticket em vez de chutar. Um caractere errado custa uma reconstrução inteira.
Escolhendo o perfil de doador
Uma placa DMA responde às leituras de configuração do host a partir de uma camada gravável, e não de valores fixados na síntese. Ou seja, a identidade que a placa apresenta é dado. Escolher um doador é decidir qual dispositivo real esse dado descreve: os IDs de fabricante e de dispositivo, o class code, o layout das BARs, a lista de capabilities e as entradas estendidas atrás dela. O trabalho é de coerência, não de obscuridade. Imagine que o class code de um perfil não combine com o device ID dele, ou que o par de subsystem esteja em branco. Isso é uma contradição que qualquer coisa capaz de ler esses registradores percebe. Os níveis da página de firmware — Emulated, Slotted, Slotted v2, Signature e Sovereign — se diferenciam em parte por quais perfis uma compilação pode usar. E se diferenciam também pela lista de anticheats e pelo tempo de cobertura de reposição que cada um carrega.
Compilando e gravando
Com as entradas definidas, o perfil é escrito no design. O design é então sintetizado em um bitstream para a sua peça. Isso produz um arquivo, nomeado a partir do seu pedido e amarrado ao seu DNA. A janela é a que o site já publica: um pedido de firmware costuma ficar pronto em 24 a 48 horas depois que o pagamento é verificado. A gravação em si é você quem faz. A imagem vai para a placa pela porta de gravação, com a placa alimentada no PC de jogo. Uma gravação de verdade leva minutos, não segundos. Uma gravação que termina na hora não escreveu nada.
Enquanto a ferramenta está escrevendo, a flash não guarda nem a imagem antiga nem a nova. Três coisas estragam essa janela: puxar o cabo, deixar o segundo PC entrar em suspensão ou cortar a energia do PC de jogo. Qualquer uma delas produz, com toda a confiabilidade, uma placa que não enumera mais. Nenhum outro passo desse processo faz isso. Desative a suspensão no segundo PC antes de começar.
Conferindo, na única ordem que prova alguma coisa
- 1Desligue o PC de jogo por completo — reiniciar deixa o slot energizado e não prova nada
- 2Passe o cabo da porta de gravação para a porta de dados da placa
- 3Confirme que o dispositivo de dados FTDI aparece no segundo PC sem triângulo de aviso
- 4Rode o teste de conexão entregue com o seu pedido e confirme que ele chega à placa
- 5Leia o DNA ID de volta e confira se ele bate com o valor contra o qual a imagem foi construída
Só o último passo fecha o ciclo, e é justamente o que mais se pula. Os LEDs da placa não são prova. Eles informam energia, não configuração, e acendem tranquilamente com uma imagem corrompida na flash. Uma coisa que esse processo inteiro não faz é mudar o que acontece dentro de um jogo. O firmware decide como a identidade PCIe da placa é lida por quem a enumera. Essa é uma superfície de exposição entre várias. Um perfil que hoje é lido como hardware comum é uma afirmação sobre hoje.
Leia em seguida
Ficou com alguma dúvida? Pergunte no Discord
Todos os artigos