Commit graph

212 commits

Author SHA1 Message Date
Bruce Evans e49dd0c779 This should have been committed with the changes to boot.c yesterday.
- Added support for "dual" internal/serial consoles (-D flag).  If -D is set,
  then all i/o from the boot blocks is to and from both the internal console
  and the serial console.  -D has no effect on the kernel (-h decides the
  kernel serial console as usual).  -D should normally be set in /boot.config.
- Get help messages from /boot.help.  You should copy boot.help from the
  biosboot directory to the root directory on the boot drive when you
  install new boot blocks.
- New, less invasive keyboard probe.  Enable keyboard probe dynamically (-P
  flag).  Should probably never be used (use -h instead).
- Fixed/improved initialization from boot.config.  It didn't interact correctly
  with the NAMEBLOCK option, and the initialization of the drive/unit/partition
  didn't stick when a non-default kernel name was entered.
- Don't reset or forget the default drive/unit/... or kernel name so often.
- Set the default kernel name to something unbootable after `?'.
- Display the defaults better.
- Removed PROBE_KEYBOARD_LOCK option (use -h instead).,
- Removed BOOT_FORCE_COMCONSOLE option (use device flag 0x20 instead).
- Removed -a (RB_HALT) flag.  This flag is only used for reboots.
Submitted by:	about 2/3 by yokota
1997-06-10 01:40:32 +00:00
Bruce Evans de2cf96615 - Added support for "dual" internal/serial consoles (-D flag). If -D is set,
then all i/o from the boot blocks is to and from both the internal console
  and the serial console.  -D has no effect on the kernel (-h decides the
  kernel serial console as usual).  -D should normally be set in /boot.config.
- Get help messages from /boot.help.  You should copy boot.help from the
  biosboot directory to the root directory on the boot drive when you
  install new boot blocks.
- New, less invasive keyboard probe.  Enable keyboard probe dynamically (-P
  flag).  Should probably never be used (use -h instead).
- Fixed/improved initialization from boot.config.  It didn't interact correctly
  with the NAMEBLOCK option, and the initialization of the drive/unit/partition
  didn't stick when a non-default kernel name was entered.
- Don't reset or forget the default drive/unit/... or kernel name so often.
- Set the default kernel name to something unbootable after `?'.
- Display the defaults better.
- Removed PROBE_KEYBOARD_LOCK option (use -h instead).,
- Removed BOOT_FORCE_COMCONSOLE option (use device flag 0x20 instead).
- Removed -a (RB_HALT) flag.  This flag is only used for reboots.
Submitted by:	about 2/3 by yokota
1997-06-09 05:10:56 +00:00
Tor Egge b93b7486b9 Fix a typo.
Submitted by:	Wolfgang Helbig <helbig@MX.BA-Stuttgart.De>
1997-05-31 18:29:58 +00:00
Bruce Evans f79e6ee387 Staticize. 1997-05-27 16:26:39 +00:00
Bruce Evans 906265bada Removed some useless code:
- gcc assumes that %ecx and %edx are clobbered (due to calling
  conventions), thus there is no need for saving/restoring those two
  registers.
- %es is reset to default value by real_to_prot, thus there is no need
  for saving/restorig that register.
Submitted by:	tegge
1997-05-16 10:40:00 +00:00
Tor Egge b262c3b12b Update netboot manual page.
Submitted by:	Luigi Rizzo <luigi@iet.unipi.it>
1997-05-15 19:04:33 +00:00
Tor Egge f811abf08c Bring in some improved bootp support for netboot submitted by Luigi:
- TFTP is not needed any longer.
Add some other improvements:
      - swapsize is now detected if no value was specified.
      - resvport is used by default
      - merged code for setting/showing mount options for root/swap.
Submitted by:   Luigi Rizzo <luigi@labinfo.iet.unipi.it>
1997-05-14 02:44:27 +00:00
Satoshi Asami b1671e460a Add ${CFLAGS} to makerom command line. Note: don't add ${LDFLAGS} here,
it has a bunch of extra stuff defined above.

