making a custom BIOS program..

thermalpaste

Senior member
Oct 6, 2004
445
0
0
Has anybody tried re-writing their own BIOS program into the orignal motherboard BIOS? ANy details on how to do it? I have an unlocked athlon-xp 2000+ and was wondering if I could make a BIOS of my own that would let me increase my FSB even further......
 

Maverick2002

Diamond Member
Jul 22, 2000
4,694
0
0
It's definitely possible (creating a BIOS with the necessary files and booting from a floppy to reflash your BIOS), but the code would be have to written in C-type language or lower, almost at machine language level (if not machine level, i.e. binary), since there's no OS before the BIOS. To write a BIOS you'd have to know pretty much everything about the motherboard, which isn't practical unless that's already your field of expertise. Modifying an existing BIOS is a more viable option, though I'm not sure what program/utility you'd use to do so. Notepad maybe? Also, there's really no way to test your BIOS other than flash your board, which is a big risk unless you have a secondary backup BIOS either as another chip on the board or as a removable chip.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Sure can. Give me the licensed source code from AMI or Phoenix. The mainboard's schematics and errata. Detail specification, databook and errata from every single chip that's on it. 3rd party code for peripherals as applies. Then I'll have a go at writing a new BIOS for you.

Still, it might not do what you want because the mainboard's design simply can't - either because e.g. the clock synthesizer chip doesn't offer what you want, or because you've reached the limits of what the design can do.

It isn't as easy as it looks. It isn't even in the same universe as your idea is.

