Commit Graph

254 Commits

Author SHA1 Message Date
Mike Smith
194b64e83d Correct an irritating documentation error.
(get_diskinfo is unnecessarily obfuscated)
1998-08-04 00:39:45 +00:00
Poul-Henning Kamp
948cb33b78 TFTP_ACK goes to port 69 (default tftp port) and tftpd says 'Timeout'.
It will be sent to source port of received packet.

PR:		7442
Reviewed by:	phk
Submitted by:	Sergey Shkonda <serg@bcs.zp.ua>
1998-07-31 09:03:15 +00:00
Alexander Langer
f7aad78d24 Typo fix: teh --> (the|they) 1998-07-30 02:27:41 +00:00
Bruce Evans
96cf6a722f Added a `build-tools' target for internal tools.
Honor LDFLAGS for building internal tools.
1998-07-07 02:43:26 +00:00
Bill Paul
ab48ff6913 Add workaround to allow the FreeBSD boot block to work on
Kapok Computer Co. notebook with AMI 'WinBIOS' which seems to insist
on having a short jump and nop as the first instructions in the
boot sector code. The prevailing theory is that the BIOS is doing
some sort of boot sector virus detection and refusing to run any
boot block that doesn't start with the same instruction sequence as
MS-DOG boot sector code. If this is the case, it would be nice if it
actually printed an error message to this effect instead of just
saying 'FAILED.'

This workaround has no effect on the boot sector code other than to
increase its size by three bytes.
1998-07-02 15:36:35 +00:00
Poul-Henning Kamp
9dccbd5bcb Sigh, we need this one now. 1998-06-30 11:20:19 +00:00
Poul-Henning Kamp
6e56beb6d2 These are a selection of small problems and annoyances with the netboot
code. Apart from the first one, none really affect typical configurations
but are nevertheless unnecessary limitations. We use netbooted PCs as
student X-terminals and all of the below fixes have been useful. Apologies
for including them all in one PR, but some are just too silly or trivial
to send on their own!

a)     Newer SMC cards have hardware addresses starting with 00:E0.
      Netboot compares the MAC address with 00:00:C0 to determine
      if it is a WD/SMC card, so it fails to detect these.

b)     Netboot is unable to boot kzipped kernels, as it assumes that
      the kernel load address is 0x100000.

c)     Users can abort the booting process and enter arbitrary network
      addresses, or boot from a floppy disk. This can be a problem when
      netbooted machines are used in a student environment.

d)     It is not possible to set all options via bootp. For example there
      is no way to remotely force a client to boot from disk. With both
      SECURE_BOOT(patch below) and NO_TFTP defined, short of unplugging
      the eprom there is no way at all to get the client to boot locally.
      A generic solution is to allow complete netboot commands to be sent
      using bootp lines such as:
	      :T132="diskboot":
e)     The last character of netboot command names is not checked. You
      can type 'iz 10.0.0.1' and it will be interpreted as 'ip'. This
      is only important if you try to add a new command which is the
      same as an existing one except for the last character.

f)     We have a configuration where multiple servers are willing to serve
      a diskless client. The tftp config file, or the bootptab entry on
      each server must specify the root and swap filesystems as 'ip:/fs'
      even though 'ip' will usually be the responding server's IP address.
      It would be nice if netboot could automatically prepend the server's
      IP address to an entry specified as just '/fs', so that multiple
      servers can use the same tftp or bootp configuration files. Admittedly
      this is hardly a major problem!

PR:		7098
Submitted by:	Ian Dowse <iedowse@maths.tcd.ie>
1998-06-30 11:10:29 +00:00
Bruce Evans
ec10b53530 Fixed bogus dependency on `beforedepend'. File targets should never
depend on phony targets or they would always be out of date.
1998-06-29 18:52:33 +00:00
Joseph Koshy
dce52a9c00 Install ${DESTDIR}/boot.help during `make distribution'.
PR: 6063
Submitted by: Doug <Studded@dal.net>
1998-05-27 12:13:18 +00:00
Søren Schmidt
4ac3e074c1 Install in /usr/lib/aout 1998-05-27 08:06:33 +00:00
Poul-Henning Kamp
a0502b19d4 Add two new functions, get{micro|nano}time.
They are atomic, but return in essence what is in the "time" variable.
gettime() is now a macro front for getmicrotime().

Various patches to use the two new functions instead of the various
hacks used in their absence.

Some puntuation and grammer patches from Bruce.

A couple of XXX comments.
1998-03-26 20:54:05 +00:00
Bruce Evans
8b5ab341cb Removed duplicated -I options. 1998-03-12 12:26:49 +00:00
Bruce Evans
4a61fb92f4 Removed hacks to pass -nostdinc to mkdep. bsd.dep.mk now handles
-nostdinc properly.
1998-03-12 12:23:27 +00:00
Eivind Eklund
22263dd149 Make this handle -j<large>, and avoid .depend pointing at /usr/include. 1998-03-07 10:48:15 +00:00
Steve Price
26fa14da33 Use port 0x110 to avoid PNP conflicts.
PR:		5614, 5781
1998-02-23 15:02:59 +00:00
Eivind Eklund
5b4636a600 Make bootblock building independent of /usr/include if relative
includes are available.
1998-02-15 21:38:19 +00:00
Bruce Evans
b8c7cb30ab Don't set even parity uselessly in the line control register (parity
is not enabled).

Saved a few bytes by reusing the line control register bits and not
loading the speed in the wrong (cpu) register.
1998-02-01 22:39:24 +00:00
Kazutaka YOKOTA
2c2491393e Make RAWBOOT functional again; don't read boot.config' and boot.help'
if RAWBOOT is defined.
Reviewed by: bde
Submitted by: Takeshi Amaike <amaike@iri.co.jp>
1998-02-01 05:24:24 +00:00
Kazutaka YOKOTA
daf09234ec Synchronize with ../biosboot/Makefile.
- Remove reference to the obsolete options: BOOT_PROBE_KEYBOARD,
  BOOT_PROBE_KEYBOARD_LOCK and BOOT_FORCE_COMCONSOLE.
- Add reference to BOOT_COMCONSOLE_SPEED.
1998-01-31 01:20:56 +00:00
Mike Smith
0b771fd153 Symlink bootblocks for 'wfd' disks as well. 1998-01-27 16:56:43 +00:00
Tor Egge
75d515b755 Don't throw away bootp reply packets that are shorter than our extended-length
bootp query packet.
PR:		5512
1998-01-18 18:53:46 +00:00
Bruce Evans
d92b2035e3 Fixed cosmetic bugs:
- wrong name in .file statement.
- stale comment about CONSPEED.
- style bugs in comments.
- inconsistent defaulting of operand sizes (should never depend on default).
- inconsistent choosing between je and jz (should always use je).
1998-01-01 13:01:31 +00:00
Joerg Wunsch
3bb99eb225 Finally, implement a mini-parser for RockRidge alternative filenames,
so the filenames can be displayed and selected in full beauty.  If RR
is present, the match is now case-sensitive, if RR is missing, the
match is case-insensitive (as it used to be before).
1997-12-04 21:52:47 +00:00
Joerg Wunsch
660ee160b9 Fix a bug that caused cdboot to stop reading the root directory at the
end of the first block.

Problem found by:	Kenneth Merry <ken@plutotech.com>
1997-12-02 21:13:59 +00:00
Bruce Evans
a3796113f1 Fixed spammed Id.
Spammed in:	rev.1.5 (long ago)
1997-10-07 06:40:16 +00:00
Jordan K. Hubbard
97fe7f477f Changes to support full make parallelism (-j<n>) in the world
target.
Reviewed by:	<many different folks>
Submitted by:	Nickolay N. Dudorov" <nnd@nnd.itfs.nsk.su>
1997-10-05 09:40:24 +00:00
Wolfram Schneider
bf5cbf3551 Sort cross refereces in section SEE ALSO. 1997-09-29 19:11:55 +00:00
Poul-Henning Kamp
e1fa905ad4 Add a missing prototype.
Nagged about by:	joerg
1997-09-24 07:44:34 +00:00
Poul-Henning Kamp
e6dcdf4dd1 Remove pbzero(), things we load zero their own bss.
Make VESA_SUPPORT default
1997-08-31 06:11:26 +00:00
Steve Price
1e915c361e Remove extraneous init parameter.
PR:		kern/3595
Submitted by:	Chiharu Shibata <chi@rd.njk.co.jp>
1997-08-23 23:38:12 +00:00
Poul-Henning Kamp
dd9346ce01 Oops, boot2 got too big. make VESA_SUPPORT nondefault. 1997-07-31 11:30:30 +00:00
Poul-Henning Kamp
d9f5f52664 Add support for booting in VESA 0x102 videomode. Corresponding patches to
syscons are being reviewed by sos.
1997-07-31 08:07:54 +00:00
Bruce Evans
eae4afa6c0 Removed support for stale options.
Removed unused targets.  (Is sizetest necessary?  It wasn't run.)

Added boot.img to CLEANFILES.
1997-07-21 16:12:52 +00:00
Bruce Evans
5f0539ec6c Saved a few bytes by omitting frame pointers, using byte-sized
instructions more (many cases were already intended to be byte-sized
but were missing prefixes so gas assembled them bogusly), and
rearranging a loop to test at the end.
1997-07-13 15:24:15 +00:00
Joerg Wunsch
f88ef34060 Make this compile again under -current. The modifications to io.c
and bios.S were small enough and have been merged back into their
respective files in biosboot/, conditionalized on CDBOOT.  Other
files might be merged at a later stage.

Caveat emptor: i cannot test this right now.
1997-07-12 10:23:31 +00:00
Joerg Wunsch
c38b4f3b91 (Part #2, after the Internet link broke totally yesterday.)
This is the long-threatened ISO 9660 CD-ROM bootstrap code.

This work has been sponsored by Plutotech International, Inc (who paid
the initial work), and interface business GmbH (where i did most of
the work).  A big thanks also goes to Bruce Evans, for his continuing
help and answering my stupid questions.

The code is basically functioning, with the following caveats:

. Rock Ridge attributes are not yet supported.
. Only SCSI CD-ROMs are supported, since i fail to see any possibility
  to determine the drive type using BIOS functions.  (Even for hard disks,
  this determination is done by a big hack only.)
. El Torito specifies a lot of crap and useless misfeatures, but crucial
  things like the ability to figure out the CD TOC have been ``forgotten''.
  Thus, if you wanna boot a multisession CD, you need to know at which CD
  block your session starts, and need to speciffy it using the @ clause.

. None of the CD-ROM controllers i've seen so far implements the full
  El Torito specification at all.  Adaptec is probably the closest, but
  they miss on non-emulation booting (which would be the most logical
  choice for us).  Thus, the current code bloats the 7.5 KB boot code
  up to 1.44 MB, in order to fake a `floppy' image.

  If you wanna use it, specify this file as the boot image on the
  command-line of the mksiosfs command (option -b).

  Caveat emptor: some versions of the Adaptec BIOS might even fail to
  access the CD-ROM at all, using the BIOS functions.  I think i've
  notice this for ver 1.26, the code has been tested with ver 1.23.