While I'm here, change "$(CFLAGS)" to "${CFLAGS}" to make all the rules
uniform.
1997-05-13 06:23:21 +00:00
Tor Egge 472ac7f0bd save/restore %ebx, %esi and %edi when calling bios routines.
Don't save/restore %ecx and %edx.
Reset segment limits when going to real mode.
Reviewed by:	phk (briefly)
1997-05-12 23:00:32 +00:00
Bruce Evans 72fa3798b4 Removed LDADD=-lc and associated DPADD. libc would probably break
things if it were actually used.
1997-04-25 19:38:01 +00:00
Bruce Evans c24b67b188 Don't attempt to read past EOF.
Saved enough bytes to make room for this bloat (testing poff < inode.i_size
takes 56 bytes!) by copying fs to a local variable.
1997-03-15 16:49:51 +00:00
Bruce Evans 051fc6fab1 Fixed setting of default kernel name when there is no boot.config file.
Didn't fix a more serious problem when boot.config is empty - read()
can't handle empty files.

Reported by:	Chris Timmons <skynyrd@opus.cts.cwu.edu>
1997-03-12 18:48:31 +00:00
Bruce Evans bdca44f670 Added -mno-486 to CFLAGS to force smaller code in case someone compiles
with CC="cc -m486".  This doesn't fix PR2381, since PR2381 is for 2.1.x.
1997-03-05 15:43:03 +00:00
Bruce Evans e9ca7be82f Added some nfs #includes so that netboot compiles again. Lite2 made the
nfs includes even more order-dependent and less documented than before.
1997-03-01 17:59:04 +00:00
Peter Wemm 6875d25465 Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not
ready for it yet.
1997-02-22 09:48:43 +00:00
Bruce Evans b0a5b85d06 Fixed biosboot to compile with Lite2. <sys/lock.h> is now a prerequisite
for <ufs/ufs/inode.h>.
1997-02-18 15:09:39 +00:00
Bruce Evans 8363c19687 Get defaults for the boot device (and flags) from the file
"boot.config" (relative to the root directory on the 'a' partition
on the first BSD slice) if it exists.  If it doesn't exist, then
the only visible changes should be that the kernel name isn't reset
to "/kernel" after looking it up fails and that the default name
is now "kernel".

