Commit graph

32288 commits

Author SHA1 Message Date
KATO Takenori 7344a7bb2e mp_machdep.c: Set a vector to boot code (PC-98).
locore.s: Tell the bios to warmboot next time (PC-98).
1998-10-10 13:37:16 +00:00
Eivind Eklund b41c848d46 Remove the description of EBADF (that's an implementation detail if I
ever saw one), and move the description of NULL behaviour out to a
'NOTES' section, with an extra note that programs should not rely up
on it.

Kinda-approve-by:	bde (by not replying to the mail with the diff)
1998-10-10 13:31:32 +00:00
Bruce Evans 38f12a6e7b Fixed searching for section "1aout" man pages. Section numbers must be
single digits or in the section list.
1998-10-10 13:11:39 +00:00
Bruce Evans 007b865605 Don't build or install ${MAN1}. It's just a copy of ${MAN1aout} and
installing it clobbers the elf ${MAN1}.  The MAN1 -> MAN1aout changes
actually work now.

Fixed order of MAN* and BINDIR.
1998-10-10 12:48:48 +00:00
KATO Takenori e313ef3368 PC-98 uses different boot code from IBM-PC. So, MACHINE is used
instead of MACHINE_ARCH.

Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1998-10-10 11:16:08 +00:00
Jordan K. Hubbard 07bf7f4a0c Quick commit to see if I can't fix Robert's i386/boot problem in one line.
If this doesn't work, we'll try something else.
1998-10-10 10:54:54 +00:00
KATO Takenori 160ba1c5c8 PC-98 doesn't have CMOS ram. 1998-10-10 10:36:12 +00:00
Peter Hawkins f40053daa9 PR: bin/8250
protect against buffer overruns in mail temporary files.
1998-10-10 09:58:20 +00:00
Jordan K. Hubbard d26687c44f Add missing newline to debugging output. 1998-10-10 09:43:44 +00:00
KATO Takenori ed68ba2cd0 PC-98 doesn't have CMOS ram. 1998-10-10 09:38:02 +00:00
David E. O'Brien 32a023dc3f Add GENERIC rev 1.124 changes 1998-10-10 09:25:12 +00:00
Jordan K. Hubbard 322a4708b8 Don't chain makes with &&; apparently this is evil for parallelism.
According to:	bde
1998-10-10 08:21:18 +00:00
Jordan K. Hubbard c81cfb05e0 Adjust for new MFS root code. 1998-10-10 08:15:38 +00:00
Jordan K. Hubbard cbe7e08892 Add entries for MFS which are consistent with the others, now that
Peter has made this more selectable.
1998-10-10 08:13:58 +00:00
Jordan K. Hubbard a33b93ff31 Allow more flexible use of MFS root.
Submitted by:	peter
1998-10-10 08:12:24 +00:00
Peter Wemm c9a5e21100 Attempt to work around the page fault in tulip_txput(). I've been running
this myself for ages, but wasn't able to get any feedback from the people
that I sent it to for testing.

Guy Helmer <ghelmer@scl.ameslab.gov> has given it a shot (before getting on
a plane, thanks!) and it appears to stop his reproducable page fault panic
in the testing he was able to do.
1998-10-10 02:44:53 +00:00
Peter Wemm 26deceba9c Display module type as well as module name when we find one preloaded. 1998-10-10 02:29:07 +00:00
Peter Wemm b24d73e14b rm *.so and *.ko in clean as well. 1998-10-10 01:00:56 +00:00
Warner Losh 19bed41a5d Fix conficts in probe:
o For bt and aha only probe the one I/O range if a specific I/O is specified
  in the config file.
o Don't even try to probe I/O ranges that have been seen already.
o If we conflict with an IRQ or DRQ, then fail the probe.

