Escrito por: Roberto C. González
Si quieres opinar, sugerir o corregir algo de éste documento escríbenos a soporte@ehack.mx
Para describir qué es el POST utilizaré una de las mejores descripciones que lo resume de forma clara y precisa[1]:
(Power On Self Test – Auto Prueba de Encendido). Es la serie de comprobaciones que una computadora hace con sus dispositivos al iniciar el sistema. La encargada de hacer el POST es el BIOS.
El procedimiento POST comprueba que los dispositivos como unidades de disco, las memorias y otros componentes, funcionen correctamente. En general, estas son las tareas que se desarrollan durante el POST:
La rutina POST es secuencial y siempre va del 0 al 255, cada valor (hexadecimal) tiene asignada una prueba específica, si la prueba ejecutada es correcta, se realiza la siguiente de forma sucesiva hasta terminar la lista de tareas asignadas.
Un código POST no es más que un código numérico asociado a una prueba específica de la rutina POST, de esta forma podemos tomar como ejemplo (En este ejemplo no es relevante a qué BIOS corresponden éstos códigos):
Código | Descripción |
06h | Descomprimiendo el siguiente código POST |
07h | A continuación, inicialización del CPU y del área de datos del CPU |
Si durante una prueba existe algún problema, y dependiendo de la gravedad de la excepción. El sistema puede detenerse hasta que el origen de dicha excepción sea corregida. Si la excepción no es grave, el sistema puede continuar la rutina de arranque. Esto dependerá de la configuración del BIOS y otras características de la computadora.
En términos estrictos, el término “Código de error” o “Error Code” es incorrecto. Desde el punto de vista de que son códigos de error hasta el momento que, efectivamente, causan un error en el arranque de un equipo.
En cualquier caso resulta más adecuado llamarlos simplemente Códigos POST o en todo caso Códigos de Estado, pues el código siempre indicará un estado, haya un error o no, durante el arranque.
Sin embargo la idea de que son códigos de error, está tan arraigada que resulta prácticamente inútil tratar de cambiar esta concepción.
De hecho si buscamos en internet “Código de error POST” encontraremos cientos de páginas, si buscamos por “Código de estado POST” encontraremos todo, menos códigos POST del BIOS.
Los códigos de estado son específicos para cada versión y marca de BIOS, por ejemplo, consideremos el BIOS de AMI:
Código | AMIT BIOS (Anteriores a 1990): | AMI 2.2 BIOS | AMI Win BIOS |
01h | NMI is disabled and the i286 register test is about to start | Flag test; Testing of the CPU | Control to Int 19 boot loader |
0Fh | – | 8254 timer tested | Write KB command byte |
Podemos observar que hay una total diferencia para un mismo código, aunque se trate del mismo fabricante del BIOS
Por esta razón resulta fundamental contar con la tabla de códigos POST específica de nuestro BIOS, sino corremos el riesgo de realizar interpretaciones erróneas de un código POST.
Durante el diagnóstico POST, un código hexadecimal de 2 bytes se escribe en el puerto 80h. Sin embargo algunas computadoras pueden enviar esos códigos a otros puertos.
Compaq envía esos códigos al puerto 84h, los modelos de IBM PS/2 25 y 30 los mandan al puerto 90h, los modelos 20-286 los envían al puerto 190h. Algunas máquinas de arquitectura EISA con BIOS de Award los mandan al puerto 300h y los equipos con arquitectura micro canal (MCA) los mandan al puerto 680h.
Algunos modelos iniciales de AT&T, Olivetti, NCR y otros clones AT los mandan al puerto de impresión en la direcciones 3BC, 278h y 378h.
Cuando se interrumpe la secuencia de arranque, ahora sí, tenemos un código de error, el cual nos puede indicar cuál es el problema del fallo.
Dependiendo de la naturaleza puede ser muy fácil determinar la causa de la falla, pero en ocasiones requerirá de conocimientos especializados, o contar con otros dispositivos de prueba adicionales para poder determinar la causa de una falla.
El código mostrado indica que se está verificado en un determinado momento. Típicamente, cuando el BIOS falla siempre en el mismo punto, el código indicará qué es lo que está fallando[2].
Si durante el arranque del sistema el sistema se detiene en el código 07h (BIOS de Award), revisando las tablas de códigos POST tenemos:
Error code 07 – Next, initializing the CPU and the CPU data area, (A continuación, inicialización del CPU y del área de datos del CPU)
En este caso, el problema es “sencillo” de determinar, es un problema con el CPU. En este caso es tan simple de determinar utilizando otro CPU que sepamos que está en buen estado. Si sigue ocurriendo una falla similar, deberemos descartar, además que no haya daño en pines del socket, pistas e incluso circuitería asociada al CPU, concretamente del área de datos.
Sin embargo si el código que obtenemos es algo como:
Error code 98 – The adaptor ROM had control and has now returned control to BIOS POST. Performing any required processing after the option ROM returned control, (El adaptador ROM tenía el control y ahora devuelve el control al BIOS POST. Efectuando cualquier proceso posterior a la devolución del control del ROM)
En este caso es claro que el problema está asociado a la memoria ROM. Sin embargo una Motherboard puede tener varias memorias ROM, para lo cual deberemos consultar la información técnica de nuestra Motherboard, la cual no necesariamente es de fácil adquisición y analizar la forma en que ocurren los procesos de arranque en ella.
Sin embargo, puede que el problema no sea del ROM, sino del BIOS, que es quien retoma el control del arranque, en este caso puede ser por alguna resistencia abierta, o un capacitor fuera de rango, etc, sin embargo no termina ahí el abanico de posibilidades…
Hay dos formas generales para obtener los códigos POST que genera el BIOS:
La forma más simple, pero no menos poderosa, es por sonidos que emite la bocina de la motherboard, dependiendo del tipo de BIOS será la interpretación de los sonidos emitidos.
Sin embargo la forma más precisa es tomando los códigos hexadecimales que genera el BIOS y los manda al puerto 80h (entrada/salida) de forma que se pueden recoger con dispositivos especializados denominados Tarjetas POST, o Tarjetas de diagnóstico POST.
De esta forma uno puede fácilmente conocer los códigos de paro (Códigos de error) en la secuencia de arranque.
Finalmente hay que considerar que aunque el puerto estándar de salida para los códigos POST es el 80h, no quedamos exentos de encontrar un equipo que no utilice este puerto para poder hacer el diagnóstico de un equipo, esto es particularmente cierto en los equipos portátiles y en muchos de los equipos modernos con BIOS UEFI
Otro aspecto que es importante a considerar en la lectura de un código POST es el “momento de paro”.
Esto nos plantea la siguiente situación.
En este caso no hay mayor problema, el código que muestre nuestra tarjeta POST es el que identifica la falla presentada.
Es decir. Si nuestra tarjeta indica:
Error code 30 – The display memory read/write test passed. Sigue -> Buscando para reconstruir la siguiente prueba. La prueba de lectura/escritura de la memoria de vídeo ha pasado.)
En este caso es simple la interpretación: hay un error ya sea en la tarjeta de vídeo externa o en la memoria de vídeo integrada en la Motherboard.
En este caso, la forma más evidente de determinar este comportamiento del BIOS es interpretando el código y comparándolo con la falla real. Es decir podemos obtener el Código 0F:
Código | Descripción | Descripción |
0E | Initialize I/O component | Inicializando el componente de E/S |
0F | Initialize the local bus IDE | Inicializando el bus local IDE |
10 | Initialize Power Management | Inicializando el administrador de energía |
0Fh nos indica una falla en el disco duro, independientemente de la dificultad de resolver un problema con el bus IDE, supongamos que corregimos cualquier problema que pudiera tener el bus IDE, Y vemos que el sistema se sigue deteniendo en el código 0F, en este caso debemos descartar que la falla no esté asociada en este caso al código 0E, y en este caso deberíamos descartar problemas con nuestros chips que controlan la E/S del sistema.
Muchas veces olvidamos que aparte de software (el firmware del BIOS y ROM’s disponibles) la motherboard es en esencia un circuito electrónico de alta precisión. Y muchos de los problemas “extraños” que pueden ocurrir, son ocasionados por componentes pasivos dañados (capacitores, resistencias, diodos, pistas) así como de otros componentes activos. Mucha de las fallas ocasionadas por estos circuitos suelen ser los más difíciles de detectar e interpretar. Y requieren suficientes conocimientos de electrónica por parte del reparador para poder encararlos con éxito.
-Revisión 1.1
-08/09/19
© 2011-2021, Nala Diagnostics
[1] Diccionario de Informática: http://www.alegsa.com.ar/Dic/post.php
[2] http://www.bioscentral.com/misc/biosbasics.htm
Creado Para Nala Diagnostics.
El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…
En esta entrada te presento 24 de las listas negras más comunes que los servidores…
ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…
WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…
Whois realiza el registro de registro para el nombre de dominio o la dirección IP…
VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…