* Overriding DSDT Tables with external files - 2 Methods
@ 2002-09-05 18:57 John M Trostel
[not found] ` <1031252226.3011.76.camel-gH4hS+xkl8U@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: John M Trostel @ 2002-09-05 18:57 UTC (permalink / raw)
To: ACPI-list
There seem to be 2 closely related methods of overriding the DSDT in a
BIOS with your own files.
My question is... Do they both work? If they do both work, is one
prefered over the other?
***********************************
Method 1 (from http://www.cpqlinux.com/acpi-howto.html and others)
1. get the dsdt.hex file
2. cp -a dsdt.hex to drivers/acpi/tables/acpi_dsdt.c
3. apply the following patch
--- linux/drivers/acpi/osl.c Sat Jul 13 16:16:25 2002
+++ linux-2.4.18-xfs-acpi/drivers/acpi/osl.c Sat Jul 13 14:33:09 2002
@@ -70,6 +70,7 @@
static OSD_HANDLER acpi_irq_handler = NULL;
static void *acpi_irq_context = NULL;
+extern unsigned char AmlCode[];
acpi_status
acpi_os_initialize(void)
@@ -221,7 +222,10 @@
if (!existing_table || !new_table)
return AE_BAD_PARAMETER;
- *new_table = NULL;
+ if (strncmp(existing_table->signature, "DSDT", 4) == 0)
+ *new_table = (acpi_table_header*)AmlCode;
+ else
+ *new_table = NULL;
return AE_OK;
}
***********************************
Method 2 (from Christophe Boyanique) :
1. get the dsdt.hex file
2. copy that file into drivers/acpi
3. patch drivers/acpi/osl.c as follows:
diff -urP drivers/acpi/osl.c /usr/src/linux/drivers/acpi/osl.c
--- drivers/acpi/osl.c Mon Jul 29 23:30:42 2002
+++ /usr/src/linux/drivers/acpi/osl.c Sat Jul 27 18:32:34 2002
@@ -71,6 +71,9 @@
static void *acpi_irq_context = NULL;
+#include "dsdt.hex"
+acpi_table_header *myDST = (acpi_table_header *) AmlCode;
+
acpi_status
acpi_os_initialize(void)
{
@@ -221,7 +224,10 @@
if (!existing_table || !new_table)
return AE_BAD_PARAMETER;
- *new_table = NULL;
+ if (!strncmp(existing_table->signature, DSDT_SIG, 4))
+ *new_table = myDST;
+ else
+ *new_table = NULL;
return AE_OK;
}
--
John M. Trostel
Senior Software Engineer
Quantum Corp.
john.trostel-+vhbC7un7QRBDgjK7y7TUQ@public.gmane.org
-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone? Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
^ permalink raw reply [flat|nested] 3+ messages in thread[parent not found: <1031252226.3011.76.camel-gH4hS+xkl8U@public.gmane.org>]
* Re: Overriding DSDT Tables with external files - 2 Methods [not found] ` <1031252226.3011.76.camel-gH4hS+xkl8U@public.gmane.org> @ 2002-09-06 5:46 ` Sérgio Monteiro Basto [not found] ` <1031291181.3918.12.camel-4/PLUo9XfK/yXfm4dIG/yWZHpeb/A1Y/@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Sérgio Monteiro Basto @ 2002-09-06 5:46 UTC (permalink / raw) To: John M Trostel; +Cc: ACPI-list I prefer the method 1 because with gcc of RedHat doesn't include .hex files On Thu, 2002-09-05 at 14:57, John M Trostel wrote: > There seem to be 2 closely related methods of overriding the DSDT in a > BIOS with your own files. > > My question is... Do they both work? If they do both work, is one > prefered over the other? > > *********************************** > Method 1 (from http://www.cpqlinux.com/acpi-howto.html and others) > > 1. get the dsdt.hex file > > 2. cp -a dsdt.hex to drivers/acpi/tables/acpi_dsdt.c > > 3. apply the following patch > > --- linux/drivers/acpi/osl.c Sat Jul 13 16:16:25 2002 > +++ linux-2.4.18-xfs-acpi/drivers/acpi/osl.c Sat Jul 13 14:33:09 2002 > @@ -70,6 +70,7 @@ > static OSD_HANDLER acpi_irq_handler = NULL; > static void *acpi_irq_context = NULL; > > +extern unsigned char AmlCode[]; > > acpi_status > acpi_os_initialize(void) > @@ -221,7 +222,10 @@ > if (!existing_table || !new_table) > return AE_BAD_PARAMETER; > > - *new_table = NULL; > + if (strncmp(existing_table->signature, "DSDT", 4) == 0) > + *new_table = (acpi_table_header*)AmlCode; > + else > + *new_table = NULL; > return AE_OK; > } > > > *********************************** > Method 2 (from Christophe Boyanique) : > > 1. get the dsdt.hex file > > 2. copy that file into drivers/acpi > > 3. patch drivers/acpi/osl.c as follows: > > diff -urP drivers/acpi/osl.c /usr/src/linux/drivers/acpi/osl.c > --- drivers/acpi/osl.c Mon Jul 29 23:30:42 2002 > +++ /usr/src/linux/drivers/acpi/osl.c Sat Jul 27 18:32:34 2002 > @@ -71,6 +71,9 @@ > static void *acpi_irq_context = NULL; > > > +#include "dsdt.hex" > +acpi_table_header *myDST = (acpi_table_header *) AmlCode; > + > acpi_status > acpi_os_initialize(void) > { > @@ -221,7 +224,10 @@ > if (!existing_table || !new_table) > return AE_BAD_PARAMETER; > > - *new_table = NULL; > + if (!strncmp(existing_table->signature, DSDT_SIG, 4)) > + *new_table = myDST; > + else > + *new_table = NULL; > return AE_OK; > } > > > -- > John M. Trostel > Senior Software Engineer > Quantum Corp. > john.trostel-+vhbC7un7QRBDgjK7y7TUQ@public.gmane.org > ------------------------------------------------------- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390 ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <1031291181.3918.12.camel-4/PLUo9XfK/yXfm4dIG/yWZHpeb/A1Y/@public.gmane.org>]
* Re: Overriding DSDT Tables with external files - 2 Methods [not found] ` <1031291181.3918.12.camel-4/PLUo9XfK/yXfm4dIG/yWZHpeb/A1Y/@public.gmane.org> @ 2002-09-06 14:02 ` John M Trostel 0 siblings, 0 replies; 3+ messages in thread From: John M Trostel @ 2002-09-06 14:02 UTC (permalink / raw) To: Sérgio Monteiro Basto; +Cc: ACPI-list And method #1 was the one I ended up using. And it works :-) Thanks to all who made suggestions, I appreciate the help. On Fri, 2002-09-06 at 01:46, Sérgio Monteiro Basto wrote: > I prefer the method 1 because with gcc of RedHat doesn't include .hex > files > > On Thu, 2002-09-05 at 14:57, John M Trostel wrote: > > There seem to be 2 closely related methods of overriding the DSDT in a > > BIOS with your own files. > > > > My question is... Do they both work? If they do both work, is one > > prefered over the other? > > > > *********************************** > > Method 1 (from http://www.cpqlinux.com/acpi-howto.html and others) > > > > 1. get the dsdt.hex file > > > > 2. cp -a dsdt.hex to drivers/acpi/tables/acpi_dsdt.c > > > > 3. apply the following patch > > > > --- linux/drivers/acpi/osl.c Sat Jul 13 16:16:25 2002 > > +++ linux-2.4.18-xfs-acpi/drivers/acpi/osl.c Sat Jul 13 14:33:09 2002 > > @@ -70,6 +70,7 @@ > > static OSD_HANDLER acpi_irq_handler = NULL; > > static void *acpi_irq_context = NULL; > > > > +extern unsigned char AmlCode[]; > > > > acpi_status > > acpi_os_initialize(void) > > @@ -221,7 +222,10 @@ > > if (!existing_table || !new_table) > > return AE_BAD_PARAMETER; > > > > - *new_table = NULL; > > + if (strncmp(existing_table->signature, "DSDT", 4) == 0) > > + *new_table = (acpi_table_header*)AmlCode; > > + else > > + *new_table = NULL; > > return AE_OK; > > } > > > > -- John M. Trostel Senior Software Engineer Quantum Corp. john.trostel-+vhbC7un7QRBDgjK7y7TUQ@public.gmane.org ------------------------------------------------------- This sf.net email is sponsored by: OSDN - Tired of that same old cell phone? Get a new here for FREE! https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2002-09-06 14:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-09-05 18:57 Overriding DSDT Tables with external files - 2 Methods John M Trostel
[not found] ` <1031252226.3011.76.camel-gH4hS+xkl8U@public.gmane.org>
2002-09-06 5:46 ` Sérgio Monteiro Basto
[not found] ` <1031291181.3918.12.camel-4/PLUo9XfK/yXfm4dIG/yWZHpeb/A1Y/@public.gmane.org>
2002-09-06 14:02 ` John M Trostel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox