Skip to contentSkip to conversation

BIOS _OSI(Linux) query ignored on PRIMEQUEST

PATCH In review Taku Izumi 7 participants 14 messages Apr 29, 2008 – May 28, 2008 ACPI

lore
Share & tools
lore

Taku Izumi

author
#0 lore raw

Hi all,

The following message is displayed on our server(PRIMEQUEST):

ACPI: bus type pci registered
ACPI: EC: Look up EC in DSDT
ACPI: BIOS _OSI(Linux) query ignored
ACPI: DMI System Vendor: <NULL>
ACPI: DMI Product Name: <NULL>
ACPI: DMI Product Version: <NULL>
ACPI: DMI Board Name: <NULL>
ACPI: DMI BIOS Vendor: FUJITSU LIMITED
ACPI: DMI BIOS Date: 1/17/2008
ACPI: Please send DMI info above to [email protected]
ACPI: If "acpi_osi=Linux" works better, please notify
[email protected]

Because "acpi_osi=Linux" boot option works well, so we want to use _OSI(Linux) query on PRIMEQUEST without this boot option and inihibit above message.

I thought the way to achive our goal was to add
the following entry to acpi_osi_dmi_table
(at drivers/acpi/blacklist.c),

{
.callback = dmi_enable_osi_linux,
.ident = "Fujitsu PRIMEQUEST",
.matches = {
DMI_MATCH(DMI_BIOS_VENDOR, "FUJITSU LIMITED"),
},
}

but unfortunately this table seems to be valid only for x86 machines. Our server is ia64, but what is the best solution?

Signature · 3 lines
Regards,

Taku Izumi <[email protected]>
author
#1 lore raw

cover ACPI: add "OSI(Linux) checking procedure" for ia64 machines

Hi all,

Currently there is no "OSI(Linux) checking procedure" on ia64, so it is no use adding ia64 machines' entry to the acpi_osi_dmi_table for the purpose of enabling or disabling OSI(Linux).

The following first patch adds acpi_osi_dmi_table evaluation procedure for ia64 machines. The second patch adds our ia64 machine's entry to its table, because we want to enable OSI(Linux) on our mahines.

* [PATCH 1/2] ACPI: add acpi_osi_dmi_table evaluation procedure for ia64 machines
* [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Best regards,
Taku Izumi <[email protected]>

author
#2 lore raw

PATCH 1/2 ACPI: add acpi_osi_dmi_table evaluation procedure for ia64 machines

Currently, acpi_osi_dmi_table is valid only for x86 machines. This patch makes its table valid for ia64 machines too and adds evaluation procedure for the purpose of checking if OSI(Linux) should be enabled or not.

---
 arch/ia64/kernel/setup.c |    7 +++++++
 drivers/acpi/Makefile    |    1 +
 2 files changed, 8 insertions(+)
arch/ia64/kernel/setup.c +7 -0
Index: linux-2.6.25.4/arch/ia64/kernel/setup.c
===================================================================
@@ -985,3 +985,10 @@ static int __init run_dmi_scan(void)
 	return 0;
 }
 core_initcall(run_dmi_scan);
+
+static int __init invoke_acpi_blacklisted(void)
+{
+	acpi_blacklisted();
+	return 0;
+}
+postcore_initcall(invoke_acpi_blacklisted);
drivers/acpi/Makefile +1 -0
Index: linux-2.6.25.4/drivers/acpi/Makefile
===================================================================
@@ -17,6 +17,7 @@ EXTRA_CFLAGS	+= $(ACPI_CFLAGS)
 #
 obj-y				+= tables.o
 obj-$(CONFIG_X86)		+= blacklist.o
+obj-$(CONFIG_IA64)		+= blacklist.o
 
 #
 # ACPI Core Subsystem (Interpreter)
author
#3 lore raw

PATCH 2/2 ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

In reply to Taku Izumi

This patch adds DMI info to enable OSI(Linux) on PRIMEQUEST. (PRIMEQUEST is ia64 machine.)

---
 drivers/acpi/blacklist.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)
drivers/acpi/blacklist.c +14 -0
Index: linux-2.6.25.4/drivers/acpi/blacklist.c
===================================================================
@@ -626,6 +626,20 @@ static struct dmi_system_id acpi_osi_dmi
 		     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
 		},
 	},
