Commit Graph

526 Commits

Author SHA1 Message Date
Stefan Eßer
a243da2bc6 Fix install target (install loader.exe, not loader). 1999-07-29 22:22:38 +00:00
Stefan Eßer
79f5bd8308 Activate "arc" (ARC / AlphaBIOS loader) on Alpha. 1999-07-28 20:32:44 +00:00
Nik Clayton
51e09cd72a Fix some typos.
PR:             docs/11955
Submitted by:   Christian Weisgerber <naddy@mips.rhein-neckar.de>
1999-07-28 20:30:59 +00:00
Stefan Eßer
ed4e46bdce The ARC BIOS / AlphaBIOS specific primary boot loader. This code is the
result of a joined effort with parts contributed by Doug Rabson, Warner
Losh and Stefan Esser (hope I did not forget anybody). Part of the sources
is obtained from NetBSD with modifications.

This code is work in progress:

As of the time of the initial import, a loader.exe executable is built,
which can be loaded on an Alpha with NT only firmware, but no attempt is
made to switch to OSF PAL code as required to start an actual kernel.
1999-07-28 20:28:47 +00:00
Robert Nordier
fad2f0e686 Recognise NetBSD slices.
Submitted by : Lars Koeller <lkoeller@cc.fh-lippe.de>
PR           : 12772
1999-07-24 17:40:40 +00:00
Mike Smith
73332890ea Walk around the end of all the silly guessing of device types and unit
numbers that we have been doing in the past, and read /etc/fstab off the
proposed root filesystem to determine the actual device name and vfs
type for the root filesystem.  These are then exported to the kernel
via the environment variable vfs.root.mountfrom.
1999-07-21 00:08:54 +00:00
Robert Nordier
50d57a133e Reintroduce LBA (cyl > 1023) support in the bootblocks, enabled by
means of a build option.
1999-07-20 01:19:23 +00:00
Robert Nordier
ac176e5590 Activate kgzldr. 1999-07-19 20:16:34 +00:00
Robert Nordier
b407f553fb Use M4FLAGS for m4. 1999-07-19 20:10:17 +00:00
Robert Nordier
ba8860241d kgzldr is a kzipboot replacement for use with kgzip(8).
Development sponsored by Global Technology Associates, Inc.

Reviewed/tested by: abial
1999-07-19 18:07:44 +00:00
Nick Hibma
1854719067 The boot countdown timer says it will boot in 1 seconds,
which is grammatically incorrect.

PR:		12628
Submitted-By:	R. Matthew Emerson <rme@nightfly.apk.net>
1999-07-15 20:40:52 +00:00
Mike Smith
396641ab13 Document the hw.physmem tunable. (There should be arch-specific tunable
help sections.)
1999-07-02 20:38:05 +00:00
Peter Wemm
a6cbd18d26 Fix typo (wrong path) 1999-06-29 21:40:05 +00:00
Peter Wemm
5110b634b0 Reconcile all the loader newvers.sh's into one common one. 1999-06-29 21:23:26 +00:00
Peter Wemm
a36ed03d44 Don't use head/tail - they don't exist in a 'make world' environment.
(Why do we have three copies of this script anyway?)
1999-06-29 21:06:16 +00:00
Peter Wemm
240ee5d0e0 ABS_SET() and BSS_SET() are no longer used. The sole remaining user of
TEXT_SET() is DDB's command tables.
1999-06-26 12:27:01 +00:00
Ruslan Ermilov
d41ebb5068 -mdoc fix. 1999-06-23 09:06:18 +00:00
Robert Nordier
f841485278 Fill in bi_bios_geom[] in the bootinfo structure passed to the kernel.
This should resolve the problem raised in PR 12315, and incidentally
makes it easier to determine what geometry the BIOS is actually using
(by way of boot -v and dmesg).
1999-06-21 18:27:02 +00:00
Robert Nordier
fc2ff140c2 Provide for enabling/disabling each slice individually. 1999-06-19 21:40:55 +00:00
Robert Nordier
bc53095dd4 Fix use of e_phoff in place of e_phnum. 1999-06-19 20:50:38 +00:00
Robert Nordier
68aadbb9c9 Correct and clarify some comments. 1999-06-19 20:40:32 +00:00
Robert Nordier
97a62e386d Change active flag handling; sanity check passed drive number; pass
partition pointer to bootstrap; optimise away 10 bytes; cosmetics.
1999-06-18 21:49:18 +00:00
Roger Hardiman
d56282d89f Add bktr_load for the loadable Bt848/Bt878 driver. 1999-06-13 15:45:49 +00:00
KATO Takenori
621ba6f2bb Sync with sys/boot/i386/libi386/bootinfo.c revision 1.19. 1999-06-06 12:46:40 +00:00
Guy Helmer
3d8993c197 Modify the boot loader to recognize the -C flag and pass the RB_CDROM
flag to the kernel to mount a CDROM as the root filesystem.  Alternatively,
the boot_cdrom env var can be set.

As Mike Smith noted, "-C is the "wrong" way to do this", but this is
an acceptable stopgap in lieu of a better way.

