La motherboard dual slot 1 SUPERMICRO SUPER P6DGU è progettata per funzionare con Pentium II e III fino a 800MHz e FSB 100MHz. Le caratteristiche avanzate e la buona qualità di realizzazione all'epoca la resero adatta per applicazioni server high-end. Proviamo ad installare un Pentium III-S Tualatin 1.4GHz utilizzando una daughter card. Il Pentium III core Tualatin fino a 1.4GHz è stata la CPU più veloce prodotta da Intel per il socket 370 ed a parità di clock era superiore in prestazioni ai primi Pentium 4 Willamette 1.3GHz con i quali fu in competizione nel breve periodo di rilascio del P4 su socket 423.
Per poter procedere occorre:
- modificare il BIOS aggiungendo il supporto del CPU microcode relativo al Pentium III Tualatin;
- effettuare il BIOS update;
- utilizzare una daugther card che supporti il pinout del core Tualatin e impostare correttamente il core voltage per la CPU;
- impostare l'FSB della motherboard a 133MHz.

Bios modding
Prima di procedere all'update installiamo una CPU corretta per il tipo di motherboard in modo da avere un sistema stabile. Installiamo quindi temporaneamente un Pentium II Deschutes 400MHz, la RAM e una scheda video AGP. Dopo il riavvio verifichiamo che il BIOS è AMI e la versione è la DGUB212 R3.1 (1121001130).
Sul sito del costruttore ( Link) l'unica versione rilasciata è quella attualmente installata sulla motherboard e non risultano update: scarichiamo il file DGUB21.ZIP che useremo per il BIOS modding.
Per modificare il BIOS AMI utilizziamo i tool amibcp (AMI BIOS Configuration Program per DOS) per l'editing e ctmc per la visualizzazione/estrazione dei CPU microcode.
Procediamo quindi con l'estrazione e analisi dei CPU microcode: amibcp.exe DGUB21.ROM da submenu 'Edit BIOS Modules' tenendo selezionata la voce 'P6 Micro Code' salviamo il file DGUB21.CMC (CMC=CPU Micro Code). Con ctmc.exe DGUB21.CMC /store salviamo gli attuali CPU microcode presenti nel BIOS ROM file nella nostra working directory: possiamo verificare che il CPU microcode più recente 0686 è relativo al supporto per il core Coppermine. Per poter supportare il core Tualatin dei Celeron e Pentium III è necessario aggiungere i CPU microcode 06B0, 06B1 e 06B4:
CPUID | CPU Type | CPU Core | Core Stepping | Package and Revision | L2 Cache Size (KB) | 068A | Celeron, Pentium III | Coppermine, Coppermine-128, Coppermine-T | D0 | FC-PGA, FC-PGA2 (370 PIN) | 128, 256 | 06B0 | ES Engineering Sample | Tualatin | - | - | - | 06B1 | Celeron | Tualatin | A1 | FC-PGA2 (370 PIN) | 256 | 06B1 | Pentium III | Tualatin | A1 | FC-PGA2 (370 PIN) | 256 | 06B1 | Pentium III | Tualatin | A1 | FC-PGA2 (370 PIN) | 512 | 06B4 | Pentium III | Tualatin | B1 | FC-PGA2 (370 PIN) | 512 |
Aggiungiamo anche il CPU microcode 068A per il supporto dei core Coppermine, Coppermine-128 e Coppermine-T.

Costruzione nuovo BIOS DGUB21T.ROM
Scarichiamo l'ultima versione dell'elenco dei CPU microcode per processori Intel ( Link) e con l'utility microdecode.exe decomprimiamo il contenuto dell'archivio microdecode.dat in una cartella temporanea ottenendo l'elenco dei file .bin. Selezioniamo quelli che iniziano per 068A, 06B1 e 06B4 e copiamoli nella working directory (da notare che il CPU microcode 06B0 non è presente nei rilasci ufficiali di Intel poichè relativo alle CPU ES Engineering Sample). A questo punto siamo pronti per generare il nuovo file dei CPU microcode e iniettarlo nel BIOS ROM file; con l'opzione /b del comando copy ricostruiamo il file di tipo binary contenente tutti i CPU microcode presenti nella working directory: copy /b *.bin DGUB21T.CMC (T=Tualatin). Con ctmc.exe DGUB21T.CMC possiamo verificare che effettivamente il file contiene i microcode attesi fra cui 068A, 06B1 e 06B4.
Il nuovo BIOS sarà ottenuto copiando il file DGUB21.ROM nel file DGUB21T.ROM. Prima di effettuare l'inserimento dei nuovi CPU microcode occorre rimuovere quelli già presenti: amibcp.exe DGUB21T.ROM da submenu 'Edit BIOS Modules' tenendo selezionata la voce 'P6 Micro Code' con il tasto 'Canc' eliminiamo il modulo e con il tasto 'Ins' inseriamo il modulo DGUB21T.CMC con tipologia 'P6 Micro Code'. L'ultima modifica riguarda la BIOS string caricata al boot: sostituiamo la data 1121001130 con 0824151600 e salviamo sovrascrivendo il BIOS ROM file DGUB21T.ROM. Se nella working directory è presente il tool LHA possiamo fare una ulteriore verifica con ctmc passando direttamente come parametro il nuovo BIOS ROM file: ctmc.exe DGUB21T.ROM. Ora, se tutte le operazioni sono corrette, è possibile effettuare il BIOS update.

