Device (PCI0) (aquí comienza la definición de las placas Pci)
{
Name (_HID, EisaId ("PNP0A08"))
Name (_ADR, Zero)
En esta linea de arriba Name (_ADR, Zero) no tengo claro esto que se indica en el parche:
Insert device GFX0 into device with _ADR 0x00010000
into device name_adr Zero parent_adr 0x00010000 remove_entry;
into device name_adr 0x00010000 insert
No sé si se deja Zero o hay que cambiar por 0x00010000). Si pongo 0x00010000 me da el error "ACPI_SMC_PlataformPlugin::registerLPCDriver - failed to locate SMC driver" y si lo dejo en Zero me arranca sin reconocer la gráfica.
Method (^BN00, 0, NotSerialized)
{
Return (Zero)
}
Method (_BBN, 0, NotSerialized)
{
Return (BN00 ())
}
Name (_UID, Zero)
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR00)
}
Return (PR00)
}
Method (_S3D, 0, NotSerialized)
{
If (LOr (LEqual (OSFL (), One), LEqual (OSFL (), 0x02)))
{
Return (0x02)
}
Else
{
Return (0x03)
}
}
Name (_CID, EisaId ("PNP0A03"))
Device (MCH)
{
Name (_HID, EisaId ("PNP0C01"))
Name (_UID, 0x0A)
Name (_CRS, ResourceTemplate ()
{
Memory32Fixed (ReadWrite,
0xFED14000, // Address Base
0x00006000, // Address Length
)
})
}
Method (NPTS, 1, NotSerialized)
{
}
Method (NWAK, 1, NotSerialized)
{
}
Device (P0P2) (supongo que aquí se está definiendo dónde está físicamente insertada la tarjeta gráfica)
{
Name (_ADR, 0x00010000) (a través de esta dirección)
Method (_PRW, 0, NotSerialized)
{
Return (GPRW (0x09, 0x04))
}
Method (_PRT, 0, NotSerialized)
{
If (PICM)
{
Return (AR02)
}
Return (PR02)
}
Device (GFX0) (supongo que aquí comienza la inyección del código de la gráfica)
{
Name (_ADR, Zero)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x18)
{
"@0,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@0,name",
Buffer (0x0F)
{
"NVDA,Display-A"
},
"@1,compatible",
Buffer (0x0B)
{
"NVDA,NVMac"
},
"@1,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x0F)
{
"NVDA,Display-B"
},
"NVCAP",
Buffer (0x14)
{
/* 0000 */ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
/* 0008 */ 0x1C, 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 (0x04)
{
0x00, 0x00, 0x00, 0x20
},
"device_type",
Buffer (0x0C)
{
"NVDA,Parent"
},
"model",
Buffer (0x18)
{
"nVidia GeForce 9800 GTX"
},
"rom-revision",
Buffer (0x26)
{
"nVidia GeForce 9800 GTX OpenGL Engine"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
} (aquí acaba el código de inyección)
}
Device (P0P3)