summaryrefslogtreecommitdiff
path: root/sys/arch/hppa/stand
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2003-03-28 22:42:27 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2003-03-28 22:42:27 +0000
commit233efcba6a5d51d6435957d5b9de4b0f2ae1d6b3 (patch)
tree05fe81fbc59f7c8879fe1d58dbe3d3593b1f8879 /sys/arch/hppa/stand
parentc20f96b578d6b516a8cae9ee716ea2d2cd5fde87 (diff)
a small boot for a cd
Diffstat (limited to 'sys/arch/hppa/stand')
-rw-r--r--sys/arch/hppa/stand/Makefile5
-rw-r--r--sys/arch/hppa/stand/cdboot/Makefile56
-rw-r--r--sys/arch/hppa/stand/cdboot/cdboot.c54
-rw-r--r--sys/arch/hppa/stand/cdboot/conf.c57
-rw-r--r--sys/arch/hppa/stand/cdboot/ld.script49
5 files changed, 220 insertions, 1 deletions
diff --git a/sys/arch/hppa/stand/Makefile b/sys/arch/hppa/stand/Makefile
index 98640b0d433..08e01dd95d9 100644
--- a/sys/arch/hppa/stand/Makefile
+++ b/sys/arch/hppa/stand/Makefile
@@ -1,8 +1,11 @@
-# $OpenBSD: Makefile,v 1.2 2000/05/31 19:59:31 mickey Exp $
+# $OpenBSD: Makefile,v 1.3 2003/03/28 22:42:26 mickey Exp $
.if ${MACHINE} == "hppa"
SUBDIR= libsa libkern libz
.endif
SUBDIR+= mkboot boot
+.if ${MACHINE} == "hppa"
+SUBDIR+= cdboot
+.endif
.include <bsd.subdir.mk>
diff --git a/sys/arch/hppa/stand/cdboot/Makefile b/sys/arch/hppa/stand/cdboot/Makefile
new file mode 100644
index 00000000000..6c096ebad3d
--- /dev/null
+++ b/sys/arch/hppa/stand/cdboot/Makefile
@@ -0,0 +1,56 @@
+# $OpenBSD: Makefile,v 1.1 2003/03/28 22:42:26 mickey Exp $
+
+NOMAN= no man
+S =${.CURDIR}/../../../..
+CLEANFILES+= cdboot.gdb cdboot.map
+
+.if ${MACHINE} == "hppa"
+
+PROG= cdboot
+SRCS= srt0.S exec.c cdboot.c conf.c \
+ machdep.c pdc.c itecons.c dev_hppa.c dk.c
+LD?= ld
+LDFLAGS+=-Bstatic -nostartfiles -nostdlib -N -Ttext $(LINKADDR)
+LDFLAGS+=-T ${.CURDIR}/ld.script -Map cdboot.map
+SIZE?= size
+STRIP?= strip
+STANDIR=${.CURDIR}/..
+CRTBEGIN=
+CRTEND=
+
+SAREL=
+USE_LOADFILE=yes
+.include "${S}/lib/libsa/Makefile.inc"
+DPADD+= $(SALIB) $(LIBKERN)
+LDADD+= $(SALIB) $(LIBKERN)
+
+.PATH: ${S}/stand/boot
+.PATH: ${.CURDIR}/../boot
+.PATH: ${.CURDIR}/../libsa
+
+all: ${PROG}
+
+clean::
+ rm -f a.out [Ee]rrs mklog core *.core \
+ ${PROG} ${OBJS} ${LOBJS} ${CLEANFILES}
+
+realinstall:
+ ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \
+ ${PROG} ${DESTDIR}${BINDIR}
+
+# TODO check for <=32k
+${PROG}: $(OBJS) $(DPADD)
+ $(LD) $(LDFLAGS) -o $(PROG) $(OBJS) $(LDADD)
+ @cp ${PROG} ${PROG}.gdb
+ ${STRIP} ${PROG}
+ @${SIZE} $(PROG)
+ @${MKBOOT} -v ${PROG} ${PROG}.lif
+ @mv ${PROG}.lif ${PROG}
+.else
+NOPROG=
+.endif
+
+.include <bsd.prog.mk>
+
+CPPFLAGS+=-DRELOC=${LOADADDR} -DHEAP_LIMIT=${HEAP_LIMIT}
+CFLAGS+=$(SACFLAGS) -I../.. -I${.CURDIR}/../libsa -I${S}/stand/boot
diff --git a/sys/arch/hppa/stand/cdboot/cdboot.c b/sys/arch/hppa/stand/cdboot/cdboot.c
new file mode 100644
index 00000000000..4855343fcd7
--- /dev/null
+++ b/sys/arch/hppa/stand/cdboot/cdboot.c
@@ -0,0 +1,54 @@
+/* $OpenBSD: cdboot.c,v 1.1 2003/03/28 22:42:26 mickey Exp $ */
+
+/*
+ * Copyright (c) 2003 Michael Shalayeff
+ * 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 Michael Shalayeff.
+ * 4. The name of the author 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 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 MIND, 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 <sys/param.h>
+#include <sys/reboot.h>
+#include <sys/stat.h>
+#include <libsa.h>
+
+char kernel[] = "/bsd";
+
+extern const char version[];
+
+void
+boot(bootdev)
+ dev_t bootdev;
+{
+ machdep();
+
+ printf(">> OpenBSD/" MACHINE " BOOT %s\n"
+ "booting %s: ", version, kernel);
+
+ exec(kernel, (void *)DEFAULT_KERNEL_ADDRESS, 0);
+}
diff --git a/sys/arch/hppa/stand/cdboot/conf.c b/sys/arch/hppa/stand/cdboot/conf.c
new file mode 100644
index 00000000000..cf96b131013
--- /dev/null
+++ b/sys/arch/hppa/stand/cdboot/conf.c
@@ -0,0 +1,57 @@
+/* $OpenBSD: conf.c,v 1.1 2003/03/28 22:42:26 mickey Exp $ */
+
+/*
+ * Copyright (c) 2003 Michael Shalayeff
+ * 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 Michael Shalayeff.
+ * 4. The name of the author 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 MIND,
+ * 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 <sys/types.h>
+#include <libsa.h>
+#include <lib/libsa/cd9660.h>
+#include <dev/cons.h>
+
+const char version[] = "0.1";
+int debug = 0;
+
+struct fs_ops file_system[] = {
+ { cd9660_open, cd9660_close, cd9660_read, cd9660_write, cd9660_seek,
+ cd9660_stat, cd9660_readdir },
+};
+int nfsys = NENTS(file_system);
+
+struct devsw devsw[] = {
+ { "dk", iodcstrategy, dkopen, dkclose, noioctl },
+};
+int ndevs = NENTS(devsw);
+
+struct consdev constab[] = {
+ { ite_probe, ite_init, ite_getc, ite_putc },
+ { NULL }
+};
+struct consdev *cn_tab;
+
diff --git a/sys/arch/hppa/stand/cdboot/ld.script b/sys/arch/hppa/stand/cdboot/ld.script
new file mode 100644
index 00000000000..398046276ba
--- /dev/null
+++ b/sys/arch/hppa/stand/cdboot/ld.script
@@ -0,0 +1,49 @@
+/* $OpenBSD: ld.script,v 1.1 2003/03/28 22:42:26 mickey Exp $ */
+
+OUTPUT_FORMAT("elf32-hppa")
+OUTPUT_ARCH(hppa)
+ENTRY(begin)
+
+SECTIONS {
+
+ /* Read-only sections, merged into text segment: */
+ . = + SIZEOF_HEADERS;
+ .text : {
+ *(.text)
+ *(.text.*)
+ *(.rodata)
+ *(.rodata1)
+ *($CODE$)
+ etext = .;
+ } = 0x08000240
+
+ /* Read-write sections, merged into data segment: */
+ .data : {
+ $global$ = .;
+ *(.data)
+ *(.data1)
+ *(.sdata)
+ *(.sdata2)
+ *(.dynamic)
+ CONSTRUCTORS
+ edata = ABSOLUTE(.);
+ } = 0
+
+ .bss : {
+ __bss_start = .;
+ *(.dynbss)
+ *(.bss)
+ *(.sbss)
+ *(.scommon)
+ *(COMMON)
+ end = ABSOLUTE(.);
+ __bss_end = .;
+ }
+
+ /* don't need an unwind in the boot, unless we'll have a boot-ddb (; */
+ /DISCARD/ :
+ {
+ *(.PARISC.unwind)
+ }
+}
+