Qué implica de verdad recompilar un firmware
Los cinco pasos que hay entre un pedido de firmware pagado y una tarjeta que enumera. Dos de ellos son tuyos, no nuestros.
Por Lethal Hardware Desk
Un pedido de firmware personalizado no te entrega un archivo que ya existía. Pone en marcha una compilación. Esa compilación necesita un dato que solo puedes dar tú: el identificador grabado en la FPGA de tu tarjeta. Por eso el catálogo dice que una línea de firmware se prepara y no que se entrega. Es el único producto de aquí que no puede terminarse solo mientras esperas. Abajo tienes la secuencia por escrito, para que un pedido que está dentro de la ventana de compilación se entienda en lugar de quedarse en silencio.
Una imagen, un chip
Toda FPGA Artix-7 lleva un device DNA único, un número de serie grabado en el silicio. El firmware personalizado se genera contra ese valor. La imagen no configurará otro chip. De ese único hecho sale todo lo demás. La compilación no puede empezar antes de que el DNA esté en el ticket. El archivo no se puede reutilizar en una segunda tarjeta. Cambiar de tarjeta significa una compilación nueva, no una copia. También significa que la imagen no vale nada para nadie más. Ese es el sentido de vincularla.
Qué necesita el ticket antes de que empiece nada
- El número de pedido, para que la compilación quede unida a un pedido pagado y no a una conversación
- El DNA ID, leído de tu propia tarjeta desde el segundo PC
- Una foto de la placa en la que se vean el modelo y la revisión de la serigrafía
- La marca de la FPGA, leída del chip y no copiada del anuncio
- El juego al que vas a jugar, porque el nivel y el perfil se eligen en función de él
Nada de eso es papeleo. La revisión de la serigrafía decide qué puente USB y qué chip de flash tiene que manejar la imagen. Dos placas que en un anuncio ponen 75T pueden diferir en los dos. La marca de la FPGA decide la pieza. El DNA decide la vinculación. Un ticket con las cinco líneas avanza. Un ticket con el nombre de un juego y nada más, no.
No envíes un valor sacado de un vídeo, de la captura de un amigo o de un pedido antiguo. El DNA ID se lee en tu segundo PC, de la tarjeta que está en tu máquina. Una imagen compilada contra el valor equivocado no configurará la tuya. Si no estás seguro de haberlo leído bien, dilo en el ticket en lugar de adivinar. Un carácter mal cuesta una recompilación.
Elegir el perfil de donante
Una tarjeta DMA responde a las lecturas de configuración del host desde una capa reescribible, no desde valores fijados en la síntesis. Así que la identidad que presenta la tarjeta son datos. Elegir un donante es decidir qué dispositivo real describen esos datos. Eso incluye los identificadores de fabricante y de dispositivo, el código de clase, la distribución de las BAR, la lista de capacidades y las entradas extendidas que hay detrás. El trabajo va de coherencia, no de esconderse. Imagina que el código de clase de un perfil no cuadra con su identificador de dispositivo, o que su par de subsistema está en blanco. Eso es una contradicción que puede notar cualquier cosa que lea esos registros. Los niveles de la página de firmware — Emulated, Slotted, Slotted v2, Signature y Sovereign — se diferencian en parte por los perfiles de los que puede tirar una compilación. También se diferencian en la lista de anticheats y en la duración de la cobertura de reemplazo que lleva cada uno.
Compilar y flashear
Con los datos de entrada fijados, el perfil se escribe dentro del diseño. Después el diseño se sintetiza en un bitstream para tu pieza. De ahí sale un único archivo, con el nombre de tu pedido y vinculado a tu DNA. La ventana es la que el sitio ya publica: un pedido de firmware suele estar preparado en un plazo de 24 a 48 horas desde que se verifica el pago. El flasheo te toca a ti. La imagen entra en la tarjeta por su puerto de flasheo, con la tarjeta alimentada dentro del PC de juego. Una escritura real tarda minutos, no segundos. Un flasheo que termina al instante no ha escrito nada.
Mientras la herramienta escribe, la flash no tiene ni la imagen vieja ni la nueva. Hay tres cosas que rompen esa ventana: tirar del cable, dejar que el segundo PC se suspenda o cortar la corriente del PC de juego. Cualquiera de ellas produce, de forma fiable, una tarjeta que ya no enumera. Ningún otro paso de este proceso hace eso. Desactiva la suspensión en el segundo PC antes de empezar.
Verificar, en el único orden que demuestra algo
- 1Apaga el PC de juego del todo: un reinicio deja la ranura alimentada y no demuestra nada
- 2Pasa el cable del puerto de flasheo al puerto de datos de la tarjeta
- 3Confirma que el dispositivo de datos FTDI aparece en el segundo PC sin triángulo de aviso
- 4Ejecuta la prueba de conexión que se entrega con tu pedido y confirma que llega a la tarjeta
- 5Vuelve a leer el DNA ID y comprueba que coincide con el valor contra el que se compiló la imagen
Solo el último paso cierra el círculo, y es el que más se salta la gente. Los LED de la placa no son una prueba. Informan de la alimentación, no de la configuración, y se encienden igual de contentos con una imagen corrupta en la flash. Hay una cosa que todo este proceso no hace: cambiar lo que pasa dentro de un juego. El firmware decide cómo se lee la identidad PCIe de la tarjeta para cualquier cosa que la enumere. Esa es una superficie de exposición entre varias. Un perfil que hoy se lee como hardware corriente es una afirmación sobre hoy.
Sigue leyendo
¿Te queda alguna duda? Pregunta en Discord
Todos los artículos