PR:		bin/11884
Reviewed by:	msmith@freebsd.org
1999-06-04 03:18:28 +00:00
Doug Rabson
75aeebed71 Typo: "can't boot 'boot'" should be "can't boot 'kernel'" 1999-05-30 10:45:03 +00:00
Brian Somers
8a768b4324 Always output a linefeed when we've decided whether to boot
or display a loader prompt; either we've said
"Booting [%s]..." or we've received a non-line-feed character
and need a '\n' anyway.
1999-05-28 08:01:52 +00:00
Robert Nordier
c9091105f3 Activate mbr. 1999-05-24 22:44:32 +00:00
Robert Nordier
9292eec80d Add mbr: a standard master boot record intended to replace a couple
that are presently embedded in the fdisk and sysinstall code.
1999-05-24 22:36:24 +00:00
Robert Nordier
32ea10b4fc Fix a reference to the mysterious Mike Smisth. 1999-05-22 13:18:28 +00:00
KATO Takenori
c9929b08f7 Sync with sys/boot/i386/btx/Makefile revision 1.5. 1999-05-20 08:00:08 +00:00
Robert Nordier
e2c9098e4f Drop some non-existent commented-out targets. 1999-05-18 22:10:05 +00:00
Daniel C. Sobral
c4b16f49fc Add "initialize" to loader.4th, so running "start" is not actually needed. 1999-05-14 18:59:27 +00:00
Daniel C. Sobral
b097076e25 Add fxp on a category of it's own. 1999-05-14 10:20:54 +00:00
Daniel C. Sobral
372dd86a44 Remove atapi and joy, add svr4 and streams. I wonder if removing vinum
is in order or not... (things are _not_ loaded by default, but it serves
as a reference to people tweaking their own loader.conf files)
1999-05-14 10:14:50 +00:00
Daniel C. Sobral
5109966e43 Add ntfs and splash_pcx, remove pcic and wcd (yikes! what was THAT
doing here?).

Candidate for 3.2.
1999-05-14 10:03:58 +00:00
Brian Somers
897e65b9ff Better English. 1999-05-13 14:53:13 +00:00
John Birrell
957055c6a9 Found the needle in the haystack!
Use colons instead of semi-colons in the default init_path to behave like
UNIX instead of DOS.

Suggested by: bde
Reminded by: des (with no hint as to *which* man page).
1999-05-11 11:20:13 +00:00
Doug Rabson
84b399de51 Changes to support diskless booting on the alpha:
* Make the network code in the bootstrap more chatty (helps debugging)
* Add nfs root stuff to cpu_rootconf(). I also added a check to make sure
  it really was netbooting which allows the use of the same kernel for local
  and network boots.
* Tweak the de driver so that it takes the speed setting from the console
  for the alpha (some PWSs have broken de chipsets). This is the same
  behaviour as NetBSD/alpha.

Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
1999-05-03 09:36:29 +00:00
Joseph Koshy
e539c67bbb Correct typos.
PR:		docs/11445
Submitted by:	Kazuo Horikawa <horikawa@jp.freebsd.org>
1999-05-03 08:32:45 +00:00
Joseph Koshy
5d48be470c Correct misuse of .Nm.
PR:		docs/11449
Submitted by:	Kazuo Horikawa <horikawa@jp.freebsd.org>
1999-05-03 07:25:50 +00:00
Daniel C. Sobral
4093b9aa2e Make man page reflect reality on parsing rules. Now I know Jordan
never read this man page... :-)
1999-04-25 21:41:09 +00:00
KATO Takenori
e3583fafb4 Sync with sys/boot/i386/loader/Makefile revision 1.34. 1999-04-25 03:56:44 +00:00
Daniel C. Sobral
fdbad643d5 Minor nit. It is probably still incorrect, but at least don't
claim to use i386-specific files on alpha...
1999-04-24 18:05:45 +00:00
Daniel C. Sobral
cf69fad236 Move loader.conf.5, while it is still in it's first revision. 1999-04-24 17:49:47 +00:00
Daniel C. Sobral
2de24e689e Add loader.4th man page (worst man page I ever wrote -- reviews
are welcomed). Correct a nasty bug in loader.4th before anyone
notices, add a couple of features.
1999-04-24 17:25:35 +00:00
KATO Takenori
5d6d02b1e2 Optimize better for space.
Submitted by:	Takahashi Yoshihiro <nyan@wyvern.cc.kogakuin.ac.jp>
1999-04-24 04:29:13 +00:00
John Polstra
607c815bef Update #include statements to reflect the new location of "sioreg.h".
With these changes plus the egcs fix I committed a few minutes ago,
"make -DWANT_AOUT world" works again.  Most likely, "make upgrade"
is fixed too, though I haven't tested that.
1999-04-22 21:02:44 +00:00
Dag-Erling Smørgrav
5f967b24fc Make the location of init(8) tunable at boot time. 1999-04-20 21:15:13 +00:00
Joerg Wunsch
346f1ca8fc Don't clobber the "prompt" variable if it has already been set (e. g.
from within loader.conf).

Reviewed by:	dcs
1999-04-20 12:07:03 +00:00
KATO Takenori
aad1d9f29a Sync with sys/boot/i386/loader/Makefile revision 1.32. 1999-04-19 11:02:19 +00:00
Daniel C. Sobral
5d9a0e5b26 Installs a default loader.rc if none exists. Document loader.conf. 1999-04-18 09:21:12 +00:00
Daniel C. Sobral
f6c2a57dee A default loader.rc to be installed. 1999-04-18 09:20:08 +00:00
Peter Wemm
6182fdbda8 Bring the 'new-bus' to the i386. This extensively changes the way the
i386 platform boots, it is no longer ISA-centric, and is fully dynamic.
Most old drivers compile and run without modification via 'compatability
shims' to enable a smoother transition.  eisa, isapnp and pccard* are
not yet using the new resource manager.  Once fully converted, all drivers
will be loadable, including PCI and ISA.