The boot string is as follows:

        [@sess-start] [filename] [-flags]

sess-start      Extend # where the last session starts, measured in
                CD-ROM blocks.

filename        As usual, but the input is case-insensitive by now
                (since we  don't grok RR anyway).

flags           As usual, but -C (use CDROM root f/s) is default, so
                specifying -C will decactivate this option (which is
                probably not what you want :).

A lot of cleanup work is probably required, and some of the files
could/should be merged back to biosboot, perhaps made conditional on
some #ifdef.  The malloc implementation that comes with cdboot might
also be useful for kzipboot.  (I needed a malloc() since the root dir
ain't fixed in size on a CD.)

I've been testing all this with a 2.2-STABLE as the base for biosboot.
I don't expect too many surprises, although i know the biosboot stuff
has been changed a lot in -current lately.  I'm sure Bruce will
comment on all this here anyway. :-)
1997-07-11 05:52:41 +00:00
Joerg Wunsch
5ee8126ec8 This is the long-threatened ISO 9660 CD-ROM bootstrap code.
This work has been sponsored by Plutotech International, Inc (who paid
the initial work), and interface business GmbH (where i did most of
the work).  A big thanks also goes to Bruce Evans, for his continuing
help and answering my stupid questions.

The code is basically functioning, with the following caveats:

. Rock Ridge attributes are not yet supported.
. Only SCSI CD-ROMs are supported, since i fail to see any possibility
  to determine the drive type using BIOS functions.  (Even for hard disks,
  this determination is done by a big hack only.)
. El Torito specifies a lot of crap and useless misfeatures, but crucial
  things like the ability to figure out the CD TOC have been ``forgotten''.
  Thus, if you wanna boot a multisession CD, you need to know at which CD
  block your session starts, and need to speciffy it using the @ clause.

. None of the CD-ROM controllers i've seen so far implements the full
  El Torito specification at all.  Adaptec is probably the closest, but
  they miss on non-emulation booting (which would be the most logical
  choice for us).  Thus, the current code bloats the 7.5 KB boot code
  up to 1.44 MB, in order to fake a `floppy' image.

  If you wanna use it, specify this file as the boot image on the
  command-line of the mksiosfs command (option -b).

  Caveat emptor: some versions of the Adaptec BIOS might even fail to
  access the CD-ROM at all, using the BIOS functions.  I think i've
  notice this for ver 1.26, the code has been tested with ver 1.23.

The boot string is as follows:

	[@sess-start] [filename] [-flags]

sess-start	Extend # where the last session starts, measured in
		CD-ROM blocks.

filename	As usual, but the input is case-insensitive by now
		(since we  don't grok RR anyway).

flags		As usual, but -C (use CDROM root f/s) is default, so
		specifying -C will decactivate this option (which is
		probably not what you want :).

A lot of cleanup work is probably required, and some of the files
could/should be merged back to biosboot, perhaps made conditional on
some #ifdef.  The malloc implementation that comes with cdboot might
also be useful for kzipboot.  (I needed a malloc() since the root dir
ain't fixed in size on a CD.)

I've been testing all this with a 2.2-STABLE as the base for biosboot.
I don't expect too many surprises, although i know the biosboot stuff
has been changed a lot in -current lately.  I'm sure Bruce will
comment on all this here anyway. :-)
1997-07-10 21:58:43 +00:00
Bruce Evans
080cec3cc4 Fixed description of -cv. 1997-07-05 02:08:09 +00:00
Bruce Evans
72ef571982 Don't depend <machine/cpufunc.h> including <sys/types.h>. 1997-07-01 00:29:33 +00:00
Philippe Charnier
91463ae299 Fix 2 typos. 1997-06-16 06:32:51 +00:00
Bruce Evans
fec712543d Load the kernel config file where userconfig (with option USERCONFIG_BOOT)
will see it.  The name of the file is obtained by appending ".config"
to the name of the kernel file.  If the file doesn't exist, then an
annoying message is printed.

Reduced the command line buffer size yet again from 4096 to 1024.  It is
oversized to defend against overrun in gets(), but data space is starting
to run out so the buffer size can't be as grossly oversized as before.
1997-06-14 10:00:42 +00:00
Tor Egge
43f83f0b47 Use ETHER_ADDR_LEN instead of ETHER_ADDR_SIZE. 1997-06-12 19:20:53 +00:00
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