(Disassembling the existing BIOS and patching a few data to make the existing code do "wrong" things, that's easier. Some people do that.)
 
Oct 18, 2004
186
0
0
There are programs to do exactly what you want, check out the xtremesystems.org forums, I saw something about this in there yesterday
 

pm

Elite Member Mobile Devices
Jan 25, 2000
7,419
22
81
Intel's "next generation BIOS" which is called the Extensible Firmware Interface (EFI) will be open source. It will get support under Longhorn - although the Itanium family uses it already. More details here.

I think it would be hard to modify current BIOS's.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
EFI will be open source, fine. Still I doubt that mainboard companies will be putting the source code for their hardware initialization into public view ...
 

pm

Elite Member Mobile Devices
Jan 25, 2000
7,419
22
81
Originally posted by: Peter
EFI will be open source, fine. Still I doubt that mainboard companies will be putting the source code for their hardware initialization into public view ...

Good point.
 

flawlssdistortn

Senior member
Sep 21, 2004
680
0
0
Would any of you happen to know how the CPU die temp is displayed through the BIOS? Gigabyte, the manufacturer of my board seems to have had a very tough time fixing incorrect temp readings. They were initially very low for everyone (this is the socket 939 athlon 64s btw), and eventually the problem was "fixed" through a BIOS revision. However, in later revisions, I noticed that the temps seem to be altered. Maybe something in the code agravated the problem? Anyway, all this has shaken my confidence that I am getting the correct readings. For all I know, the BIOS dept just hard-coded in a value to scale the readings to something reasonable. I mean, how hard is it to take a reading from the temp sensor and output the value?
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
You read the sensors, and display the reading.

If your sensor readings are for some reason inaccurate, you apply correction offsets and factors, and display that then.

Fact is, from desktop mainboards, you NEVER get the correct readings. If they'd display those, people would be scared, simply for all the low temperature craze and the old days when CPU temperature was "measured" through a probe down in the socket, not in the actual silicon.
People tend to run around flailing their arms screaming whenever the CPU temperature shows something like 70C. Now since that's a perfectly healthy temperature for an Athlon or A64, you either have your support staff try to explain to the disbelievers (who won't take it even if you slap the CPU's specification round their head repeatedly, where it says 90C max) - or you lie to them in the first place, giving them a reading that makes them feel at ease.
 

cquark

Golden Member
Apr 4, 2004
1,741
0
0
Originally posted by: thermalpaste
Has anybody tried re-writing their own BIOS program into the orignal motherboard BIOS? ANy details on how to do it? I have an unlocked athlon-xp 2000+ and was wondering if I could make a BIOS of my own that would let me increase my FSB even further......

The OpenBIOS Project is working on a free, open source, multiplatform BIOS. Their source would be one of the best places to start.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Well the "multiplatform" thing ends where the hardware initialization starts. There will always be porting work to be done. In fact, that's what us BIOS workers are doing all the time - use a generic skeleton (from AMI, Phoenix et al), then adapt, adopt and improve to match the hardware the EEs next door have come up with.

"Open" or commercial BIOS core, you'll still have to know EVERYTHING about every single chip on the board, as well as every detail about how things are wired up on this particular mainboard.
 

flawlssdistortn

Senior member
Sep 21, 2004
680
0
0
Originally posted by: Peter
You read the sensors, and display the reading.

If your sensor readings are for some reason inaccurate, you apply correction offsets and factors, and display that then.

Fact is, from desktop mainboards, you NEVER get the correct readings. If they'd display those, people would be scared, simply for all the low temperature craze and the old days when CPU temperature was "measured" through a probe down in the socket, not in the actual silicon.
People tend to run around flailing their arms screaming whenever the CPU temperature shows something like 70C. Now since that's a perfectly healthy temperature for an Athlon or A64, you either have your support staff try to explain to the disbelievers (who won't take it even if you slap the CPU's specification round their head repeatedly, where it says 90C max) - or you lie to them in the first place, giving them a reading that makes them feel at ease.


Whoa, are you serious?!?! Is there any way I can get the "true" readings from the sensor? I don't know about you guys, but part of the reason why I like computers is cause I'm a data whore. I like being able to monitor all different kinds of stats from CPU utilization to clock speeds, to temperatures, bandwith, latency... Man, MBM was my favorite thing and now it's gone Now hearing that the temps are scaled down so I won't flail my arms just makes me want to flail my arms... This is worse than finding out the WWF was fake, lol.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
If you use a generic sensor reading program like MBM, which doesn't know about those "corrections" BIOS applies before writing numbers to the screen, you'll get the raw sensor data. These might still be off though. If you really want to know the lid/die temperature of your CPU, you need to drill a tiny hole through the center of your heatsink and place an external probe there.

Ironically, it's the cheap OEM boards that are the most honest in their temperature showings. My ECS L7S7A2 reports me a CPU temperature (Athlon XP 2400+) of 65°C, and I'm not afraid
 

flawlssdistortn

Senior member
Sep 21, 2004
680
0
0
Well I did a bit of reading and found this in the AMD64 BIOS and Kernel Developer's Guide on pg 134, 135:
Thermal diode offset is used to correct temperature
measurement made by an external temperature sensor. The offset is in 1 degree Celsius
increments and it should be subtracted from the temperature measurement. A correction to the
offset may be needed for some temperature sensors. Contact the temperature sensor vendor to
determine whether an offset correction is needed. The maximum allowable offset is provided
in the appropriate processor data sheet, and the maximum offset can vary for different
processors.

Now when I read this I of course jumped to the conclusion that the Gigabyte BIOS dept must have used the wrong offset value. But then I realized that it was just that - an "offset" value (to be subtracted), not a value to scale the temp readings by. Look, I'm probably getting in over my head here, but from the descriptions of the other fields regarding the integrated temp sensor, I got the impression that it's purpose was to act as a failsafe (to shut down the system if the processor exceeded a certain value), rather than an actual monitoring device. Which means the actual temp monitoring sensor is one on the motherboard. So Peter, what reading do you think is important - the temp of the silicon or the temp of the heat spreader "outside" so to speak? And would it be possible for me to look at the programming of the BIOS to see how Gigabyte utilized the integrated temp sensor?
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
Today's CPUs define the alarm/throttle point as measured using the CPU die's probe. Except for a few very recent ones (Pentium-M, P4 latest stepping), you still need an external monitoring chip that triggers the alarm/throttle via southbridge connection. (The correct alarm point as seen by the monitoring chip needs to be found during initial board engineering).

Above that, some even have an internal circuit that triggers an emergency voltage cutoff when things get WAY too hot.

To answer your question, it's the die (silicon) temperature that has the actual limit.

To reverse engineer what my fellow developpers over at Gigabyte did, you'd have to look at their BIOS's readings, the actual monitoring chip's readout, as well as the actual temperatures as measured by an external probe right on the hottest spot of the die-heatsink junction. (With lidded CPUs like AMD64 or P4, you can't even measure Tjunction, all you get is Tcase.)

Getting that alarm trigger point right is easy, since you have a direct mapping of one temperature point to its monitor chip reading. Getting a halfway correct reading across the entire temperature range isn't nearly as easy.

Our BIOSes just show the straight readings from the monitoring chip. Then again, our stuff is for special environments, high ambient temperatures in particular. Inherently, our customers aren't afraid of realistic temperature readings. Lucky me
 

cirthix

Diamond Member
Aug 28, 2004
3,616
1
76
mbm 5 displays cpu core temperature on my dfi infinity with athlonxp-m. The core temp as of writing is 21c, average is 24c, high is 42c, low is 13c. socket temp is 32c current, 32low, 37 hihg, and 33 average. for refrence, case temperature is 28c current, 28c low, 29c high, and 28c average. The system has been on for about 10 hours, mostly under full load with watercooling. I know that cpu core temperature is wrong because it can't go sub-ambient with watercooling. room temperature has been around25c give or take a few all day. I have had my cpu core temperature go to 87c (and had it working at that), it caused no problems. I have also (back when on air cooling) had a fan problem (the friggen thing broke!), which caused the cpu to overheat, so as soon as I noticed(a window proved usefull for once!), I pulled the plug and stuck a thermocouple on the heatsink. After one minute (took me a while to get it), the highest reading of the thermocouple was 105C, now this was on the bottom of the heatsink, imagine the core temp!!! needless to say, the cpu works great (i just typed this on it)
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
13C core temperature at 28C ambient? Ahahahahaha ... prime example of what I wrote above.

