Jump to content

CMOS reset / corrupted after reboot / shutdown - FIXED


stevier
 Share

2 posts in this topic

Recommended Posts

I have Snow Leopard vanilla installed (still a few issues to resolve), but the most annoying was that my bios settings were erased every time I shutdown. I have a Shuttle SP35P2 system, but I've heard this happen to other people as well. I'm mostly regurgitating this info from here:

 

http://3rr0rists.com/macintosh/how-to-inst...il-in-a-pc.html

 

But i couldn't find it while searching the board and thought I'd share here as well.

 

To fix, you need to manually generate a new DSDT and edit some things yourself.

 

- You need the command line DSDT patcher, from here: http://rapidshare.com/files/282017109/DSDT_Patcher.zip

- In terminal, run DSDT Patcher, select darwin (0) as the option, and it should complete

- Go into the Debug folder under DSDT Patcher, and edit the dsdt.dsl file

- Head down to the Device(RTC) section, and edit as follows:

Device (RTC)
{
Name (_HID, EisaId (”PNP0B00″))
Name (_CRS, ResourceTemplate ()
{
IO (Decode16,
0×0070,			 // Range Minimum
0×0070,			 // Range Maximum
0×00,			   // Alignment
0×02,			   // Length was 4
)

 

- You need to change 0x04 to 0x02. Mine wasn't arranged exactly this way, it wasn't under CRS and i had two additional sections, i think AMI0 and AMI1, each with the 0070, 0070, 00, 04 pattern. I changed both to 0x02 from 0x04.

- from the DSDT Patcher directory, run the Tools/iasl program on the dsdt.dsl file you just edited, i.e.:

./Tools/iasl ./Debug/dsdt.dsl

- Copy the dsdt.aml file from the Debug folder to your snow leopard partition, reboot and enjoy:

sudo cp ./Debug/dsdt.aml /

Link to comment
Share on other sites

The output for a Gigabyte GA-EX58-UD5 motherboard with bios F7, with the CMOS RESET fix:

                Device (RTC)
               {
                   Name (_HID, EisaId ("PNP0B00"))
                   Name (ATT0, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length was 4
                           )
                   })
                   Name (ATT1, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0070,             // Range Minimum
                           0x0070,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length was 4
                           )
                   })
                   Method (_CRS, 0, NotSerialized)
                   {
                       If (LGreaterEqual (OSFX, 0x03))
                       {
                           If (HPTF)
                           {
                               Return (ATT1)
                           }
                           Else
                           {
                               Return (ATT0)
                           }
                       }
                       Else
                       {
                           Return (ATT0)
                       }
                   }
               }

Link to comment
Share on other sites

 Share

×
×
  • Create New...