PDA

View Full Version : BIOS Programming/Modifying



Skillz
06-07-2007, 01:55 PM
Whats the best way to modify/program a custom BIOS or is it even possible?

What I want to do is this.

I want to unlock the overclocking abilities of the T7600G C2D Mobile CPU in a Dell 9400. I know the XPS M1710 has the ability to overclock this specific CPU, and from what I can understand is that it's all in the BIOS.

However, flashing the 9400 with a M1710 BIOS will brick the system, so I was thinking maybe take a 9400 and M1710 BIOS and compare them side by side, just take the part out of the M1710 that allows the overclocking and add it to the 9400 BIOS.

Sounds pretty easy, granted I know it wont be and the risk of bricking the system beyond repair is very likely; but if it works then it'll be awesome.

What kind of tools would be the best at opening apart a BIOS and reading the information in something that is more human like.

Skillz
06-07-2007, 06:44 PM
Anyone? :shrug:

uOpt
06-08-2007, 07:30 AM
It's probably better to go straight at the ICS and set the speed on your own.

If you are on Windoze you are screwed with the clocks afterwards, of course.

Skillz
06-08-2007, 11:27 AM
Ics?

KILLorBE
06-08-2007, 12:10 PM
Ics?

He's probably talking about the clock generator (Which is most likely made by ICS (Integrated Computer Systems) (http://www.ics.com.ph/)).

I was looking for something similar, but it's hard to find/do any of that.

I can only point you in the right direction.. Wim's BIOS (http://www.wimsbios.com/index.jsp), and there's a Russian site that may be of some help...but I can't remember the url right now...something with rom orso.

Not to mention the guys at www.x86-secret.com, but I'm not sure if they'll help you out or whatever (Some articles are in English, but just about everything else is in French).

For hardware mods this site may be usefull (http://www.plasma-online.de/index.html?content=http%3A//www.plasma-online.de/english/identify/picture/ics.html).

Good luck anyway. (Let us know if you were succesfull, either way).

nfm
06-08-2007, 01:19 PM
What kind of tools would be the best at opening apart a BIOS and reading the information in something that is more human like.
Disassembling the bios, or getting the source code. You would result in possession of assembly code, you would then could use common tools on unix to compare code and you would recompile, flash and overclock. If you have few weeks of time, screw and hack around with disassemblers.

Edit: Maybe the easy way, try to load bios from 9400 with modbin and see if it loads, and if you can unlock hidden options. Other way, which I prefer, is to study chipset registers. For example, I had MSI Neo2 borad while ago, and I wanted to change trc to 7 clocks, but it wasnt' in the bios. I then found out that trc setting lies on 0FFFFFF0Fh address, and for value 7 I had to load 000000000h.
Basically what you do is:
- Write small piece of assembly code, that swaps values at certains addresses
Here's an example of such a code:

pushad
;trc7
mov eax, 0x8000C288
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFFFF0F
or eax, 0x00000000
out dx,eax
;trfc14
mov eax, 0x8000C288
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFFF0FF
or eax, 0x00000500
out dx,eax
;Bypass Max 7x
mov eax, 0x8000C290
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xF1FFFFFF
or eax, 0x0E000000
out dx,eax
;Read/Write Qued Bypass 16x
mov eax, 0x8000C290
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFF3FFF
or eax, 0x0000C000
out dx,eax
;Max Async Latency 8ns
mov eax, 0x8000C294
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFFFFF0
or eax, 0x00000008
out dx,eax
;trrd3
mov eax, 0x8000C288
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFF8FFFF
or eax, 0x00030000
out dx,eax
;twr2
mov eax, 0x8000C288
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xEFFFFFFF
or eax, 0x00000000
out dx,eax
;twtr1
mov eax, 0x8000C28C
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFFFFFE
or eax, 0x00000010
out dx,eax
;trwt2
mov eax, 0x8000C28C
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFFFF8F
or eax, 0x00000010
out dx,eax
;tref166Mhz15.6us
mov eax, 0x8000C28C
mov dx,0xcf8
out dx,eax
mov dx,0xcfc
in eax,dx
and eax, 0xFFFFE0FF
or eax, 0x00000200
out dx,eax
popad
ret
Then you compile the code with nasm/yasm whatever you prefer append this piece of code to the bios file. In your case, you would have to hack around with registers of you chipset, and find memory addresses of fsb etc. It's also a good idea to make sure that your machine won't crash at certain setting, i.e 500fsb, in my situation I checked memory setting with A64Tweaker before flashing the bios so my board booted. :D

uOpt
06-08-2007, 04:55 PM
Messing directly with the ICS isn't rocket science at all. On most boards it is a standard chip, for which you can get documentation, connected to the i2c bus, a standard bus that presents the programming registers of all devices connected the same way.

Over at 2cpu the Linux folks use it to clock Intel socket 775 and 771 boards. Check out the "overclocking Dempsey/Woodcrest" or somesuch thread, it's currently running.

Skillz
06-08-2007, 10:20 PM
Thanks for the suggestions guys, I'm gonna get to work on this. As I want to get a Dell 9400 laptop, but I want the options of the M1710, without the money involved.

The only thing I am afraid of is bricking the system. I know if you flash the BIOS with an M1710 BIOS, it will brick the system.

If this happens, how hard is it to recover from a bad flash?

STEvil
06-09-2007, 09:08 PM
M1710 doesnt use the same motherboard that I know of (but i've not looked up the systems on google). They could have completely different PLL's and even chipsets...

The best way to go is to find the PLL. You may be able to find it by looking on the motherboard, but I was not able to find one on my Alienware M5750.

There are some programs which allow you to look at bioses to see if there are hidden or disabled options. There are threads in the "Xtreme BIOS" section under "Xtreme Mods" http://www.xtremesystems.org/forums/forumdisplay.php?f=83 which you should be able to find them in.