summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>1995-11-28 19:36:20 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>1995-11-28 19:36:20 +0000
commite566f88d923ebad2a2c1a680f198c67980486f5d (patch)
tree4bf2ee4dda94f17330139228badd8726910937b7
parent54f407f25c3a6d6649d968d11456183645a9898a (diff)
let loadbsd define sync scsi operation
-rw-r--r--sys/arch/amiga/amiga/amiga_init.c15
-rw-r--r--sys/arch/amiga/amiga/locore.s11
-rw-r--r--sys/arch/amiga/conf/INSTALL221
-rw-r--r--sys/arch/amiga/dev/sbic.c25
-rw-r--r--sys/arch/amiga/dev/sbicvar.h4
-rw-r--r--sys/arch/amiga/dev/sfas.c11
-rw-r--r--sys/arch/amiga/dev/siop.c20
-rw-r--r--sys/arch/amiga/stand/loadbsd/loadbsd.c47
8 files changed, 329 insertions, 25 deletions
diff --git a/sys/arch/amiga/amiga/amiga_init.c b/sys/arch/amiga/amiga/amiga_init.c
index 336da5a5b72..8eb391c37ea 100644
--- a/sys/arch/amiga/amiga/amiga_init.c
+++ b/sys/arch/amiga/amiga/amiga_init.c
@@ -1,4 +1,4 @@
-/* $NetBSD: amiga_init.c,v 1.33.2.1 1995/11/10 16:09:54 chopps Exp $ */
+/* $NetBSD: amiga_init.c,v 1.33.2.2 1995/11/24 07:51:07 chopps Exp $ */
/*
* Copyright (c) 1994 Michael L. Hitch
@@ -102,6 +102,9 @@ u_long boot_fphystart, boot_fphysize, boot_cphysize;
static u_long boot_flags;
+u_long scsi_nosync;
+int shift_nosync;
+
void *
chipmem_steal(amount)
long amount;
@@ -158,11 +161,12 @@ alloc_z2mem(amount)
*/
void
-start_c(id, fphystart, fphysize, cphysize, esym_addr, flags)
+start_c(id, fphystart, fphysize, cphysize, esym_addr, flags, inh_sync)
int id;
u_int fphystart, fphysize, cphysize;
char *esym_addr;
u_int flags;
+ u_long inh_sync;
{
extern char end[];
extern void etext();
@@ -191,6 +195,7 @@ start_c(id, fphystart, fphysize, cphysize, esym_addr, flags)
if (flags & (3 << 1))
noncontig_enable = (flags >> 1) & 3;
#endif
+ scsi_nosync = inh_sync;
/*
* the kernel ends at end(), plus the cfdev structures we placed
@@ -742,6 +747,10 @@ kernel_reload_write(uio)
* XXX - should check that image will fit in CHIP memory
* XXX return an error if it doesn't
*/
+ if ((kernel_text_size + kernel_exec.a_data +
+ kernel_exec.a_bss + kernel_symbol_size +
+ kernel_image_magic_size()) > boot_cphysize)
+ return (EFBIG);
kernel_image = malloc(kernel_text_size + kernel_exec.a_data
+ kernel_exec.a_bss
+ kernel_symbol_size
@@ -812,7 +821,7 @@ kernel_reload_write(uio)
kernel_load_ofs + kernel_image_magic_size(),
kernel_exec.a_entry, boot_fphystart, boot_fphysize,
boot_cphysize, kernel_symbol_esym, eclockfreq,
- boot_flags);
+ boot_flags, scsi_nosync);
/*NOTREACHED*/
/*
* XXX - kernel_reload() needs to verify that the
diff --git a/sys/arch/amiga/amiga/locore.s b/sys/arch/amiga/amiga/locore.s
index c2788ce5626..606d55ba69a 100644
--- a/sys/arch/amiga/amiga/locore.s
+++ b/sys/arch/amiga/amiga/locore.s
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.46 1995/10/09 04:33:52 chopps Exp $ */
+/* $NetBSD: locore.s,v 1.46.2.1 1995/11/24 07:51:10 chopps Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -725,6 +725,7 @@ start:
| save the passed parameters. `prepass' them on the stack for
| later catch by _start_c
+ movl a2,sp@- | pass sync inhibit flags
movl d3,sp@- | pass AGA mode
movl a4,sp@- | pass address of _esym
movl d1,sp@- | pass chipmem-size
@@ -776,7 +777,7 @@ Lstartnot040:
/* let the C function initialize everything and enable the MMU */
jsr _start_c
- addl #16,sp
+ addl #28,sp
/* set kernel stack, user SP, and initial pcb */
movl _proc0paddr,a1 | proc0 kernel stack
@@ -1915,14 +1916,15 @@ Lreload1:
movel sp@(28),a4 | esym
movel sp@(32),d4 | eclockfreq
movel sp@(36),d3 | AGA mode
+ movel sp@(40),a2 | sync inhibit flags
movel sp@(12),a6 | find entrypoint (a6)
- movel sp@(4),a2 | copy kernel to low chip memory
+ movel sp@(4),a1 | copy kernel to low chip memory
movel sp@(8),d2
movl _CHIPMEMADDR,a3
Lreload_copy:
- movel a2@+,a3@+
+ movel a1@+,a3@+
subl #4,d2
jcc Lreload_copy
@@ -1945,7 +1947,6 @@ Lreload2:
moveq #0,d2 | clear unused registers
moveq #0,d6
subl a1,a1
- subl a2,a2
subl a3,a3
subl a5,a5
jmp a6@ | start new kernel
diff --git a/sys/arch/amiga/conf/INSTALL b/sys/arch/amiga/conf/INSTALL
new file mode 100644
index 00000000000..00f6be5cc5e
--- /dev/null
+++ b/sys/arch/amiga/conf/INSTALL
@@ -0,0 +1,221 @@
+# $NetBSD: INSTALL,v 1.1.2.1 1995/11/24 18:56:13 chopps Exp $
+
+#
+# GENERIC AMIGA
+#
+# This configuration file contains all possible options
+#
+
+include "std.amiga"
+
+maxusers 8
+options TIMEZONE=300, DST=1
+
+#
+# processors this kernel should support
+#
+options "M68040" # support for 040
+options FPSP # MC68040 floating point support
+options "M68030" # support for 030
+options "M68020" # support for 020/851
+options FPCOPROC # Support for MC6888[12] (Required)
+
+options SWAPPAGER # Pager for processes (Required)
+options VNODEPAGER # Pager for vnodes (Required)
+options DEVPAGER # Pager for devices (Required)
+
+#
+# Networking options
+#
+options INET # IP networking support (Required)
+#options ISO # ISO Networking support
+#options TPIP # ARGO TP networking support
+#options CCITT # CCITT X.25
+#options NS # Xerox XNS
+#options EON # ISO CLNL over IP
+#options GATEWAY # Packet forwarding
+#options DIRECTED_BROADCAST # Broadcast across subnets
+#options NSIP # XNS over IP
+
+#
+# File system related options
+#
+options QUOTA # Disk quotas for local disks
+options NFSSERVER # Network File System server side code
+options NFSCLIENT # Network File System client side code
+
+#
+# File systems
+#
+options FFS # Berkeley fast file system
+options MFS # Memory based filesystem
+options PROCFS # Process filesystem
+options KERNFS # Kernel parameter filesystem (Recommended)
+options FDESC # /dev/fd filesystem
+options NULLFS # Loopback filesystem
+options FIFO # FIFO operations on vnodes (Recommended)
+options ADOSFS # AmigaDOS file system
+options "CD9660" # ISO 9660 file system, with Rock Ridge
+#options PORTAL # Portal filesystem
+#options MSDOSFS # MS-DOS filesystem
+
+
+#
+# Compatability options for various existing systems
+#
+options "COMPAT_10" # compatability with older NetBSD release
+options "COMPAT_09" # compatability with older NetBSD release
+options "COMPAT_43" # 4.3 BSD compatible system calls
+#options COMPAT_SUNOS # Support to run Sun (m68k) executables
+options "TCP_COMPAT_42" # Use 4.2 BSD style TCP
+options "COMPAT_NOMID" # allow nonvalid machine id executables
+#options COMPAT_HPUX # HP300 compatability
+
+#
+# Support for System V IPC facilities.
+#
+options SYSVSHM # System V-like shared memory
+options SYSVMSG # System V-like messages
+options SYSVSEM # System V-like semaphores
+
+#
+# Support for various kernel options
+#
+options GENERIC # Mini-root boot support
+options LKM # Loadable kernel modules
+options KTRACE # Add kernel tracing system call
+options DIAGNOSTIC # Add additional error checking code
+options "NKMEMCLUSTERS=256" # Size of kernel malloc area
+
+#
+# Misc. debuging options
+#
+options PANICWAIT # Require keystroke to dump/reboot
+#options DEBUG # Add debugging statements
+#options DDB # Kernel debugger
+#options SYSCALL_DEBUG # debug all syscalls.
+#options SCSIDEBUG # Add SCSI debugging statements
+#options KGDB # Kernel debugger (KGDB) support
+#options PANICBUTTON # Forced crash via keypress (???)
+
+#
+# Amiga specific options
+#
+options MACHINE_NONCONTIG # Non-contiguous memory support
+
+options RETINACONSOLE # enable code to allow retina to be console
+options ULOWELLCONSOLE # enable code to allow a2410 to be console
+options CL5426CONSOLE # Cirrus console
+
+options GRF_ECS # Enhanced Chip Set
+options GRF_NTSC # NTSC
+options GRF_PAL # PAL
+options "GRF_A2024" # Support for the A2024
+options GRF_AGA # AGA Chip Set
+options GRF_CL5426 # Cirrus board support
+#options "KFONT_8X11" # 8x11 font
+
+# This is how you would tell the kernel the A2410 oscillator frequencies:
+# The used frequencies are the defaults, and don't need option setting
+#options "ULOWELL_OSC1=36000000"
+#options "ULOWELL_OSC2=66667000"
+
+# This is how you specify the blitting speed, higher values may speed up blits
+# a littel bit. If you raise this value too much some trash may appear.
+# the commented version is the default.
+#options RH_MEMCLK 61000000
+# this option enables the 64 bit sprite which doesn't seems to be work
+# for quite a few people. E.g. The cursor sprite will turn to a block
+# when moved to the top of the screen in X.
+#options RH_64BIT_SPRITE
+# enables fast scroll code appears to now work on 040 systems.
+#options RETINA_SPEED_HACK
+
+grfcc0 at mainbus0 # custom chips
+grfrt0 at zbus0 # retina II
+grfrh0 at zbus0 # retina III
+grfcl* at zbus0 # Picasso II/Piccalo/Spectrum
+grful0 at zbus0 # A2410
+grfcv0 at zbus0 # CyverVision 64
+
+grf0 at grfcc0
+grf1 at grfrt0
+grf2 at grfrh0
+grf3 at grfcl?
+grf4 at grful0
+grf5 at grfcv0
+
+ite0 at grf0 # terminal emulators for grf's
+ite1 at grf1 # terminal emulators for grf's
+ite2 at grf2 # terminal emulators for grf's
+ite3 at grf3 # terminal emulators for grf's
+ite4 at grf4 # terminal emulators for grf's
+
+msc0 at zbus0 # A2232 MSC multiport serial.
+mfc0 at zbus0 # MultiFaceCard I/O board
+mfcs0 at mfc0 unit 0 # MFC serial
+mfcs1 at mfc0 unit 1 # MFC serial
+#mfcp0 at mfc0 unit 0 # MFC parallel [not available yet]
+#mfc1 at zbus0 # MultiFaceCard 2nd I/O board
+#mfcs2 at mfc1 unit 0
+#mfcs3 at mfc1 unit 1
+#mfcp1 at mfc1 unit 0
+
+le0 at zbus0 # Lance ethernet.
+ed0 at zbus0 # dp8390 ethernet
+es0 at zbus0 # SMC 91C90 ethernet
+qn0 at zbus0 # quicknet ethernet
+ae0 at zbus0 # Ariadne ethernet
+bah0 at zbus0 # C= arcnet
+
+
+# scsi stuff, all possible
+gvpbus* at zbus0
+gtsc0 at gvpbus? # GVP series II scsi
+ahsc0 at mainbus0 # A3000 scsi
+atzsc0 at zbus0
+wstsc0 at zbus0 # Wordsync II scsi
+ivsc0 at zbus0 # IVS scsi
+mlhsc0 at zbus0 # Hacker scsi
+otgsc0 at zbus0 # 12 gauge scsi
+zssc0 at zbus0 # Zeus scsi
+mgnsc0 at zbus0 # Magnum scsi
+wesc0 at zbus0 # Warp Engine scsi
+idesc0 at mainbus0 # A4000 & A1200 IDE
+afsc0 at zbus0 # A4091 scsi
+aftsc0 at mainbus0 # A4000T scsi
+flsc0 at zbus0 # FastlaneZ3 scsi
+bzsc0 at zbus0 # Blizzard 1230 scsi
+
+scsibus* at gtsc0
+scsibus* at ahsc0
+scsibus* at atzsc0
+scsibus* at wstsc0
+scsibus* at ivsc0
+scsibus* at mlhsc0
+scsibus* at otgsc0
+scsibus* at zssc0
+scsibus* at mgnsc0
+scsibus* at wesc0
+scsibus* at idesc0
+scsibus* at afsc0
+scsibus* at aftsc0
+scsibus* at flsc0
+scsibus* at bzsc0
+
+# each hard drive from low target to high
+# will configure to the next available sd unit number
+sd* at scsibus? target ? lun ? # scsi disks
+
+st* at scsibus? target ? lun ? # scsi tapes
+cd* at scsibus? target ? lun ? # scsi cd's
+
+pseudo-device sl # slip
+pseudo-device ppp # ppp
+pseudo-device view 10 # views
+pseudo-device pty 16 # pseudo terminals
+pseudo-device loop # network loopback
+#pseudo-device bpfilter 2 # berkeley packet filters
+#pseudo-device tun 2
+
+config netbsd swap on generic
diff --git a/sys/arch/amiga/dev/sbic.c b/sys/arch/amiga/dev/sbic.c
index 149a484caea..ff84f213d92 100644
--- a/sys/arch/amiga/dev/sbic.c
+++ b/sys/arch/amiga/dev/sbic.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sbic.c,v 1.19 1995/10/05 12:36:07 chopps Exp $ */
+/* $NetBSD: sbic.c,v 1.19.2.1 1995/11/24 07:51:17 chopps Exp $ */
/*
* Copyright (c) 1994 Christian E. Hopps
@@ -125,7 +125,7 @@ int sbic_init_wait = SBIC_INIT_WAIT;
* was broken before.. now if you want this you get it for all drives
* on sbic controllers.
*/
-int sbic_inhibit_sync = 0;
+u_char sbic_inhibit_sync[8];
int sbic_enable_reselect = 1;
int sbic_clock_override = 0;
int sbic_no_dma = 0;
@@ -836,6 +836,10 @@ sbicinit(dev)
u_int my_id, i, s;
u_char csr;
struct sbic_acb *acb;
+ u_int inhibit_sync;
+
+ extern u_long scsi_nosync;
+ extern int shift_nosync;
regs = dev->sc_sbicp;
@@ -862,6 +866,20 @@ sbicinit(dev)
dev->sc_flags |= SBICF_ALIVE;
dev->sc_flags &= ~SBICF_SELECTED;
+ /* initialize inhibit array */
+ if (scsi_nosync) {
+ inhibit_sync = (scsi_nosync >> shift_nosync) & 0xff;
+ shift_nosync += 8;
+#ifdef DEBUG
+ if (inhibit_sync)
+ printf("%s: Inhibiting synchronous transfer %02x\n",
+ dev->sc_dev.dv_xname, inhibit_sync);
+#endif
+ for (i = 0; i < 8; ++i)
+ if (inhibit_sync & (1 << i))
+ sbic_inhibit_sync[i] = 1;
+ }
+
sbicreset(dev);
}
@@ -1093,7 +1111,8 @@ sbicselectbus(dev, regs, target, lun, our_addr)
* handle drives that don't want to be asked
* whether to go sync at all.
*/
- if (sbic_inhibit_sync && dev->sc_sync[id].state == SYNC_START) {
+ if (sbic_inhibit_sync[id]
+ && dev->sc_sync[id].state == SYNC_START) {
#ifdef DEBUG
if (sync_debug)
printf("Forcing target %d asynchronous.\n", id);
diff --git a/sys/arch/amiga/dev/sbicvar.h b/sys/arch/amiga/dev/sbicvar.h
index b8e4b213389..dc29ff114f8 100644
--- a/sys/arch/amiga/dev/sbicvar.h
+++ b/sys/arch/amiga/dev/sbicvar.h
@@ -1,4 +1,4 @@
-/* $NetBSD: sbicvar.h,v 1.9 1995/09/04 13:04:48 chopps Exp $ */
+/* $NetBSD: sbicvar.h,v 1.9.2.1 1995/11/24 07:51:20 chopps Exp $ */
/*
* Copyright (c) 1990 The Regents of the University of California.
@@ -162,7 +162,7 @@ struct sbic_softc {
#define DDB_FOLLOW 0x04
#define DDB_IO 0x08
#endif
-extern int sbic_inhibit_sync;
+extern u_char sbic_inhibit_sync[8];
extern int sbic_no_dma;
extern int sbic_clock_override;
diff --git a/sys/arch/amiga/dev/sfas.c b/sys/arch/amiga/dev/sfas.c
index 62101bfb473..2c89c1ea828 100644
--- a/sys/arch/amiga/dev/sfas.c
+++ b/sys/arch/amiga/dev/sfas.c
@@ -128,6 +128,9 @@ sfasinitialize(dev)
sfas_regmap_p rp;
u_int *pte, page;
int i;
+ u_int inhibit_sync;
+ extern u_long scsi_nosync;
+ extern int shift_nosync;
dev->sc_led_status = 0;
@@ -175,6 +178,14 @@ sfasinitialize(dev)
dev->sc_flags = 0;
+ if (scsi_nosync) {
+ inhibit_sync = (scsi_nosync >> shift_nosync) & 0xff;
+ shift_nosync += 8;
+ for (i = 0; i < 8; ++i)
+ if (inhibit_sync & (1 << i))
+ sfas_inhibit_sync[i] = 1;
+ }
+
for(i=0; i<8; i++)
sfas_init_nexus(dev, &dev->sc_nexus[i]);
diff --git a/sys/arch/amiga/dev/siop.c b/sys/arch/amiga/dev/siop.c
index 760a5d073e6..c30b9cfb1ec 100644
--- a/sys/arch/amiga/dev/siop.c
+++ b/sys/arch/amiga/dev/siop.c
@@ -1,4 +1,4 @@
-/* $NetBSD: siop.c,v 1.25 1995/09/29 13:52:04 chopps Exp $ */
+/* $NetBSD: siop.c,v 1.25.2.1 1995/11/24 07:51:23 chopps Exp $ */
/*
* Copyright (c) 1994 Michael L. Hitch
@@ -520,6 +520,11 @@ void
siopinitialize(sc)
struct siop_softc *sc;
{
+ int i;
+ u_int inhibit_sync;
+ extern u_long scsi_nosync;
+ extern int shift_nosync;
+
/*
* Need to check that scripts is on a long word boundary
* and that DS is on a long word boundary.
@@ -547,6 +552,19 @@ siopinitialize(sc)
sc->sc_tcp[0] = 3000 / sc->sc_clock_freq;
}
+ if (scsi_nosync) {
+ inhibit_sync = (scsi_nosync >> shift_nosync) & 0xff;
+ shift_nosync += 8;
+#ifdef DEBUG
+ if (inhibit_sync)
+ printf("%s: Inhibiting synchronous transfer %02x\n",
+ sc->sc_dev.dv_xname, inhibit_sync);
+#endif
+ for (i = 0; i < 8; ++i)
+ if (inhibit_sync & (1 << i))
+ siop_inhibit_sync[i] = 1;
+ }
+
siopreset (sc);
}
diff --git a/sys/arch/amiga/stand/loadbsd/loadbsd.c b/sys/arch/amiga/stand/loadbsd/loadbsd.c
index 6f08697d505..38a016d91e3 100644
--- a/sys/arch/amiga/stand/loadbsd/loadbsd.c
+++ b/sys/arch/amiga/stand/loadbsd/loadbsd.c
@@ -1,4 +1,4 @@
-/* $NetBSD: loadbsd.c,v 1.16.2.1 1995/10/20 11:01:16 chopps Exp $ */
+/* $NetBSD: loadbsd.c,v 1.16.2.2 1995/11/24 07:51:27 chopps Exp $ */
/*
* Copyright (c) 1994 Michael L. Hitch
@@ -98,15 +98,21 @@ void warnx __P((const char *, ...));
* Add -n flag & option for non-contiguous memory.
* 01/28/95 - Corrected -n on usage & help messages.
* 2.11 03/12/95 - Check kernel size against chip memory size.
+ * 2.12 11/11/95 - Add -I option to inhibit synchronous transfer
+ * 11/12/95 - New kernel parameter version - to support passing
+ * a kernel parameter data structure and support moving kernel
+ * image to fastmem rather than chipmem.
*/
-static const char _version[] = "$VER: LoadBSD 2.11 (12.3.95)";
+static const char _version[] = "$VER: LoadBSD 2.12 (12.11.95)";
/*
* Kernel parameter passing version
* 1: first version of loadbsd
* 2: needs esym location passed in a4
+ * 3: allow kernel image in fastmem rather than chipmem, and
+ * passing kernel parameters in a data structure
*/
-#define KERNEL_PARAMETER_VERSION 2
+#define KERNEL_PARAMETER_VERSION 3
#define MAXMEMSEG 16
struct boot_memlist {
@@ -139,6 +145,7 @@ int p_flag;
int t_flag;
int reqmemsz;
int S_flag;
+u_long I_flag;
u_long cpuid;
long eclock_freq;
long amiga_flags;
@@ -173,7 +180,7 @@ main(argc, argv)
if ((ExpansionBase=(void *)OpenLibrary(EXPANSIONNAME, 0)) == NULL)
err(20, "can't open expansion library");
- while ((ch = getopt(argc, argv, "aAbc:Dhkm:n:ptSV")) != EOF) {
+ while ((ch = getopt(argc, argv, "aAbc:DhI:km:n:ptSV")) != EOF) {
switch (ch) {
case 'k':
k_flag = 1;
@@ -216,6 +223,9 @@ main(argc, argv)
else
err(20, "-n option must be 0, 1, 2, or 3");
break;
+ case 'I':
+ I_flag = strtoul(optarg, NULL, 16);
+ break;
case 'h':
verbose_usage();
default:
@@ -260,8 +270,11 @@ main(argc, argv)
ksize += e.a_syms + 4 + stringsz;
}
- if (ksize >= cmemsz)
+ if (ksize >= cmemsz) {
+ printf("Kernel size %d exceeds Chip Memory of %d\n",
+ ksize, cmemsz);
err(20, "Insufficient Chip Memory for kernel");
+ }
kp = (u_char *)malloc(ksize);
if (t_flag) {
for (i = 0; i < memlist.m_nseg; ++i) {
@@ -272,6 +285,7 @@ main(argc, argv)
memlist.m_seg[i].ms_attrib,
memlist.m_seg[i].ms_pri);
}
+ printf("kernel size: %d\n", ksize);
}
if (kp == NULL)
err(20, "failed malloc %d\n", ksize);
@@ -298,6 +312,15 @@ main(argc, argv)
kvers = (u_short *)(kp + e.a_entry - 2);
if (*kvers > KERNEL_PARAMETER_VERSION && *kvers != 0x4e73)
err(20, "newer loadbsd required: %d\n", *kvers);
+ if (*kvers > 2) {
+ printf("****************************************************\n");
+ printf("*** Notice: this kernel has features which require\n");
+ printf("*** a newer version of loadbsd. To allow the use of\n");
+ printf("*** any newer features or capabilities, you should\n");
+ printf("*** update your copy of loadbsd\n");
+ printf("****************************************************\n");
+ sleep(3); /* even more time to see that message */
+ }
if ((cpuid & AFB_68020) == 0)
err(20, "cpu not supported");
/*
@@ -341,7 +364,7 @@ main(argc, argv)
*/
LoadView(NULL); /* Don't do this if AGA active? */
startit(kp, ksize, e.a_entry, fmem, fmemsz, cmemsz, boothowto, esym,
- cpuid, eclock_freq, amiga_flags);
+ cpuid, eclock_freq, amiga_flags, I_flag);
/*NOTREACHED*/
}
@@ -520,6 +543,7 @@ start_super:
| d5: AttnFlags (cpuid)
| d7: boothowto
| a4: esym location
+ | a2: Inhibit sync flags
| All other registers zeroed for possible future requirements.
lea pc@(_startit-.+2),sp | make sure we have a good stack ***
@@ -535,6 +559,7 @@ start_super:
movel a3@(36),d5 | cpuid
movel a3@(40),d4 | E clock frequency
movel a3@(44),d3 | Amiga flags
+ movel a3@(48),a2 | Inhibit sync flags
subl a5,a5 | target, load to 0
btst #3,(ABSEXECBASE)@(0x129) | AFB_68040,SysBase->AttnFlags
@@ -579,7 +604,6 @@ L0:
moveq #0,d2 | zero out unused registers
moveq #0,d6 | (might make future compatibility
movel d6,a1 | would have known contents)
- movel d6,a2
movel d6,a3
movel d6,a5
movel d6,a6
@@ -598,7 +622,7 @@ zero: .long 0
void
usage()
{
- fprintf(stderr, "usage: %s [-abhkptADSV] [-c machine] [-m mem] [-n mode] kernel\n",
+ fprintf(stderr, "usage: %s [-abhkptADSV] [-c machine] [-m mem] [-n mode] [-I sync-inhibit] kernel\n",
program_name);
exit(1);
}
@@ -614,10 +638,13 @@ SYNOPSIS
\t%s [-abhkptDSV] [-c machine] [-m mem] [-n flags] kernel
OPTIONS
\t-a Boot up to multiuser mode.
+\t-A Use AGA display mode, if available.
\t-b Ask for which root device.
\t Its possible to have multiple roots and choose between them.
\t-c Set machine type. [e.g 3000]
+\t-D Enter debugger
\t-h This help message.
+\t-I Inhibit sync negotiation. Option value is bit-encoded targets.
\t-k Reserve the first 4M of fast mem [Some one else
\t is going to have to answer what that it is used for].
\t-m Tweak amount of available memory, for finding minimum amount
@@ -629,12 +656,10 @@ OPTIONS
\t segment. The higher priority segment is usually faster
\t (i.e. 32 bit memory), but some people have smaller amounts
\t of 32 bit memory.
+\t-S Include kernel symbol table.
\t-t This is a *test* option. It prints out the memory
\t list information being passed to the kernel and also
\t exits without actually starting NetBSD.
-\t-S Include kernel symbol table.
-\t-D Enter debugger
-\t-A Use AGA display mode, if available.
\t-V Version of loadbsd program.
HISTORY
\tThis version supports Kernel version 720 +\n",