Jump to content

CMOS Resets on Restarts after Sleep and Wake in 10.7 (Lion)


rayap
 Share

474 posts in this topic

Recommended Posts

Amended 24th day of June, 2011

 

On Lion DP1-4 installations, after using sleep and wake in the system normally, BIOS reports CMOS Checksum Error on reboot or boot after shutdown. It seems that the new AppleRTC.kext v1.4 added functionatality is causing this Error.

 

Initially, a workaround suggested by JUN Ho is to use the AppleRTC.kext from SnowLeopard

 

Then by blocking a few jumps and calls in the procedures of AppleRTC.kext, the Checksum Error was overcome. It appears APPLE has left in-situ much of their realtime testing code in this kext and these modifications do not apparently affect their basic functionatility in normal cases.

On further investigation by tseug and with the assistance of his DumpCMOS.kext , an updated patch (post# 217) was prepared by blackosx. This patch for vanilla AppleRTC.kext is effective on the latest build 11A494a. (besides also on recent builds)

 

This solution will not affect those osx86 setups which inherently have Sleep or Wake problems. However, it will overcome the CMOS Checksum Error caused by RTC register length of 0x04 or 0x08 in DSDT and eliminate log msg RTC: Only single RAM bank (128 bytes) if, when a RTC register length of 0x02 is used.

 

Added 2nd day of July, 2011

New patch for AppleRTC.kext of Lion GM - Build 11A511 by tseug (Post #248). The binary patch now, is a single unconditional jump for each arch to bypass Checksum changes.

 

Added 10th day of July, 2011

An alternate patch for AppleRTC.kext of Lion GM. (Post # 340)

sudo perl -pi -e 's|\x75\x30\x44\x89\xf8|\xeb\x30\x44\x89\xf8|; s|\x75\x3d\x8b\x75\x08|\xeb\x3d\x8b\x75\x08|' /System/Library/Extensions/AppleRTC.kext/Contents/MacOS/AppleRTC

Comment 1st day of Septemebr, 2011

You may wish to put the patched kext in E/E and leave the Vanilla kext in S/L/E alone.

 

October 24th, 2011 - Above patch reportedly good for 10.7.2 too.

  • Like 3
Link to comment
Share on other sites

I too am experiencing this same problem in Lion. The system goes into S3 sleep as expected, but upon wake the system restarts and resets CMOS. Same DSDT is used with Snow Leopard and is 100% functional.

 

I'd like others who are experiencing this issue as well to make a post here as well. Thanks all!

 

-Stell

 

MSI X58 Big Bang X-Power.

Link to comment
Share on other sites

I have the same problem.. my dsdt.aml works well in Snow... but CMOS reset after sleep in lion.

when reboot , the CMOS display message

" Overclock failed. CMOS reset. press F1 to go to setup and F10 to load default"

 

My system

Asus P6TSE, 9800GT 512Mhz and 6G working memory, icore7 930.

DP2 with update for DP2 installed.

Link to comment
Share on other sites

May be length = 2 in RTC Device is not the solution for lion:

MacPro 8.2

   Device (RTC)
			{
				Name (_HID, EisaId ("PNP0B00"))
				Name (_CRS, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x01,			   // Alignment
						0x08,			   // Length
						)
					IRQNoFlags ()
						{8}
				})
			}

 

not sure could also be because sandy bridge is different.

Link to comment
Share on other sites

May be length = 2 in RTC Device is not the solution for lion:

MacPro 8.2

   Device (RTC)
			{
				Name (_HID, EisaId ("PNP0B00"))
				Name (_CRS, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x01,			   // Alignment
						0x08,			   // Length
						)
					IRQNoFlags ()
						{8}
				})
			}

 

not sure could also be because sandy bridge is different.

 

I'll give it a shot later, but the ASUS board my girlfriend uses still has the original RTC code and it works just fine with sleep. Thanks for the response!

 

Stell

Link to comment
Share on other sites

How do you know the DSDT has been loaded correctly to your system?

 

From my experiences these new bootloaders named XPC or [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] don't support my custom DSDT. Or it's my fault because I am missing something?

 

I noticed that, because I had to use NullCPUPowerManagement.kext and Elliot's RTC fix to prevent resetting CSMOS.

 

When using a DSDT editor and telling to extract DSDT from system I also get a clean DSDT as if no DSDT was loaded. (would this method be correct to prove if it's loaded or not?)

Link to comment
Share on other sites

How do you know the DSDT has been loaded correctly to your system?

 

From my experiences these new bootloaders named XPC or [url="http://www.insanelymac.com/forum/topic/279450-why-insanelymac-does-not-support-tonymacx86/"]#####[/url] don't support my custom DSDT. Or it's my fault because I am missing something?

 

I noticed that, because I had to use NullCPUPowerManagement.kext and Elliot's RTC fix to prevent resetting CSMOS.

 

When using a DSDT editor and telling to extract DSDT from system I also get a clean DSDT as if no DSDT was loaded. (would this method be correct to prove if it's loaded or not?)

 

For me with XPC (v 0.82.55) loads my dsdt custom correctly, in fact i have all fixes that i have in snow (audio, usb fix, ecc). Actually the only problem that i have is reset cmos after sleep mode.

 

To get rid of nullcpupowemnagagment.kext since XPC doesn't have automatic P-State and C-states generator, you have to add them manually it to your dsdt like before that was implemented in chameleon.

Cheers

Link to comment
Share on other sites

works fine here.have not patched anything. yet

 

What MotherBoard are you using? Gigabyte!

 

And for those without problems, do you have the ' System Sleep' and 'System Wake' kernel log messages as in SL?

Link to comment
Share on other sites

I have this problem also.

10.7 (all preview releases) will sleep and wake just fine. But after doing so, CMOS will be reset for next boot after restart or shutdown.

 

I've also tried using hibernation with sudo pmset -a hibernate mode 1, but it doesn't make any difference.

Link to comment
Share on other sites

This kernel message appears after sleep and wake:-

 

kernel: IOPMrootDomain: client 0xffffff7f80bb1e7c returned 120000000 for kIOMessageSystemWillSleep

 

It appears the client vetoes proper sleep so preventing some housekeeping tasks and prompting the above msg instead of a successful 'System Sleep' msg.

 

Anyone knows what the client address refers to?

 

Edit: Found pointing to IOGraphicsFamily.kext

Link to comment
Share on other sites

 Share

×
×
  • Create New...