Source-Changes-HG archive

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

[src/trunk]: src add hp700 support.



details:   https://anonhg.NetBSD.org/src/rev/be19dd4edc2d
branches:  trunk
changeset: 580883:be19dd4edc2d
user:      chs <chs%NetBSD.org@localhost>
date:      Sat May 14 14:46:21 2005 +0000

description:
add hp700 support.

diffstat:

 distrib/utils/sysinst/arch/hp700/Makefile    |    6 +
 distrib/utils/sysinst/arch/hp700/md.c        |  202 +++++++++++++++++++++++++++
 distrib/utils/sysinst/arch/hp700/md.h        |   77 ++++++++++
 distrib/utils/sysinst/arch/hp700/menus.md.en |   41 +++++
 distrib/utils/sysinst/arch/hp700/menus.md.fr |   41 +++++
 distrib/utils/sysinst/arch/hp700/menus.md.pl |   43 +++++
 distrib/utils/sysinst/arch/hp700/msg.md.de   |   60 ++++++++
 distrib/utils/sysinst/arch/hp700/msg.md.en   |   59 +++++++
 distrib/utils/sysinst/arch/hp700/msg.md.fr   |   61 ++++++++
 distrib/utils/sysinst/arch/hp700/msg.md.pl   |   62 ++++++++
 usr.sbin/installboot/Makefile                |    5 +-
 usr.sbin/installboot/arch/hp700.c            |  187 ++++++++++++++++++++++++
 usr.sbin/installboot/installboot.h           |    4 +-
 usr.sbin/installboot/machines.c              |    6 +-
 14 files changed, 849 insertions(+), 5 deletions(-)

diffs (truncated from 947 to 300 lines):

