Apacalypse Posted December 7, 2011 Share Posted December 7, 2011 Hey guys I am trying to compile a DSDT for dual graphics. I try compile but i am getting two of them exact errors on two different lines this is what the errors says. Error 4047 - Initializer list longer than declared package length Does anyone know how to fix this or can point me in the right direction? Any help is much appreciated Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 7, 2011 Share Posted December 7, 2011 Well yes, the fix is to make the package length match the length of the Initializer list below it. Given the information you have provided, that's all that can be said. Link to comment Share on other sites More sharing options...
Apacalypse Posted December 7, 2011 Author Share Posted December 7, 2011 How do i do that, how do I make it match? seem like i am not able to post this DSDT here Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 7, 2011 Share Posted December 7, 2011 You don't have to attach the whole DSDT, just post the part that has the wrong package lengths in codebox tags. Link to comment Share on other sites More sharing options...
Apacalypse Posted December 9, 2011 Author Share Posted December 9, 2011 Ok here is the part with the error Device (PCI0) { Name (_HID, EisaId ("PNP0A03")) Name (_UID, 0x04) Name (_BBN, Zero) Name (_ADR, Zero) Name (_PRW, Package (0x02) { 0x0D, 0x05 }) Method (_S1D, 0, NotSerialized) { Return (One) } Method (_S3D, 0, NotSerialized) { If (HACK ()) { Return (0x03) } Else { Return (0x02) } } Device (PEG1) { Name (_ADR, 0x00030000) Name (PPS1, Package (0x02) { 0x0B, 0x04 }) Method (_PRW, 0, NotSerialized) { Return (PPS1) } Device (GFX1) { Name (_ADR, Zero) Name (_SUN, One) Name (_PRW, Package (0x02) { 0x0B, 0x04 }) Method (_DSM, 4, NotSerialized) { Store (Package (0x26) { "@0,compatible", Buffer (0x0B) { "NVDA,NVMac" }, "@0,device_type", Buffer (0x08) { "display" }, "@0,display_cfg", Buffer (0x08) { 0x03, 0x01, 0x00, 0x00 }, "@0,name", Buffer (0x0F) { "NVDA,Display-A" }, "@1,compatible", Buffer (0x0B) { "NVDA,NVMac" }, "@1,device_type", Buffer (0x08) { "display" }, "@1,display_cfg", Buffer (0x08) { 0xFF, 0xFF, 0x00, 0x01 }, "@1,name", Buffer (0x0F) { "NVDA,Display-B" }, "@2,#adress-cells", Buffer (0x0B) { "0x01000000" }, "@2,#size-cells", Buffer (0x0B) { "0x00000000" }, "@2,compatible", Buffer (0x13) { "NVDA,sensor-parent" }, "@2,device_type", Buffer (0x0F) { "NVDA,gpu-diode" }, "@2,hwctrl-params-version", Buffer (0x0B) { "0x02000000" }, "@2,hwsensor-params-version", Buffer (0x0B) { "0x02000000" }, "@2,name", Buffer (0x0E) { "sensor-parent" }, "@2,reg", Buffer (0x0B) { "0x02000000" }, "NVCAP", Buffer (0x14) { /* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "NVPM", Buffer (0x1C) { /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0018 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x06) { 0x00, 0x00, 0x00, 0x60 }, "device_type", Buffer (0x0C) { "NVDA,Parent" }, "model", Buffer (0x17) { "NVidia Quadro FX 4800 (Primary)" }, "rom-revision", Buffer (0x25) { "NVidia Quadro FX 4800 OpenGL Engine" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Device (PEG3) { Name (_ADR, 0x00030000) Name (PPS1, Package (0x02) { 0x0B, 0x04 }) Method (_PRW, 0, NotSerialized) { Return (PPS1) } Device (GFX3) { Name (_ADR, Zero) Name (_SUN, One) Name (_PRW, Package (0x02) { 0x0B, 0x04 }) Method (_DSM, 4, NotSerialized) { Store (Package (0x26) { "@0,compatible", Buffer (0x0B) { "NVDA,NVMac" }, "@0,device_type", Buffer (0x08) { "display" }, "@0,display_cfg", Buffer (0x08) { 0x03, 0x01, 0x00, 0x00 }, "@0,name", Buffer (0x0F) { "NVDA,Display-A" }, "@1,compatible", Buffer (0x0B) { "NVDA,NVMac" }, "@1,device_type", Buffer (0x08) { "display" }, "@1,display_cfg", Buffer (0x08) { 0xFF, 0xFF, 0x00, 0x01 }, "@1,name", Buffer (0x0F) { "NVDA,Display-B" }, "@2,#adress-cells", Buffer (0x0B) { "0x01000000" }, "@2,#size-cells", Buffer (0x0B) { "0x00000000" }, "@2,compatible", Buffer (0x13) { "NVDA,sensor-parent" }, "@2,device_type", Buffer (0x0F) { "NVDA,gpu-diode" }, "@2,hwctrl-params-version", Buffer (0x0B) { "0x02000000" }, "@2,hwsensor-params-version", Buffer (0x0B) { "0x02000000" }, "@2,name", Buffer (0x0E) { "sensor-parent" }, "@2,reg", Buffer (0x0B) { "0x02000000" }, "NVCAP", Buffer (0x14) { /* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "NVPM", Buffer (0x1C) { /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0018 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x06) { 0x00, 0x00, 0x00, 0x60 }, "device_type", Buffer (0x0C) { "NVDA,Parent" }, "model", Buffer (0x17) { "NVidia Quadro FX 4800 (Secondary)" }, "rom-revision", Buffer (0x25) { "NVidia Quadro FX 4800 OpenGL Engine" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 9, 2011 Share Posted December 9, 2011 The thing is I don't really remember what it is you're supposed to count anymore..or if it's in hex or alpha. In the off chance that I remember correctly, the package length for both should be 0x16. If that doesn't work try 0x22 (22 is 16 in hex). I'm sure someone will step in and correct me if I'm wrong. Is there are reason why you didn't name them gfx0 and gfx1? Just being curious, I've never tried injecting two video cards. Link to comment Share on other sites More sharing options...
buoo Posted December 10, 2011 Share Posted December 10, 2011 "@0,display_cfg", Buffer (0x04) { 0x03, 0x01, 0x00, 0x00 }, "@1,display_cfg", Buffer (0x04) { 0xFF, 0xFF, 0x00, 0x01 }, "NVCAP", Buffer (0x18) { /* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x60 }, "@0,display_cfg", Buffer (0x04) { 0x03, 0x01, 0x00, 0x00 }, "@1,display_cfg", Buffer (0x04) { 0xFF, 0xFF, 0x00, 0x01 }, "NVCAP", Buffer (0x18) { /* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0008 */ 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, /* 0010 */ 0x00, 0x00, 0x00, 0x00 }, "VRAM,totalsize", Buffer (0x04) { 0x00, 0x00, 0x00, 0x60 }, Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 10, 2011 Share Posted December 10, 2011 Pretty neat, I didn't know you could smash them together like that. I'm afraid it won't be very helpful at all to the author of this topic though! Link to comment Share on other sites More sharing options...
buoo Posted December 10, 2011 Share Posted December 10, 2011 Nono, I'm sorry Gringo, I just reported the right packages lenght. Should be correct now. Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 10, 2011 Share Posted December 10, 2011 Ahhhh..of course! I didn't look any further than this (there is one for each gfx card): Method (_DSM, 4, NotSerialized) { Store (Package (0x26) { Still not sure if that should be 0x22...or if I don't know what I'm talking about. Link to comment Share on other sites More sharing options...
buoo Posted December 10, 2011 Share Posted December 10, 2011 It should be 0x2C Method (_DSM, 4, NotSerialized) { Store (Package (0x2C) { Link to comment Share on other sites More sharing options...
Apacalypse Posted December 10, 2011 Author Share Posted December 10, 2011 Thanks guys I really appreciate the help. I would 0x02C did work and the DSDT compiled but i am not getting both GPUs to work one works but non of the display ports work. The working card is listed properly and I get Graphics acceleration. However the other one just says Display. What am I doing wrong? The thing is I don't really remember what it is you're supposed to count anymore..or if it's in hex or alpha. In the off chance that I remember correctly, the package length for both should be 0x16. If that doesn't work try 0x22 (22 is 16 in hex). I'm sure someone will step in and correct me if I'm wrong. Is there are reason why you didn't name them gfx0 and gfx1? Just being curious, I've never tried injecting two video cards. I didn't name them gfx0 and gfx1 because I was following the template from DSDTSE. Should I have place it that way? Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 10, 2011 Share Posted December 10, 2011 No idea, I was just wondering if there was any particular reason for naming them like that. Don't follow my advice, as you can see from this thread I clearly have no idea what I'm talking about. Thanks for the help buoo!! Link to comment Share on other sites More sharing options...
buoo Posted December 10, 2011 Share Posted December 10, 2011 I don't know how to get 2 graphics card working, I just reported the lengths as I know and just because I read Gringo was not so sure. Gringo knows for sure more things than me, he teached me a lot of my knowledges. Follow his advice. My apologies Link to comment Share on other sites More sharing options...
Gringo Vermelho Posted December 10, 2011 Share Posted December 10, 2011 Don't take it like that :-) Really, thanks for helping, as I said from the beginning I'm not sure about how the lengths should be counted, everything I said when trying to help was wrong! I'm glad you came by to set things straight. And If I put you on the path to know more than I do about these things then I'm proud. Link to comment Share on other sites More sharing options...
buoo Posted December 10, 2011 Share Posted December 10, 2011 Thanks Link to comment Share on other sites More sharing options...
Apacalypse Posted December 13, 2011 Author Share Posted December 13, 2011 Thanks guys for all of your help. I still can't get it to read the other GPU.... Is there a way to get the displayport working via DSDT? Link to comment Share on other sites More sharing options...
Recommended Posts