The new function readfile() can be used for other things:
- reading help messages.
- reading splash screens.
- reading userconfig info.
1997-02-13 13:15:47 +00:00
Jordan K. Hubbard 1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Bruce Evans 07addd421e Initialize the upper 16 bits of the memory sizes properly (to 0).
They were garbage that happened to be 0 in many cases.  (real_to_prot()
happens to leave the value of the real-mode %cr0 in %eax and the
memory-size BIOS calls usually don't touch the upper bits of %eax.
The upper 16 bits of %cr0 are usually 0 at boot time, at least on
486's.

Should be in 2.2.
1996-12-18 15:38:23 +00:00
Peter Wemm 825ba339df Add missing -I so that probe_keyboard.c can find <i386/isa/kbdio.h>. :-(
(Why, oh why did this include file end up in isa/ rather than include/ ?)
1996-12-15 01:25:54 +00:00
Martin Renters 204c7704d9 Two fixes:
makerom checksum check calculation was a no-op
	nb8390.c had a bug which caused packet_len to be incorrect
	for packets which wrapped in the buffer.
Submitted by:	Linux developers (I lost the email with their names)
1996-12-11 19:33:38 +00:00
Garrett Wollman d051845d36 Don't depend on <net/if.h> including <sys/time.h> 1996-12-10 18:01:27 +00:00
Bruce Evans 9d12c4da86 Give up early for empty partitions. The offset for an empty
partition is 0, which is outside the slice unless the disk is
dangerously dedicated.  There is little error checking later, and
following garbage metadata outside the slice usually caused crashes,
Empty 'a' partitions are fairly easy to create by cloning the label
for the whole disk.

Fixed a missing newline in a related error message.
1996-12-10 14:07:42 +00:00
Nate Williams c80383505d Update the bootblocks to use the new definitions that changed in the
recent psm/syscons/kbdio code update.

Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1996-12-03 03:32:15 +00:00
Poul-Henning Kamp ff301e1b9b Add a timeout here, just like in if_ed.c
Reviewed by:	phk
Submitted by:	Luigi Rizzo <luidi@labinfo.iet.unipi.it>
1996-11-28 09:54:38 +00:00
Peter Wemm 34429f3d2d Fix my previous (untested) commit. The probe routine now appears to work
again.

Something needs to be done about this in 2.2, since the code there doesn't
even compile anymore since the syscons/kbdio/psm merge into 2.2.
1996-11-24 08:06:01 +00:00
Peter Wemm f2a58aec0a Make this compile again after the syscons/psm/kbdio changes that removed
the keyboard IO port definitions from <machine/console.h>.

Note: I do not have a machine available to test this yet,  I sent this
for review to several people who have not replied.

This is also totally busted in 2.2, which has half of the syscons/psm/kbdio
changes in it.  This really desperately needs to be tested and fixed
in 2.2 as well.
1996-11-23 07:38:25 +00:00
Bruce Evans 6a32566a7d Preserve %esi and %edi for get_diskinfo(). See the logs for similar fixes
in bios.S.  I only fixed the case that is known to be broken here.

Should be in 2.2.
1996-11-11 14:27:12 +00:00
Bruce Evans 2e2d9bc760 Preserve %esi and %edi for all BIOS calls. This is probably only necessary
for get_diskinfo(), whose BIOS call sets %es:%edi in some cases, although
most documentation says that it doesn't change %edi in the cases that
happened to matter (for hard disks).

This shall be in 2.1.6 and 2.2.

Submitted by:	Tor.Egge@idt.ntnu.no
		(except I kept the unnecessary preservation of %edx and %ecx)
1996-11-11 14:03:33 +00:00
Poul-Henning Kamp 59a95186d2 Fill in the bios-geometry array in struct bootinfo.
2.2 candidate.
1996-11-02 14:46:27 +00:00
Paul Traina 6564e095d3 Rationalize support for serial consoles running at baud rates other than 9600
baud.  This isn't particularly beautiful, but neither is it disgustingly
gross.
1996-11-02 02:24:39 +00:00
Bruce Evans 9e25bb3c6b Synchronized with biosboot/Makefile:
- use gcc-2.7.2 alignment features
- get CWARNFLAGS form <bsd.kern.mk>
- fixed whitespace differences.
1996-10-15 16:26:05 +00:00
Paul Traina 972a3f282a Expose the control mechanism for serial console boot so that the default
shipped with freebsd can be changed without modifying the Makefiles directly.

Creates:	BOOT_FORCE_COMCONSOLE
		BOOT_PROBE_KEYBOARD
		BOOT_PROBE_KEYBOARD_LOCK
		BOOT_COMCONSOLE			(port value for console)
1996-10-14 17:25:53 +00:00
Bruce Evans 14c0bb7c89 Oops, PROBE_KEYBOARD_LOCK wasn't supposed to be enabled by default. 1996-10-14 12:37:47 +00:00
Bruce Evans 50ec4d5916 Added option PROBE_KEYBOARD_LOCK which gives a serial console if the
keyboard is locked.
1996-10-08 22:41:34 +00:00
Bruce Evans 4fd6d53a24 Saved about 160 bytes by using the gcc-2.7 alignment options. 1996-10-08 22:35:48 +00:00
Bruce Evans 5bac261e76 Print the dos device number for read failures. 1996-10-08 22:31:31 +00:00
Bruce Evans 86f17a898e Removed unused arg to badsect(). It wasted 16 bytes.
Staticized badsect().

Avoid warning for benign signed vs unsigned comparison.
1996-10-08 22:25:22 +00:00
Bruce Evans 3eeeca733b Use the same warning flags as for the kernel. This causes surprisingly
few warnings.
1996-10-08 22:18:34 +00:00
Paul Traina b3f3fea5fd Fix a couple of bugs causing false positives 1996-09-26 20:52:13 +00:00
Bruce Evans 0c8ea4d48c Eliminated includes of the "temporary" backwards compatibility header
<sys/dir.h> in applications.  Maintained existing (inadequate) ifdefs
for dir.h vs dirent.h in libdialog, amd and rarpd, but didn't add any
new ones.
1996-09-24 08:08:11 +00:00
Bruce Evans 2e82980a4c Moved instantiation of `poff' to sys.c. It is no longer used in disk.c.
Saved a few bytes by copying `dosdev' and/or `name' to local variables.
This optimization (for dosdev) was done in one place before but this
was lost in the devread() cleanup.   This optimization (for dosdev)
can almost be done by bogusly declaring dosdev as const, but gcc still
often space-pessimizes code like the following:

	extern const int dosdev; ... foo(dosdev); bar(dosdev);

gcc often doesn't bother to copy dosdev to a temporary local because
the local would have to be preserved in memory across the call to
foo().  OTOH, for

	extern int dosdev; ... auto int dosdev_copy = dosdev; ...
		foo(dosdev_copy); bar(dosdev_copy);

the copy must be made because foo() might alter dosdev.
1996-09-14 07:41:00 +00:00
Bruce Evans 310abe0579 Removed declarations of recently deleted variables and cleaned up
#includes.
1996-09-14 07:38:14 +00:00
Bruce Evans d154cceba7 Potentially saved a whole 4 bytes and reduced bogusness by eliminating
the pointer to the string "/kernel".  This pointer was once only
statically to once save space, but it has had to be dynamically
initialized for some time, so the static initialization just wastes
space.  The string gets moved to the text section, so the actual
savings may be negative due to padding.
1996-09-14 07:12:02 +00:00
Poul-Henning Kamp 078e82404e The intended usage is:
cat /usr/mdec/rawboot /sys/compile/FOO/kernel | fdwrite

That should explain it all  :-)
1996-09-11 19:25:12 +00:00
Poul-Henning Kamp b679d552d3 Add #ifdef for RAWBOOT.
remove some #if 0 stuff.
1996-09-11 19:23:11 +00:00
Poul-Henning Kamp 8b5d3828b2 Add "rawboot", sort the subdirs. 1996-09-11 19:22:21 +00:00
Poul-Henning Kamp 980b7c9573 Rather than adding more gunk here, clean some of it up:
devread() had a bogus interface, cleaned up.
	Bread() did an unneeded bcopy(), don't.
Saves 80 bytes and some time.
1996-09-10 21:18:40 +00:00
Bruce Evans 24c074ad8d Remove boot2 when the size test fails so that rebuilding without fixing
the problem doesn't bogusly succeed.

Print size failures to stderr instead of stdout and don't print bells
and whistles.
1996-09-07 21:16:44 +00:00
Bruce Evans 6074a34497 Saved 48 bytes (46 before padding) using assorted nano-optimizations:
- avoiding strcmp("?" saved 12 bytes.  gcc inlined the strcmp()
  but this takes as much or more code as a function call.  The
  inlining was bogus because the strcmp() in the bootstrap isn't
  standard.

- using a char instead of an int for the boolean `last_only' saved 8
  bytes.  Booleans should usually be represented as chars on the i386.

- simplifying the return tests saved 9 bytes.

- using putc instead of printf to print a newline saved 3 bytes of code
  and 2 bytes of const data.

- avoiding `else's by always doing the else clause and fixing it up
  saved 4+8 bytes.
1996-09-07 21:06:43 +00:00