public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Li Fei <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
	tglx@linutronix.de, hpa@linux.intel.com, fei.li@intel.com
Subject: [tip:x86/reboot] reboot: Allow specifying warm/ cold reset for CF9 boot type
Date: Wed, 25 Sep 2013 10:36:34 -0700	[thread overview]
Message-ID: <tip-16c21ae5ca636cfd38e581ebcf709c49d78ea56d@git.kernel.org> (raw)
In-Reply-To: <1377072837.24556.2.camel@fli24-HP-Compaq-8100-Elite-CMT-PC>

Commit-ID:  16c21ae5ca636cfd38e581ebcf709c49d78ea56d
Gitweb:     http://git.kernel.org/tip/16c21ae5ca636cfd38e581ebcf709c49d78ea56d
Author:     Li Fei <fei.li@intel.com>
AuthorDate: Wed, 21 Aug 2013 16:13:57 +0800
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 25 Sep 2013 19:33:22 +0200

reboot: Allow specifying warm/cold reset for CF9 boot type

In current implementation for reboot type CF9 and CF9_COND,
warm and cold reset are not differentiated, and both are
performed by writing 0x06 to port 0xCF9.

This commit will differentiate warm and cold reset:

For warm reset, write 0x06 to port 0xCF9;
For cold reset, write 0x0E to port 0xCF9.

[ hpa: This meaning of "cold" and "warm" reset is different from other
  reboot types use, where "warm" means "bypass BIOS POST".  It is also
  not entirely clear that it actually solves any actual problem.  However,
  it would seem fairly harmless to offer this additional option.

  Also note that we do not mask bit 3 in the "warm reset" case.  This
  preserves the behavior on existing systems, including ones quirked
  to use CF9.  It seems reasonable that on any system where the
  warm/cold distinction actually matters that bit 3 would be read as
  zero. ]

From: Liu Chuansheng <chuansheng.liu@intel.com>
Signed-off-by: Li Fei <fei.li@intel.com>
Link: http://lkml.kernel.org/r/1377072837.24556.2.camel@fli24-HP-Compaq-8100-Elite-CMT-PC
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/x86/kernel/reboot.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 563ed91..ca42f63 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -511,10 +511,13 @@ static void native_machine_emergency_restart(void)
 
 		case BOOT_CF9_COND:
 			if (port_cf9_safe) {
-				u8 cf9 = inb(0xcf9) & ~6;
+				u8 reboot_code = reboot_mode == REBOOT_WARM ?
+					0x06 : 0x0E;
+				u8 cf9 = inb(0xcf9) & ~reboot_code;
 				outb(cf9|2, 0xcf9); /* Request hard reset */
 				udelay(50);
-				outb(cf9|6, 0xcf9); /* Actually do the reset */
+				/* Actually do the reset */
+				outb(cf9|reboot_code, 0xcf9);
 				udelay(50);
 			}
 			reboot_type = BOOT_KBD;

      parent reply	other threads:[~2013-09-25 17:37 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-21  1:52 [PATCH] reboot: perform warm/cold reset correctly for CF9 type Li Fei
2013-08-21  7:29 ` Ingo Molnar
2013-08-21  7:33   ` H. Peter Anvin
2013-08-21  8:08     ` Li, Fei
2013-08-21  9:07       ` H. Peter Anvin
2013-08-22  3:32         ` Li, Fei
2013-09-03 17:35           ` H. Peter Anvin
2013-09-09  1:53             ` Liu, Chuansheng
2013-09-09  2:56               ` H. Peter Anvin
2013-08-21  8:13 ` [PATCH V2] " Li Fei
2013-09-10 19:51   ` [tip:x86/reboot] reboot: Allow specifying warm/ cold reset for CF9 boot type tip-bot for Li Fei
2013-09-25 17:36   ` tip-bot for Li Fei [this message]

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=tip-16c21ae5ca636cfd38e581ebcf709c49d78ea56d@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=fei.li@intel.com \
    --cc=hpa@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    /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