(Some other changes appear to have snuck in, including a port of Soren's
 ATA driver to the Alpha.  Soren, back this out if you need to.)

This is a checkpoint of work-in-progress, but is quite functional.

The bulk of the work was done over the last few years by Doug Rabson and
Garrett Wollman.

Approved by:	core
1999-04-16 21:22:55 +00:00
Daniel C. Sobral
459b9f6fce Reactivate trace! after making it egcs-friendly. 1999-04-06 02:43:06 +00:00
Robert Nordier
0e5731f9f4 Fix damage introduced in previous commit. 1999-04-05 07:36:30 +00:00
Robert Nordier
bf0eae60c5 Optimize better for space.
Thanks to: jdp
1999-04-05 07:24:51 +00:00
David E. O'Brien
df5ee53868 Remove the string ">>> FreeBSD/i386 BOOT". I need to reduce the size of
boot2 by 16 bytes.  I expect this to be temperary until the boot2 authors
can do the proper fix.
1999-04-04 21:15:41 +00:00
KATO Takenori
95e56ffcb0 Use files under sys/boot/i386 instead of copying under sys/boot/pc98.
Submitted by:	Takahashi Yoshihiro <nyan@dd.catv.ne.jp>
1999-04-02 08:59:11 +00:00
Joerg Wunsch
9859e703f6 Make <DEL> an alternative rubout character for command input; many
serial terminals use this as their default rubout key.
1999-03-31 08:28:42 +00:00
Daniel C. Sobral
22004b5952 Revert bootinfo to 1.4 and use a different solution to NULL m_args
instead (don't copy).
1999-03-20 14:13:09 +00:00
Daniel C. Sobral
f6eaf40e07 Fix a couple of nasty errors in the README. 1999-03-20 12:25:43 +00:00
KATO Takenori
a3eb4bf80c Sync with sys/boot/i386/loader/version revision 1.4. 1999-03-19 15:59:56 +00:00
KATO Takenori
6fafdac65b Sync with sys/boot/i386/libi386/bootinfo.c revision 1.18. 1999-03-19 15:58:05 +00:00
Daniel C. Sobral
76bd51f729 Avoid copying m_args if none exists. (Perhaps this is a better solution,
Doug?)
1999-03-18 14:36:22 +00:00
KATO Takenori
c0318acd20 Install the manual page in sys/boot/i386/loader.
Sumbmitted by:	Takahashi Yoshihiro <nyan@dd.catv.ne.jp>
1999-03-18 13:42:21 +00:00
Doug Rabson
28add8fe61 Don't choke in MOD_ARGS() if mp->m_args is NULL. 1999-03-18 11:00:48 +00:00
Chuck Robey
84b4a89764 This is a temporary README file, to help those trying to experiment
with the new boot loader configuration process.  I got a lot of
help from Daniel Sobral, and both Dan and I got help from Mike
Smith.  This really belongs in Warner's UPDATING, but he's not
been answering his email recently, so that will wait a little.

Robert Nordier also gave me a lot of help, but he hasn't seen the
last version, and can't be blamed for my errors.

Approved by:	jkh

Reviewed by:	Mike Smith
1999-03-17 23:44:19 +00:00
Daniel C. Sobral
276dcca185 Version bump: kvm & dictionary size. 1999-03-17 23:05:46 +00:00
Daniel C. Sobral
a1134d7659 Disable trace! until it gets fixed. 1999-03-17 23:03:36 +00:00
Daniel C. Sobral
306a07af57 The man page, version 0.1. 1999-03-15 08:52:23 +00:00
Daniel C. Sobral
3e626fb3c1 Remove redundant code. 1999-03-15 08:08:20 +00:00
Daniel C. Sobral
d9d2e726c0 Replace /kernel.config with /boot/kernel.conf. 1999-03-14 21:57:49 +00:00
Mike Smith
8a252a3737 Fix syntax for boot command
Noticed by:	Ruslan Ermilov <ru@ucb.crimea.ua>
1999-03-14 19:55:01 +00:00
KATO Takenori
29ebfa3ecc Sync with sys/boot/i386/loader/Makefile revision 1.30. 1999-03-10 13:41:44 +00:00
KATO Takenori
12637fce17 Sync with sys/boot/i386/libi386/bootinfo.c revision 1.17. 1999-03-10 13:40:29 +00:00
Daniel C. Sobral
f847f7558c Install new loader.rc stuff. 1999-03-10 03:34:14 +00:00
Daniel C. Sobral
7caa817b0e New loader.rc stuff.
Reviewed by:	jkh
1999-03-09 14:06:55 +00:00
Daniel C. Sobral
445a035707 Add MODINFO_ARGS, parameters passed to a module at load time.
VS: ----------------------------------------------------------------------
1999-03-08 11:05:52 +00:00
Daniel C. Sobral
1d2a3d5731 Increase ficl's dictionary size, in preparation for the newer loader.rc. 1999-03-08 11:00:02 +00:00
Daniel C. Sobral
08c9325cb2 Fix a number of memory leaks and other memory-related disorders.
Also, unbreak the breakage introduced at the last revision of module.c.
This changes the semantics of mod_searchfile() (and mod_searchmodule())
to make the caller's responsibility freeing the buffer returned. This
is different from other functions in loader's code, and was done as a
fix for kern/9631. If someone wants to revert this to the original
behavior, don't forget to fix kern/9631 in another way.

This should also fix bin/10462, which was introduced as a result of the
first try at kern/9631 (module.c last revision).

PR:		bin/10462
Submitted by:	Takanori Saneto <sanewo@ba2.so-net.ne.jp>
1999-03-08 10:32:39 +00:00
KATO Takenori
94709d1d93 Make loader be able to load 1.2MB fd on machines w/ 1.44MB fdd.
Sumbmitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 16:38:12 +00:00
KATO Takenori
86d0f76681 Added an entry for 1.44MB fd.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 16:34:52 +00:00
KATO Takenori
b4531f58da Oops, forgot to read boot.config file.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 16:31:55 +00:00
KATO Takenori
72578dfa5a When SCSI IDs are not contiguous, the loader could not find correct
unit number for da device.  This commit fixes this problem.

Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 10:48:14 +00:00
KATO Takenori
4a1bb98b26 boot2 doesn't need to say 'Can't find file boot.config.'
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 10:45:06 +00:00
KATO Takenori
eae8225c4c Fix character code of backslash. PC98 should use 0xfc instead of 0x5c.
Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-03-04 10:44:01 +00:00
Daniel C. Sobral
c7bf325ce2 Don't treat empty lines as end-of-file in include(). (I can't
believe this bug is still here... :-( )
1999-03-02 16:16:57 +00:00
KATO Takenori
729b255473 Sync with sys/boot/i386/btx/btx/btx.s revision 1.10. 1999-03-01 10:02:45 +00:00
Robert Nordier
a3c69bbcf8 Save option, rather than slice, selected. This permits unattended
booting from other than drive 0, as the F5 keypress is saved and
"replayed."

Requested (some time ago) by: archie
1999-03-01 02:42:47 +00:00
Daniel C. Sobral
52f42bab71 Make $ print different lines in, well, different lines. 1999-02-28 02:10:14 +00:00
Robert Nordier
5052aa25a1 Implement "setdrv" option 1999-02-26 14:51:14 +00:00
Robert Nordier
401d37631a Emulate a V86 "movl %cr0,%eax" instruction.
Feedback and testing: Kurt Hopfensperger <kjhmdjd@ix.netcom.com>
1999-02-25 16:27:41 +00:00
KATO Takenori
5c3d6cdb69 Sync with sys/boot/i386/loader/Makefile revision 1.29. 1999-02-25 11:01:54 +00:00
Mike Smith
bf18286593 Don't try protecting page 0; it seems that BIOS writers now feel it's
appropriate to check for Windows95 by polling for state in low
memory, with fatal results.

Submitted by:	rnordier@freebsd.org
1999-02-24 01:37:23 +00:00
Daniel C. Sobral
85f0ea7590 Fix assorted memory leak/buffer reuse problems.
Not restricted to, but including:

PR:		kern/9631
Submitted by:	Bill Fenner <fenner@parc.xerox.com>
1999-02-22 13:12:37 +00:00
Tor Egge
3d8befc22d Enable load of i386 ELF kernels with larger KVA range (e.g. starting at
0xe0100000u or 0xc0100000u instead of the usual 0xf0100000u).
1999-02-15 17:36:58 +00:00
Jordan K. Hubbard
73899d2e48 Remove dictHashSummary internal function; it used doubles.
Submitted by:		Daniel C. Sobral <dcs@newsguy.com>
1999-02-09 16:04:19 +00:00
KATO Takenori
d4df79101c Sync with sys/boot/i386/loader/version revision 1.3. 1999-02-08 09:59:38 +00:00
Daniel C. Sobral
b9305c6c70 Bumb up loader's version.
Reviewed by:	Michael Smith <msmith@freebsd.org>
1999-02-08 04:14:31 +00:00
Daniel C. Sobral
0538bafc65 Remove strange-looking quotes. This part of the code is #if'ed out,
and the variable doesn't even exist (though it is referenced elsewhere).
Just make sure it produces error messages when Mike get back to it.

PR:		kern/9934
Submitted by:	Adrian Filipi-Martin
1999-02-07 12:12:29 +00:00
Daniel C. Sobral
98c5378cdc Make FICL_TRACE default.
Add freebsd.fr, for FreeBSD specific forth source. Add $ and %, to
replace the lost @ and - functionality of include. $ has the opposite
behavior of @ though, since the default behavior was inverted.
1999-02-04 17:13:49 +00:00
Daniel C. Sobral
47749087ac Make use of prototypes to silence warnings.
Change include() so it will be able to load files with forth code,
instead of just builtins. Remove #@- from the include section of the
help file, since they don't work in the new version of include, unless
BOOT_FORTH is not defined.

Change bf_run() so it will return the result returned by ficlExec(). Also,
make bf_run() push "interpret" to be executed by ficlExec(), since ficlExec()
doesn't do it by itself. (Things worked previously because nothing
recursed through ficlExec() by the way of bf_run()).

