Skocz do zawartości
luk1999

Patch Na Bios Umożliwiający Zmianę Mal I Rp Przy Starcie Komputera

Rekomendowane odpowiedzi

1. Wprowadzenie.

 

Po miesiącu przygotowań i paru dniach pracy pora na opublikowanie patcha umożliwiającego zmianę w Setupie parametrów Max Async Latency oraz Read Preamble. Patch ten zastępuje opcję tRAS (RAS Active Time) w BIOS - timing ten ustawiany jest domyślnie na 8T.

Kod ma status freeware - może być dowolnie modyfikowany.

Oto przykładowe zdjęcie z mojego BIOSu po spatchowaniu i edycji modułu _EN_CODE.BIN:

wynik.jpg

 

Do wyboru mamy 14 zdefiniowanych ustawień MAL i RP:

* 6/5 (zastępuje TRAS=2)

* 7/5,5 (TRAS=3)

* 7/6 (TRAS=4)

* 8/6 (TRAS=5)

* 9/6 (TRAS=6)

* 7/6,5 (TRAS=7)

* 8/6,5 (TRAS=8 )

* 7/7 (TRAS=9)

* 8/7 (TRAS=10)

* 9/7 (TRAS=11)

* 8/7,5 (TRAS=12)

* 9/7,5 (TRAS=13)

* 9/8 (TRAS=14)

* 10/8 (TRAS=15)

Wybranie opcji odpowiadającej TRAS=1 powoduje, że komputer uruchomi się na domyślnych ustawieniach MAL i RP.

Kod łatki powstał w oparciu o wypowiedzi oraz przykłady, które zostały napisane przez Polygon'a oraz tictac'a w topicu na forum Rebelshaven.

 

Co będzie wam potrzebne:

- Płyta główna s754/s939 bez obsługi MAL i RP. Łatka powinna działać z płytami głównymi na dowolnym chipsecie, wymagane jest tylko, aby płyta miała w BIOS możliwość regulacji tRAS.

- Assembler FASM:

fasmw167.zip

- Kody źródłowe patchy:

patch typu ISA ROM: isa_15.zip

patch typu PCI Addon ROM: pci_15.zip

 

Przed rozpoczęciem zabawy polecam przeczytać inny mój art poświęcony budowie BIOSu.

 

2. Trochę teorii.

Istnieją dwa stosunkowo proste sposoby wstrzykiwania kodu do BIOS:

- poprzez tzw. ISA ROM (stare BIOSy AMI 7 oraz AWARD 4.50 i 6.00)

- poprzez tzw. PCI Addon ROM (AMI7, 8 oraz AWARD 6.00)

 

Moduł ISA ROM ma stosunkowo prostą strukturę (5 bajtów nagłówka, następnie "czysty kod" i na koniec rozkaz powrotu - RETF). Jest on zawsze wykonywany przy starcie komputera.

 

Moduł PCI Addon ROM różni się dość znacznie swoją budową: nagłówek jest znacznie bardziej rozbudowany; zawiera tzw. Vendor ID (czyli czterobajtowe oznaczenie producenta) oraz Device ID (również 4 bajty), które to jest inne dla każdego urządzenia wyprodukowanego przez danego producenta. Aby kod został uruchomiony, obydwa parametry muszą pokrywać się z urządzeniem, które znajduje się w komputerze. Dodatkowo niektóre ROMy mogą zostać uruchomione "na życzenie" poprzez wybranie odpowiedniej opcji w BIOS (np: ROM odpowiedzialny za RAID).

 

Oto przykładowe kody źródłowe obydwu modułów: Przyklad.zip

Jak działa ten patch? To proste - w czasie startu komputer wczytuje z pamięci CMOS ustawienia - min. tRAS. Podczas wykonywania łatki sprawdzane jest właśnie wartość tego parametru - dla konkretnych ustawień tRAS ładowane są odpowiednie ustawienia MAL i RP. Następnie tRAS jest ustawiane na 8T.

 

3. Patchowanie BIOSu.

Zależnie od posiadanego BIOSu:

 

a) ISA ROM (AWARD 6.00).

Uruchamiamy FASM i otwieramy plik "isa_15.asm". Naciskamy F9 - otrzymamy w wyniku plik "isa_15.bin", który możemy dodać za pomocą CBROM do BIOSu komendą:

 

CBROM.EXE NAZWA_BIOSU.BIN /isa isa_15.bin

 

Na koniec warto otworzyć BIOS modbinem i zapisać jako nowy plik (ponoć modbin koryguje sumę kontrolną).

 

b) PCI Addon ROM (AWARD 6.00).

Uruchamiamy FASM i otwieramy plik "pci_15.asm".

Odszukujemy w pliku następujące dwie linijki:

VENDOR_ID equ 10DEh ; PCI Vendor ID (must match your ethernet vendor id)

; exp: 10DE = nVidia

DEVICE_ID equ 0265h ; PCI Device ID (must match your ethernet devicie id)

; exp: 0057h = nforce4 CK804 NIC

Jak już wcześniej pisałem, żeby kod ten został wykonany, te dwie stałe muszą odpowiadać istniejącemu i podłączonemu do komputera urządzeniu PCI. Skąd wziąć oznaczenia urządzeń? Np: z WCPUID (View->Device List...):

