Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/pmax/stand/common - start.S



details:   https://anonhg.NetBSD.org/src/rev/d40456e6ca89
branches:  trunk
changeset: 760667:d40456e6ca89
user:      tsutsui <tsutsui%NetBSD.org@localhost>
date:      Mon Jan 10 17:01:17 2011 +0000

description:
- start.S
  add a hazard nop so that prom_restart() works properly on MIPS1
  (it seems broken since initial revision and had been restarted by fault?)

- common.h
  export prom_restart()

- if_prom.c
  use prom_restart() instead of a direct PROM call (that should be equivalent)

diffstat:

 sys/arch/pmax/stand/common/common.h  |  3 ++-
 sys/arch/pmax/stand/common/if_prom.c |  4 ++--
 sys/arch/pmax/stand/common/start.S   |  3 ++-
 3 files changed, 6 insertions(+), 4 deletions(-)

diffs (52 lines):

diff -r 1f9bf24c1c4a -r d40456e6ca89 sys/arch/pmax/stand/common/common.h
--- a/sys/arch/pmax/stand/common/common.h       Mon Jan 10 16:59:09 2011 +0000
+++ b/sys/arch/pmax/stand/common/common.h       Mon Jan 10 17:01:17 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: common.h,v 1.9 2009/03/14 14:46:04 dsl Exp $   */
+/*     $NetBSD: common.h,v 1.10 2011/01/10 17:01:17 tsutsui Exp $      */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -45,6 +45,7 @@
 int prom_lseek(int, int, int);
 int prom_open(const char *, int);
 int prom_read(int, void *, int);
+void __dead prom_restart(void);
 int prom_write(int, void *, int);
 
 
diff -r 1f9bf24c1c4a -r d40456e6ca89 sys/arch/pmax/stand/common/if_prom.c
--- a/sys/arch/pmax/stand/common/if_prom.c      Mon Jan 10 16:59:09 2011 +0000
+++ b/sys/arch/pmax/stand/common/if_prom.c      Mon Jan 10 17:01:17 2011 +0000
@@ -1,4 +1,4 @@
-/*      $NetBSD: if_prom.c,v 1.9 2011/01/09 16:55:13 tsutsui Exp $ */
+/*      $NetBSD: if_prom.c,v 1.10 2011/01/10 17:01:17 tsutsui Exp $ */
 
 /* Copyright (c) 1999 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -141,7 +141,7 @@
        if (enet == NULL) {
                printf("No `enet' environment variable found.\n"
                    "Set MAC address to `enet' manually by setenv command.\n");
-               (*callv->_halt)((int *)0, 0);   /* XXX */
+               prom_restart();
                /* NOTREACHED */
        }
 
diff -r 1f9bf24c1c4a -r d40456e6ca89 sys/arch/pmax/stand/common/start.S
--- a/sys/arch/pmax/stand/common/start.S        Mon Jan 10 16:59:09 2011 +0000
+++ b/sys/arch/pmax/stand/common/start.S        Mon Jan 10 17:01:17 2011 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: start.S,v 1.21 2011/01/10 15:25:44 tsutsui Exp $       */
+/*     $NetBSD: start.S,v 1.22 2011/01/10 17:01:17 tsutsui Exp $       */
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -116,6 +116,7 @@
 LEAF(prom_restart)
 XLEAF(_rtt)
        lw      v0, _C_LABEL (callv)
+       nop
        lw      v0, 0x9C(v0)                    /* halt */
        move    a0, zero                        /* Don't print anything. */
        j       v0



Home | Main Index | Thread Index | Old Index