+	/*
+	 * Enable OSI(Linux) on Fujitsu PRIMEQUEST
+	 *
+	 * DMI_MATCH(DMI_BIOS_VERSION, "PRIMEQUEST"),
+	 *
+	 */
+	{
+	.callback = dmi_enable_osi_linux,
+	.ident = "Fujitsu PRIMEQUEST",
+	.matches = {
+		     DMI_MATCH(DMI_BIOS_VENDOR, "FUJITSU LIMITED"),
+		     DMI_MATCH(DMI_BIOS_VERSION, "PRIMEQUEST"),
+		},
+	},
 	{}
 };
 
#4 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Quoted 3 lines · Taku Izumi

This patch adds DMI info to enable OSI(Linux) on
PRIMEQUEST.
(PRIMEQUEST is ia64 machine.)

Why is it needed? Why needs your bios know whether it is Linux or BSD or whatver running?

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
author
#5 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Thank you for your response.

Quoted 5 lines
Quoted 2 lines

This patch adds DMI info to enable OSI(Linux) on PRIMEQUEST. (PRIMEQUEST is ia64 machine.)

Why is it needed? Why needs your bios know whether it is Linux or BSD or whatver running?

For memory hotplug support.
Memory hotplug doesn't work on PRIMEQUEST when OSI(Linux) is disabled.

Best regards,
Taku Izumi <[email protected]>

#6 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Quoted 11 lines · Taku Izumi

Thank you for your response.

Quoted 5 lines
Quoted 2 lines

This patch adds DMI info to enable OSI(Linux) on PRIMEQUEST. (PRIMEQUEST is ia64 machine.)

Why is it needed? Why needs your bios know whether it is Linux or BSD or whatver running?

For memory hotplug support.
Memory hotplug doesn't work on PRIMEQUEST when OSI(Linux) is disabled.

So fix the BIOS: there's no reason why memory hotplug should not work on BSD or Windows...
Pavel

Signature · 2 lines
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
#7 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Quoted 10 lines · On Mon, 26 May 2008 10:06:14 +0200 Pavel Machek <[email protected]> wrote:
Quoted 9 lines · Taku Izumi

Thank you for your response.

Quoted 5 lines
Quoted 2 lines

This patch adds DMI info to enable OSI(Linux) on PRIMEQUEST. (PRIMEQUEST is ia64 machine.)

Why is it needed? Why needs your bios know whether it is Linux or BSD or whatver running?

Quoted 6 lines
Quoted 2 lines

For memory hotplug support.
Memory hotplug doesn't work on PRIMEQUEST when OSI(Linux) is disabled.

So fix the BIOS: there's no reason why memory hotplug should not work on BSD or Windows...
Pavel

IIRC, PrimeQuest doesn't support BSD ;)

It's not really for memory hotplug. The result of _OSI method (TOOS) is used for PCI, EC driver's behavior, etc.. (on my box)

BTW, PrimeQuest's firmware is designed in 2.6.18 age and _heavily_ tested under _OSI("Linux") environments. So, the acpi layer which returns _OSI("Linux") is valid for PrimeQuest. I don't hear a major firmware update for already-sold-hosts is scheduled.

Thanks,
-Kame

#8 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

On Tue, 27 May 2008 10:13:02 +0900

Quoted 5 lines

BTW, PrimeQuest's firmware is designed in 2.6.18 age and _heavily_ tested under _OSI("Linux") environments. So, the acpi layer which returns _OSI("Linux") is valid for PrimeQuest. I don't hear a major firmware update for already-sold-hosts is scheduled.

the problem really is that 2.6.18 isn't 2.6.25. OSI("Linux") is really the wrong thing to do!
Not even microsoft does that.. they have very version specific OSI strings.

Can you work with your colleges in the BIOS team to make sure that no future BIOS will use OSI("Linux") please? If there's something they would want to disable because of a Linux bug.. the real solution is to fix the Linux bug!

#9 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

In reply to Taku Izumi
Quoted 23 lines · On Fri, 23 May 2008 15:43:48 +0900 Taku Izumi <[email protected]> wrote:

This patch adds DMI info to enable OSI(Linux) on PRIMEQUEST. (PRIMEQUEST is ia64 machine.)

---
  drivers/acpi/blacklist.c |   14 ++++++++++++++
  1 file changed, 14 insertions(+)

Index: linux-2.6.25.4/drivers/acpi/blacklist.c
===================================================================

drivers/acpi/blacklist.c +6 -0
@@ -626,6 +626,20 @@ static struct dmi_system_id acpi_osi_dmi
  		     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
  		},
  	},
+	/*
+	 * Enable OSI(Linux) on Fujitsu PRIMEQUEST
+	 *
+	 * DMI_MATCH(DMI_BIOS_VERSION, "PRIMEQUEST"),
+	 *
+	 */

