Jump to content

Sony Vaio VPCF115FM Discussion: DSDT Injection


kizwan
 Share

787 posts in this topic

Recommended Posts

edit: i can't find any snc.sys driver, but in my C:\Windows\System32\drivers dir there is a file called SFEP.sys and it's the only driver signed by sony running on my system, SFEP means "Sony Firmware Extension Parser" maybe it can be useful.. i hope

You can disable the sfep.sys in the device manager. After restart the display is still detected correctly, so the sfep.sys does not seem to have any influence on it.

Link to comment
Share on other sites

Of course, the nvidia driver was modified for sony laptops to handle that - it used to be why you couldn't use a stock nv driver, and you can these days since they integrated that functionality into their package :)

 

But you can do this only with your VAIO, because mine (for example) needs a modified .inf files to inject into Display Driver folder of the Nvidia extracted driver... Only after that I can install the driver properly for my hardware... (on Windows obviously)

Soooo btw the only thing that I didn't do since now into OSX Lion (and Snow Leopard) is DSDT edit, because I'm not able to understand where to start with.. :):)

Link to comment
Share on other sites

can you post original and modded file inf for your vaio? :)

Here it is :)

Note that the "nvszc" inf file goes into "Display.Driver" folder of the extracted Nvidia driver package.

NVSZC_Stock.rar

NVSZC_Modified.rar

Link to comment
Share on other sites

  • 2 weeks later...

