Power-On Self-Test: PC Diagnostic Card

Il Power-On Self-Test (POST) è la fase di autodiagnosi di un PC effettuata al boot quando viene premuto il pulsante Power on, oppure il pulsante reset oppure la combinazione di tasti CTRL+ALT+DEL (warm boot). Il programma che esegue il POST risiede nella ROM del BIOS: vengono effettuati test funzionali sulla ROM stessa e su tutte le componenti hardware, compresi tastiera e scheda video. In caso di problemi il processo si arresta e una sequenza ben precisa di beep sonori (BIOS Beep Codes) può indicare la tipologia di errore riscontrato, anche in assenza di segnale video.

PC Diagnostic Card

Durante il boot il BIOS emette codici relativi ad ogni singolo step del POST (ad eccezione di alcuni rari BIOS) che possono essere intercettati e visualizzati in esadecimale sul display di una PC Diagnostic Card. La scheda normalmente ha un’interfaccia ISA-8BIT o PCI (o entrambe, alcuni BIOS inviano i segnali su una porta parallela), dei led per indicare lo stato dell’alimentazione e dei pulsanti per self-check e scorrimento up/down dei codici. In aggiunta potrebbe avere un display esterno e un buzzer collegabile allo speaker-out della motherboard. Modelli più evoluti hanno display LCD e porte USB.

PC Diagnostic Card PT081A per slot ISA/PCI
PC Diagnostic Card PT081A per slot ISA/PCI

I codici esadecimali letti sul display possono essere decodificati attraverso un manuale allegato, oppure cercati sul sito del costruttore del BIOS.
La precisione della scheda diagnostica non è assoluta: spesso il codice può indicare erroneamente un tipo di problema piuttosto che un altro. Tuttavia la vera potenza della scheda sta nel fornire indicazioni sul fatto che una certa motherboard, con hardware e configurazioni corretti, possa essere in grado di eseguire il boot.

Test delle componenti minime

Per funzionare correttamente la scheda diagnostica necessita di un set minimo di componenti e configurazioni hardware. Se la motherboard non ha queste componenti o le configurazioni sono errate il BIOS non è in grado di eseguire il boot e sul display non verranno visualizzati codici (–). Il prerequisito principale è la presenza della ROM del BIOS.
Proviamo ora ad eseguire dei test funzionali con la scheda su una motherboard 486 considerando i seguenti elementi:
– CPU
– configurazione corretta tipo CPU, voltaggio e clock
– RAM, RAM cache e tag RAM cache
– keyboard controller
– motherboard chipset
– batteria CMOS
– altre configurazioni jumper settings

Con la CPU non installata la PC Diagnostic Card non emette codici POST
Con la CPU non installata la PC Diagnostic Card non emette codici POST

Rimuoviamo CPU, RAM, RAM cache e tag RAM cache dalla motherboard di test. La batteria è stata rimossa in precedenza (per evitare perdite corrosive di acido); il keyboard controller e il chipset sono saldati per cui non è possibile rimuoverli. Proviamo il boot: non vengono visualizzati codici sulla scheda diagnostica e il segnale video è assente quindi il primo risultato non banale è che la CPU è indispensabile per il processo di boot.

Test con la sola CPU installata

Installiamo ora una CPU supportata, un 486DX2-66 Overdrive: dal manuale della motherboard configuriamo i jumper secondo la tabella 1F (CPU Type: 486DX/DX2). Il boot avviene correttamente e l’ultimo codice emesso C1 (Memory presence test. OEM specific-test to size on-board memory. Bad SIMM. per il BIOS AWARD) indica l’assenza della memoria RAM. Da notare che anche se il segnale video è ancora assente, abbiamo informazioni sulla possibilità della motherboard di poter effettuare il boot.

Con CPU e RAM installate la PC Diagnostic Card emette codici POST
Con CPU e RAM installate la PC Diagnostic Card emette codici POST

