+ Reply to Thread
Results 31 to 40 of 307
-
19th March 2011, 02:01 PM #31Notebook Deity
- Join Date
- May 2010
- Location
- germany
- Posts
- 887
- Rep Power
- 11
-
19th March 2011, 03:03 PM #32Notebook Evangelist
- Join Date
- Sep 2009
- Posts
- 371
- Rep Power
- 10
Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!
3820TG i5@3.2Ghz 4GB HyperX 1333CL7@1200CL6 ATI HD5650@700/900
Windows7 On Samsung SSD PM830 256Gig
3820tray --- 3820TG ATI vBios MOD --- 1810t TME MOD --- Acc Sensor Mod
-
19th March 2011, 03:28 PM #33Notebook Guru
- Join Date
- Oct 2010
- Posts
- 72
- Rep Power
- 7
Could you please check one thing with 3820tray. Add following code to you software:
Then run RWEverything with EC opened and 3820tray.Code:while (true) { unsigned char val = YourClass::ReadEC(0x93); if (val != 0x04) { // any code to notify: dialog or write to file, whatever LOG_WRITE("Error reading EC, expected 0x04, got=0x%x\n", int(val)); } Sleep(9); }
I have tested this on my system and very often get incorrect value from EC. With RWEverything closed - its all much better.
@inteks
O. And one more thing. It seems code you use to read EC is not quite correct:
it should be:Code:private static bool WaitEC(ushort iPort, byte bVal) { for (int i = 0; i < 300; i++) { var result = ols.ReadIoPortByte(iPort); if (!Convert.ToBoolean(result & bVal)) return true; Thread.Sleep(1); } return false; } private static bool WaitReadEC() { return WaitEC(0x66, 0x1); }
Here is the source: http://tracker.coreboot.org/trac/cor.../ec.c?rev=6442Code:private static bool WaitECFull(ushort iPort, byte bVal) { for (int i = 0; i < 300; i++) { var result = ols.ReadIoPortByte(iPort); // ! is removed if (Convert.ToBoolean(result & bVal)) return true; //Thread.Sleep(1); //on linux here was udelay(10) - delay for 10microseconds, so under windows even Sleep(1) makes this code work incorrect } return false; } private static bool WaitReadEC() { return WaitECFull(0x66, 0x1); }
But even this code fails for me with RWEverything on background
-
19th March 2011, 03:48 PM #34
Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!
It doesn't fail just with RWEverything running. It also fails with any CPU intensive task in the background. I tested it with Prime95 and your program simply chocked up and kept throwing assertion error. In fact, with Prime95 using 100% of my CPU, the system was still very responsive, but if I had your program open, it seemed to make my system freeze.
I think the problem is that you poll EC way too often. Have you tried polling it every 1 second instead? I am not sure if you can, but assign a higher priority to the EC polling component? If I remember correctly, by default acerhdf reads temperature from EC every 1.5 second. As for the source code above, I think you can access EC more often on Linux, because you have better control over the hardware.
If I had source code, I could probably test it
Last edited by prikolchik; 19th March 2011 at 04:10 PM.
Asus UX32VD-DH71: i7-3517U 1.9GHz / 10GB DDR3 / 320GB HDD / Nvidia GT 620M 1G / 13.3 IPS FHD / Ubuntu 12.10
Acer Aspire 3820TG-3022: i5-520M 2.4GHz / 8GB DDR3 / OCZ Vertex 3 120Gb SSD / ATI 5470 512MB / 13.3 WXGA / Ubuntu 10.10
Windows tax refund. Get $65 for Windows! Linux. Wins.
If you have a question to ask me, please PM! I do NOT check threads.
-
19th March 2011, 04:15 PM #35Notebook Guru
- Join Date
- Oct 2010
- Posts
- 72
- Rep Power
- 7
Actually, I do poll EC once a second. But you need to understand that it seems proper way to read EC is:
1. Address = [EC_SC]
2. Wait EC free
3. Write 0x80 to [EC_SC]
4. Wait IBF free
5. Write Address to [EC_DATA]
6. Wait IBF free
7. Wait OBF full
8. Read Data from [EC_DATA]
The problem is on stage 7. OBF becomes full just few microseconds after step 5. So even Sleep(1) is not an option here and you forced to constantly read port in cycle and wait until OBF bit is set to true. Of course when CPU is 100% busy system will interrupt your thread leading to odd behavior: Windows user ring is not truly real-time system, so this is main concern when working with EC from here
.
I've attached ECTest sources in next message.
Sources are attached.
-
19th March 2011, 04:52 PM #36Notebook Evangelist
- Join Date
- Sep 2009
- Posts
- 371
- Rep Power
- 10
Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!
i dont use ReadEC on my code. on the 1810tray version i saw that it not working correct any time so i use the MSR to get CPU temp.
for ATI temp (to implement GPU Fan control) all my hope goes to Guru3D.com Forums - View Single Post - MSI Afterburner .NET Class Library

PS:
here some code (winring0 required)
Code:public static int tjMax; public static byte GetCoreTemp(){ //var tjmax = 105; uint dwEAX = 0, dwEDX = 0; ols.RdmsrPx(0x19C, ref dwEAX, ref dwEDX, pz1 ); dwEAX = dwEAX & 0xFF0000; dwEAX = dwEAX >> 16; var core1 = (byte) (tjMax - dwEAX); if (corecount == 1) return core1; dwEAX = 0; dwEDX = 0; ols.RdmsrPx(0x19C, ref dwEAX, ref dwEDX, pz2); dwEAX = dwEAX & 0xFF0000; dwEAX = dwEAX >> 16; var core2 = (byte) (tjMax - dwEAX); ols.RdmsrPx(0x19C, ref dwEAX, ref dwEDX, pz3); dwEAX = dwEAX & 0xFF0000; dwEAX = dwEAX >> 16; var core3 = (byte)(tjMax - dwEAX); ols.RdmsrPx(0x19C, ref dwEAX, ref dwEDX, pz4); dwEAX = dwEAX & 0xFF0000; dwEAX = dwEAX >> 16; var core4 = (byte)(tjMax - dwEAX); byte coremax = 0; if (core1 > coremax) coremax = core1; if (core2 > coremax) coremax = core2; if (core3 > coremax) coremax = core3; if (core4 > coremax) coremax = core4; return coremax; }3820TG i5@3.2Ghz 4GB HyperX 1333CL7@1200CL6 ATI HD5650@700/900
Windows7 On Samsung SSD PM830 256Gig
3820tray --- 3820TG ATI vBios MOD --- 1810t TME MOD --- Acc Sensor Mod
-
19th March 2011, 05:37 PM #37Notebook Evangelist
- Join Date
- Sep 2009
- Posts
- 371
- Rep Power
- 10
Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!
have you tryed this:
Code:private static bool WaitEC(ushort iPort, byte bVal) { for (int i = 0; i < 300; i++) { var result = ols.ReadIoPortByte(iPort); if (!Convert.ToBoolean(result & bVal)) return true; var start = DateTime.Now; while((DateTime.Now -start).Ticks < 100){} } return false; }3820TG i5@3.2Ghz 4GB HyperX 1333CL7@1200CL6 ATI HD5650@700/900
Windows7 On Samsung SSD PM830 256Gig
3820tray --- 3820TG ATI vBios MOD --- 1810t TME MOD --- Acc Sensor Mod
-
19th March 2011, 05:54 PM #38Banned
- Join Date
- Dec 2008
- Location
- YellowBrickRd.AU
- Posts
- 7,931
- Rep Power
- 0
Re: Acer Aspire TimelineX 3820TG mods/tweaks ONLY!
Disabling pci express port via device manager is required first. Then disable the x16 port via r-w everything or baredit at 0:0.0 54 bit 1=0. Then can do a device manager rescan and the ATI device will be gone. Confirm if there are power savings or not. I'm assuming the ATi device will go into a power savings mode when not on the PCI BUS.
If it's not power saving then would need to capture a dump of it's pci space (4KB) when it is power saving. Load that into the ATI card after disabling it in Device Manager, then disabling the x16 link.
I believe that will do the trick. Just needs a nice r-w everything script + batch file to manage it all OR Inteks could consider doing the equivalent steps in 3820TGTray.
-
20th March 2011, 02:15 AM #39Notebook Guru
- Join Date
- Oct 2010
- Posts
- 72
- Rep Power
- 7
-
20th March 2011, 02:53 AM #40Notebook Evangelist
- Join Date
- Sep 2009
- Posts
- 371
- Rep Power
- 10
3820TG i5@3.2Ghz 4GB HyperX 1333CL7@1200CL6 ATI HD5650@700/900
Windows7 On Samsung SSD PM830 256Gig
3820tray --- 3820TG ATI vBios MOD --- 1810t TME MOD --- Acc Sensor Mod



LinkBack URL





Reply With Quote

I`m upgrading, are you? (GTX 780M...
Today, 11:34 AM in Gaming (Software and Graphics Cards)