In this thread (http://www.insanelymac.com/forum/index.php...p;#entry1736776) a user said to use "dsdt edit the _DOD switch first to LCD 0x00000110 or 118" for an HP laptop that has the internal screen not working...

Someone here have already tried this code into DSDT?

Link to comment
Share on other sites

In this thread (http://www.insanelymac.com/forum/index.php...p;#entry1736776) a user said to use "dsdt edit the _DOD switch first to LCD 0x00000110 or 118" for an HP laptop that has the internal screen not working... Someone here have already tried this code into DSDT?

 

http://en.wikipedia.org/wiki/RAMDAC

 

"

What is Ramdac? I was looking at my system's info, and I noticed for my graphics card it says the DAC type is Integrated RAMDAC. Now, my video card is an nVidia GeForce 8600GTS. I was hoping you could tell me what the integrated RAMDAC means. Does it have anything to do with me not disabling my onboard graphics on my computer (I don't know how, my computer detected and disabled it automatically)."

 

from :http://www.techsupportforum.com/forums/f24/what-is-ramdac-326843.html

 

i have 8600mgt and my dac is ramdac ,after looking at wikipedia not sure but seems to be a track for the current problem anyone could take a look

 

thanx

Link to comment
Share on other sites

@jlvaio:

Me too, the DAC type of my Nvidia 8400M GT is an Integrated RAMDAC.

Does this mean anything? :o I'm not really sure about that, but maybe it's the real problem!

I think we just might type that line of code into our DSDTs and see what happens! BTW I don't know if that line is standard for all laptops, but I think yes ;)

Right now I don't have OSX installed in my VAIO.. so I can't test :D

Link to comment
Share on other sites

@jlvaio:

Me too, the DAC type of my Nvidia 8400M GT is an Integrated RAMDAC.

Does this mean anything? :o I'm not really sure about that, but maybe it's the real problem!

I think we just might type that line of code into our DSDTs and see what happens! BTW I don't know if that line is standard for all laptops, but I think yes :(

Right now I don't have OSX installed in my VAIO.. so I can't test :unsure:

 

I can't test too

 

LCD 0x00000110 or 118" i read the display adress is 00000110 for me (property)

 

 

 

 

NVIDIA, le logo NVIDIA, Digital Vibrance Control, ForceWare, GeForce, GoForce, MXM, Quadro, nView, NVRotate, PowerMizer, PureVideo, Quadro, Quincunx Antialiasing, SLI, SmartDimmer et TwinView sont des marques commerciales ou déposées de NVIDIA Corporation.

 

Microsoft, Microsoft Windows, DirectX, et Direct3D sont des marques commerciales ou déposées de Microsoft Corporation aux États-Unis et dans d’autres pays.

 

OpenGL et le logo oval sont des marques commerciales ou déposées de Silicon Graphics, Inc. aux États-Unis et dans d’autres pays.

 

PCI Express, PCI-SIG et les marques de conception PCI-SIG sont des marques déposées et/ou des marques de service de PCI-SIG.

 

Conexant est une marque commerciale de Conexant Systems, Inc.

 

HDMI, le logo HDMI et High-Definition Multimedia Interface sont des marques commerciales ou déposées de HDMI Licensing LLC.

 

DisplayPort est une marque déposée de VESA.

 

http://en.wikipedia.org/wiki/DisplayPort

 

 

 

000000E4
CM_DEVCAP_REMOVABLE
CM_DEVCAP_SILENTINSTALL
CM_DEVCAP_RAWDEVICEOK
CM_DEVCAP_SURPRISEREMOVALOK

 

after gloogle:

http://www.techtalkz.com/microsoft-device-...e-hardware.html

 

 

 

As far as I've seen so far a device is listed in the safe
removal dialog when it has the CM_DEVCAP_REMOVABLE bit and
not the CM_DEVCAP_SURPRISEREMOVALOK device capability bit.

Re: removable hardware
Mark,

Hot-plugging is defined in the PCI-Express standard. According to the
hotplug standard an individual slot can be powered down a PCIE-plugin card
replaced and then powered back up. Logically it should be identical to an
ExpressCard slot on a laptop. I have a bus filter driver that handles the
interrupt when the button to power down the slot is pressed and implements
the state machine defined in the standard. This should be the equivalent of
unplugging an ExpressCard. Asside from the standard procedure, when I power
down or up a slot, I call IoInvalidateDeviceRelations. This does cause a
Query device relations PNP Irp to be sent and the device list appears to be
updated correctly by PCI.SYS. The problem I am seeing is that the devices
are returning with an error code of 31. Through experimentation I have found
that if I disable the device before powering down and re-enable the device
every thing works. The only difference I can see is that disabling the
device causes a REMOVE_DEVICE while invalidating bus relations causes a
surprise removal. I assume the plug in card's driver (out of my control) is
not handling the surprise removal properly. If I can cause the devices
downstream of me to be "removable" then I can use the "safely remove
hardware" dialog rather then the device manager, which is much preferable
from a user standpoint.

Thanks,

Brian

CM_DEVCAP_RAWDEVICEOK

 

http://doxygen.reactos.org/d5/de4/cfgmgr32...71805ebd99.html

Link to comment
Share on other sites

ok this GIANT piece of code is mine _DOD, what or where we can edit it?

 

	Method (_DOD, 0, NotSerialized)
			{
				If (CondRefOf (IDAB)) {}
				Else
				{
					Store (0x00, NDID)
					If (LNotEqual (DIDL, Zero))
					{
						Store (SDDL (DIDL), DID1)
					}

					If (LNotEqual (DDL2, Zero))
					{
						Store (SDDL (DDL2), DID2)
					}

					If (LNotEqual (DDL3, Zero))
					{
						Store (SDDL (DDL3), DID3)
					}

					If (LNotEqual (DDL4, Zero))
					{
						Store (SDDL (DDL4), DID4)
					}

					If (LNotEqual (DDL5, Zero))
					{
						Store (SDDL (DDL5), DID5)
					}

					If (LNotEqual (DDL6, Zero))
					{
						Store (SDDL (DDL6), DID6)
					}

					If (LNotEqual (DDL7, Zero))
					{
						Store (SDDL (DDL7), DID7)
					}

					If (LNotEqual (DDL8, Zero))
					{
						Store (SDDL (DDL8), DID8)
					}
				}

				If (LEqual (NDID, 0x01))
				{
					Name (TMP1, Package (0x01)
					{
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP1, 0x00))
					Return (TMP1)
				}

				If (LEqual (NDID, 0x02))
				{
					Name (TMP2, Package (0x02)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP2, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP2, 0x01))
					Return (TMP2)
				}

				If (LEqual (NDID, 0x03))
				{
					Name (TMP3, Package (0x03)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP3, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP3, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP3, 0x02))
					Return (TMP3)
				}

				If (LEqual (NDID, 0x04))
				{
					Name (TMP4, Package (0x04)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP4, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP4, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP4, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP4, 0x03))
					Return (TMP4)
				}

				If (LEqual (NDID, 0x05))
				{
					Name (TMP5, Package (0x05)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP5, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP5, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP5, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP5, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP5, 0x04))
					Return (TMP5)
				}

				If (LEqual (NDID, 0x06))
				{
					Name (TMP6, Package (0x06)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP6, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP6, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP6, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP6, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP6, 0x04))
					Store (Or (0x00010000, DID6), Index (TMP6, 0x05))
					Return (TMP6)
				}

				If (LEqual (NDID, 0x07))
				{
					Name (TMP7, Package (0x07)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP7, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP7, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP7, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP7, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP7, 0x04))
					Store (Or (0x00010000, DID6), Index (TMP7, 0x05))
					Store (Or (0x00010000, DID7), Index (TMP7, 0x06))
					Return (TMP7)
				}

				If (LEqual (NDID, 0x08))
				{
					Name (TMP8, Package (0x08)
					{
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF, 
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP8, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP8, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP8, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP8, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP8, 0x04))
					Store (Or (0x00010000, DID6), Index (TMP8, 0x05))
					Store (Or (0x00010000, DID7), Index (TMP8, 0x06))
					Store (Or (0x00010000, DID8), Index (TMP8, 0x07))
					Return (TMP8)
				}

				Return (Package (0x01)
				{
					0x0400
				})
			}