diff -r 1f8bed4b6974 -r be19dd4edc2d distrib/utils/sysinst/arch/hp700/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/utils/sysinst/arch/hp700/Makefile Sat May 14 14:46:21 2005 +0000
@@ -0,0 +1,6 @@
+#      $NetBSD: Makefile,v 1.1 2005/05/14 14:54:00 chs Exp $
+#
+# Makefile for hp700
+#
+
+.include "../../Makefile.inc"
diff -r 1f8bed4b6974 -r be19dd4edc2d distrib/utils/sysinst/arch/hp700/md.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/utils/sysinst/arch/hp700/md.c     Sat May 14 14:46:21 2005 +0000
@@ -0,0 +1,202 @@
+/*     $NetBSD: md.c,v 1.1 2005/05/14 14:54:00 chs Exp $       */
+
+/*
+ * Copyright 1997 Piermont Information Systems Inc.
+ * All rights reserved.
+ *
+ * Based on code written by Philip A. Nelson for Piermont Information
+ * Systems Inc.
+ *
+ * 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 for the NetBSD Project by
+ *      Piermont Information Systems Inc.
+ * 4. The name of Piermont Information Systems Inc. may not be used to endorse
+ *    or promote products derived from this software without specific prior
+ *    written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``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 PIERMONT INFORMATION SYSTEMS INC. 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.
+ */
+
+/* md.c -- hp700 machine specific routines */
+/* This file is in close sync with pmax, vax, and x68k, sparc md.c */
+
+#include <sys/types.h>
+#include <sys/disklabel.h>
+#include <sys/ioctl.h>
+#include <sys/param.h>
+#include <stdio.h>
+#include <curses.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <util.h>
+
+#include "defs.h"
+#include "md.h"
+#include "msg_defs.h"
+#include "menu_defs.h"
+
+const char *fdtype = "ffs";
+
+int
+md_get_info(void)
+{
+       struct disklabel disklabel;
+       int fd;
+       char dev_name[100];
+
+       snprintf(dev_name, 100, "/dev/r%sc", diskdev);
+
+       fd = open(dev_name, O_RDONLY, 0);
+       if (fd < 0) {
+               if (logging)
+                       (void)fprintf(logfp, "Can't open %s\n", dev_name);
+               endwin();
+               fprintf(stderr, "Can't open %s\n", dev_name);
+               exit(1);
+       }
+       if (ioctl(fd, DIOCGDINFO, &disklabel) == -1) {
+               if (logging)
+                       (void)fprintf(logfp, "Can't read disklabel on %s.\n",
+                               dev_name);
+               endwin();
+               fprintf(stderr, "Can't read disklabel on %s.\n", dev_name);
+               close(fd);
+               exit(1);
+       }
+       close(fd);
+
+       dlcyl = disklabel.d_ncylinders;
+       dlhead = disklabel.d_ntracks;
+       dlsec = disklabel.d_nsectors;
+       sectorsize = disklabel.d_secsize;
+       dlcylsize = disklabel.d_secpercyl;
+
+       /*
+        * Compute whole disk size. Take max of (dlcyl*dlhead*dlsec)
+        * and secperunit,  just in case the disk is already labelled.
+        * (If our new label's RAW_PART size ends up smaller than the
+        * in-core RAW_PART size  value, updating the label will fail.)
+        */
+       dlsize = dlcyl*dlhead*dlsec;
+       if (disklabel.d_secperunit > dlsize)
+               dlsize = disklabel.d_secperunit;
+
+       return 1;
+}
+
+/*
+ * hook called before writing new disklabel.
+ */
+int
+md_pre_disklabel(void)
+{
+       return 0;
+}
+
+/*
+ * hook called after writing disklabel to new target disk.
+ */
+int
+md_post_disklabel(void)
+{
+       return 0;
+}
+
+/*
+ * hook called after running newfs.
+ */
+int
+md_post_newfs(void)
+{
+
+       /* boot blocks ... */
+       msg_display(MSG_dobootblks, diskdev);
+       if (run_program(RUN_DISPLAY | RUN_NO_CLEAR,
+           "/usr/sbin/installboot -v /dev/r%sc /usr/mdec/xxboot",
+           diskdev))
+               process_menu(MENU_ok,
+                        deconst("Warning: disk is probably not bootable"));
+       return 0;
+}
+
+/*
+ * some ports use this to copy the MD filesystem, we do not.
+ */
+int
+md_copy_filesystem(void)
+{
+       return 0;
+}
+
+/*
+ * md back-end code for menu-driven BSD disklabel editor.
+ */
+int
+md_make_bsd_partitions(void)
+{
+       return make_bsd_partitions();
+}
+
+/*
+ * any additional partition validation
+ */
+int
+md_check_partitions(void)
+{
+       return check_partitions();
+}
+
+/* Upgrade support */
+int
+md_update(void)
+{
+       /* endwin(); */
+       md_copy_filesystem();
+       md_post_newfs();
+       wrefresh(curscr);
+       wmove(stdscr, 0, 0);
+       wclear(stdscr);
+       wrefresh(stdscr);
+       return 1;
+}
+
+void
+md_cleanup_install(void)
+{
+
+       enable_rc_conf();
+
+       run_program(0, "rm -f %s", target_expand("/sysinst"));
+       run_program(0, "rm -f %s", target_expand("/.termcap"));
+       run_program(0, "rm -f %s", target_expand("/.profile"));
+}
+
+int
+md_pre_update()
+{
+       return 1;
+}
+
+void
+md_init()
+{
+}
diff -r 1f8bed4b6974 -r be19dd4edc2d distrib/utils/sysinst/arch/hp700/md.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/utils/sysinst/arch/hp700/md.h     Sat May 14 14:46:21 2005 +0000
@@ -0,0 +1,77 @@
+/*     $NetBSD: md.h,v 1.1 2005/05/14 14:54:00 chs Exp $       */
+
+/*
+ * Copyright 1997 Piermont Information Systems Inc.
+ * All rights reserved.
+ *
+ * Based on code written by Philip A. Nelson for Piermont Information
+ * Systems Inc.
+ *
+ * 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 for the NetBSD Project by
+ *      Piermont Information Systems Inc.
+ * 4. The name of Piermont Information Systems Inc. may not be used to endorse
+ *    or promote products derived from this software without specific prior
+ *    written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY PIERMONT INFORMATION SYSTEMS INC. ``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 PIERMONT INFORMATION SYSTEMS INC. 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.
+ *
+ */
+
+/* md.h -- Machine specific definitions for the hp700 */
+
+/* Constants and defines */
+
+/*
+ * Symbolic names for disk partitions.
+ */
+#define PART_ROOT      PART_A
+#define PART_SWAP      PART_B
+#define PART_RAW       PART_C
+#define PART_USR       PART_D  /* Can be after PART_FIRST_FREE */
+#define PART_FIRST_FREE        PART_E
+
+#define DEFSWAPRAM     64      /* Assume at least this RAM for swap calc */
+#define DEFROOTSIZE    64      /* Default root size */
+#define DEFVARSIZE     32      /* Default /var size, if created */
+#define DEFUSRSIZE     240     /* Default /usr size, if /home */
+#define XNEEDMB                80      /* Extra megs for full X installation */
+
+/*
+ * Default filesets to fetch and install during installation
+ * or upgrade.
+ */
+#define SET_KERNEL_1_NAME      "kern-GENERIC"
+
+#define MD_SETS_VALID (SET_KERNEL | SET_SYSTEM | (SET_X11 & ~SET_X11_SERVERS))
+
+/*
+ * Machine-specific command to write a new label to a disk.
+ * If not defined, we assume the port does not support disklabels and
+ * the hand-edited disklabel will NOT be written by MI code.
+ */
+#define        DISKLABEL_CMD   "disklabel -w -r"
+
+/*
+ * Default file system type for floppies.
+ */
+const char *fdtype;
diff -r 1f8bed4b6974 -r be19dd4edc2d distrib/utils/sysinst/arch/hp700/menus.md.en
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/distrib/utils/sysinst/arch/hp700/menus.md.en      Sat May 14 14:46:21 2005 +0000



Home | Main Index | Thread Index | Old Index