Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/hp300/stand Move exec_hp300() out of uboot.c into i...



details:   https://anonhg.NetBSD.org/src/rev/5ed20d9d5b0f
branches:  trunk
changeset: 523784:5ed20d9d5b0f
user:      gmcgarry <gmcgarry%NetBSD.org@localhost>
date:      Sat Mar 16 06:20:07 2002 +0000

description:
Move exec_hp300() out of uboot.c into its own file so that it can
be used by SYS_INST.  SYS_INST can now boot ELF kernels inside the
miniroot.

diffstat:

 sys/arch/hp300/stand/Makefile.buildboot |   4 +-
 sys/arch/hp300/stand/common/exec.c      |  76 +++++++++++++++++++++++++++++++++
 sys/arch/hp300/stand/common/samachdep.h |   3 +-
 sys/arch/hp300/stand/inst/inst.c        |   5 +-
 sys/arch/hp300/stand/uboot/uboot.c      |  40 +----------------
 5 files changed, 83 insertions(+), 45 deletions(-)

diffs (209 lines):

diff -r 579da0c98f5b -r 5ed20d9d5b0f sys/arch/hp300/stand/Makefile.buildboot
--- a/sys/arch/hp300/stand/Makefile.buildboot   Sat Mar 16 05:27:53 2002 +0000
+++ b/sys/arch/hp300/stand/Makefile.buildboot   Sat Mar 16 06:20:07 2002 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: Makefile.buildboot,v 1.18 2001/12/12 01:49:42 tv Exp $
+#      $NetBSD: Makefile.buildboot,v 1.19 2002/03/16 06:20:07 gmcgarry Exp $
 
 # RELOC=FFF00000 allows for boot prog up to FF000 (1044480) bytes long
 RELOC= FFF00000
@@ -45,7 +45,7 @@
 CPPFLAGS+=             -DHEAP_LIMIT="0xffffdfff"
 
 COMMONSOURCE=          srt0.S autoconf.c clock.c conf.c cons.c devopen.c \
-                       machdep.c prf.c rawfs.c netio.c
+                       exec.c machdep.c prf.c rawfs.c netio.c
 DRIVERSOURCE=          apci.c ct.c dca.c dcm.c dnkbd.c fhpib.c hil.c \
                        hpib.c if_le.c ite.c ite_dv.c ite_gb.c ite_rb.c \
                        ite_subr.c ite_tc.c ite_hy.c kbd.c kbdconf.c \
diff -r 579da0c98f5b -r 5ed20d9d5b0f sys/arch/hp300/stand/common/exec.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/hp300/stand/common/exec.c        Sat Mar 16 06:20:07 2002 +0000
@@ -0,0 +1,76 @@
+/*     $NetBSD: exec.c,v 1.1 2002/03/16 06:20:08 gmcgarry Exp $ */
+
+/*-
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)boot.c      8.1 (Berkeley) 6/10/93
+ */
+
+#include <sys/param.h>
+
+#include <machine/bootinfo.h>
+
+#include <lib/libsa/loadfile.h>
+
+#include <hp300/stand/common/samachdep.h>
+
+#define        round_to_size(x) \
+       (((x) + sizeof(u_long) - 1) & ~(sizeof(u_long) - 1))
+
+void
+exec_hp300(file, loadaddr, howto)
+       char *file;
+       u_long loadaddr;
+       int howto;
+{
+       u_long marks[MARK_MAX];
+       struct btinfo_magic *bt;
+       int fd;
+
+       marks[MARK_START] = loadaddr;
+       if ((fd = loadfile(file, marks, LOAD_KERNEL)) == -1)
+               return;
+
+       marks[MARK_END] = round_to_size(marks[MARK_END] - loadaddr);
+       printf("Start @ 0x%lx [%ld=0x%lx-0x%lx]...\n",
+           marks[MARK_ENTRY], marks[MARK_NSYM],
+           marks[MARK_SYM], marks[MARK_END]);
+
+       bt = (struct btinfo_magic *)loadaddr;
+        bt->common.type = BTINFO_MAGIC;
+        bt->magic1 = BOOTINFO_MAGIC1;
+        bt->magic2 = BOOTINFO_MAGIC2;
+
+       machdep_start((char *)marks[MARK_ENTRY], howto,
+           (char *)loadaddr, (char *)marks[MARK_SYM],
+           (char *)marks[MARK_END]);
+}
diff -r 579da0c98f5b -r 5ed20d9d5b0f sys/arch/hp300/stand/common/samachdep.h
--- a/sys/arch/hp300/stand/common/samachdep.h   Sat Mar 16 05:27:53 2002 +0000
+++ b/sys/arch/hp300/stand/common/samachdep.h   Sat Mar 16 06:20:07 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: samachdep.h,v 1.6 2001/01/02 04:14:34 simonb Exp $     */
+/*     $NetBSD: samachdep.h,v 1.7 2002/03/16 06:20:08 gmcgarry Exp $   */
 
 /*
  * Copyright (c) 1982, 1990, 1993
@@ -70,6 +70,7 @@
 extern int userom;
 void   romputchar __P((int));
 
+void   exec_hp300 __P((char *, u_long, int));
 void   transfer __P((char *entry, int howto, int opendev, int conscode,
            char *lowram, char *esym));
 void   _transfer __P((char *entry, int howto, int opendev, int conscode,
diff -r 579da0c98f5b -r 5ed20d9d5b0f sys/arch/hp300/stand/inst/inst.c
--- a/sys/arch/hp300/stand/inst/inst.c  Sat Mar 16 05:27:53 2002 +0000
+++ b/sys/arch/hp300/stand/inst/inst.c  Sat Mar 16 06:20:07 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: inst.c,v 1.6 1997/12/29 07:15:10 scottr Exp $  */
+/*     $NetBSD: inst.c,v 1.7 2002/03/16 06:20:08 gmcgarry Exp $        */
 
 /*-
  * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -77,7 +77,6 @@
 #include <sys/param.h>
 #include <sys/reboot.h>
 #include <sys/disklabel.h>
-#include <a.out.h>
 
 #include <lib/libsa/stand.h>
 
@@ -760,7 +759,7 @@
        howto = RB_SINGLE;      /* _Always_ */
 
        printf("booting: %s -s\n", bootname);
