Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/sommerfeld_i386mp_1]: src/sys/arch/i386/stand * Rename the pxeboot binar...
details: https://anonhg.NetBSD.org/src/rev/acde3d6b16b0
branches: sommerfeld_i386mp_1
changeset: 482499:acde3d6b16b0
user: thorpej <thorpej%NetBSD.org@localhost>
date: Wed Feb 20 03:00:28 2002 +0000
description:
* Rename the pxeboot binary from "pxeboot" to "pxeboot_ia32", since
there are other architectures (e.g. IA64) which also use PXE.
* Get the console right in pxeboot, from Andreas Gustafsson.
* Add a "com0" version of pxeboot, to address the same issue that
biosboot_com0 addresses.
diffstat:
sys/arch/i386/stand/pxeboot/Makefile | 54 +++++++++
sys/arch/i386/stand/pxeboot/main.c | 171 ++++++++++++++++++++++++++++++
sys/arch/i386/stand/pxeboot_com0/Makefile | 5 +
3 files changed, 230 insertions(+), 0 deletions(-)
diffs (242 lines):
diff -r f8d4753bd42e -r acde3d6b16b0 sys/arch/i386/stand/pxeboot/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/stand/pxeboot/Makefile Wed Feb 20 03:00:28 2002 +0000
@@ -0,0 +1,54 @@
+# $NetBSD: Makefile,v 1.3.2.2 2002/02/20 03:00:28 thorpej Exp $
+
+S= ${.CURDIR}/../../../../
+
+BASE?= pxeboot_ia32
+PROG= ${BASE}.bin
+MKMAN= no
+NEWVERSWHAT= "PXE Boot"
+STARTFILE= ${PXESTART}
+RELOC= 0x0
+
+.if (${BASE} != "pxeboot_ia32")
+.PATH.c: ${.CURDIR}/../pxeboot
+.PATH.S: ${.CURDIR}/../pxeboot
+.endif
+
+SRCS= main.c dev_net.c devopen.c conf.c exec.c pxe.c pxe_call.S
+
+.if (${BASE} == "pxeboot_ia32")
+# Various serial line configurations
+CPPFLAGS+= -DSUPPORT_SERIAL=CONSDEV_PC -DDIRECT_SERIAL
+# or
+#CPPFLAGS+= -DSUPPORT_SERIAL=CONSDEV_COM0KBD
+# or
+#CPPFLAGS+= -DSUPPORT_SERIAL=CONSDEV_AUTO
+# and maybe
+#CPPFLAGS+= -DDIRECT_SERIAL -DCOMCONS_KEYPRESS -DCONSPEED=57600
+.endif
+
+.if (${BASE} == "pxeboot_ia32_com0")
+CPPFLAGS+= -DSUPPORT_SERIAL=CONSDEV_COM0 -DDIRECT_SERIAL
+.endif
+
+CPPFLAGS+= -DSUPPORT_BOOTP -DSUPPORT_DHCP
+CPPFLAGS+= -DSUPPORT_TFTP
+CPPFLAGS+= -DSUPPORT_NFS
+
+CPPFLAGS+= -DPASS_MEMMAP
+
+#CFLAGS= -O2 -fomit-frame-pointer -fno-defer-pop
+CFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes -Wno-main
+
+SAMISCCPPFLAGS+= -DHEAP_START=0x10000 -DHEAP_LIMIT=0x30000
+SAMISCMAKEFLAGS+= SA_USE_CREAD=yes # Read compressed kernels
+
+I386MISCMAKEFLAGS= I386_INCLUDE_DISK=no
+
+.if (${BASE} == "pxeboot_ia32")
+VERSIONFILE= ${.CURDIR}/version
+.else
+VERSIONFILE= ${.CURDIR}/../pxeboot/version
+.endif
+
+.include "../Makefile.booters"
diff -r f8d4753bd42e -r acde3d6b16b0 sys/arch/i386/stand/pxeboot/main.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/stand/pxeboot/main.c Wed Feb 20 03:00:28 2002 +0000
@@ -0,0 +1,171 @@
+/* $NetBSD: main.c,v 1.4.2.2 2002/02/20 03:00:28 thorpej Exp $ */
+
+/*
+ * Copyright (c) 1996
+ * Matthias Drochner. All rights reserved.
+ * Copyright (c) 1996
+ * Perry E. Metzger. 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 acknowledgements:
+ * This product includes software developed for the NetBSD Project
+ * by Matthias Drochner.
+ * This product includes software developed for the NetBSD Project
+ * by Perry E. Metzger.
+ * 4. The names of the authors may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ *
+ */
+
+#include <lib/libkern/libkern.h>
+
+#include <lib/libsa/stand.h>
+
+#include <libi386.h>
+#include "pxeboot.h"
+
+int errno;
+int debug;
+int try_bootp = 1;
+
+extern char bootprog_name[], bootprog_rev[], bootprog_date[],
+ bootprog_maker[];
+
+#define TIMEOUT 5
+
+int main(void);
+
+void command_help __P((char *));
+void command_quit __P((char *));
+void command_boot __P((char *));
+
+const struct bootblk_command commands[] = {
+ { "help", command_help },
+ { "?", command_help },
+ { "quit", command_quit },
+ { "boot", command_boot },
+ { NULL, NULL },
+};
+
+#ifdef COMPAT_OLDBOOT
+int
+parsebootfile(const char *fname, char **fsname, char **devname,
+ u_int *unit, u_int *partition, const char **file)
+{
+ return (EINVAL);
+}
+
+int
+biosdisk_gettype(struct open_file *f)
+{
+ return (0);
+}
+#endif
+
+static int
+bootit(const char *filename, int howto)
+{
+ if (exec_netbsd(filename, 0, howto) < 0)
+ printf("boot: %s\n", strerror(errno));
+ else
+ printf("boot returned\n");
+ return (-1);
+}
+
+static void
+print_banner(void)
+{
+ int base = getbasemem();
+ int ext = getextmem();
+
+ printf("\n"
+ ">> %s, Revision %s\n"
+ ">> (%s, %s)\n"
+ ">> Memory: %d/%d k\n",
+ bootprog_name, bootprog_rev,
+ bootprog_maker, bootprog_date,
+ base, ext);
+}
+
+int
+main(void)
+{
+ char c;
+
+#ifdef SUPPORT_SERIAL
+ initio(SUPPORT_SERIAL);
+#else
+ initio(CONSDEV_PC);
+#endif
+ gateA20();
+
+ print_banner();
+
+ printf("Press return to boot now, any other key for boot menu\n");
+ printf("Starting in ");
+
+ c = awaitkey(TIMEOUT, 1);
+ if ((c != '\r') && (c != '\n') && (c != '\0')) {
+ printf("type \"?\" or \"help\" for help.\n");
+ bootmenu(); /* does not return */
+ }
+
+ /*
+ * The file name provided here is just a default. If the
+ * DHCP server provides a file name, we'll use that instead.
+ */
+ bootit("netbsd", 0);
+
+ /*
+ * If that fails, let the BIOS try the next boot device.
+ */
+ return (1);
+}
+
+/* ARGSUSED */
+void
+command_help(char *arg)
+{
+ printf("commands are:\n"
+ "boot [filename] [-adsqv]\n"
+ " (ex. \"netbsd.old -s\"\n"
+ "help|?\n"
+ "quit\n");
+}
+
+/* ARGSUSED */
+void
+command_quit(char *arg)
+{
+ printf("Exiting... goodbye...\n");
+ exit(0);
+}
+
+void
+command_boot(char *arg)
+{
+ char *filename;
+ int howto;
+
+ if (parseboot(arg, &filename, &howto))
+ bootit(filename, howto);
+}
diff -r f8d4753bd42e -r acde3d6b16b0 sys/arch/i386/stand/pxeboot_com0/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/stand/pxeboot_com0/Makefile Wed Feb 20 03:00:28 2002 +0000
@@ -0,0 +1,5 @@
+# $NetBSD: Makefile,v 1.1.2.2 2002/02/20 03:00:28 thorpej Exp $
+
+BASE= pxeboot_ia32_com0
+
+.include "../pxeboot/Makefile"
Home |
Main Index |
Thread Index |
Old Index