BIOS Update
L'archivio scaricato oltre al BIOS ROM file contiene l'utility SM2FLASH.COM e le istruzioni per il BIOS update (che sono ben dettagliate anche nella sezione 3-3 del manuale Frequently Asked Questions). Il sistema viene avviato con un disco di boot DOS minimale, senza caricamento di gestori di memoria; l'utility riconosce correttamente il chipset e richiede il nome del file in cui effettuare il backup del BIOS corrente: come specificato nella documentazione viene fornito il file super.rom. In caso di errori è possibile effettuare un recovery tenendo premuti all'avvio e con black screen i tasti CTRL+Home (low-level BIOS flash hot keys): il ripristino automatico del BIOS utilizzerà il file super.rom presente nella root directory del floppy disk. Completato il backup, l'aggiornamento con il nuovo BIOS ROM file DGUB21T.ROM viene concluso con successo ed il sistema riavviato. La nuova BIOS string visualizzata al boot conferma la correttezza delle operazioni. Il sistema viene temporanemente spento per effettuare un clear della CMOS attraverso il jumper JBT1 e al riavvio vengono caricati i valori ottimali di default ('Load and Save Optimal Values') poichè il checksum della CMOS è errato.

CPU Test
La motherboard è progettata per CPU con FSB 66/100MHz e core voltage 1.8-3.5V (sezione 1-3 del manuale Auto-Switching Voltage Regulator for the CPU Core) quindi per poter procedere dobbiamo considerare i seguenti fattori:
- deve essere possibile impostare l'FSB a 133MHz: il jumper JP11 consente la selezione di 66/100/Auto ma non è documentato come impostare l'FSB a 133MHz;
- deve essere possibile impostare il low voltage a 1.45-1.5V per le CPU core Tualatin.
Proviamo ad eseguire dei test funzionali con diverse CPU per verificare se il sistema può essere in grado di effettuare il boot. La daughter card utilizzata è lo Slot T di Upgradeware, ottimo CPU adapter che consente di impostare l'FSB e il core voltage attraverso gli appositi jumper e supporta anche il pinout del core Tualatin. Per ogni CPU impostiamo quindi FSB e core voltage corretti seguendo il manuale dello Slot-T. I risultati dei test sono riassunti nella tabella seguente:
CPU | Core | Package Type | S-Spec CPUID | FSB/Clk Mult/CPU Freq Effettivi | FSB/Clk Mult/CPU Freq Rilevati | Core Voltage | Boot | Pentium III 800MHz | C | FC-PGA | SL3Y3 0683 | 100/8/800 | 100/8/800 | 1.65 | ok | Pentium III 866MHz | C | FC-PGA | SL4CB 0686 | 133/6.5/864.5 | 100/6.5/650 | 1.7 | ok | Pentium III 933MHz | C | FC-PGA | SL52Q 068A | 133/7/931 | 100/7/700 | 1.75 | ok | Pentium III 1GHz | C | SECC 2 | SL4BS 0686 | 133/7.5/997.5 | 100/7.5/750 | 1.7 | ok | Pentium III 1GHz | C-T | FC-PGA2 | SL5QJ 068A | 133/7.5/997.5 | 100/7.5/750 | 1.75 | ok | Pentium III-S 1.133GHz | T | FC-PGA2 | SL5LV 06B1 | 133/8.5/1130.5 | - | 1.45 | - | Pentium III-S 1.4GHz | T | FC-PGA2 | SL6BY 06B4 | 133/10.5/1396.5 | - | 1.45 | - | Celeron 566MHz | C-128 | FC-PGA | SL5L5 068A | 66/8.5/561 | 66/8.5/566 | 1.75 | ok | Celeron 566MHz | C-128 | FC-PGA | SL46T 0683 | 66/8.5/561 | - | 1.5 | - | Celeron 733MHz | C-128 | FC-PGA | SL4P7 0686 | 66/11/726 | 66/11/733 | 1.7 | ok | Celeron 1.4GHz | T | FC-PGA2 | SL6C6 06B4 | 100/14/1400 | - | 1.5 | - | CPU Core: C=Coppermine, T=Tualatin, C-T=Coppermine-T, C-128=Coppermine-128 |
Dall'analisi dei dati risulta che:
- il BIOS update è andato a buon fine (il boot è avvenuto con almeno una CPU con CPUID 068A fra quelli aggiunti al nuovo BIOS, il Pentium III 933MHz);
- il massimo clock multiplier per cui è avvenuto il boot è 11 (con il Celeron 733MHz e FSB 66Mhz, dal manuale il valore massimo è 7.5);
- il core voltage minimo per cui è avvenuto il boot è 1.65V (con il Pentium III 800MHz);
- il boot non avviene con le CPU core Tualatin (e con il core voltage inferiore a 1.65V);
- il clock multiplier rilevato sulla CPU è sempre corretto (coincide con quello effettivo);
- l'FSB è bloccato su 100MHz anche se sullo Slot-T è impostato su 133MHz;
- il boot avviene anche con le CPU in underclocking (FSB 100MHz invece che 133MHz).