Proviamo a forzare un errore di configurazione della CPU: sempre dalla tabella 1F del manuale, rimuoviamo il jumper dalla posizione JP16 e installiamolo sulla posizione JP17 e riproviamo il boot. La CPU è presente ma nessun codice viene visualizzato sul display.
Si ottiene lo stesso risultato ad esempio modificando il valore del clock a 40MHz (rimuovendo il jumper JP31) dato che la CPU di esempio opera a 33MHz. Quindi oltre ad essere presente, la CPU deve avere la configurazione corretta per voltaggio e clock.

Test con CPU e RAM installate

Ripristiniamo correttamente il jumper JP16, installiamo la RAM e verifichiamo che il processo POST a questo punto si interrompe con il codice 4E (If there is any error, show all the error messages on the screen & wait for user to press <F1> per il BIOS AWARD): il segnale video è presente e c’è la richiesta “Press F1 to continue, DEL to enter SETUP”. Forziamo ora altri errori di configurazione: rimuovendo ad esempio il jumper JP34 (CPU clock delay) la situazione è analoga a quella riscontrata in assenza di CPU, sulla scheda non vengono visualizzati codici e il segnale video è assente. Lo stesso effetto si potrebbe avere rimuovendo i jumper factory configured.

Boot Splash Screen della GEMLIGHT GMB-486SPC con 486DX-2
Boot Splash Screen della GEMLIGHT GMB-486SPC con 486DX-2
Altri test

Da altri test effettuati su un’altra motherboard 486, rimuovendo il keyboard controller non vengono emessi codici sul display; l’inizializzazione del chip è uno dei primi test del BIOS, codice 0A (Detect type of keyboard controller per il BIOS AWARD) ma se il chip è assente il POST si interrompe senza alcun codice di errore.
Da notare che batteria e RAM cache non sono componenti essenziali affinché il boot avvenga correttamente.
Nella tabella seguente il riepilogo dei test, in evidenza le componenti minime testate per il boot:

COMPONENTSSTATUSVERIFIEDEXAMPLE
BIOS ROMRequired!AWARD ISA/PCI 486
Supported CPURequired!486DX2-66 Overdrive
Jumper settings CPU type and power voltageRequired!1F Table
Jumper settings CPU clockRequired!JP30,JP31,JP32
Keyboard controllerRequired?Winbond W83C42
Other jumper settingsRequired?JP34,factory configured
Power supplyRequired!PSU P8-P9
CMOS batteryNOT Required3,6 Volt Varta
Motheboard chipsetNOT Required?SiS 85C496
RAM cache + TAGNOT RequiredEtronTech + ISSI 15ns
RAM memoryNOT Required72 pin SIMM 60ns

Il simbolo ‘?’ indica che la condizione potrebbe non essere stata verificata (ad esempio per il chipset non rimuovibile) oppure non presente (ad esempio per altre configurazioni jumper settings non trovate).

Appunti dei test effettuati sulle componenti minime necessarie per il boot
Appunti dei test effettuati sulle componenti minime necessarie per il boot
Conclusioni

La scheda diagnostica è utile per verificare se una motherboard può essere in grado di effettuare il boot. Se hardware e configurazioni minime sono corretti ma non vengono visualizzati codici il problema potrebbe essere dovuto a:

  • la ROM del BIOS è danneggiata
  • la CPU è danneggiata, oppure il voltaggio o il clock sono errati
  • mancano dei jumper (relativi ad esempio al CPU clock delay o quelli factory configured) oppure sono configurati in modo errato
  • il keyboard controller è stato rimosso

Una considerazione importante riguarda la motherboard di test: il modello è noto ed è disponibile il manuale di configurazione. In assenza di queste informazioni è praticamente impossibile stabilire quali jumper sono configurati in modo errato: la motherboard non è identificabile e il boot non avviene per mancanza delle informazioni di configurazione (loop).
Se sulla motherboard sono serigrafati i jumper settings per tipo CPU, voltaggio e clock, si può provare una strategia euristica per cercare di ripristinare i jumper mancanti che non consentono il boot: la scheda diagnostica fornisce indicazioni importanti sul POST prima ancora di arrivare ad avere un segnale video (e quindi delle informazioni leggibili).