From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754097AbaDDRkg (ORCPT ); Fri, 4 Apr 2014 13:40:36 -0400 Received: from mail-we0-f174.google.com ([74.125.82.174]:62165 "EHLO mail-we0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754017AbaDDRkd (ORCPT ); Fri, 4 Apr 2014 13:40:33 -0400 Date: Fri, 4 Apr 2014 19:40:29 +0200 From: Ingo Molnar To: "H. Peter Anvin" Cc: Matthew Garrett , Linus Torvalds , "Li, Aubrey" , Steven Rostedt , LKML , Thomas Gleixner Subject: Re: [BUG] x86: reboot doesn't reboot Message-ID: <20140404174029.GB25173@gmail.com> References: <20140403194018.7c67aec7@gandalf.local.home> <533DF455.4040908@linux.intel.com> <533DF8D2.9060508@zytor.com> <533E0A94.5040007@linux.intel.com> <20140404151203.GA12370@srcf.ucam.org> <20140404154520.GA14980@srcf.ucam.org> <533EDE6A.1050804@zytor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * H. Peter Anvin wrote: > On April 4, 2014 9:32:58 AM PDT, Matthew Garrett wrote: > > > Windows does ACPI first, so no. And the Dells were broken even > > before we moved ACPI up the list. > > That's not what you said a few posts ago. Exactly, the claim ws: "Windows hits the keyboard controller and then tries the ACPI vector." Which is obviously not the same as 'Windows does ACPI first'. So the first step _has_ to be to document exactly what Windows does, because that's the hardware ABI that we cannot deviate from much. Or if we don't know a detail, document the specific uncertainties, don't pretend we know it! The current documented sequence lists 0xcf9, which seems to be a lie: /* * Windows compatible x86 hardware expects the following on reboot: * * 1) If the FADT has the ACPI reboot register flag set, try it * 2) If still alive, write to the keyboard controller * 3) If still alive, write to the ACPI reboot register again * 4) If still alive, write to the keyboard controller again * 5) If still alive, call the EFI runtime service to reboot * 6) If still alive, write to the PCI IO port 0xCF9 to reboot * 7) If still alive, inform BIOS to do a proper reboot Thanks, Ingo