Bios/CMOS Registers? - Programmers Heaven

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

Welcome to the new platform of Programmer's Heaven! We apologize for the inconvenience caused, if you visited us from a broken link of the previous version. The main reason to move to a new platform is to provide more effective and collaborative experience to you all. Please feel free to experience the new platform and use its exciting features. Contact us for any issue that you need to get clarified. We are more than happy to help you.

Bios/CMOS Registers?

maexmaex Posts: 1Member
Hello;
i'm trying to write a programm that slows down the CPU-Frequenz by manipulating rthe CMOS-Registers, like you can do in the Bios-Setup.
It would work, but i need the exact Information about the CMOS Memory-Layout (the Registers 0x70...).
There are only very old Information/ CMOS-References which do not exactly inform about the extended Checksums.
The german 'BIOS-Kompendium' for example is not complete enough.

By the way; it's an AMI-Bios.

Thanks, Maex

Comments

  • jeffleydajeffleyda Posts: 390Member
    : Hello;
    : i'm trying to write a programm that slows down the CPU-Frequenz by manipulating rthe CMOS-Registers, like you can do in the Bios-Setup.
    : It would work, but i need the exact Information about the CMOS Memory-Layout (the Registers 0x70...).
    : There are only very old Information/ CMOS-References which do not exactly inform about the extended Checksums.
    : The german 'BIOS-Kompendium' for example is not complete enough.
    :
    : By the way; it's an AMI-Bios.
    :
    : Thanks, Maex
    :

    Aside from the date/time, floppy drive types and a few other bits and pieces, there is no standard layout for CMOS memory. It is entirely vendor specific, so the only way to get a map of CMOS would be to ask AMI for it. This map will likely change between BIOS revisions and different platforms as well.

    However, you can find what you're looking for a different way.
    Find (or write) a program to save the contents of CMOS to a file, then change the CPU frequency by 1, then dump CMOS again and compare the 2 files. You should see the change in frequency show a different value in CMOS, along with a CMOS checksum byte that changes. From there, you should be able to deduct where the frequencies are stored and know what values are for each. It'll take some work, but you can get it.

    Some things to be aware of:
    a) the checksum for CMOS may not be the last byte of the CMOS map.
    b) the frequency tables might be stored in the 2nd bank of CMOS memory. You would use ports 72 and 73h to access this bank.

    let me know if you need help getting access to CMOS.

    -jeff!
  • danderson00danderson00 Posts: 1Member
    Hi Jeff,

    I know this post is a little old, but I'm interested in writing an app that records bios settings such as FSB frequencies and voltages automatically. Does your method of reading the CMOS settings still work?

    I recognise the effort involved in mapping out the CMOS (probably for each and every different motherboard, but I'd like to investigate how difficult this is.

    I can see considerable value in a reusable open source library for doing this!

    Do you have some code that will do the trick?

    Cheers!
    Dale Anderson
Sign In or Register to comment.