Jump to content

**Definitive CMOS Reset fix**


56 posts in this topic

Recommended Posts

Stellarola is mostly right!

But, the people like me who have ATT0/1 can also just edit the two values to 0x02. As far as i can understand, ATT1 is used to return the same value as ATT0 in a particular situation.. not sure what yet. Fell free to correct me if i'm wrong! I suspect of a battery situation (the one in the mobo) but, i'm not sure at all.. need time to read more about ACPI stuff.

Anyway.. here are some more "findings":

 

- this code also works for me:

(edited copy of the one posted by Stellarola)

Device (RTC)
               {
                   Name (_HID, EisaId ("PNP0B00"))
                   Name (_CRS, ResourceTemplate ()
                   {
                       IO (Decode16,
                           0x0074,             // Range Minimum
                           0x0074,             // Range Maximum
                           0x00,               // Alignment
                           0x02,               // Length
                           )
                   })
               }

Again, 01 Alignment doesn't make any difference.

I think the Range defines the Port used by RTC device. Correct me if...

And i don't think this will solve the problem to the ones that 0070 doesn't work but, feel free to try.

 

- Had two kp yesterday RTC related, right after the RTC message, while booting "normally" in between "tests". Both gone after reboot.

"com.apple.driver.AppleRTC with dependencies on com.apple.iokit.IOACPIFamily"

 

- When RTC fails to load properly, theres no reset. For instance; if i use 0071 in Range, i get:

RTC: lost battery power - time may be invalid

System boots, time is screwed (set to a very old/future date), system and apps that depend on time complaint but, no reset.

Another example is using 0070 min/0071 max:

RTC: map device memory failed

Here device fails to load, boot fails and still no reset. Seems logical.

My suspicions about ATT1 code being related to battery start here.. noticed the "lost battery power"? :)

 

- More battery suspicions.. If i make ATT0 fail with e.g. 0071 and set ATT1 to 0070, i get the two RTC messages lost battery/memory failed, system boots, the clock on Menu Bar shows correct time but, the one in System Preferences shows very future one :( and no complaints about screwed time. No reset. Will post a pic latter...

My guess is ATT1 is some kind off "backup plan" for when battery fails/dies?!

 

So, my conclusion is, if this fix doesn't work for you with "these" values, it will never work this way. But i can be wrong...

The thing that bothers me is that 128 byte RTC message. So far so good, just hope it's "just a damn message" with no surprises :P

 

Stay safe.

 

 

Edit: Well, i went to get the pic i promised but, the system didn't collaborated. This time i still got the two messages but, both clocks were fine :D

Anyway, this only confirms my suspicions.. i think.

Edited by Azimutz
Link to comment
Share on other sites

Thanks, Stellarola, the fix solves CMOS reset in my Gigabyte EP35-DS3r (see signature), this reset happens only in SL, not in Leopard.

I'm using the same code as Stilvnub.

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
	0x04, // Length
	)
	})
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

  • 9 months later...

Thank you so much for the fixes.

 

I have Snow Leopard 10.6.2 installed on an ASUS P5N32-E SLI 680i. Finally solved the CMOS reset today. I only had to change ATT0 to 0x02 and keep ATT1 with 0x04. When I had both changed to 0x02 it still reseted BIOS after every restart.

 

thanks again.

 

 

				Device (RTC)
			{
				Name (_HID, EisaId ("PNP0B00"))
				Name (ATT0, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // changed from 0x04 to 0x02
						)
				})
				Name (ATT1, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x04,			   // wasnt working with 0x02. only works with 0x04 for me
						)
				})

Link to comment
Share on other sites

 Share

×
×
  • Create New...