İlk durak: bellek denetleyicisi
ZenStates-Core o sırada bu ailenin tamamını okumuyordu. tCCD_L ve tCCD_L_WR2 için bellek denetleyicisi kayıtlarında karşılık buldum. tCCD_L_WR için aynı yoldan bir değer elde edemedim; bu alanı öteki iki zamanlamadan tahmin etmek yerine başka bir kaynağa baktım.
Burada SPD ile çalışan zamanlamaları ayırmak gerekiyor. SPD modülün kimliğini ve profillerini anlatıyor; BIOS eğitimi sonrasında bellek denetleyicisinin kullandığı ayarları tek başına kanıtlamıyor.
BIOS'un bıraktığı APOB verisi
Eksik alan, BIOS'un açılışta belleğe bıraktığı APOB verisinde çıktı. Ancak bir anakartta bulunan konumu bütün sistemlerde kullanmak yeterli olmadı: anakart ve AGESA sürümüyle veri düzeni değişebiliyor. Forkta v1.42.6'dan itibaren üç alanı da APOB üzerinden okumaya geçtim.
Okuma yolunda tablo başlığı, blok sınırları, değer genişliği ve makul değer aralıkları birlikte değerlendirilmeli. Bir APOB bölümünün raporda bulunması, ilgili bloğun başarıyla çözüldüğü anlamına gelmiyor. Ana ve genişletilmiş blokların kullanılabilirliği de ayrı kontrol edilmeli.
Bir okumanın doğru olduğunu nasıl değerlendiriyorum?
Karşılaştırma için aynı sistemden alınmış önce/sonra hata ayıklama raporları yararlı. BIOS'ta tek bir zamanlama değiştiğinde hangi alanın onunla birlikte değiştiğini takip etmek, rastlantısal bir sayıyı zamanlama sanmayı önlüyor. Mevcut register karşılıkları da ek bir tutarlılık kontrolü sağlıyor.
Yeni bir BIOS'ta yanlış okuma bildirildiğinde bu yüzden işlemci, anakart, BIOS ve AGESA sürümüyle birlikte iki rapor istiyorum. Kayıtlı raporları yeniden çözümleyebilmek, her düzeltme için donanıma erişme ihtiyacını azaltıyor. Birkaç sistemde doğru sonuç almak, bütün DDR5 platformlarının doğrulandığı anlamına gelmiyor.