summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>1999-09-09 21:25:14 +0000
committerMarc Espie <espie@cvs.openbsd.org>1999-09-09 21:25:14 +0000
commit44388a65896e52e1b388bd02002993fb57b40475 (patch)
treea8fce4b224d56604d917bf67b9f0a9b6163daf41
parentb6b1418f458ab26e07f972d5def4034602674bd9 (diff)
Put the loadbsd amigaos binary into our repository to ease
make release. Corresponding wrapper. New loadbsd.8 man page. New binary itself (gcc 2.95.1 runs under amigaos now)
-rw-r--r--sys/arch/amiga/stand/loadbsd/Makefile9
-rw-r--r--sys/arch/amiga/stand/loadbsd/Makefile.bsd-wrapper15
-rw-r--r--sys/arch/amiga/stand/loadbsd/loadbsd.8155
-rw-r--r--sys/arch/amiga/stand/loadbsd/loadbsd.c9
-rw-r--r--sys/arch/amiga/stand/loadbsd/loadbsd.gz.uu247
5 files changed, 428 insertions, 7 deletions
diff --git a/sys/arch/amiga/stand/loadbsd/Makefile b/sys/arch/amiga/stand/loadbsd/Makefile
index dfa5fd6e802..bf93cb95b8c 100644
--- a/sys/arch/amiga/stand/loadbsd/Makefile
+++ b/sys/arch/amiga/stand/loadbsd/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.3 1998/08/13 21:08:08 espie Exp $
+# $OpenBSD: Makefile,v 1.4 1999/09/09 21:25:13 espie Exp $
CC = gcc
CFLAGS = -m68030 -Wall -O3 -fomit-frame-pointer -D__progname=program_name -msmall-code -resident
@@ -11,7 +11,7 @@ PROGS=loadbsd loadbsd.ixemul
LIBS =
LDFLAGS=-s
-all: $(PROGS)
+all: $(PROGS) distrib
loadbsd: $(OBJS1)
$(CC) $(CFLAGS) $(LDFLAGS) -noixemul -o loadbsd $(OBJS1) $(LIBS)
@@ -19,5 +19,10 @@ loadbsd: $(OBJS1)
loadbsd.ixemul: $(OBJS2)
$(CC) $(CFLAGS) $(LDFLAGS) -o loadbsd.ixemul $(OBJS2) $(LIBS)
+distrib: loadbsd
+ gzip -c loadbsd >loadbsd.gz
+ echo loadbsd built on `date` with gcc `gcc -dumpversion` >loadbsd.gz.uu
+ uuencode loadbsd.gz loadbsd.gz >>loadbsd.gz.uu
+
clean:
-rm $(OBJS1) $(OBJS2) $(PROGS)
diff --git a/sys/arch/amiga/stand/loadbsd/Makefile.bsd-wrapper b/sys/arch/amiga/stand/loadbsd/Makefile.bsd-wrapper
new file mode 100644
index 00000000000..6782d8d477e
--- /dev/null
+++ b/sys/arch/amiga/stand/loadbsd/Makefile.bsd-wrapper
@@ -0,0 +1,15 @@
+# $OpenBSD: Makefile.bsd-wrapper,v 1.1 1999/09/09 21:25:13 espie Exp $
+
+all: loadbsd
+
+loadbsd: loadbsd.gz
+ zcat ${.ALLSRC} >$@
+
+loadbsd.gz: loadbsd.gz.uu
+ uudecode ${.ALLSRC}
+
+CLEANFILES=loadbsd loadbsd.gz
+
+MAN=loadbsd.8
+
+.include <bsd.prog.mk>
diff --git a/sys/arch/amiga/stand/loadbsd/loadbsd.8 b/sys/arch/amiga/stand/loadbsd/loadbsd.8
new file mode 100644
index 00000000000..19cd2f7acb0
--- /dev/null
+++ b/sys/arch/amiga/stand/loadbsd/loadbsd.8
@@ -0,0 +1,155 @@
+.\" $OpenBSD: loadbsd.8,v 1.1 1999/09/09 21:25:13 espie Exp $
+.\" Copyright (c) 1999 Marc Espie
+.\"
+.\" 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.
+.Dd September 9, 1999
+.Dt LOADBSD 1
+.Os
+.Sh NAME
+.Nm loadbsd
+.Nd load OpenBSD from AmigaOS
+.Sh SYNOPSIS
+.Nm
+.Op Fl abchkpstADSVZ
+.Op Fl C Ar machine
+.Op Fl m Ar mem
+.Op Fl n Ar flags
+.Op Fl I Ar sync-inhibit
+.Ar file
+.Sh DESCRIPTION
+The
+.Nm
+utility loads the
+.Os
+kernel from
+.Ar file
+under AmigaOS, and starts
+.Ox .
+.Nm
+only runs under AmigaOS 2.0 or better,
+but it no longer needs ixemul.
+.Pp
+.Nm
+supports multiple root devices. By default,
+.Nm
+boots to single-user mode, without symbols.
+.Pp
+Options are as follows:
+.Bl -tag -width Ds
+.It Fl a
+Boot up to multiuser mode.
+.It Fl A
+Use AGA display mode, if available.
+.It Fl b
+Prompt for root device.
+.It Fl C Ar machine
+Explicitly set machine type (e.g., 3000). Set
+.Ar machine
+to 32000+N for DraCo revision N.
+Normally,
+.Nm
+guesses the machine type itself, but there are some cases
+where it guesses wrong, thanks to AmigaOS lame design.
+.It Fl c
+User configuration mode.
+.It Fl D
+Enter ddb on startup.
+.It Fl h
+Display help.
+.It Fl I Ar sync-inhibit
+Inhibit sync-negotiation.
+.Ar sync-inhibit
+is bit-encoded targets.
+.It Fl k
+Reserve the first 4M of fast mem.
+.\" Try to find out what this is used for.
+.It Fl m Ar mem
+Tweak available memory to find the minimum amount necessary to use a
+kernel. Set fastmem size to
+.Ar mem
+in Kbytes.
+.It Fl n Ar flags
+Multiple non-contiguous memory mode.
+Disable if
+.Ar flags
+is 0. Set to two segments if
+.Ar flags
+is 1. Set to all avail segments if
+.Ar flags
+is 2.
+.\" Check what 3 means (same as 2 ?)
+.It Fl p
+Use highest priority fastmem segement instead of the largest
+segment. The higher priority segment is usually faster
+(i.e. 32 bit memory), but some people have smaller amounts
+of 32 bit memory.
+.It Fl s
+Boot up in single user mode.
+.It Fl S
+Include kernel symbol table.
+.It Fl t
+Test configuration. Check the machine, and loads the kernel,
+but stop without actually starting
+.Os .
+.It Fl V
+Print version.
+.It Fl Z
+Force kernel to chipmem.
+.El
+.Sh DIAGNOSTICS
+.Bl -diag
+.It "cpu not supported"
+.Nm
+doesn't run without a MMU, nor with a 68851. So 68000, 68010 and 68020 don't
+work.
+.It "failed malloc"
+.Nm
+couldn't find a contiguous chunk of memory large enough for the kernel.
+The required size is displayed in bytes.
+If you have enough memory, reboot to remove fragmentation problems.
+.It "lseek for symbols"
+You asked for symbols with
+.Fl S
+but
+.Nm
+doesn't find any. Probably a striped kernel.
+.It "newer loadbsd required"
+.Nm
+can't load all kernels, because it needs to pass parameters to the
+kernel at startup, and the interface may change.
+.It "unable to read kernel image"
+The
+.Ar file
+is not a valid a.out executable. The header matches, but the contents
+are wrong. Might come from a transfert problem, or an attempt to cross-compile
+kernels on a different endian machines. The toolchain doesn't support cross-endianess
+up to
+.Ox 2.5
+included.
+.It "unknown binary"
+The file
+.Ar file
+is not a kernel image. Note that
+.Nm
+currently cannot read gzipped kernels.
+.\" Not all diagnostics are documented,
+.\" but the remaining ones come from arcane options,
+.\" so the user is expected to refer to the source.
+.El
+.Sh SEE ALSO
+.Xr ddb 4
+.Sh HISTORY
+.Nm
+was originally developped for
+.Nx .
+ixemul requirement removal and poolmem recognition features
+were added for
+.Ox
+by Marc Espie.
diff --git a/sys/arch/amiga/stand/loadbsd/loadbsd.c b/sys/arch/amiga/stand/loadbsd/loadbsd.c
index 4983d13bfb0..21b4d7d1738 100644
--- a/sys/arch/amiga/stand/loadbsd/loadbsd.c
+++ b/sys/arch/amiga/stand/loadbsd/loadbsd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: loadbsd.c,v 1.12 1998/08/13 21:08:15 espie Exp $ */
+/* $OpenBSD: loadbsd.c,v 1.13 1999/09/09 21:25:13 espie Exp $ */
/* $NetBSD: loadbsd.c,v 1.22 1996/10/13 13:39:52 is Exp $ */
/*
@@ -80,9 +80,6 @@ void warnx __P((const char *, ...));
#endif
extern const char _version[];
-extern void open_libraries(void);
-extern void ensure_no_poolmem(void);
-
/*
* Version history:
* 1.x Kernel startup interface version check.
@@ -171,7 +168,9 @@ void startit __P((void *, u_long, u_long, void *, u_long, u_long, int, void *,
int, int, u_long, u_long, int));
void startit_end __P((void));
-extern void ensure_no_poolmem(void);
+extern void open_libraries __P((void));
+extern void ensure_no_poolmem __P((void));
+
extern struct ExecBase *SysBase;
extern char *optarg;
extern int optind;
diff --git a/sys/arch/amiga/stand/loadbsd/loadbsd.gz.uu b/sys/arch/amiga/stand/loadbsd/loadbsd.gz.uu
new file mode 100644
index 00000000000..8e86df78b1c
--- /dev/null
+++ b/sys/arch/amiga/stand/loadbsd/loadbsd.gz.uu
@@ -0,0 +1,247 @@
+loadbsd built on Thu Sep 9 11:42:57 GMT 1999 with gcc 2.95.1
+begin 755 loadbsd.gz
+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
+=Z&^`_D8>4_C8<B/^/^XMQ+B^^[\`VQ&D:SA&```!
+`
+end