Change/extend comments on builtin behavior.

Search for "interpret" at the end of bf_init(), so /boot/boot.4th can
provide it's own version.

Remove dead code.
1999-02-04 17:06:46 +00:00
Daniel C. Sobral
099d325dd5 Make ficlExec recursive. This removes vmReset and vmQuit from the
error cases, but the replacement should be doing everything they
did, except what did shouldn't be doing, and might do a little more
they ought to be doing.
1999-02-04 16:53:47 +00:00
Daniel C. Sobral
15369f7e9f Fix ficlExecFD to take kern/9412 changes into account. Also modify it
not to vmThrow errors. This is not what the comments say it does, and
it doesn't work when there is no ficlExec environment (like it's only
use in sys/boot/common/interp_forth.c).

PR:		bin/9772
1999-02-04 13:28:56 +00:00
Daniel C. Sobral
e08e812d7a The trace facility was full of bugs. Correct that by using the
right variable.

PR:		bin/9756
1999-02-04 13:20:30 +00:00
Daniel C. Sobral
b7efae4386 Silence a warning.
PR:		bin/9754
1999-02-04 13:16:21 +00:00
Daniel C. Sobral
7505875a0a The previous fix for "type" was absolutely lousy. Not only the buffer
allocated was not big enough, but it ended up to being used where it
was supposed to be used. The person who did that ought to be shot, but
since I'm a good person, I'll forgive myself...