device.PNG

VendorID: 10DE to NVidia, a 1106 - VIA.

 

Natępnym krokiem jest kompilacja - naciskamy F9 - otrzymamy w wyniku plik "pci_15.bin", który możemy dodać za pomocą CBROM do BIOSu komendą:

 

CBROM.EXE NAZWA_BIOSU.BIN /pci pci_15.bin

 

Na koniec warto otworzyć BIOS modbinem i zapisać jako nowy plik (ponoć modbin koryguje sumę kontrolną).

 

c) PCI Addon ROM (AMI 7).

Uwaga - tej metody nie testowałem, bo nie mam płyty z BIOSem AMI - to wszystko to czysta teoria!

Uruchamiamy FASM i otwieramy plik "pci_15.asm".

Odszukujemy w pliku następujące dwie linijki:

VENDOR_ID equ 10DEh ; PCI Vendor ID (must match your ethernet vendor id)

; exp: 10DE = nVidia

DEVICE_ID equ 0265h ; PCI Device ID (must match your ethernet devicie id)

; exp: 0057h = nforce4 CK804 NIC

Jak już wcześniej pisałem, żeby kod ten został wykonany, te dwie stałe muszą odpowiadać istniejącemu i podłączonemu do komputera urządzeniu PCI. Skąd wziąć oznaczenia urządzeń? Np: z WCPUID (View->Device List...):

device.PNG

VendorID: 10DE to NVidia, a 1106 - VIA.

 

Natępnym krokiem jest kompilacja - naciskamy F9 - otrzymamy w wyniku plik "pci_15.bin", który dodać do BIOSu za pomocą AMIBCP w następujący sposób:

- po załadowaniu BIOSu wybieramy "Edit BIOS modules";

- na kolejnym ekranie wciskamy INSERT;

- wpisujemy nazwę naszego pliku z łatką;

- module ID ustawiamy na "20h PCI Addon ROM";

- wpisujemy VendorID i DeviceID;

- naciskamy ESCAPE, żeby wyjść i ENTER, żeby zapisać;

- zapisujemy BIOS do pliku.

 

d) PCI Addon ROM (AMI 8 ).

Uwaga - tej metody nie testowałem, bo nie mam płyty z BIOSem AMI - to wszystko to czysta teoria!

Uruchamiamy FASM i otwieramy plik "pci_15.asm".

Odszukujemy w pliku następujące dwie linijki:

VENDOR_ID equ 10DEh ; PCI Vendor ID (must match your ethernet vendor id)

; exp: 10DE = nVidia

DEVICE_ID equ 0265h ; PCI Device ID (must match your ethernet devicie id)

; exp: 0057h = nforce4 CK804 NIC

Jak już wcześniej pisałem, żeby kod ten został wykonany, te dwie stałe muszą odpowiadać istniejącemu i podłączonemu do komputera urządzeniu PCI. Skąd wziąć oznaczenia urządzeń? Np: z WCPUID (View->Device List...):

device.PNG

VendorID: 10DE to NVidia, a 1106 - VIA.

 

Natępnym krokiem jest kompilacja - naciskamy F9 - otrzymamy w wyniku plik "pci_15.bin", który dodać do BIOSu za pomocą MMTOOL w następujący sposób:

- klikamy na "Power MMTool";

- ładujemy BIOS przyciskiem "Load ROM";

- ładujemy PCI Addon ROM przyciskiem "Browse";

- w "Module ID" wpisujemy 20;

- w "Offset" - "Vendor ID";

- w "Segment" - "Device ID";

- na koniec klikamy "Insert", żeby dodać PCI Addon ROM do BIOSu;

- zapisujemy BIOS do pliku przez "Save ROM"/"Save ROM As...".

 

4. Uwagi końcowe.

Patch będzie działał, ale oczywiście w BIOS dalej będzie widoczne tRAS. Esteci mogą sobie to zmienić za pomocą modbin'a albo edytując moduł _EN_CODE.BIN za pomocą edytora hex w taki sposób, jak opisałem to tutaj.

 

Oczywiście wszystkie czynności opisane tutaj wykonujesz na własne ryzyko!. To nie są żarty - jak coś pójdzie nie tak, zabawa może skończyć się na HotFlashu lub wizytą w serwisie w celu zaprogramowania kostki BIOS!

 

Jeśli chciałbyś zamieścić tą instrukcję gdzieś indziej, proszę o wcześniejszy kontakt ze mną. To samo dotyczy plików dołączonych do tego artykułu.

Edytowane przez luk1999

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a po co takie coś? Jakis "znaczacy" przyrost wydajnosci po odpowiednim ustawieniu tych nowych parametrow?

Źle dobrane MAL i RP dla danego dzielnika pamięci może wogóle uniemożliwić uruchomienie komputera, ewentualnie komputer uruchomi się i nie wejdzie do windy - tak więc taka "łatka" to czasem jedyny sposób na ustawienie danego dzielnika przy starcie kompka. MAL i RP może czasem również znacząco wpłynąć na podkręcanie procka. Jeśli chodzi o różnice w wydajności, to są one raczej marginalne.

 

Bardzo ciekawe luk1999. Respect

Danke, danke ;).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...