Requested by: bde, gibbs
Approved by: jkh
1998-10-10 00:44:12 +00:00
Peter Wemm 51f3fe7ab2 Use Mike Smith's linker module search path code.
Implement preloading in a fairly MI way, assuming the information is
prepared.
DDB interface helpers..  Provide some support for db_kld.c so that we
don't have to export too much detail.
Debugging and cosmetic nits left in from development..
The other half of the containing file hack so modules can associate
themselves with their "file".
1998-10-10 00:07:53 +00:00
Peter Wemm f3b0d44290 Keep track of the containing file for modules. This is a bit of a hack,
but I can't think of another (relatively) easy way of getting the info
since the boot-time initialization is not done immediately after "loading".
XXX module_register() gained an extra arg.  This might break the alpha
compile, if so, just add a zero to get the old behavior.
1998-10-10 00:03:07 +00:00
Peter Wemm e4f1a52f7a Updates for alignment rounding. XXX this is highly machine dependent and
should probably be moved to i386/i386/link_machdep.c (and the same for the
alpha).
Implement "deleting" a preloaded module by destroying it's tags. This is a
hack.  We cannot reuse the data, it's been destroyed by relocation,
statically initialized variables have been modified, etc.  Note that to
reclaim the load space is going to be more machine-dependent work.
Implement a relocate hook for machdep.c to call so that the physical
addresses get converted to the equivalent KVM addresses.
1998-10-09 23:59:01 +00:00
Peter Wemm de78ca7e63 Fully implement KLD and preloading.
- seperate unload for preloaded linker objects.
- Don't build a kernel object if running as an a.out kernel.
- extract the real kernel name rather than hardwiring "kernel" for kldstat.
  (sysctl kern.bootfile getst the full name via bootinfo)
- use real addresses on the kernel "module" rather than fictitious ones.
- preloaded module support
- search module path for file modules.
- symbols are checked to see if they are in the right containing file
  before using their indexes into string tables.  This is to help ddb
  since it only supplies a pointer to an opaque symbol and there is no
  telling which file/object/module/whatever it came from.
1998-10-09 23:55:31 +00:00
Peter Wemm adbb7dbee6 Updates for KLD backends.
- symbol_values checks that the symbol is indeed belonging to the
   correct symbol and string table pairs before looking up. (since there
   could be many pairs, and KLD/DDB need to find out).
 - different ops for files versus preload modules - the unload mechanism
   is different.  (a preloaded module has to be deleted on unload since
   the in-core image is tainted by relocation and variables used)
 - Do not build an a.out kernel module if we're running on an elf
   kernel. :-)  Note that it should theoretically be possible to
   mix a.out and elf KLD modules providing -mno-underscores was used
   to compile it, or some other symbol conversion takes place.
 - Support preload modules (even though /boot/loader doesn't yet)
 - Search the module path when loading files.
1998-10-09 23:49:28 +00:00
Peter Wemm 94e9d7c12d Implement merging SYSINIT's from preloaded KLD modules. This means we
check off SYSINIT entries as they are run, and when more arrive, we re-sort
and restart (skipping the already-run entries).
This can *only* be done after KMEM (and malloc) is up and running - this is
fine because KLD is the only consumer of this and it's done after that.
The nice thing about this is that the SYSINIT's within preloaded KLD modules
are executed in their natural order.  It should be possible to register
devices for the probes which follow, etc.  (soon.. several key things
prevent this, such as use of linker sets for things like pci devices).
1998-10-09 23:42:47 +00:00
Peter Wemm cfb55a60f9 MODINFO_ADDR has real addresses now, remove the manual relocation based
on cpu type.
1998-10-09 23:37:37 +00:00
Peter Wemm df9e84e0c0 Relocate the preload module info from machdep specifically rather than
trying to do it in locore.  We also walk through the module table
and relocate any MODINFO_ADDR pointers so that they become KVM relative
rather than physical addresses.  This means that hacks for adding
0xf0000000 in places like MFS go away.
1998-10-09 23:36:26 +00:00
Peter Wemm c6b72a39e9 Call some helper routines to be supplied by kern_linker.c in order to
get to all the symbol tables for all modules, not just the core kernel
symbol table.  Yes, DDB can see KLD module symbols with this, both by
lookup and in tracebacks.  No more references to _end from tracebacks
within an LKM. :-)
1998-10-09 23:34:09 +00:00
Peter Wemm 286896fe56 At the moment, the alpha tentatively uses the ddb elf code rather than KLD,
because the alpha boot loader hasn't been converted yet, and because
it needs the full symbol tables with local symbols in order to make sense
of stack tracebacks.  KLD will implement this (using full sybmol table
rather than the globals only) shortly.
1998-10-09 23:32:03 +00:00
Robert Nordier 91284f875f Turn off the new /sys/boot stuff (except boot0) unless OBJFORMAT
is elf.  (The BTX client must be ELF, though it is packaged as a.out
for compatibility.)
1998-10-09 23:30:16 +00:00
Peter Wemm ea4170d0f6 We don't compile this on an elf kernel (and explicitly not on alpha in
case it's possible to compile in something like ECOFF)
The three db_xxx.c symbol interfaces are "standard" because config isn't
flexible enough without forcing the user to know about it.
1998-10-09 23:29:44 +00:00
Peter Wemm 1dd643abae Remove DDB_ELF_SYMBOLS and DDB_KLD_SYMBOLS options. KLD will be the sole
interface to symbols in an elf kernel.
1998-10-09 23:26:26 +00:00
Peter Wemm 7deb2dabef Attempt to at least align MODINFO_* blocks. IMHO, decoding this stuff
should be MD code since one day we'll have to recover pages from deleted
preload data.  MI code can't be expected to know how to deal with pmap
internals, assuming it gets done via pmap that is. :-)
1998-10-09 23:24:55 +00:00
Peter Wemm 1d59e49683 Turn symbol table info passing back on, although it's probably not
particularly useful in this form.  KLD can deal with it much better.
setenv kernelname moved earlier.
1998-10-09 23:22:30 +00:00
Peter Wemm f62f10b275 Remove kernelname setenv, the common code does it.
Use the metadata for symtab pointers, mainly to keep it common with
elf_freebsd.c.
1998-10-09 23:20:47 +00:00
Peter Wemm 376f525c56 Implement preloading for elf modules
- get dependency info from PT_DYNAMIC's DT_NEEDED tags.
 - store MODINFOMD_DYNAMIC for the kernel's later use