PR:		bin/9743
1999-02-04 13:06:47 +00:00
Daniel C. Sobral
aa8b85772f Add conditional compilation facilities to ficl. This had been previously
committed to RELENG_3 instead of HEAD, so let's HEAD catch up.

PR:		bin/9662
1999-02-04 12:57:56 +00:00
Mike Smith
617aa5cdf8 Mention the net.inet.tcp.tcbhashsize tunable. 1999-02-03 09:07:33 +00:00
KATO Takenori
dccbc08d92 PC98 version of new boot loader. Because boot2 has not yet ported,
files in boot2 directory are copies from legacy biosboot.

Submitted by:	IMAI Takeshi <take-i@ceres.dti.ne.jp>
1999-02-03 08:39:09 +00:00
Jordan K. Hubbard
ae84df99c4 Whoops! Forgot to include Mr. Sobray's more command in the last set
of commits.

Submitted by:	Daniel C. Sobral <dcs@newsguy.com>
1999-02-01 06:08:21 +00:00
Robert Nordier
391911b768 Check size of partition before using it. 1999-01-29 03:36:42 +00:00
Mike Smith
07dd15c173 Document the machdep.pccard.pcic_irq tunable, which allows the user to tune
the interrupt which will be given to the PCIC.  If the value supplied is
illegal or not available, interrupts will be turned off and polled mode
used instead.
1999-01-29 01:16:50 +00:00
Jordan K. Hubbard
652375d1e5 Make builtin's state-aware in loader.
Submitted by:	Daniel C. Sobral
PR:		9663
1999-01-28 06:33:03 +00:00
Robert Nordier
ab19eb8230 Fix a couple of further bugs: missing argument to sprintf() and
"==" used for "=".
1999-01-25 23:07:02 +00:00
Robert Nordier
5ca1fa1ed0 Correctly record the end of the a.out symbol table. In practice, a
bootinfo structure where bi_esymtab < bi_symtab was being passed
to the kernel.  In the case of older 2.x kernels, this was causing
garbage to be printed to the video console, followed by an exception.

This should resolve a problem reported on -current by Peter Jeremy
<peter.jeremy@auss2.alcatel.com.au>.
1999-01-25 10:34:35 +00:00
Mike Smith
e9583ef187 From the PR:
I added a FICL_TRACE-conditioned trace facility based on "see".
It is ugly because words' functions are almost all static, and ficlExec,
where the trace has to be located, can't get their pointers. So, #ifdef
this staticization, and add most of see's body into ficlExec. Duplication
of code, uglyness, etc. But it is cleanly #ifdef'ed, and works like a
charm.

	It does not provide "step" facility, though, just trace. It is
tunable at run-time through "trace!". If anyone (most likely me :) ever
wants a step facility, I'll add it. Should be easy.

PR:		bin/9652
Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-24 06:06:21 +00:00
Mike Smith
84ef5a8f66 Bleh. Missing 'unit =' doesn't help legacy num_ide_disks code.
PR:		bin/9651
Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-24 06:03:44 +00:00
Mike Smith
f7f7a5d7ab From the PR:
FICL's TYPE copies the counted string to HERE, as abial has
remarked. Answering to abial's question, this is NOT garanteed to have
enough space.
...
	We have dynamic memory. Even before memory-alloc got in, we
already had dynamic memory. Use it, then! (ficlMalloc is sysdep, so I
suppose that's why it was not used for TYPE; ficl is probably designed
to work without a working ficlFree).

Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-24 05:58:18 +00:00
Mike Smith
1c2587457f Document root_disk_unit 1999-01-24 00:12:17 +00:00
Mike Smith
c679ae39a8 biosdisk.c
Implement a new variable 'root_disk_unit' which supersedes
	'num_ide_disks' and makes it possible to explicitly set the
	root device unit number regardless of type considerations.

bootinfo.c
	If we can't calculate a dev_t for the root disk, complain and
	don't proceed to boot with an invalid boot device.
1999-01-24 00:12:04 +00:00
Mike Smith
5d3d992565 Fill in the bi_bios_dev field in the bootinfo struct; the loader doesn't
guess this value well in anything other than the simplest of situations.
1999-01-24 00:10:10 +00:00
Mike Smith
6a80a16d7d Add EXCEPTION word set.
Make TIB handling use buffer size to conform with ANS Forth.

Add ANS MEMORY-ALLOC word set.

See the PRs for extensive details.

PR:		kern/9412 kern/9442 kern/9514
Submitted by:	PRs from Daniel Sobral <dcs@newsguy.com>
1999-01-22 23:52:59 +00:00
Mike Smith
b7fd9e91ed bootstrap.h
help.common
interp.c
	Rename the 'source' command to 'include' in order to avoid conflict
	with the ANS Forth command of the same name. (kern/9473)

interp_forth.c:
	Changes from kern/9412 (EXCEPTION word), kern/9442 (TIB buffer
	sizing) and an improved version of kern/9460 (set
	version numbers).

load_aout.c:
	Trim some obsolete #if 0'ed cruft.

pnp.c:
	Tidy the pnpscan output, turn off the module scanning until we
	sort out how to do it right.

