1.5.4.1 Changes for Revision D1
See the following references for information about changes for this revision.
• Changes that may result in BIOS modifications.
• 2.4.3.1.5 [BIOS Requirements to Initialize Message Triggered C1E].
• F0x[18C:170][LS2En].
• F2x[1, 0]90[DisDllShutdownSR].
• F3x[84:80].
• F3xA0[BpPinsTriEn].
• F4x1[9C, 94, 8C, 84]_x[D5, C5][TxLs23ClkGateEn].
In dettaglio:
• 2.4.3.1.5 [BIOS Requirements to Initialize Message Triggered C1E].
Qui è spiegato nel dettaglio come il BIOS deve abilitare lo stato di risparmio energetico avanzato C1E per i processori G34 e C32. Quindi se il BIOS non lo attiva (per esempio non riconosce la CPU) lo stato C1E NON si attiva. Questo vale quasi sicuramente anche per il Thuban.
• F0x[18C:170][LS2En].
Qui è spiegato in dettaglio come il BIOS deve configurare i link HTT. In particolare la divisione dei link (visto come sono collegati i die di un magny cours) e il risparmio energetico LS2 che DEVE essere attivo per i C32 e G34.
• F2x[1, 0]90[DisDllShutdownSR].
Questo è uno dei registri di configurazione del controller DRAM. Qui è detto che per il G34 e C32 deve essere disabilitato il "disable DLL shutdown in self-refresh mode". Ricordate che alcune CPU dovevano avere questo bit abilitato? Perchè su quelle revisioni non funzionava il risparmio energetico del DLL della RAM. Evidentemente per i D1 è stato risolto (vedi dopo).
• F3x[84:80].
Registro di controllo per risparmio energetico ACPI. Valore consigliato per questo step è diverso per alcuni parametri. Confermato che i NB P-state sono supportati solo dallo step DA-C. Quindi sono stati eliminati...
• F3xA0[BpPinsTriEn].
In questa revisione è stato introdotto il tristate per i pins per breakpoints (roba che riguarda il debug). Questo registro serve per abilitarlo.
• F4x1[9C, 94, 8C, 84]_x[D5, C5][TxLs23ClkGateEn].
Con questo step è stato abilitato il clock gating sui link HT. E' una funzionalità di risparmio energetico. Attivabile solo in modalità LS2 o 3 del link HT (HT 3.0). Questo bit serve per attivare tale funzionalità.
Veniamo ora agli ERRATA. Elencherò solo gli errata che differiscono tra step PRECEDENTI al D0, tra il D0 e il D1.
Gli ERRATA dal 406 in poi sono stati scoperti DOPO l'ultimo documento. Se si riferiscono anche agli step precedenti al D0 e D1, allora possono riguardare anche gli aggiornamenti BIOS dei precedenti step (ad esempio Shangai o Deneb).
Gli errata PRECEDENTI al 319 NON si applicano nè al C3, nè al D0, nè al D1. Gli errata mancanti tra il 319 e il 443 o sono stati corretti prima del rilascio, o non si applicano a nessuno dei C3, D0 e D1.
Errata presenti SOLO sugli step C3 e precedenti e NON sul D0 e NON sul D1.
Questi sono errata che sono stati CORRETTI nel D0 e nel D1:
346, 352, 353, 354, 359, 378, 382.
Errata presenti nel C3, nel D0 e nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 e nel D1:
327, 343, 344, 350, 361, 372, 391, 396, 400, 405, 414.
Errata presenti nel C3, nel D0 e NON nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 ma solo nel D1:
Nessuno.
Errata presenti nel C3, NON nel D0 ma nel D1.
Questi sono errata che NON sono stati CORRETTI nel D1 ma solo nel D0:
407, 439.
Errata presenti SOLO nel D0 e nel D1.
Questi sono errata non presenti nei C3:
319, 385, 397, 437.
Errata presenti SOLO nel D0.
Questi sono errata non presenti nei C3, ma nel D0, corretti nel D1:
374, 384, 386, 389, 398.
Errata presenti SOLO nel D1.
Questi sono errata non presenti nei C3 e nel D0, ma specifici del D1:
406, 411, 417.
DETTAGLIO DEGLI ERRATA ( che faticaccia...

) :
Errata presenti SOLO sugli step C3 e precedenti e NON sul D0 e NON sul D1.
Questi sono errata che sono stati CORRETTI nel D0 e nel D1:
346: System May Hang if Core Frequency is Even Divisor of
Northbridge Clock. Se un core lavora a una frequenza che sia divisibile per 2, 4, 6, ecc del clock NB, si può avere un problema. Ecco perchè con NB a 2,4 GHz, un P-state a 1,2GHz può dare problemi.
352, 353: Problema nel debugging (breakpoint) sulle istruzioni SYSCALL e SYSRET. Questo problema si verificava solo durante il debugging su un SO che usa queste istruzioni per le chiamate di sistema. Mi pare che windows non le usi.
354: Possibile problema di stabilità sui link HT oltre 2GHz. Quindi con i nuovi step si può avere HT con frequenza maggiore di 2GHz.
359: Problema di temporizzazione del clock RAM con le DDR2 in fase di BOOT. La maggior parte delle RAM funzionano, ma ci potrebbero essre RAM sensibili a questo problema. Se il sistema boota, però è tutto Ok. Questo problema è stato risolto.
378: Problema con l'algoritmo pubblicato sui documenti ufficiali dei p-state. Potrebbe essere scelto un p-state inferiore. E' stato pubblicato un algoritmo aggiornato. Questo problema non si presenta nei D0 e D1. Per gli step precedenti non è stato pianificato un fix, perchè i BIOS sono stati aggiornati con il nuovo algoritmo.
382: La cache L3 non poteva essere disabilitata parzialmente una volta che era stata abilitata. Corretto per gli step D0 e D1. Questa è una feature molto importante per i server: se durante l'uso si verifica che una porzione di cache L3 non era affidabile, il processore prevedeva la possibilità di disabilitarla on the fly senza riavviare. Per gli step precedenti questo meccanismo non funzionava. Ora si.
Errata presenti nel C3, nel D0 e nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 e nel D1:
327: Valori delle resistenze dei link HT fuori specifica, ma che comunque non causano malfunzionamenti noti.
343: Problema nell'uso della cache L2 come RAM temporanea durante il boot del BIOS prima dell'abilitazione del controller RAM. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.
344: Problema sul link HTT oltre i 2 GHz uscendo dagli stati di risparmio energetico. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.
350: Problema su controller RAM all'inizializzazione al BOOT o dopo uscita da stato di risparmio energetico. Non è pianificato un fix, poichè è spiegato cosa fare per evitare il problema.
361: Una eccezione di debug può essere persa in una macchina virtuale in alcune condizioni. Non è pianificato un fix, poichè il problema è lieve e causa solo perdite di eccezioni di debug in rarissimi casi e comunque solo in una macchina virtuale. Quindi non nel normale funzionamento.
372: in rarissimi casi e solo se il controller è in modalità unganged e il NB va a un clock interiore a 3 volte il clock RAM può verificarsi un problema. C'è un fix che modifica dei bit riservati e quindi disabilita o modifica qualcosa di sconosciuto nel NB, ma si applica solo per sistemi con P-state del NB (quindi step DA-C) oppure con DDR3 in modalità 1333. Non è pianificato un FIX. Deduco che che i bit moficati non impattano sulle prestazioni.
391: Valori delle resistenze dei link HT fuori specifica, ma che comunque non causano malfunzionamenti noti.
396: Potenziali assorbimenti oltre i 500mA sui link HTT con frequenze fino a 2 GHz e quindi oltre le specifiche. Le specifiche sono state aggiornate, così i produttori di MB devono adeguare i VRM a supportare queste correnti. Nessun fix pianificato. Probabilmente tutte le MB non hanno problemi con queste correnti.
400: Problema nel risveglio dagli stati C3 e C1E. Se il SO non ha programmato altre sorgenti di interrupt, l'APIC potrebbe perdere le interrupt durante gli stati C3 e C1E e il sistema non si risveglia. E' spiegato come fare a evitare questo problema e che c'è un BIT in alcune revisioni di processore per dire che il problema è stato risolto per lo stato C1E, perchè è pianificato un FIX. Per lo stato C3 non è previsto un FIX. E' un problema che riguarda i programmatori di SO e dei driver ACPI.
405: Problema elettrico sui link HT nel risveglio dallo stato di risparmio energetico LS2. Nessun Fix pianificato poichè è spiegato come evitarlo.
414: Problema di possibile corruzione dati con DDR3, risparmio energetico attivato e una particolare modalità di risparmio energetico. Nessun fix pianificato, poichè è suggerito di usare il metodo di risparmio energetico alternativo. Con memorie ECC si hanno solo ripetuti errori ECC. Con memorie non ECC si ha corruzione dati.
Errata presenti nel C3, nel D0 e NON nel D1.
Questi sono errata che NON sono stati CORRETTI nel D0 ma solo nel D1:
Nessuno.
Errata presenti nel C3, NON nel D0 ma nel D1.
Questi sono errata che NON sono stati CORRETTI nel D1 ma solo nel D0:
407: Problema rarissimo nel probing delle caches di cores appena usciti dallo stato C1e da parte di cores nello stato C0, ma solo se un timer del flushing delle caches è stato impostato molto basso, cosa che normalmente è consigliato di NON fare. Normalmente le impostazioni del BIOS consigliate dovrebbero evitare questo problema, ma comunque è previsto un FIX. Questo errata non era presente nello step D0, poichè non aveva lo stato C1E...
439: Potenziale e raro problema in fase di BOOT durante il rilevamento delle memorie. Dei moduli possono essere trovati non funzionanti erroneamente ed esclusi. Problema raro per cui un fix non è pianificato. Il workaround non è specificato... Dice solo "Contact your AMD representative for information on a BIOS update."
Errata presenti SOLO nel D0 e nel D1.
Questi sono errata non presenti nei C3:
319: Errato valore di temperatura rilevato dai sensori interni. Questo errata non pregiudica i sensori interni di sovratemperatura. Semplicemente la temperatura non è accurata. C'è un workaround da usare. Fix planned.
385: Valore errato di indirizzo L3 restituito su un errore L3. Se il SO disabilita anche la cache L3 danneggiata, si potrebbe escludere la porzione di cache sbagliata. Il workaround va a settare un bit sconosciuto. Nessun fix pianificato perchè l'errrore è lieve e comunque corretto dal fix.
397: Potenziali assorbimenti oltre i 1400mA sui link HTT in modalità Rerty e quindi oltre le specifiche. Le specifiche sono state aggiornate, così i produttori di MB devono adeguare i VRM a supportare queste correnti. Nessun fix pianificato. Probabilmente tutte le MB non hanno problemi con queste correnti.
437: Il contatore di eventi per la cache L3 può contare eventi L3 solo di specifici cores. C'è un errore che in rari casi causa il conteggio di eventi di core disabilitati o il mancato conteggio di cores abilitati. E' consigliato di contare gli eventi di tutti i cores. Nessun fix pianificato, poichè la funzionalità è raramente usata, credo...
Errata presenti SOLO nel D0.
Questi sono errata non presenti nei C3, ma nel D0, corretti nel D1:
374: In rarissimi casi una lettura dalla cache L3 restituisce dati vecchi. Il workaround va a settare un bit sconosciuto. Fix pianificato, probabilmente perchè impatta sulle prestazioni. E infatti sul D1 non è presente.
384: Problema con il prefetch con l'HT assist abilitato. Bisogna disabilitare il prefetch se l'HT assist è abilitato. E' una discreta perdita di prestazioni presente solo nell'Instambul. Nel Magny cours è stata corretta.
386: Problema con la ricezione di pacchetti HTT corrotti in rarissimi casi. Il workaround modifica la configurazione di alcuni buffer interni probabilmente impattando sulle prestazioni. E' stato risolto nel D1 per questo motivo, poichè impattava sopratutto sui link coerenti che sono quelli usati tra i die e verso le altre CPU...
389: Altro problema nella ricezione di pacchetti HTT corrotti che si verifica durante il retry. Il workaround modifica qualcosa sul retry che probabilmente impatta sulle prestazioni. Ecco perchè nel D1 è stato risolto.
398: Possibili problemi di trasmissione sui link HTT se il clock HT è superiore al clock NB ed ha moltiplicatore DISPARI (ecco perchè HT va a 2,4GHz e non 2,2 GHz sugli Instambul) in alcune condizioni. Il workaround è non usare moltiplicatori HTT dispari. E' stato fixato nel D1 così da avere maggiore flessibilità per il moltiplicatore HT.
Errata presenti SOLO nel D1.
Questi sono errata non presenti nei C3 e nel D0, ma specifici del D1:
406: In alcuni casi il risparmio energetico C1E non entra in funzione. Fix pianificato perchè riduce la capacità di risparmio energetico.
411: Altro raro caso in cui non entra in funzione lo stato C1E. Stavolta il workaround risolve il problema, così non c'è un fix pianificato.
417: Violazione delle specifiche del clock RAM solo in modalità DDR3-1333, in uscita dal risparmio energetico self refresh e solo per le registered DDR3 (quindi RAM server). Non sono note DIMM che risentono di questa violazione. Se ci fossero DIMM sensibili a queste violazioni le RAM non escono dal self-refresh (credo mandando in crash il sistema). Nessun workaround possibile. Fix non pianificato poichè le RAM sembrano non risentire di questo problema.
IN SINTESI:
lo step D0 risolve alcuni gravi problemi. Lo step D1 ne risolve qualcun altro. Lo step D1 introduce qualche problemino a causa delle novità introdotte (C1E e memorie DDR3 server), ma nulla di grave. Il maggior problema che corregge il D1 è un errore sul prefetch con HT assist abilitato. Nell'instambul con HT assist abilitato si doveva DISABILITARE il prefetch, con discrete perdite di prestazioni. Nel Magny cours no. Anche per questo il Magny Cours STRACCIA l'Instambul nel test RAM Triad...
L'unico errata serio non risolto che mi da da pensare è il 372. Ma poichè non è pianificato un fix sono 2 le cose: o non impatta sulle prestazioni in modo significativo, oppure è terribilmente difficile da fixare. Spero che sia la prima, ma non possiamo saperlo, perchè il workaround modifica bit riservati di cui non si può sapere nulla...