Bug 12901

Summary: (patch queued)reboot=b is mandatory on Dell Dimension 9200/DXP061.
Product: Platform Specific/Hardware Reporter: Jason (jsnmchaon22)
Component: i386Assignee: Alan (alan)
Status: RESOLVED CODE_FIX    
Severity: low CC: alan, rui.zhang
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.28.8 #1 SMP i686 Subsystem:
Regression: No Bisected commit-id:
Bug Depends on:    
Bug Blocks: 56331    
Attachments: acpidump
acpidump-2.6.28.8
dmidecode-2.6.28.8
Patch to test
patch: sony VGN Z540N needs reboot=b

Description Jason 2009-03-20 08:33:09 UTC
Distribution: "Ubuntu 8.10"
Issue effects Ubuntu 9.04 as well

System Information
	Manufacturer: Dell Inc.                
	Product Name: Dell DXP061                  

Problem Description:
to reboot a Dimension 9200 platform without any freeze at reboot time, you need to set the "reboot=b" option to the kernel.

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/131292
http://launchpadlibrarian.net/24044121/dmi.txt
Comment 1 Alan 2009-03-21 07:19:24 UTC
I'm going to reassign this to ACPI for the moment see if the power folks have any ideas. If not please can they assign it back to me and I'll push a DMI match upstream for the box.
Comment 2 Ingo Molnar 2009-03-21 08:25:19 UTC
> I'm going to reassign this to ACPI for the moment see if the power 
> folks have any ideas. If not please can they assign it back to me 
> and I'll push a DMI match upstream for the box.

there seems to be a lot of such problems and it would be nice to 
find a more general workaround for it. DMI quirks are always 
incomplete and always lag behind.

	Ingo
Comment 3 ykzhao 2009-03-22 06:51:58 UTC
Hi, Jason
    Will you please attach the output of acpidump?
    Will you please try the boot option of "reboot=a" on the latest kernel and see whether the acpi reboot is helpful for this box?
    Thanks.
Comment 4 Jason 2009-03-22 10:40:10 UTC
Created attachment 20626 [details]
acpidump
Comment 5 Jason 2009-03-22 10:53:48 UTC
reboot=a on my current kernel still hangs the restart process. I will try and recompile a kernel as soon as possible.
Comment 6 Jason 2009-03-22 16:54:39 UTC
Created attachment 20628 [details]
acpidump-2.6.28.8

On kernel 2.6.28.8 the problem persists.

reboot=a has no effect on it and hangs during restart. reboot=b allows a proper reboot.

Attached: acpidump, dmidecode for 2.6.28.8
Comment 7 Jason 2009-03-22 16:55:30 UTC
Created attachment 20629 [details]
dmidecode-2.6.28.8

On kernel 2.6.28.8 the problem persists.

reboot=a has no effect on it and hangs during restart. reboot=b allows a proper reboot.

Attached: acpidump, dmidecode for 2.6.28.8
Comment 8 ykzhao 2009-03-22 20:46:21 UTC
Hi, Jason
    From the acpidump we know that the RESET_REG bit of FADT.flags is clear, which indicates that acpi reset is not supported.(Of course there is no definition of reset_reg/reset_value).
    In such case the box can't be rebooted by using ACPI reboot.
    
    How about the boot option of "reboot=p"? If the boot option of "reboot=p" is added, the 0xCF9 reboot register will be used.
   
If the box still can't be rebooted by 0xCF9 reboot register, maybe this box should be added to DMI check list.

thanks.
Comment 9 Jason 2009-03-22 21:56:56 UTC
reboot=p has no effect - the hanging still occurs.

reboot=b is the only boot option I've tried (p & e) that seems to work. A quick google search I just did turned up this:

http://74.125.95.132/search?q=cache:P8wuFKJjK4sJ:ftp.gnu.org/tmp/linux-libre-fsf2_2.6.28/linux-2.6.28/arch/x86/kernel/reboot.c+dell+dimension+9200+enable+acpi&cd=15&hl=en&ct=clnk&gl=us&client=firefox-a

The code below is copied from the above link - It is not included in my /arch/x86/kernel/reboot.c file (2.6.28.8).


	{	/* Handle problems with rebooting on Dell Dimension 9200 */
		.callback = set_bios_reboot,
		.ident = "Dell Dimension 9200",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
			DMI_MATCH(DMI_PRODUCT_NAME, "Dell DXP061"),
			DMI_MATCH(DMI_BOARD_NAME, "0CT017"),
		},
	},
Comment 10 Jason 2009-03-22 21:58:44 UTC
I'm not sure if the code snippet I found on Google even applies to this situation. I can't find: "OCT017" in my dmidecode file so sorry if it's not applicable.
Comment 11 ykzhao 2009-03-23 01:16:06 UTC
Hi, Alan
    From the test it seems that the box can't be rebooted unless it is rebooted via bios(32bit). Even when the 0xCF9 I/O port reset register is used, it still can't be rebooted. (ACPI reset is not supported on this box).
    
How about reassign this bug to you again? Please add this box to DMI check table so that the box is rebooted via bios.
    Thanks.
Comment 12 Alan 2009-03-23 02:03:51 UTC
Ok will do
Comment 13 Alan 2009-03-23 04:16:59 UTC
Created attachment 20637 [details]
Patch to test
Comment 14 Jason 2009-03-23 12:32:21 UTC
Just tested Alan's patch and it works as expected. I'm not familiar with bugzilla so can someone tell me what status I should change this bug to (or do it yourself if you can).

Thanks Alan + ykzhao
Comment 15 Alan 2009-03-23 14:25:47 UTC
Thanks - I will submit the patch next merge window and then close the bug
Comment 16 Zhang Rui 2009-03-24 18:36:27 UTC
Created attachment 20664 [details]
patch: sony VGN Z540N needs reboot=b

sony VGN Z540N need reboot=b to reboot as well.
Comment 17 Zhang Rui 2009-05-25 08:39:45 UTC
patch is in upstream kernel now,
c5da9a2bb24a7928c39495cdabf98d3f7931bde5

the patch in comment #16 is also taken.
http://git.kernel.org/?p=linux/kernel/git/x86/linux-2.6-tip.git;a=commitdiff;h=88dff4936c0a5fa53080cca68dc963a8a2a674b0