PR:		kern/9412 kern/9442 kern/9460 kern/9473
Submitted by:	PRs from Daniel Sobral <dcs@newsguy.com>
1999-01-22 23:50:14 +00:00
Robert Nordier
9e4af42e20 Fix extraneous free() on error. 1999-01-22 21:33:52 +00:00
Robert Nordier
d0a4f5ea63 Fix read error not being detected. 1999-01-22 18:32:52 +00:00
Robert Nordier
d7478bf0df Push version numbers up to 1.00. This is just intended to reflect
that the BTX code can be regarded as stable: there are no associated
code changes.

Suggested by: obrien
1999-01-22 13:07:17 +00:00
Mike Smith
4291c3b7ad Add 'set tunables' help, list the kernel tunable values that can currently
be overridden.
1999-01-21 22:03:16 +00:00
Mike Smith
378972ac6b Transition from using Perl to using awk for our text-manipulation
needs.  This removes the dependancy on Perl for the generation of the
loader, allowing the world to be built on a perl-free system.

Submitted by:	Joe Abley <jabley@clear.co.nz>
1999-01-18 19:05:27 +00:00
John Polstra
5e26973571 Replace duplicated "old" linker set definitions with an include of
<sys/linker_set.h>.  Note, this isn't used on the i386.
1999-01-16 03:25:24 +00:00
Andrzej Bialecki
0d9ab84751 Fall back to /boot/boot.conf, if /boot/loader.rc was not fount. This is
to cover the transition period.

Suggested by:	msmith
1999-01-15 00:31:45 +00:00
Andrzej Bialecki
1b855e4412 Change counter-intuitive pc@ and pc! to inb and outb.
Submitted by:	jkh
1999-01-14 23:48:03 +00:00
Robert Nordier
05c7fdda18 In the event of a disk error, boot2 is expecting an error
code to be returned: give it one
1999-01-13 23:30:07 +00:00
Andrzej Bialecki
fb0b33b136 Change /boot/boot.conf to /boot/loader.rc - this name reflects what it
really is.

Agreed upon by:	jkh, msmith and many others
1999-01-13 21:59:58 +00:00
Andrzej Bialecki
c82de3cb3f Add words "pc!" and "pc@" which allow to manipulate I/O ports. This can
be helpful when directly fiddling with PC hardware.

Also, define "arch-i386" appropriately, as suggested by Daniel C. Sobral.
1999-01-13 21:31:50 +00:00
Mike Smith
4e24cd8e44 Typo in patch application.
PR:		kern/9459
Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-13 08:11:41 +00:00
Robert Nordier
726c0943c0 Drop boot.help support. 1999-01-11 11:36:03 +00:00
Mike Smith
95d50652d0 No builtin command resets getopt before using it, causing
problems in case a wrong option was given previously, and no option
is given to the next command.

PR:		kern/9371
Submitted by:	"Daniel C. Sobral" <dcs@newsguy.com>
1999-01-11 06:41:32 +00:00
Mike Smith
ba536e2ae8 Preserve the previous loader as loader.old.
Note no matching commit for the Alpha, as the alpha boot0 stage does
not have the ability to prompt for user input.

PR:		kern/9406
Submitted by:	 "Daniel C. Sobral" <dcs@newsguy.com>
1999-01-11 05:52:28 +00:00
Mike Smith
f414995e5c Disable kzipping the loader; it seems to be breaking the aout-to-elf build 1999-01-10 20:20:27 +00:00
Steve Price
24d156f499 Remove redundant line of code.
PR:		9364
Submitted by:	Daniel C. Sobral <dcs@newsguy.com>
1999-01-10 18:22:23 +00:00
Robert Nordier
c03fa7f977 Use etc/make.conf settings for serial port and speed.
Submitted by: rvb
Reviewed by: bde
1999-01-10 14:48:05 +00:00
Peter Wemm
c03b24b2d8 Damn, I thought I had committed this already, but it seems not.
Move the relocated boot1 and arg transfer space from 0x600/0x800 to
0x700/0x900.  In theory this should make no difference, apart from the fact
that Buslogic controllers happen to use a few bytes at 0x600 for some sort
of scratch space for it's int 0x13 hook (!!!), causing the machine to crash
badly when the boot2 code makes it's callbacks into boot1 for disk IO.

Submitted by:	Robert Nordier <rnordier@freebsd.org>
1999-01-10 13:29:52 +00:00
Mike Smith
e4329c9942 Enable escapes for $ to make it possible to insert variable names into
other variable values.
1999-01-10 05:08:12 +00:00
Mike Smith
244cf84b1e Explicitly look for kzip in /usr/bin, again this is a stopgap, to avoid
making kzip a build tool.
1999-01-09 20:14:46 +00:00
Mike Smith
82bbbb8c73 kzip the loader, this shrinks it to about 60% of its original size.
Note that this is a stopgap with dependancies on the a.out tools.
1999-01-09 02:38:40 +00:00
Mike Smith
ee5799c4ee Extend bd_print() so that it displays slices and partitions on disks. 1999-01-09 02:36:19 +00:00
Mike Smith
b6e83eb8f4 Add a description for 'lsdev' so that it shows up in the '?' display 1999-01-09 02:34:48 +00:00
Mike Smith
0f2ca06478 Alpha-specific help topics (currently empty) 1999-01-05 20:44:26 +00:00
Peter Wemm
e423230b0d Fix a potential sign extension bug on 8-bit chars.
Outputting a backspace isn't supposed to be destructive..  It isn't on
most terminals, nor on the standard bios output (vs. TERM_EMU mode)
1999-01-04 18:45:08 +00:00
Peter Wemm
4cd1140888 Fix variable initialization.. It was written with '==' instead of '-'.
#include <string.h> for string prototypes.
1999-01-04 18:39:24 +00:00
Peter Wemm
f68d58133b Clean some unused variables lint 1999-01-04 18:38:23 +00:00
Peter Wemm
717b58274a Don't forget a trailing \n when loading a kernel that has been stripped.
(This might make ELF_VERBOSE look funny, but I'm tempted to delete that
 anyway)
