luk1999 Opublikowano 12 Stycznia 2007 Zgłoś Opublikowano 12 Stycznia 2007 (edytowane) 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: 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...): 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...): 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...): 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 12 Stycznia 2007 przez luk1999 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
v1ru5 Opublikowano 13 Stycznia 2007 Zgłoś Opublikowano 13 Stycznia 2007 a po co takie coś? Jakis "znaczacy" przyrost wydajnosci po odpowiednim ustawieniu tych nowych parametrow? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
toman Opublikowano 13 Stycznia 2007 Zgłoś Opublikowano 13 Stycznia 2007 Bardzo ciekawe luk1999. Respect :ph34r: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
luk1999 Opublikowano 13 Stycznia 2007 Zgłoś Opublikowano 13 Stycznia 2007 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. RespectDanke, danke ;). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
toman Opublikowano 13 Stycznia 2007 Zgłoś Opublikowano 13 Stycznia 2007 Reasumując, jeśli nasza płyta nie posiada zaawansowanych opcji ustawień timingów w biosie (tutaj TRAS) i wogóle kuleje przy podkręcaniu luk1999 przychodzi z pomocą :D Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...