Typical socket A coolers have a thermal resistance of 0.5K/W. The heat transfer wax or paste inbetween the die and heatsink isn't thermally perfect either. You do the math whether your ~50W CPU realistically lives off a 14 degree temperature delta from die to ambient. That'd be more like 0.33K/W ...
 

BEL6772

Senior member
Oct 26, 2004
225
0
0
In modern processors, temperature measurements rely on an analog thermal diode circuit. Intel uses a calibrated on-die reference current source and a current comparator to 'read' the temperature (I figure AMD uses something similar, but I didn't look it up).

So, to get a temperature, you figure out the current through the diode (which will vary with temperature) and compare that to the reference current. Then the difference is used to derive the temperature. Unfortunately, real diodes don't have perfectly linear temp vs current curves, so they pick the region that they want the highest accuracy and base the temperature derivation on that region. The further the temperature is from that critical region, the less accurate the temperature is likely to be.

For Intel CPUs, the BIOS can just read and display the temp that the processor's thermal diode circuit derives. Some mobo makers put their own temperature sensing devices on the boards that are independant of the CPU's diodes. When they do, their BIOS has to manage those devices.
 

flawlssdistortn

Senior member
Sep 21, 2004
680
0
0
Wow, that is really interesting. Could you point me in the direction of some reading material on this? I already checked the tech docs on the AMD site, but they didnt say much.
 

BEL6772

Senior member
Oct 26, 2004
225
0
0
The source I found for Intel's method is here.

The bit about diodes having non-linear temperature response is from my memories of college. Now that I look through old texts, it looks like integrated diodes have really good linearity through lower temperatures and start to go non-linear at high temperatures. Intel's approach of setting the reference current equal to the current that is measured through the diode at the trip point yields great precision in setting their trip point, but if that point is in a region where the change in current is no longer linear with the change in temperature (would have to look at their device characterization curves) then they either have to implement a non-linear algorithm to accurately interpret the temperature, or they pick an average slope and live with small inaccuracies at lower temperatures. I'm guessing they take the latter approach.

From what I see here, AMD places a thermal diode in their die and requires the mobo maker to implement an external sensing unit. Their recommended approach is to send a small current then a large current into the diode and calculate temperature based on the resulting measured voltages. Each processor is allowed to have different diode characteristics, so they use an offset register (as noted in the thread above) to help the sensor's calculations match what's really happening inside the chip. It seems to me that if the calculations are properly done and if the offset is read and applied correctly, then AMD's approach is probably more accurate than Intel's. Judging by the comments in the thread so far, it seems that some manufacturers are better than others at implementation.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
AMD, starting with the Athlon XP, does exactly the same thing as Intel: On-die thermal diode, connected to an on-board monitoring chip.

It's those monitoring chips that sometimes do have programmable offset and slope correction factors, and sometimes don't. If they do, the readings directly from the chip can be made accurate, else, the math needs to be in the software. Either way, it's up to the mainboard designers to determine said parameters, and it's up to the BIOS engineers to put them in place.
 

flawlssdistortn

Senior member
Sep 21, 2004
680
0
0
Thanks for the response guys, I've been wanting to know about that for months, lol. I'm gonna be taking Analog and Digital Circuits within the next two semesters (for electrical engineering), and I'd also like to start getting into some of it as a hobby. I saw a few books on programing certain microcontrollers, and flipped through a couple books on circuits. Any tips on where to start, and if there are any good websites or forums for this type of thing?
 

ik_ei

Junior Member
May 28, 2020
1
0
6
It's definitely possible (creating a BIOS with the necessary files and booting from a floppy to reflash your BIOS), but the code would be have to written in C-type language or lower, almost at machine language level (if not machine level, i.e. binary), since there's no OS before the BIOS. To write a BIOS you'd have to know pretty much everything about the motherboard, which isn't practical unless that's already your field of expertise. Modifying an existing BIOS is a more viable option, though I'm not sure what program/utility you'd use to do so. Notepad maybe? Also, there's really no way to test your BIOS other than flash your board, which is a big risk unless you have a secondary backup BIOS either as another chip on the board or as a removable chip.


Can we assume that I know the motherboard's ins and outs. Let's say I know how to manufacture PCB and i know how to do the layout and of course I know the pinout of the chip/processor.

Let's say I can make the bios chip removable and i also know how to solder.

How could i proceed to writing the bios based on my custom motherboard?
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |