public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Shaohua Li <shaohua.li@intel.com>
To: stefandoesinger@gmx.at
Cc: acpi-dev <acpi-devel@lists.sourceforge.net>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	lkml <linux-kernel@vger.kernel.org>, Pavel Machek <pavel@ucw.cz>
Subject: S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: Re: [ACPI] Resume from Suspend to RAM))
Date: Tue, 07 Jun 2005 14:23:30 +0800	[thread overview]
Message-ID: <1118125410.3828.12.camel@linux-hp.sh.intel.com> (raw)
In-Reply-To: <200506061531.41132.stefandoesinger@gmx.at>

On Mon, 2005-06-06 at 23:31 +0800, stefandoesinger@gmx.at wrote:
> Am Montag, 6. Juni 2005 11:06 schrieb Matthew Garrett: 
> > Whoops. May have been a bit too hasty there. I'm not sure why that 
> > doesn't reset it, but we've now got the following (really rather
> odd) 
> > serial output. Does anyone have any idea what might be triggering
> this? 
> > Shell builtins work fine, but anything else seems to explode very 
> > messily. Memory corruption of some description?
> 
> <snip> 
> So it does reach the kernel, right? I don't know if I remembered that
> call  
> correctly, but "lcall $0xffff,$0" should call the real mode BIOS
> reset  
> code... 
> Anyone else who can correct me here?
> 
> Perhaps the disk driver is going mad? Has anyone tried to boot a
> kernel  
> without any disk drivers with a minimal root system on an initrd?
For those who suffer from strange S3 resume problem such as resume hang,
could you please try this debug patch.
It uses machine_real_restart to switch to real mode, and soon jump to
the S3 wakeup address. So it simulates how BIOS resume a system from S3,
but completely bypasses BIOS. If the system lives after S3 with the
patch, at least we can know the suspend/resume code path is ok and it's
not a Linux driver issue.

Thanks,
Shaohua