FSB / Core Voltage settings
Proviamo ora a rieseguire i test impostando l'FSB a 133MHz: nel BIOS in 'Chipset Setup' occorre modificare il valore 'Manufacture Setting' da Mode 0 a Mode 5. La modifica per l'overclocking fu suggerita da Supermicro tempo fa ma non è più documentata: sul manuale nella sezione 5-1-3 viene suggerito di non modificare il valore poichè riservato a factory testing only.
Option | FSB | 0 | 100MHz | 1 | 100MHz | 2 | 106MHz | 3 | 112MHz | 4 | 83MHz | 5 | 133MHz |
Con l'FSB a 133MHz i valori rilevati coincidono con quelli effettivi ma il sistema risulta estremamente instabile: la RAM non viene riconosciuta correttamente e il boot si blocca. Occorrono frequenti reset della CMOS via jumper JBT1. Inoltre il boot continua a non avvenire con le CPU core Tualatin. Per poter effettuare altri test reimpostiamo quindi l'FSB a 100MHz (Mode 0).
Dai risultati ottenuti sembrerebbe che i fattori che impediscono il boot siano il clock multiplier, il core voltage o una combinazione di entrambi.
Utilizziamo il Pentium III 1GHz Coppermine-T per verificare se il core voltage viene interpretato correttamente dal BIOS: la CPU è una revisione tra Coppermine e Tualatin con core voltage 1.75V ma è anche compatibile con il low voltage 1.45V come indicato nelle note del documento tecnico di Intel per il Pentium III. L'idea è di impostare il core voltage a 1.75V e 1.45V sullo Slot-T e leggere i valori nell'hardware monitor del BIOS. Da notare che il boot con questa CPU avviene anche impostando il core voltage a 1.45V (la CPU stessa sembra eseguire una correzione sul voltaggio).
In effetti con il core voltage 1.75V i valori oscillano tra 1.72V e 1.74V, mentre con il core voltage 1.45V l'hardware monitor non rileva alcun voltaggio sulla CPU. Questo potrebbe indicare che al di sotto di un valore minimo il Voltage Regulator non è in grado di gestire il core voltage corretto. Effettuando lo stesso test su un'altra motherboard utilizzando sempre lo Slot-T e la stessa CPU il valore rilevato per 1.45V oscilla tra 1.34V e 1.42V quindi l'impostazione sullo Slot-T del core voltage funziona correttamente.
Sul datasheet ufficale di Intel per Pentium III Tualatin 1.13GHz-1.4GHz ( Link) nella sezione 2.10 Table 6. Absolute Maximum Ratings il valore massimo ammissibile per il core voltage risulta 1.75V. Proviamo l'ultimo test con il Pentium III-S 1.133GHz poichè ha un core voltage pari a 1.45V e un clock multiplier valido pari a 8.5 (per cui è avvenuto almeno un boot); sullo Slot-T impostiamo l'FSB a 133MHz e il core voltage sui valori 1.65V, 1.7V e 1.75V: il boot non avviene in nessun caso.
Utilizzando una PC Diagnostic Card sullo slot PCI, rileviamo che per tutte le CPU core Tualatin gli ultimi 2 POST code sono (26) I/O port of 8042 is read. Going to initialize global data for turbo switch. Going to initialize global data for turbo switch e (27) Global data initialization for turbo switch is over. Any initialization before setting video mode to be done next
Purtroppo in questo caso i POST code non sembrano essere di particolare aiuto, potrebbe essere un problema legato all'inizializzazione del display grafico poichè il successivo POST code è (28) Initialization before setting video mode is complete. Going for monochrome mode and color setting .Check extended memory.

Conclusioni
La motherboard dual slot 1 SUPERMICRO SUPER P6DGU sembra non funzionare con le CPU core Tualatin low voltage. L'FSB di progetto è 100MHz: forzandolo a 133MHz il sistema risulta instabile. I test sono stati effettuati con singolo adapter: le funzionalità con doppio adapter su CPU valide sono da verificare ( alcuni adapter prevedono il jumper per l'impostazione di single-dual CPU).
L'ultimo Pentium III 1.1GHz Coppermine e l'ultimo Celeron 1.1GHz Coppermine-128 su socket 370 con FSB a 100MHz, clock multiplier 11 e core voltage 1.75V dovrebbero consentire il boot, ma non sono stati ancora effettuati test funzionali. |