AMD's ELAN documentation says that you write to the SYS_RST register
in the Memory Mapped Configuration Region (MMCR) to reset the CPU. If CPU_ELAN is set, try this first to reset the CPU before the traditional way. Without this change, my Compulab board powers down on 'reset' instead of rebooting.
This commit is contained in:
parent
59fac1825f
commit
15afc798fd
@ -43,6 +43,7 @@
|
||||
#include <sys/cdefs.h>
|
||||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include "opt_cpu.h"
|
||||
#include "opt_isa.h"
|
||||
#include "opt_kstack_pages.h"
|
||||
#include "opt_npx.h"
|
||||
@ -77,6 +78,9 @@ __FBSDID("$FreeBSD$");
|
||||
#include <machine/pcb.h>
|
||||
#include <machine/pcb_ext.h>
|
||||
#include <machine/vm86.h>
|
||||
#ifdef CPU_ELAN
|
||||
#include <machine/elan_mmcr.h>
|
||||
#endif
|
||||
|
||||
#ifdef CPU_ELAN
|
||||
#include <machine/elan_mmcr.h>
|
||||
@ -559,6 +563,12 @@ cpu_reset_real()
|
||||
}
|
||||
outb(0xf0, 0x00); /* Reset. */
|
||||
#else
|
||||
#ifdef CPU_ELAN
|
||||
if (elan_mmcr != NULL)
|
||||
/* SYS_RST */
|
||||
elan_mmcr->RESCFG = 1;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Attempt to do a CPU reset via the keyboard controller,
|
||||
* do not turn of the GateA20, as any machine that fails
|
||||
|
Loading…
Reference in New Issue
Block a user