--- a/drivers/acpi/hardware/hwsleep.c	2005-06-07 13:45:04.088273424 +0800
+++ b/drivers/acpi/hardware/hwsleep.c	2005-06-07 13:49:31.858566152 +0800
@@ -242,6 +242,19 @@ acpi_enter_sleep_state_prep (
  *              THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
  *
  ******************************************************************************/
+#define S3_DEBUG
+#ifdef S3_DEBUG
+#include <asm/io.h>
+extern void machine_real_restart(unsigned char *code, int length);
+static unsigned char jump_to_pm [] =
+{
+	0xea,
+	0x00,
+	0x00,
+	0x00,
+	0x00		/*    ljmp  $0x0000,$0x0000  */
+};
+#endif
 
 acpi_status asmlinkage
 acpi_enter_sleep_state (
@@ -315,6 +328,14 @@ acpi_enter_sleep_state (
 	PM1Acontrol |= (acpi_gbl_sleep_type_a << sleep_type_reg_info->bit_position);
 	PM1Bcontrol |= (acpi_gbl_sleep_type_b << sleep_type_reg_info->bit_position);
 
+#ifdef S3_DEBUG
+	if (sleep_state == ACPI_STATE_S3) {
+		*((short *)&jump_to_pm[3]) =
+			(short)(virt_to_phys((void *)acpi_wakeup_address)) >> 4;
+		/* Directly jump to acpi_wakeup_address */
+		machine_real_restart(jump_to_pm, sizeof(jump_to_pm));
+	}
+#endif
 	/*
 	 * We split the writes of SLP_TYP and SLP_EN to workaround
 	 * poorly implemented hardware.

  reply	other threads:[~2005-06-07  6:23 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-05 12:56 Resume from Suspend to RAM Frank
     [not found] ` <200506051456.44810.hugelmopf-S0/GAf8tV78@public.gmane.org>
2005-06-05 13:37   ` Matthew Garrett
2005-06-05 15:56     ` Frank
2005-06-05 17:32     ` Stefan Dösinger
     [not found]       ` <200506051732.08854.stefandoesinger-RbZlAiThDcE@public.gmane.org>
2005-06-06 10:26         ` Matthew Garrett
2005-06-06 11:06           ` Bizarre oops after suspend to RAM (was: Re: [ACPI] Resume from Suspend to RAM) Matthew Garrett
2005-06-06 14:45             ` Pavel Machek
     [not found]               ` <20050606144501.GB2243-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-06-06 14:54                 ` Bizarre oops after suspend to RAM (was: " Matthew Garrett
     [not found]                   ` <20050606145429.GA18396-1xO5oi07KQx4cg9Nei1l7Q@public.gmane.org>
2005-06-06 15:09                     ` Pavel Machek
     [not found]                       ` <20050606150909.GA2230-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-06-07 14:14                         ` Martin Michlmayr
2005-06-06 15:31             ` Stefan Dösinger
2005-06-07  6:23               ` Shaohua Li [this message]
     [not found]                 ` <1118125410.3828.12.camel-ECwVeV2eNyQD0+JXs3kMbRL4W9x8LtSr@public.gmane.org>
2005-06-07 12:07                   ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: Re: Resume from Suspend to RAM)) Martin Michlmayr
     [not found]                     ` <20050607120727.GA6077-u+sgIaa8TU6A7rR/f+Zz5kHK5LHFu9C3@public.gmane.org>
2005-06-09 11:51                       ` Stefan Seyfried
     [not found]                         ` <20050609115134.GA31903-l0tNAEGuAhhzZ8+rp42Dbp9+tswZ0GTaehPwdyo5hKaELgA04lAiVw@public.gmane.org>
2005-06-09 14:38                           ` Matthew Garrett
     [not found]                             ` <1118327939.12491.44.camel-Xmbc1Sz64/5pghhO6/9/sx2eb7JE58TQ@public.gmane.org>
2005-06-09 15:29                               ` Stefan Seyfried
     [not found]                                 ` <20050609152943.GA3334-l0tNAEGuAhiXoBlonBaIS7NAH6kLmebB@public.gmane.org>
2005-06-09 17:51                                   ` Matthew Garrett
2005-06-07 15:32                   ` Frank
     [not found]                     ` <200506071732.23095.hugelmopf-S0/GAf8tV78@public.gmane.org>
2005-06-08  1:15                       ` Shaohua Li
     [not found]                         ` <1118193341.3857.4.camel-ECwVeV2eNyQD0+JXs3kMbRL4W9x8LtSr@public.gmane.org>
2005-06-10 18:49                           ` Frank Siegert
     [not found]                             ` <200506102049.42313.hugelmopf-ANTagKRnAhcb1SvskN2V4Q@public.gmane.org>
2005-06-12 20:55                               ` Christoph Tavan
     [not found]                                 ` <200506122255.38020.chefturner-S0/GAf8tV78@public.gmane.org>
2005-06-12 21:40                                   ` Jason Dagit
     [not found]                                     ` <878y1fjltd.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-12 23:01                                       ` Christoph Tavan
     [not found]                                         ` <200506130101.20005.chefturner-S0/GAf8tV78@public.gmane.org>
2005-06-12 23:13                                           ` Matthew Garrett
2005-06-14 19:38                                             ` Display black after s3 resume, vbetool not working (was: Re: S3 test tool) Christoph Tavan
     [not found]                                               ` <200506142138.04603.chefturner-S0/GAf8tV78@public.gmane.org>
2005-06-14 20:18                                                 ` Christoph Tavan
2005-06-15 22:59                                                 ` Pavel Machek
     [not found]                                                   ` <20050615225918.GA5680-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-06-17 12:06                                                     ` Hanspeter Kunz
2005-06-19  9:11                                                 ` Stefan Seyfried
2005-06-12 23:19                                           ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: Re: Resume from Suspend to RAM)) Jason Dagit
     [not found]                                             ` <87k6kzi2o7.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-12 23:25                                               ` Jason Dagit
2005-06-13 10:55                                       ` Frank
2005-06-12 21:48                           ` Jason Dagit
     [not found]                             ` <87slzni6vu.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-12 21:54                               ` Jason Dagit
2005-06-10  0:46                   ` Bernd Schubert
2005-06-14  7:25                   ` dagit-LP0vGzdgvNwj5TC/SZClsA
2005-06-14  8:47                     ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: Re: [ACPI] " Matthew Garrett
2005-06-14 16:24                       ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: " dagit-LP0vGzdgvNwj5TC/SZClsA
     [not found]                         ` <877jgw9a9c.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-17 13:16                           ` Matthew Garrett
     [not found]                     ` <87ll5diemh.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-14  9:06                       ` Pavel Machek
2005-06-14 15:51                         ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: Re: [ACPI] " dagit
2005-06-14 21:37                           ` Pavel Machek
2005-06-14 22:01                             ` dagit
     [not found]                               ` <87u0k061jx.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-14 22:09                                 ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: " Pavel Machek
     [not found]                                   ` <20050614220911.GD2172-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-06-14 22:18                                     ` dagit-LP0vGzdgvNwj5TC/SZClsA
     [not found]                                       ` <87oea860rl.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-14 23:11                                         ` Pavel Machek
2005-06-15  0:41                                           ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: Re: [ACPI] " dagit
2005-06-15  0:50                                             ` dagit
     [not found]                                             ` <87ekb45u5a.fsf-mMfbam+mt929kzlf/Hu3QdBPR1lH4CV8@public.gmane.org>
2005-06-15 18:41                                               ` S3 test tool (was : Re: Bizarre oops after suspend to RAM (was: " Pavel Machek
2005-06-06 14:43           ` Resume from Suspend to RAM Pavel Machek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1118125410.3828.12.camel@linux-hp.sh.intel.com \
    --to=shaohua.li@intel.com \
    --cc=acpi-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=pavel@ucw.cz \
    --cc=stefandoesinger@gmx.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox