From 8470014e066e692ff386ba173ea115403139b076 Mon Sep 17 00:00:00 2001 From: jhb Date: Thu, 11 Sep 2008 18:33:57 +0000 Subject: Update the comments above the 0xcf9 register reset attempt to match the code. We only attempt a single reset using this method (a "hard" reset), and we use two writes to ensure there is a 0 -> 1 transition in bit 2 to force a reset. MFC after: 1 week --- sys/amd64/amd64/vm_machdep.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'sys/amd64') diff --git a/sys/amd64/amd64/vm_machdep.c b/sys/amd64/amd64/vm_machdep.c index c181d42..adddc1c 100644 --- a/sys/amd64/amd64/vm_machdep.c +++ b/sys/amd64/amd64/vm_machdep.c @@ -466,10 +466,13 @@ cpu_reset_real() /* * Attempt to force a reset via the Reset Control register at - * I/O port 0xcf9. Bit 2 forces a system reset when it is - * written as 1. Bit 1 selects the type of reset to attempt: - * 0 selects a "soft" reset, and 1 selects a "hard" reset. We - * try to do a "soft" reset first, and then a "hard" reset. + * I/O port 0xcf9. Bit 2 forces a system reset when it + * transitions from 0 to 1. Bit 1 selects the type of reset + * to attempt: 0 selects a "soft" reset, and 1 selects a + * "hard" reset. We try a "hard" reset. The first write sets + * bit 1 to select a "hard" reset and clears bit 2. The + * second write forces a 0 -> 1 transition in bit 2 to trigger + * a reset. */ outb(0xcf9, 0x2); outb(0xcf9, 0x6); -- cgit v1.1