-       exec(bootname, lowram, howto);
+       exec_hp300(bootname, (u_long)lowram, howto);
        printf("boot: %s\n", strerror(errno));
 }
 
diff -r 579da0c98f5b -r 5ed20d9d5b0f sys/arch/hp300/stand/uboot/uboot.c
--- a/sys/arch/hp300/stand/uboot/uboot.c        Sat Mar 16 05:27:53 2002 +0000
+++ b/sys/arch/hp300/stand/uboot/uboot.c        Sat Mar 16 06:20:07 2002 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: uboot.c,v 1.8 2001/10/09 16:03:11 tsutsui Exp $        */
+/*     $NetBSD: uboot.c,v 1.9 2002/03/16 06:20:08 gmcgarry Exp $       */
 
 /*-
  * Copyright (c) 1982, 1986, 1990, 1993
@@ -36,14 +36,9 @@
  */
 
 #include <sys/param.h>
-#include <sys/reboot.h>
 #include <sys/boot_flag.h>
-#include <a.out.h>
 
 #include <lib/libsa/stand.h>
-#include <lib/libsa/loadfile.h>
-
-#include <machine/bootinfo.h>
 
 #include <hp300/stand/common/samachdep.h>
 
@@ -76,7 +71,6 @@
 
 void main __P((void));
 void getbootdev __P((int *));
-void exec_hp300 __P((char *, u_long, int));
 
 void
 main()
@@ -143,35 +137,3 @@
        } else
                printf("\n");
 }
-
-#define        round_to_size(x) \
-       (((x) + sizeof(u_long) - 1) & ~(sizeof(u_long) - 1))
-
-void
-exec_hp300(file, loadaddr, howto)
-       char *file;
-       u_long loadaddr;
-       int howto;
-{
-       u_long marks[MARK_MAX];
-       struct btinfo_magic *bt;
-       int fd;
-
-       marks[MARK_START] = loadaddr;
-       if ((fd = loadfile(name, marks, LOAD_KERNEL)) == -1)
-               return;
-
-       marks[MARK_END] = round_to_size(marks[MARK_END] - loadaddr);
-       printf("Start @ 0x%lx [%ld=0x%lx-0x%lx]...\n",
-           marks[MARK_ENTRY], marks[MARK_NSYM],
-           marks[MARK_SYM], marks[MARK_END]);
-
-       bt = (struct btinfo_magic *)lowram;
-        bt->common.type = BTINFO_MAGIC;
-        bt->magic1 = BOOTINFO_MAGIC1;
-        bt->magic2 = BOOTINFO_MAGIC2;
-
-       machdep_start((char *)marks[MARK_ENTRY], howto,
-           (char *)loadaddr, (char *)marks[MARK_SYM],
-           (char *)marks[MARK_END]);
-}



Home | Main Index | Thread Index | Old Index