1999-01-04 18:37:41 +00:00
Mike Smith
170aadf69a Restore dependancy to build loader.help here 1999-01-04 01:28:46 +00:00
Mike Smith
a2d84c6405 Add dependancy to build loader.help here 1999-01-04 01:28:39 +00:00
Mike Smith
9aad9a4900 First cut at generating loader.help for the alpha 1999-01-03 20:54:05 +00:00
Mike Smith
5dfcac87f7 Reenable generation of the loader.help file 1999-01-03 20:50:35 +00:00
Jordan K. Hubbard
8963f9f139 Update for new boot block location. 1999-01-02 23:22:12 +00:00
Andrzej Bialecki
8f1e6e6e22 Add support for some FACILITY words:
key? ( -- flag)  \ check to see if there's a key to be read from input
ms   ( u -- )    \ wait that many milliseconds
seconds ( -- u ) \ get number of seconds from midnight.

'words' now outputs the list page by page - this probably should go
through libstand's pager, but will have to wait for closer integration of
built-ins with Forth...

Submitted partially by:	W Gerald Hicks <wghicks@bellsouth.net>
1998-12-31 14:03:28 +00:00
Andrzej Bialecki
de37e4a6d2 Add back ability to make beeps when using new TERM_EMU.
Submitted by:	W Gerald Hicks <wghicks@bellsouth.net>
1998-12-31 13:44:04 +00:00
Andrzej Bialecki
cf9443f92b Add simple terminal emulator, compatible with cons25. Currently supported
capabilities are: AF, AB, cm, ho, me, cd. The code is hidden behind
-DTERM_EMU - should it cause any problems, you can remove this define
to get back the old behaviour.

You'll find some examples how to use it in src/share/examples/bootforth.

Reviewed by:	jkh
1998-12-22 11:51:25 +00:00
Andrzej Bialecki
ac19ebdfbe Add new word ".#" which acts like "." but doesn't output a space separator.
I found it impossible to output parametrized strings like "\033[%d;%dH"
without building them first in pad area.
1998-12-22 11:46:27 +00:00
Andrzej Bialecki
1c49fb07d8 * Begin integration of built-ins with Forth: leave the exit code from
a built-in command on Forth stack.
* Fix a bug which was causing a panic when loading stripped aout kernels.

Reviewed by:	jkh
1998-12-22 11:41:51 +00:00
Nick Hibma
e6799271cd Removed dynamic loading of FileHandle 1998-12-16 09:09:09 +00:00
Mike Smith
c2e3e002f6 Disable build/install of boot.help until we sort out how to construct it
in the makeworld environment.
1998-12-16 02:27:15 +00:00
Mike Smith
8719fada36 Reformat help to improve subtopic display appearance, other minor
cleaning.  The 'help' command in the loader should now be usable and
hopefully informative.
1998-12-15 14:32:17 +00:00
Mike Smith
aa203600d5 Build the composite help file from the generic and architecture-specific
help files, sorting topics and subtopics to allow maximum flexibility.
1998-12-15 14:21:30 +00:00
Mike Smith
330ef7ac09 unlocalise build date (merge from i386) 1998-12-15 04:27:15 +00:00
Andrey A. Chernov
722135c358 unlocalize date
Submitted by: Cejka Rudolf <cejkar@dcse.fee.vutbr.cz>
1998-12-07 16:17:41 +00:00
Robert Nordier
b956ca7ca4 Revise some comments and labels. 1998-12-05 11:58:33 +00:00
Robert Nordier
12c38b04f1 Drop EDD support detection, though retain configurable use of disk
packet interface.  Add booteasy-style F5 support.  Add no-update
option. Implement various space optimizations and consistency fixes.
1998-11-29 14:09:00 +00:00
Robert Nordier
5103ed619b Drop use of BIOS int 0x14 services in favor of direct port I/O.
Feedback and testing: Adrian Filipi-Martin <adrian@ubergeeks.com>
1998-11-22 07:59:16 +00:00
Archie Cobbs
a8c0f6e542 Fix misallocation of buffer bug (too short) 1998-11-20 02:57:41 +00:00
Paul Richards
9abd5d84ac This fixes a bug in the bcache code whereby false cache hits occur
the first time block 0 is read. This fix initialises the block
numbers to -1 which isn't the most correct thing for a daddr_t but
it isn't likely to cause a problem in the boot blocks and it could
do with a more thought out fix later.

The bug is probably benign on the i386 but on the alpha it can
cause initial file opens to fail. This is the cause of the "can't
open /boot/boot.conf" errors.

It appears on the alpha because of a number of combining factors.
On the alpha the LABELSECTOR is 0 so block 0 needs to be read in
from the media. The first time this happens you get a false hit
because the bc_blkno field is zero initially. Also, the timestamp
check against this cache hit succeeds because on the alpha a hacked
getsecs() function can return 0 when it starts counting so that
the zero initial timestamp + BCACHE_TIMEOUT is greater than the
current time until getsecs() has counted passed BCACHE_TIMEOUT.