Link to comment
Share on other sites

Ok guys,this is the problem,when i install Snow Leopard retail 10.6.3 on my Sony Vaio,the installation runs on the internal display,also,after that,the first time i boot to the system,boots also on the internal display,after that,i update to 10.6.7,and install 3 kexts from ATI..(ATI5000 CONTROLLER,ATIFRAMEBUFFER AND ATISUPPORT…after that,i reboot,and the pc boots on the internal display,but after the boot goes to the vga display….with QE/CI,translucent menu bar,everything ok….if i use AtiConfig=Hoolock booth internal and external displays,work,the internal scrambled,first all white,and then goes getting black slowly…and on the external i receive the correct signal and resolution,but from the internal..with the internal resolution….but appears on the external….if i use the latests chameleons,this sheet happens to me,if i use a oldest chameleon,don't event recognize my graphics card correctly,and don't let me hilight the internal display,even scrambled….im on Lion right now,but the same happends….natively,i only have vga and hdmi working.-.no lvds….iv dumped my bios rom,but didn't show me my lvds sense id..only senses id from vga and hdmi also….guys,any help,i will be very appreciated…thanks in advance….Hackintosh_PT

 

SONY VAIO VPCEC 1M1E/WI INTEL HM 55 EXPRESS ATI RADEON HD 5470M 512 MB CORE i3 330 M 4 GB DE RAM BIOS ATI MEGATREND

Link to comment
Share on other sites

Ok guys,this is the problem,when i install Snow Leopard retail 10.6.3 on my Sony Vaio,the installation runs on the internal display,also,after that,the first time i boot to the system,boots also on the internal display,after that,i update to 10.6.7,and install 3 kexts from ATI..(ATI5000 CONTROLLER,ATIFRAMEBUFFER AND ATISUPPORT…after that,i reboot,and the pc boots on the internal display,but after the boot goes to the vga display….with QE/CI,translucent menu bar,everything ok….if i use AtiConfig=Hoolock booth internal and external displays,work,the internal scrambled,first all white,and then goes getting black slowly…and on the external i receive the correct signal and resolution,but from the internal..with the internal resolution….but appears on the external….if i use the latests chameleons,this sheet happens to me,if i use a oldest chameleon,don't event recognize my graphics card correctly,and don't let me hilight the internal display,even scrambled….im on Lion right now,but the same happends….natively,i only have vga and hdmi working.-.no lvds….iv dumped my bios rom,but didn't show me my lvds sense id..only senses id from vga and hdmi also….guys,any help,i will be very appreciated…thanks in advance….Hackintosh_PT

 

SONY VAIO VPCEC 1M1E/WI INTEL HM 55 EXPRESS ATI RADEON HD 5470M 512 MB CORE i3 330 M 4 GB DE RAM BIOS ATI MEGATREND

 

That's a common issue for VAIO...! And till now we don't have a solution!

The next time write better please............

Link to comment
Share on other sites

try this

	Method (_DOD, 0, NotSerialized)
			{
					Store (0x00, NDID)
					If (LNotEqual (DIDL, Zero))
					{
						Store (SDDL (DIDL), DID1)
					}

					If (LNotEqual (DDL2, Zero))
					{
						Store (SDDL (DDL2), DID2)
					}

					If (LNotEqual (DDL3, Zero))
					{
						Store (SDDL (DDL3), DID3)
					}

					If (LNotEqual (DDL4, Zero))
					{
						Store (SDDL (DDL4), DID4)
					}

					If (LNotEqual (DDL5, Zero))
					{
						Store (SDDL (DDL5), DID5)
					}

					If (LNotEqual (DDL6, Zero))
					{
						Store (SDDL (DDL6), DID6)
					}

					If (LNotEqual (DDL7, Zero))
					{
						Store (SDDL (DDL7), DID7)
					}

					If (LNotEqual (DDL8, Zero))
					{
						Store (SDDL (DDL8), DID8)
					}

				If (LEqual (NDID, 0x01))
				{
					Name (TMP1, Package (0x01)
					{
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP1, 0x00))
					Return (TMP1)
				}

				If (LEqual (NDID, 0x02))
				{
					Name (TMP2, Package (0x02)
					{
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP2, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP2, 0x01))
					Return (TMP2)
				}

				If (LEqual (NDID, 0x03))
				{
					Name (TMP3, Package (0x03)
					{
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP3, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP3, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP3, 0x02))
					Return (TMP3)
				}

				If (LEqual (NDID, 0x04))
				{
					Name (TMP4, Package (0x04)
					{
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP4, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP4, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP4, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP4, 0x03))
					Return (TMP4)
				}

				If (LEqual (NDID, 0x05))
				{
					Name (TMP5, Package (0x05)
					{
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP5, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP5, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP5, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP5, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP5, 0x04))
					Return (TMP5)
				}

				If (LEqual (NDID, 0x06))
				{
					Name (TMP6, Package (0x06)
					{
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP6, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP6, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP6, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP6, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP6, 0x04))
					Store (Or (0x00010000, DID6), Index (TMP6, 0x05))
					Return (TMP6)
				}

				If (LEqual (NDID, 0x07))
				{
					Name (TMP7, Package (0x07)
					{
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP7, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP7, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP7, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP7, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP7, 0x04))
					Store (Or (0x00010000, DID6), Index (TMP7, 0x05))
					Store (Or (0x00010000, DID7), Index (TMP7, 0x06))
					Return (TMP7)
				}

				If (LEqual (NDID, 0x08))
				{
					Name (TMP8, Package (0x08)
					{
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF,
						0xFFFFFFFF
					})
					Store (Or (0x00010000, DID1), Index (TMP8, 0x00))
					Store (Or (0x00010000, DID2), Index (TMP8, 0x01))
					Store (Or (0x00010000, DID3), Index (TMP8, 0x02))
					Store (Or (0x00010000, DID4), Index (TMP8, 0x03))
					Store (Or (0x00010000, DID5), Index (TMP8, 0x04))
					Store (Or (0x00010000, DID6), Index (TMP8, 0x05))
					Store (Or (0x00010000, DID7), Index (TMP8, 0x06))
					Store (Or (0x00010000, DID8), Index (TMP8, 0x07))
					Return (TMP8)
				}

				Return (Package (0x01)
				{
					0x0400
				})
			}

Link to comment
Share on other sites

look into what this does

(if) (IDAB) else NDID

IDAB integrated (OR INTEL) display adapter bus ? else Nvidia EDID

 

might have to change the Store (Zero ,NDID) to (0x02, NDID)

 

Also notice at end return 0x0400 .. thats like intel VGA output 0x400 NOT 110 OR 118

 

look in acpi specs how _DOD and other _methods work with each other.

Link to comment
Share on other sites

Sorry i made some mistakes :)

First of all in our DSDT we have 3 _DOD method, not only that one i posted before.

The other 2 are inside PEG3 and PEGP devices, and here how they appear:

 

Name (_DOD, Package (0x03)
				{
					0x0100, 
					0x0110, 
					0x80007330
				})

 

The lcd device is correctly at 0x0110.

I tried again the first modify you suggest and, no kernel panic (sorry i used the wrong dsdt file when i tried first) but still no internal lcd.

I tried to change Store (Zero ,NDID) to (0x02, NDID), still nothing happens.

Also tried to change in the first _DOD the return value from 0x0400 to 0x0110, nothing :(

 

I'm really not good with ACPI understanding and i don't know where i can see how _DOD method work with other methods, can you help a little more about this? :)

 

Also, i'm attaching the full ACPI and uncompiled DSDT i just extract, hoping it helps.

 

Thank you again!

ACPI.zip

dsdt.zip

Link to comment
Share on other sites

interesting 3 video devices not 2. so it picks PEGP or PEG3 ? depending on OS mode ?

i wonder if vaio has made a bios video switch to enable only nvidia or intel.

maybe thats a request that needs to be pushed 2 the sony dorks.

 

it worked with asus. they have put in a bios option to use nvidia only or intel only in newer models due to this crazy windows method for video selection.

 

so far im curious of GPID if its 0x02 it returns edid for 2 devices. ( i put in the _ini at end of it Store (0x02, GPID) so it forces it.)

 

also Method _ADR

SHOULD be

Name (_ADR, 0x00)

			Device (PEGP)
		{
			Name (_ADR, 0x00010000)
			Device (NGFX)
			{
				Name (_ADR, 0x00)
				OperationRegion (NVFX, PCI_Config, 0x00, 0x10)
				Field (NVFX, AnyAcc, NoLock, Preserve)
				{
					NVID,   16
				}

				If (\_OSI ("Windows 2009"))
			{
				Store (0x07D9, OSYS)
			}
		}
		Store (0x02, GPID)
	}

 

has anyone tried OSYS 0x07D2 ? or replace Linux with Darwin ? or replace WIndows 2006 with Darwin ?

 

the address my inspiron 1520 uses is Name (_ADR, 0x00010000) NOT Name (_ADR, 0x00030000) (i think this is a combo of intel and nvidia (windows only))

Link to comment
Share on other sites

i tried to:

change _ADR method to Name

add "Store (0x02, GPID)" after the windows 2009 string, like you suggest

 

still nothing :P

 

Leaving that 2 mod i tried in order (only 1 mod at time):

Change OSYS to 0x07D2

Replace Linux to Darwin

Replace Windows 2006 to Darwin

Change _ADR in PEG3 from 0x00030000 to 0x00010000

 

still nothing :o

Thank you for your help anyway!!! It's cool having some expert helping us with dsdt :)

Link to comment
Share on other sites

 Share

×
×
  • Create New...