PERFORCE change 96194 for review
Marcel Moolenaar
marcel at FreeBSD.org
Thu Apr 27 05:55:06 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=96194
Change 96194 by marcel at marcel_nfs on 2006/04/27 05:54:04
IFC @96193
Affected files ...
.. //depot/projects/uart/dev/uart/uart_dev_ns8250.c#43 integrate
.. //depot/projects/uart/i386/i386/pmap.c#35 integrate
.. //depot/projects/uart/i386/i386/vm_machdep.c#15 integrate
Differences ...
==== //depot/projects/uart/dev/uart/uart_dev_ns8250.c#43 (text+ko) ====
@@ -25,7 +25,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.20 2006/04/23 21:15:07 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/dev/uart/uart_dev_ns8250.c,v 1.21 2006/04/27 05:43:10 marcel Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -611,7 +611,7 @@
mcr = MCR_IE;
if (sc->sc_sysdev == NULL) {
/* By using ns8250_init() we also set DTR and RTS. */
- ns8250_init(bas, 9600, 8, 1, UART_PARITY_NONE);
+ ns8250_init(bas, 115200, 8, 1, UART_PARITY_NONE);
} else
mcr |= MCR_DTR | MCR_RTS;
==== //depot/projects/uart/i386/i386/pmap.c#35 (text+ko) ====
@@ -75,7 +75,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.550 2006/04/26 21:49:19 peter Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/pmap.c,v 1.551 2006/04/27 05:02:21 delphij Exp $");
/*
* Manages physical address maps.
@@ -260,7 +260,7 @@
"Number of times pmap_pte_quick didn't change PMAP1");
static struct mtx PMAP2mutex;
-static PMAP_INLINE void free_pv_entry(pmap_t pmap, pv_entry_t pv);
+static void free_pv_entry(pmap_t pmap, pv_entry_t pv);
static pv_entry_t get_pv_entry(pmap_t locked_pmap, int try);
static void pmap_clear_ptes(vm_page_t m, int bit);
@@ -1574,7 +1574,7 @@
/*
* free the pv_entry back to the free list
*/
-static PMAP_INLINE void
+static void
free_pv_entry(pmap_t pmap, pv_entry_t pv)
{
vm_page_t m;
==== //depot/projects/uart/i386/i386/vm_machdep.c#15 (text+ko) ====
@@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.269 2006/03/10 05:55:26 davidxu Exp $");
+__FBSDID("$FreeBSD: src/sys/i386/i386/vm_machdep.c,v 1.270 2006/04/27 05:18:26 sobomax Exp $");
#include "opt_isa.h"
#include "opt_npx.h"
@@ -590,7 +590,9 @@
static void
cpu_reset_real()
{
+ int b;
+ disable_intr();
#ifdef CPU_ELAN
if (elan_mmcr != NULL)
elan_mmcr->RESCFG = 1;
@@ -606,7 +608,6 @@
/*
* Attempt to do a CPU reset via CPU reset port.
*/
- disable_intr();
if ((inb(0x35) & 0xa0) != 0xa0) {
outb(0x37, 0x0f); /* SHUT0 = 0. */
outb(0x37, 0x0b); /* SHUT1 = 0. */
@@ -621,11 +622,26 @@
*/
outb(IO_KBD + 4, 0xFE);
DELAY(500000); /* wait 0.5 sec to see if that did it */
- printf("Keyboard reset did not work, attempting CPU shutdown\n");
- DELAY(1000000); /* wait 1 sec for printf to complete */
#endif
+ /* Try the PCI reset */
+ outb(0xcf9, 0x2);
+ outb(0xcf9, 0x6);
+ DELAY(500000); /* wait 0.5 sec to see if that did it */
+
+ /* Try port 0x92 fast reset */
+ b = inb(0x92);
+ /* Check the the hardware actually has the port in question */
+ if (b != 0xff) {
+ if ((b & 0x1) != 0)
+ outb(0x92, b & 0xfe);
+ outb(0x92, b | 0x1);
+ DELAY(500000); /* wait 0.5 sec to see if that did it */
+ }
#endif /* PC98 */
+ printf("No known reset method did work, attempting CPU shutdown\n");
+ DELAY(1000000); /* wait 1 sec for printf to complete */
+
/* Force a shutdown by unmapping entire address space. */
bzero((caddr_t)PTD, NBPTD);
More information about the p4-projects
mailing list