drivers/acpi/blacklist.c static struct dmi_system_id acpi_osi_dmi · line 644

Quoted 10 lines
drivers/acpi/blacklist.c +8 -0
+	{
+	.callback = dmi_enable_osi_linux,
+	.ident = "Fujitsu PRIMEQUEST",
+	.matches = {
+		     DMI_MATCH(DMI_BIOS_VENDOR, "FUJITSU LIMITED"),
+		     DMI_MATCH(DMI_BIOS_VERSION, "PRIMEQUEST"),
+		},
+	},
  	{}
  };

It is unclear (to me) what the impact of this patch is. Does it fix a problem which would justify including these patches in 2.6.26?

Also, your email client is performing space-stuffing. That is easy enough to repair at this end (s/^ / /) but please do sort that out for next time. http://mbligh.org/linuxdocs/Email/Clients/Thunderbird
should help.

Thanks.

#10 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

I'm not sure that sharing drivers/acpi/blacklist.c between different architectures is wise idea. There are entries in there that make blanket decisions for all machines made by an OEM.

It seems quite possible that an OEM that makes boxes using different processor architectures might make different mistakes in the respective BIOS teams.

-Tony

#11 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Quoted 8 lines · On Tue, 27 May 2008 16:41:59 -0700 "Tony Luck" <[email protected]> wrote:

I'm not sure that sharing drivers/acpi/blacklist.c between different architectures is wise idea. There are entries in there that make blanket decisions for all machines made by an OEM.

It seems quite possible that an OEM that makes boxes using different processor architectures might make different mistakes in the respective BIOS teams.

So... what's the fix? We don't appear to have a blacklisting table under arch/ia64. Should `#ifdef CONFIG_IA64' be added to drivers/acpi/blacklist.c entries?

#12 lore raw

RE: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

Quoted 3 lines

So... what's the fix? We don't appear to have a blacklisting table under arch/ia64. Should `#ifdef CONFIG_IA64' be added to drivers/acpi/blacklist.c entries?

That sounds reasonable. We should also put #if defined(CONFIG_X86) around all the existing entries in the acpi_osi_dmi_table[].

-Tony

#13 lore raw

Re: [PATCH 2/2] ACPI: add DMI info to enable OSI(Linux) on PRIMEQUEST

In reply to Andrew Morton
Quoted 31 lines · On Tue, 27 May 2008 16:20:29 -0700 Andrew Morton <[email protected]>…
Quoted 28 lines · On Fri, 23 May 2008 15:43:48 +0900 Taku Izumi <[email protected]> wrote:

This patch adds DMI info to enable OSI(Linux) on PRIMEQUEST. (PRIMEQUEST is ia64 machine.)

---
  drivers/acpi/blacklist.c |   14 ++++++++++++++
  1 file changed, 14 insertions(+)

Index: linux-2.6.25.4/drivers/acpi/blacklist.c
===================================================================

drivers/acpi/blacklist.c +11 -0
@@ -626,6 +626,20 @@ static struct dmi_system_id acpi_osi_dmi
  		     DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
  		},
  	},
+	/*
+	 * Enable OSI(Linux) on Fujitsu PRIMEQUEST
+	 *
+	 * DMI_MATCH(DMI_BIOS_VERSION, "PRIMEQUEST"),
+	 *
+	 */
+	{
+	.callback = dmi_enable_osi_linux,
+	.ident = "Fujitsu PRIMEQUEST",
+	.matches = {
+		     DMI_MATCH(DMI_BIOS_VENDOR, "FUJITSU LIMITED"),
Quoted 9 lines

drivers/acpi/blacklist.c static struct dmi_system_id acpi_osi_dmi · line 644

Quoted 5 lines
drivers/acpi/blacklist.c +3 -0
+		     DMI_MATCH(DMI_BIOS_VERSION, "PRIMEQUEST"),
+		},
+	},
  	{}
  };

It is unclear (to me) what the impact of this patch is. Does it fix a problem which would justify including these patches in 2.6.26?

Ah, sorry. I think this is not 2.6.26 candidates.

Before patch.
- PrimeQuest doesn't work well without acpi_osi="Linux" boot option.
After patch
- PrimeQuest works well without boot option.

But Pavel Machek and Arjan van de Ven informed us that "Supporting OSI("Linux") on PrimeQuest will be harmful even if it works well now. Because we cannot guarantee compatibility of this interface in future". So, we're now discussing the problem with our firmware team.

So, please ignore this patch for a while. We'll repost if necessary.

Thank you.

Regards.
-Kame