The overall effect is that the first open() that occurs gets a
false cache hit and returns garbage to the bd_strategy() function
which then fails the open() call. This false hit then stays in the
cache until BCACHE_TIMEOUT getsecs() ticks have passed; all open()
calls during this time fail.

This explains why you can generally access the media by the time
you get to interp() and start issuing commands but the earlier
attempts to run the boot scripts are failing.

It's possible that this is causing the problem switching to the
mfsroot floppy as well but I haven't confirmed that.
1998-11-19 18:12:03 +00:00
Mike Smith
bcda95d923 Add documentation for $rootdev. 1998-11-13 23:53:02 +00:00
Mike Smith
8f0a6b5b8c Add a new variable $num_ide_disks which is used to offset the unit number
for SCSI disks when converting from BIOS unit numbers to da unit numbers.

Prompted by Kevin Street <street@iname.com>
1998-11-13 23:40:02 +00:00
Jordan K. Hubbard
207fe43d59 bootforth seems to be working well enough for me and others to turn
on by default.  If it causes trouble, it's very easy to switch off again.
1998-11-12 07:40:51 +00:00
Robert Nordier
21ffb6774a Revise error messages. 1998-11-11 08:56:17 +00:00
Robert Nordier
0293eac42c Prevent boot.config being parsed more than once. 1998-11-08 18:37:28 +00:00
Robert Nordier
7ac90f7d65 Drop the familiar 'text=xxxx data=xxxx bss=xxxx ...' display while
loading.  This eliminates noise when loading boot/loader; and when
loading a kernel, they generally flash by too fast to be
intelligible anyway.
1998-11-08 18:29:29 +00:00
Robert Nordier
9888bdcd29 boot1: Eliminate EDD detection and optional use of disk packet
interface.  Do some general consistency fixes and space optimizations.
Use of some freed-up space to defend against possible BIOS misfeatures.

boot2: Revise disk read interface to provide for boot1 changes.  Free
up space for this.
1998-11-08 15:36:35 +00:00
Jordan K. Hubbard
37869e957d o Add proper stack checking to all file words
o add fkey and fread
o eliminate fexists now that this can be expressed in HLL forth
  ( : fexists fopen dup -1 <> if fclose 1 else drop 0 then ; ) :-)

Once we get the ability to write files, it should be possible to do
stand-alone rescue work from the 3rd stage boot. :)
1998-11-07 17:38:40 +00:00
Jordan K. Hubbard
335edb957d Eliminate much code cruft by extending simple file I/O API to include
fopen and fclose.
1998-11-07 06:18:06 +00:00
Jordan K. Hubbard
ed82a24960 Eliminate much code cruft by extending simple file I/O API to include
fopen and fclose.  Also look for /boot/boot.4th now and, if found,
load its contents.
1998-11-07 06:18:00 +00:00
Jordan K. Hubbard
d6a0c2b58d Take init out of here - it's a layering violation. 1998-11-07 05:01:25 +00:00
Jordan K. Hubbard
c412a7ae32 Don't have debugging on by default - it makes testing annoying. :) 1998-11-07 03:44:10 +00:00
Jordan K. Hubbard
65e7b066b3 OK, fload/fexec work properly when both compiling and interpreting
now.  Gack.
1998-11-07 01:56:06 +00:00
Jordan K. Hubbard
ebc4b7c4fb switch words to default mode. 1998-11-06 23:50:08 +00:00
Jordan K. Hubbard
e1266cedab Submit better fix to the prompt bug. 1998-11-06 23:22:26 +00:00
Jordan K. Hubbard
f476d38a01 Make fexists/fload work with existing string literals instead. Doing
my own string literal handling is just too wonky.
1998-11-06 23:20:32 +00:00
Jordan K. Hubbard
c6c128e122 Argh, I had this right[er] before. More commits to follow. 1998-11-06 19:17:03 +00:00
Jordan K. Hubbard
11adc0d65e Use proper literal names. 1998-11-06 04:01:32 +00:00
Mike Smith
8a34f8ba88 Ack. Create parseable command tail properly, and eat args out of the TIB. 1998-11-06 03:50:44 +00:00
Mike Smith
8190a019a5 Don't not print the prompt string; not doing this has funny side-effects.
Make the prompt an empty string instead.
1998-11-06 03:47:08 +00:00
Mike Smith
84924924e1 Don't use the poxy vmGetString interface (who uses counted strings these
days?), get the input buffer ourselves.  Add some debugging code.
1998-11-06 03:45:36 +00:00
Robert Nordier
548bf5dd17 Make use of BIOS int 0x13 extensions configurable, and disabled
by default.
1998-11-05 20:52:25 +00:00
Jordan K. Hubbard
82f35547c9 Remember a bit more of my forth and do:
o Add fexists word to check for the presence of a file
o make fexists and fload immediate words which DTRT both interpreted
  and compiled (doh!)
o add an init word which gets run at bootstrapping time to do extra
  post-coldload initialization (in the default implementation, we
  look for /boot/boot.4th and load it if found).
1998-11-05 08:39:43 +00:00
Jordan K. Hubbard
5eb1c6c169 1. rebuild all elements of testmain properly for safety.
2. add fload and key prims for doing simple file and terminal I/O, respectively
1998-11-05 07:27:55 +00:00
Mike Smith
875e602afe Explicitly invoke perl to run the softwords.pl script in case the
script is not executable.
Submitted by:	Don Lewis <Don.Lewis@tsc.tdk.com>
1998-11-05 04:54:05 +00:00