setenv kernelname when we have it
Fix firstaddr/lastaddr calculation (duh! :-)
Explicitly skip string table with section names in it.
1998-10-09 23:18:43 +00:00
Peter Wemm 6323a7f93f Preload support for a.out KLD not implemented yet. (almost)
KLD modules are *not* PIC.  (Shared libs are pic to avoid relocations
causing copy-on-write, that's irrelevant here).
setenv kernelname when we load it.
Use MODINFO_SSYM/ESYM for each symbol section when (if) there are
more than one being loaded.
1998-10-09 23:15:39 +00:00
Peter Wemm c582ad070a Use a consistant module search path (same as kernel will be).
Use new dependency mechanism.
1998-10-09 23:12:34 +00:00
Peter Wemm 12218096e1 loader <-> kernel preload module interface constants moved to common file.
Remove Mike's explicit data structures for dependency info.  This is
done via DT_NEEDED etc in the dynamic section for now.  This may need
to be revisited later on.
1998-10-09 23:11:05 +00:00
Peter Wemm c2ad65ca15 elf_machdep.c and rindex.c are now standard 1998-10-09 23:08:14 +00:00
Peter Wemm 814500450b Debug typo fixes.
Change symbol_values return type to int, on the chance that we've
been given the wrong symbol table.  Symbols have a string index that
must be relative to the correct string table.
Add prototypes for better kld support for ddb.
1998-10-09 23:07:27 +00:00
Peter Wemm 1f68fea8bd A hook for storing the origin of a module, this is important when
it's being registered in sorted sysinit sequence and not in load order.
1998-10-09 23:05:45 +00:00
Peter Wemm 3c1cc39618 Add SI_SUB_KLD
First part of support for merging SYSINIT sets.

This, and the following KLD commits have been OK'ed by jkh and msmith
based on my assertion that it works here (barring merge errors :-).
1998-10-09 23:03:27 +00:00
Jordan K. Hubbard 87ee69f08a Clean up the boot targets a bit.
Suggested by:	jdp
1998-10-09 22:22:34 +00:00
Justin T. Gibbs f4d63fca8a Call dpt_intr from our timeout routine to clear any pending commands before
performing actual timeout processing.

Modify a few printf statements.

Submitted by:	Simon Shapiro <shimon@simon-shapiro.org>
1998-10-09 21:42:19 +00:00
Justin T. Gibbs f8c5944d43 Only pull 16 bits of residual information from completing queues. This
is a work-around from an LRAM access bug on the 940UA.  In a future
microcode revision, the high 16bits of residual information will be moved
to a safe location and we'll return to 32bit residuals.  Since we only
allow 64KB I/O, 16bits is enough.
1998-10-09 21:40:50 +00:00
Justin T. Gibbs 9574f7968d Hook up ahapoll so that dumps, synchronize cache commands or any other
command that comes in through xpt_polled_action works correctly.
1998-10-09 21:38:36 +00:00
Mike Smith a8dad95401 Don't try to initialise the environment out of a sysinit, it's handled
in MD code instead.
1998-10-09 21:21:34 +00:00
Peter Wemm bde362f5e9 Null commit.. CVS aborted on freefall last time (reaonly file).
An elf_reloc() function for the i386.  Based on alpha/alpha/elf_machdep.c
and rtld-elf/i386/reloc.c.
1998-10-09 20:38:03 +00:00
Peter Wemm 033f58df20 An elf_reloc() function for the i386. Based on alpha/alpha/elf_machdep.c
and rtld-elf/i386/reloc.c.
1998-10-09 20:35:45 +00:00