Commit Graph

168 Commits

Author SHA1 Message Date
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
Bruce Evans
ae6e81ef56 Saved 48 bytes (56 before padding) by moving a variable declaration.
gcc always generates large code for accesses to globals.  For locals
it only generates large code if there are more than 128 bytes of
locals.  It sorts scalar locals after array locals to pessimize for
space in the usual case when there are more (static) references to
scalars than to arrays.

Saved another 16 bytes (13 before padding) by adding a `continue'.

Fall-through tests normally save space, but here one of them made
gcc do space-unoptimal register allocation (it allocates ch in %bl
because preserving this register across function calls is "free",
but comparisions with %bl take one byte fewer than comparsions with
%bl).
1996-09-07 20:18:04 +00:00
Julian Elischer
7fae9bcd24 Back out the previous changes
I just couldn't get the code to be as small as it should have gotten..

atill a LITTLE bigger than before as I need to allow the
default string to have options as well
1996-09-05 21:12:06 +00:00
Julian Elischer
bf709d2564 3 changes:
1/ Makefile:  the maximum size for boot2 is 7.5K not 7K,
so don't complain until it reaches THAT size..
newfs leaves 8K and boot 1 is 512k. leaving 7.5K becasue the disklabel
is considered to part of the boot2 file.

[512  boot1][512 disklabel][     7K boot2 code        ]
[boot1 file][               boot2 file                ]

2/ Boot2.S: move the soring of the default name read from block 2 to AFTER
clearing the BSS.

3/ boot.c:
Move the parsing of the command line into the
place it's called for clarity.. alsoi comment it a bit and clean it
up a bit.. for some reason this seems ot have made it a little
larger, but I can't work out why.. maybe bruce might have ideas?
compensated for by shrinkage elsewhere..

the practical result of this is htat the default string can now contain args
e.g. if you change the default string to have -gd
then the machine will boot to the dgb debugger stub by default..
this is mostly useful with the nextboot utility..
as it now allows you to remotely force a machine to reboot into
the debugger.
1996-09-04 18:28:36 +00:00
Andrey A. Chernov
a6f2461bdf Add g option to usage line 1996-08-28 18:33:15 +00:00
Paul Traina
f8f0b4798e Support for GDB remote debug protocol.
Sponsored by: Juniper Networks, Inc. <pst@jnx.com>
1996-08-27 19:45:58 +00:00
Bruce Evans
ec275eb27f Moved the definition of DEBUGMSG() from asm.h to start.S. This macro
is only appropriate to use in the special environment of start.S (real
mode plus some conventions about not saving registers), and asm.h is
supposed to be for generic macros.

Removed some unnecessary parentheses.
1996-07-12 05:42:02 +00:00
Bruce Evans
18f63e25c1 Moved the definition of `bsize' out of a DO_BAD144 ifdef so that this
compiles when DO_BAD144 is not defined.
1996-07-12 05:35:47 +00:00
Bruce Evans
1cc273db90 Moved the definition of dflt_name to the correct file (table.c is only for
explicitly initialized data) and made it conditional on NAMEBLOCK.
1996-07-12 05:25:47 +00:00
Bruce Evans
b830e63502 Fixed some speling, punctuation.. and spac ing errors. 1996-07-12 05:17:37 +00:00
Julian Elischer
c9f36013e5 make the NAMEBLOCK changes conditional on that preprocessor variable,
and add more documentation of the option in the Makefile
also CORRECT the variable mentioned in the README.
1996-07-09 02:28:20 +00:00
Julian Elischer
9ed24653f7 Obtained from: Whistle Communications
Add code to the boot blocks to allow the user to place default boot strings
on block 1 of the disk (2nd block), should the correct magic numbers be present.

If the correct options are used it will 'delete' the name used from block1,
thereby assuring that if the boot fails it won't be stuck in an infinite loop.

the boot strings are set by the utility "nextboot"
(not yet checked in, but being tested.)
By default these changes should have no effect on existing installations
and if compiled without the NAMEBLOCK option should be essentially identical
to the old ones.
1996-07-05 19:55:05 +00:00
Bruce Evans
a7c6885b3a Fixed BOOT_HD_BIAS. 1996-05-11 04:27:24 +00:00
Poul-Henning Kamp
f8845af0db First pass at cleaning up macros relating to pages, clusters and all that. 1996-05-02 10:43:17 +00:00
Bruce Evans
494908b12c Fixed timeouts. I broke them in rev.1.17 for the FORCE_COMCONSOLE and
(interactively set RB_SERIAL) && BOOTWAIT (serial i/o) cases.
1996-04-30 23:43:25 +00:00
Jordan K. Hubbard
39cef8f8cb Document how to drop into DDB from a serial console. 1996-04-13 11:57:18 +00:00
Bruce Evans
0166c5c6b4 Allow specifying the BIOS drive number. Removed the hd drive type.
hd essentially wired the FreeBSD drive number to 0 without changing
the BIOS drive number.  Now the numbers can be specified independently.

Replaced the BOOT_HD compile time flag with with BOOT_HD_BIAS.  Defining
the new flag as 1 should give the same behaviour as defining the old
flag as anything.  I haven't tested defining these flags.
1996-04-07 14:28:05 +00:00
Bruce Evans
bb859b2bb8 Saved 14 bytes by avoiding gas braindamage and 8 bytes by better
instruction selection, for a total of 16 bytes after padding.  Whee.
1996-03-08 07:27:52 +00:00
Bruce Evans
cc494d0cce Probe the keyboard if PROBE_KEYBOARD is defined instead of when `notyet'
is defined and FORCE_COMCONSOLE isn't defined.

Don't compile any keyboard probing code if PROBE_KEYBOARD isn't defined.

Makefile:
Removed -I paths.  They weren't used, and the one to /sys hasn't worked
since the source directory was moved down one level.
1996-03-08 06:29:07 +00:00
Bruce Evans
27253a3d9c Made the timeouts in gets() machine-independent. Use the BIOS tick
counter instead of the BIOS time call to save space.

Reworked the anti-noise timeout to avoid duplicating code.  The timeout
in the outer loop is now restarted after every noise timeout, so it is
now possible for the total timeout to be infinite; previously, the maximum
total timeout was 150000 seconds.
1996-03-08 06:11:33 +00:00
Bruce Evans
0ae65c1a2b Load %fs with the flat data segment selector while in protected mode.
This will be used for convenient access to the BIOS variables.
1996-03-08 05:43:46 +00:00
Bruce Evans
c50f3ecf5a Fixed restoring segment descriptors in prot_to_real(). The descriptors
must have limit 0xffff and attribute G = 0 (byte granularity) as well
as other properties that they already had (see e.g., the Intel i486
manual section 22.5).  Not restoring them broke Ctrl-Alt-Del in the
bootstrap for my ASUS P55TP4XE system, probably because the Award BIOS
does anti-tracing stuff involving inaccessible %esp's.

asm.S:
Don't use lret in prot_to_real().  This reduces the risk of using an
incompletely intialized stack segment and saves space.

Submitted by:	"K.Higashino" <a00303@cc.hc.keio.ac.jp> (on 13 Jan 1995!)
		reworked by me
1996-03-08 05:15:54 +00:00
Joerg Wunsch
017ef5fdc2 Create symlinks for vnboot and bootvn, too. 1996-02-03 21:12:27 +00:00
Joerg Wunsch
85373d20b1 Implement an optional TIMEOUT value while entering the boot parameter
string.  This avoids indefinite hangs e.g. when used on a noisy serial
console.  It's not turned on by default.
1996-01-21 11:30:12 +00:00
Joerg Wunsch
301c758249 Document the ``BOOT_HD'' make option for the bootblocks. 1996-01-06 23:37:10 +00:00
Andrey A. Chernov
eb8421526c Remove -fno-strength-reduce, gcc bug recently fixed 1996-01-05 19:28:55 +00:00
Andrey A. Chernov
1d5aafcd70 Add -fno-strength-reduce to neutralize possible bad effect of -O2
specified directly
1995-10-10 21:11:22 +00:00
Bruce Evans
72b3459d61 Add comments about the bogus zeroing of the drive number for floppies
and the bogus dummy partition table.
1995-09-16 13:51:20 +00:00
Bruce Evans
45c7e5044d Fix recent breakage of non-floppies with 36 sectors/track.
Disable support for not looking at the label when booting from fd2d
(15-sector floppies in drive 2) and fd2b (other floppies in drive 2).
1995-09-16 13:03:59 +00:00
Nate Williams
e21fd30049 When confronted with a drive that says there are 36 sectors/track,
ignore and set it to 18 sectors/track.  This allows FreeBSD to boot with
2.88MB floppies which are used in older ThinkPads.

Submitted by:	Random Net person whose name I lost
1995-09-16 05:02:37 +00:00
Julian Elischer
623463ca4a Cosmetic changes to make a comment more nearly reflect reality 1995-09-03 05:36:13 +00:00
Joerg Wunsch
ea76f9453e First part of importing the Japanese `od' driver.
Claim the major numbers (before sombedoy else jumps in again and
claims the slots for his foocd driver :-), install all the hooks that
are required.

While i've been at this, i've cleaned up some of the routines at the
end of i386/conf.c; all the importers of the latest CDROM drivers
forgot to fill in the appropriate information.  The `ata' driver
(vapourware?) does only occupy a slot in the bdevsw[] array, btw.

The actual import of the code does require a minor change in the SCSI
subsystem, and i want to have this reviewed by Peter first, so it will
be deferred for some days.  The driver is already working for me
though.

Submitted by:	akiyama@kme.mei.co.jp (Shunsuke Akiyama)
1995-08-19 15:59:35 +00:00
Bruce Evans
9c0dc173cc Change install' to ${INSTALL}' so that default install flags can be
specified in the top level Makefiles.
1995-07-25 00:37:58 +00:00
Joerg Wunsch
f6027d9b3d this avaids the "lineoverflow" which you'll always get at 80 column
displays at bootup

Reviewed by:
Submitted by:	graichen@omega.physik.fu-berlin.de (Thomas Graichen)
Obtained from:
1995-07-22 22:32:49 +00:00
Joerg Wunsch
0f72d204e6 Reset defaults in case of boot() is looping several times (e.g. the
user has entered a bogus kernel name in the first place).

Also fix the broken #ifdef FORCE_COMCONSOLE, it has been disabled by
accident.  (NB: the keyboard probe remains disabled however.)

Few cosmetic fixes (declare functions to be void instead of int),
while i've been at this.

Pointed out by: wosch@cs.tu-berlin.de (Wolfram Schneider), for the init bug
1995-06-25 14:02:57 +00:00
Andrey A. Chernov
525cb41eb5 1) Enable boot from root partition which end > cyl 1023, it isn't criminal
2) Produce hard error when Bread attempts to read cyl >1023
Reviewed by: bde
1995-06-23 01:42:42 +00:00
Rodney W. Grimes
d3628763db Merge RELENG_2_0_5 into HEAD 1995-06-11 19:33:05 +00:00
Rodney W. Grimes
9b2e535452 Remove trailing whitespace. 1995-05-30 08:16:23 +00:00
Poul-Henning Kamp
75e21a4e1e Now I could finally test this change: bad144 is now relative to the
partition.
1995-05-21 03:27:13 +00:00
Poul-Henning Kamp
303fd456bf Use spc, not spt, DUH! Thanks Bruce!
Submitted by:	bde
1995-05-11 16:19:50 +00:00
Poul-Henning Kamp
0f15ab39ec Make disk.c smart enough to handle disk with "OnTrack Disk manager".
Make it complain if people try to boot from a partition which extends
past 1024 cylinders.  This is better than a random reset...
1995-05-08 02:02:56 +00:00
Julian Elischer
220112c567 Submitted by: bde@freebsd.org 1995-04-21 22:20:34 +00:00
Bruce Evans
8da0f3b87a Make some functions static like they always should have been.
Change the interfaces of these functions to save space.  The code
that takes the least amount of space is often the opposite to what
you might expect.  E.g., it helps to waste a few bytes passing
pointers so that the compiler can't see that certain addresses
are identical (gcc likes to waste space by reloading fat constants
even when the constant is already in a register).

Rewrite getbootdev() to save 80 bytes of space and to make it less
ugly.  32 bytes were saved simply by omitting the continue statements
in the pseudo-switch.
1995-04-21 16:50:32 +00:00
Bruce Evans
34951155ae Update the pseudo-prototype for serial_putc() to match the actual prototype. 1995-04-21 16:30:18 +00:00
Bruce Evans
a9ef92e638 Never pass char or short args to functions. This saves 64 bytes of
recently introduced bloat in just 2 calls to biosread(), although
very little in calls to putc() and serial_putc().  Gcc produces
amazingly bad code for unnecessary conversions.  E.g., if it has
`int x' in register %edx and wants to pass a char, then it could
simply push %edx and access only one byte in the callee.  Instead,
it sometimes unnecessarily spills %edx; it always sign extends
%edx and pushes the result.

Remove useless `extern' in function prototypes.

Remove unused declaration of `end'.

Declare pbzero() and pcpy() like the library bzero and bcopy().

Declare printf() properly.
1995-04-21 16:07:12 +00:00
Joerg Wunsch
9c6e0c69be . Make Poul's boot2 overflow warning less noisy in case the blocks
do fit, and beeping in case of an overflow.

.  Drop a comment about the ``FORCE_COMCONSOLE'' option into
   README.serial.

.  Increase the name buffer for the root directory from 100 bytes
   to 8 KB;  this is in no way ideal, but (IMHO) the best that can
   be done by now.  People did encounter problems with their root
   dir name listing overflowing the allocated buffer space.  Once
   we've got the three-stage boot, we should implement some basic
   malloc().  Swap space is already getting tight now, perhaps the
   swap should go into another 64 KB segment instead.

.  Make the keyboard probe less paranoid.  It should not give up in
   case of a keyboard that's continuously demanding RESEND's.  Even
   though the keyboard reset apparently has not been reported to be
   complete, it's at the very least proven that there IS something
   like a keyboard available.

   This solves problems with the ``Gateway-2000 AllKey programmable''
   (sp?) keyboard, that experienced a total hang with the previous
   probe.

   Thanks goes to Scott Blachowicz <scott@statsci.com> for his
   extensive testing of my various interim (debugging) bootblocks
   to get this working.
1995-04-20 23:15:10 +00:00
Julian Elischer
c9755763d9 Add an option to make it easy to default to the hd1 mode
also save a few bytes
1995-04-20 23:05:23 +00:00
Poul-Henning Kamp
3226e381f8 Added a check so compilation fails if the bootblocks are too big.
replaces a switch with ifs to reduce size.
1995-04-20 18:36:14 +00:00
Poul-Henning Kamp
16b560a716 Added -C option to set RB_CDROM, so that we use our cdrom as root. 1995-04-20 06:08:27 +00:00
Joerg Wunsch
afb7eb14a5 Remove the #ifdef REDUNDANT crud. This could be looked up in CVS by
interested parties.

Make the loader refuse to load anything below 1 MB -- we didn't
support it since FreeBSD 2.0R.  Avoid gratuitously wiping out the BIOS
variables or the loader.
1995-04-16 13:02:52 +00:00
Joerg Wunsch
15c99149f8 Boot block cleanup.
o Fix the keyboard probe to properly wait for the ready bit before
sending a command to the keyboard controller.  This should avoid the
problems some people are experiencing where the boot blocks hang the
system during keyboard probe.  (It does solve it for me.)

o Fix a bug that effectively prevented the boot blocks from ever
passing control to the serial console.  [while(--retries) instead of
while(retries--)]

o Gratuitously reduced the keyboard probe timeout from 500 to 5
seconds. :)

o Introduced a new option ``FORCE_COMCONSOLE'' as a commented-out
example in the Makefile, to force the usage of a serial console
regardless of a keyboard being connected or not.

o Moved all external declarations to boot.h, declared all functions
there, and ANSIfied all function declarations/definitions.
(printf() remains bogus, however -- i'm too lazy to fix this.)
We're in the ninetees, dunno why we should still support compilers
from the 70's.
1995-04-14 21:26:53 +00:00
Bill Paul
8a03631b28 According to a Usenet posting forward to me by Jordan, there's
at least one user out there who's system won't autoboot from the
serial console because of what sounds like 'phantom keystrokes'
making the timeout timer trip. I've tried to solve this by
adding an extra call to init_serial() right before the 'Boot:'
prompt is printed (done only if RB_SERIAL is set) to hopefully
make sure that the input buffer is clear. Unfortunately, the fellow
is in Germany and I haven't heard back from him yet. I haven't
been able to duplicate this problem on my hardware, so this is
a stab in the dark. At the very least, it shouldn't hurt anything.
1995-04-14 01:35:59 +00:00
Poul-Henning Kamp
c57e984258 Don't install /usr/mdec/boot
Install the biosboot as /usr/mdec/boot[12]
Make the traditional links from [swf]dboot and boot[swf]d to boot[12] files.
Install dosboot as /usr/mdec/boot/fbsdboot.exe
1995-03-28 19:22:43 +00:00
Poul-Henning Kamp
9346bafa46 And all serial chars with 0x7f to discard parity bits. 1995-03-19 06:10:32 +00:00
David Greenman
78dfa6036a Removed "-D" option and made symbols load all the time. They will be
discarded if the kernel isn't built with DDB.
1995-03-14 08:21:53 +00:00
Bill Paul
e8dfeb8828 Some people have complained that they were unable to boot the
Feb. 10th snapshot. The keyboard probe in the bootblock seems to
have been singled out as the cause of these problems, so I've beefed it
up alittle. This pushes us right up to the edge of the size limit:
the second stage boot is now 7152 bytes in size, just 8 bytes under
the wire. On the other hand, the new probe now does almost exactly
what syscons does, so hopefully this will do the trick. It seems
to work properly on my hardware, but then so did the old probe.
1995-03-02 21:00:14 +00:00
Bruce Evans
2987d72f4a Adjust for rearranged slice numbers. 1995-02-16 15:06:09 +00:00
Jordan K. Hubbard
6129798f6a Update this a little, though we probably need to either nuke or rename it! 1995-02-16 12:02:08 +00:00
Bill Paul
fbf23e9a0b Minor changes and additions to the serial README file. 1995-02-16 07:37:35 +00:00
Rich Murphey
73b2840c90 Reviewed by: Jordan
Submitted by:	Rich

Make conditionals on BIOSWAIT consistent with usage in io.c.

If you had 'BOOTWAIT=0' in your /etc/make.conf then biosboot wouldn't
compile.  It was '#if' in io.c and '#ifdef' in probe_keyboard.c so I
changed the latter to '#if'.

Even if BOOTWAIT is undefined then '#if BOOTWAIT' becomes
'#if 0' so it should compile either way with this change.
1995-02-15 04:17:59 +00:00
David Greenman
8710a63985 Get rid of extra []'s and otherwise fix-up boot prompt. Reordered
boot flags processing to be alpha-beta.
1995-01-28 03:51:39 +00:00
Bruce Evans
b5d89ca8ad Load the kernel symbol table in the boot loader and not at compile time.
(Boot with the -D flag if you want symbols.)

Make it easier to extend `struct bootinfo' without losing either forwards
or backwards compatibility.

ddb_aout.c:
Get the symbol table from wherever the loader put it.
Nuke db_symtab[SYMTAB_SPACE].

boot.c:
Enable loading of symbols.  Align them on a page boundary.  Add printfs
about the symbol table sizes.
Pass the memory sizes to the kernel.
Fix initialization of `unit' (it got moved out of the loop).
Fix adding the bss size (it got moved inside an ifdef).
Initialize serial port when RB_SERIAL is toggled on.
Fix comments.
Clean up formatting of recently added code.

io.c:
Clean up formatting of recently added code.

netboot/main.c, machdep.c, wd.c:
Change names of bootinfo fields.

LINT:
Nuke SYMTAB_SPACE.
Fix comment about DODUMP.

Makefile.i386:
Nuke use of dbsym.
Exclude gcc symbols from kernel unless compiling with -g.
Remove unused macro.
Fix comments and formatting.

genassym.c:
Generate defines for some new bootinfo fields.  Change names of old ones.

locore.s:
Copy only the valid part of the `struct bootinfo' passed by the loader.
Reserve space for symbol table, if any.

machdep.c:
Check the memory sizes passed by the loader, if any.  Don't use them yet.

bootinfo.h:
Add a size field so that we can resolve some mismatches between the loader
bootinfo and the kernel boot info.  The version number is not so good for
this because of historical botches and because it's harder to maintain.
Add memory size and symbol table fields.  Change the names of everything.

Hacks to save a few bytes:

asm.S, boot.c, boot2.S:
Replace `ouraddr' by `(BOOTSEG << 4)'.

boot.c:
Don't statically initialize `loadflags' to 0.  Disable the "REDUNDANT"
code that skips the BIOS variables.  Eliminate `total'.  Combine some
more printfs.

boot.h, disk.c, io.c, table.c:
Move all statically initialzed data to table.c.

io.c:
Don't put the A20 gate bits in a variable.
1995-01-25 21:40:47 +00:00
Jordan K. Hubbard
8f998cf202 Y.A.B.M (Yet Another Bogus Makefile) 1995-01-24 00:41:50 +00:00
Bill Paul
f06a45ddd7 Removed hardcoded definition for RB_SERIAL that I left in my accident
(had it there for testing purposes). RB_SERIAL should be found in
<sys/reboot.h>.
1995-01-20 07:52:42 +00:00
Bill Paul
f778c9da00 Submitted by: Bill Paul (wpaul@ctr.columbia.edu)
Obtained from:
bios boot block changed to allow booting from both the attached graphics
display and from a serial port. (A specially compiled serial boot block
is no longer necessary.) The boot block should detect the presence or
absence of a keyboard: if there is no keyboard, COM1 is turned into the
console. This simulates the behavior of the Sun boot PROMs. Unplug your
keyboard, attach a terminal to COM1 and you should be ready to go. :)
1995-01-20 07:48:27 +00:00
Bruce Evans
7010a8abed Save 16 bytes of data by not explicitly initializing to 0. 1994-12-30 07:48:07 +00:00
Joerg Wunsch
e72e8750d3 Insert a hook to initialize the serial port at the beginning of
boot().  This is needed so the "serialboot" stuff can share this file,
too.

Everything is #ifdef'ed so it evaluates to nothing when actually been
built in the "biosboot" directory.
1994-12-18 20:30:10 +00:00
Bruce Evans
bf67b544a2 Pass the slice number of the boot device to the kernel in the previously
unused bitfields for the adaptor and the controller.  It should go in
the bitfield for the partition but that would not be backwards compatible.
1994-12-18 19:14:19 +00:00
Poul-Henning Kamp
424183f2a4 Implement RB_VERBOSE. This is intended to mean: Print all information which
could be of any use for trouble-shooting problems with boot/devices/drivers.
1994-11-26 09:08:48 +00:00
Jordan K. Hubbard
8c05edbc74 Boy, was THIS buggered up! Calm the compiler by fixing the obvious
syntax errors.
1994-11-18 13:40:19 +00:00
Poul-Henning Kamp
66706b4367 Change the message a little bit... 1994-11-18 10:21:31 +00:00
Poul-Henning Kamp
b3c99fe3f3 one ) less. 1994-11-18 06:22:11 +00:00
Poul-Henning Kamp
efcdc34fe3 Ask the BIOS about the geometry, and tell the kernel about it. 1994-11-18 05:02:14 +00:00
David Greenman
3dea9c24ac Improved the user interface:
1) Added file list capability via '?'.
2) Arranged usage info to be more unix-like.
3) Fixed backspace over prompt annoyance.
1994-11-07 11:26:30 +00:00
Andrey A. Chernov
c897ebc21a Change -O2 to -O
With each gcc version -O2 can cause absolutely unpredicatable things
Second stage boot still fits in allowed size
1994-11-05 21:06:16 +00:00
Jordan K. Hubbard
e84bf57e40 Expunge the stain I left upon this code. My '/' fix was utterly
bogus.  Thanks, Boyd!
1994-10-31 18:00:06 +00:00
Rodney W. Grimes
a5d34029d5 Removed extra slash between ${DESTDIR} and ${BINDIR}, noticed while working
on Makefile for netboot.
1994-10-28 07:54:13 +00:00
Jordan K. Hubbard
dc6e5623e1 Gross hack to make kernel names not starting with '/' start with '/'. 1994-10-26 20:46:05 +00:00
Jordan K. Hubbard
9e8367bd7a Adjust boot message to conform to reality. 1994-10-26 20:22:10 +00:00
Jordan K. Hubbard
73ade464e2 Remove the code for asking for a filesystem floppy. We don't need
it anymore, and neither David nor I can think of a reasonable
mechanism to stick in its place.
1994-10-26 13:46:34 +00:00
Jordan K. Hubbard
aa20f6195d Add RB_CONFIG flag. 1994-10-26 13:18:49 +00:00
Poul-Henning Kamp
da330b4225 $DESTDIR missing... 1994-10-15 03:59:19 +00:00
Andrey A. Chernov
24c989ac53 Change first CFLAGS+= to CFLAGS= or we got really bad results
especially with -m486 from make.conf
1994-10-07 05:36:01 +00:00
Rodney W. Grimes
9949ebf656 1. BOOTSEG and BOOTSTACK are now set from the Makefile, the boot code has
been relocated to run in the 64k segment at 0x10000 with the stack at
    the top of this segment.  This corrects the problems machines with 512K
    base memory had booting.

2.  startprog routing rewritten to convert the BOOTSEG ss to a KERNELSEG
    ss, this eliminated the last of the >512K memory references.  Additional
    cleanup in here included a better way to copy the arguments to the
    kernel stack.

3.  Elimination of argv and esym cruft saved a few bytes.

4.  Only need to truncate the head.a_entry to a meg boundary once intead
    of every time we used it!  [Saving more bytes].

5.  Addition of version 1 bootinfo structure support.  These boot blocks
    pass the kernel name in to the kernel now.

6.  Removed historical comments about MACH argv stuff, as it is useless now.
1994-10-06 09:41:05 +00:00
Rodney W. Grimes
12fafb2d5a 1. Completely rewritten Makefile that uses bsd.prog.mk more effectively.
2.  Clean up the .S files to use /* */ style comments.

This is a totally cosmetic change, not one byte of the resulting boot
code changes.  But at least it is installed with correct owners and in
the right places, and gets recompiled correctly when things change!
1994-10-02 05:18:26 +00:00
Adam David
f89971dfe7 Better documentation, 1ms calibration, default 5 seconds BOOTWAIT
Reviewed by:	adam
Submitted by:	rgrimes
1994-09-20 22:25:00 +00:00
Adam David
fcf8309d74 Default wait approx 10 seconds for keypress during boot
Added comment about multiplication factor
1994-09-19 19:54:49 +00:00
Steven Wallace
893f3712e5 Put LDDESTDIR before library listing. 1994-09-18 19:10:11 +00:00
Steven Wallace
dfc5d1d4eb Makefile: add ${LDDESTDIR} to linking of boot code so ${DESTDIR}/usr/lib
is used instead of /usr/lib

io.c: add #include <machine/cpufunc.h> as instructed by David Greenman to
avoid inb/outb linking errors.
NOTE:  I just discovered that if GNUC is not used the inline functions will not be expanded from the include file and real inb/outb functions would
be needed.
1994-09-18 07:39:55 +00:00
David Greenman
df9ab3049d Removed inclusion of pio.h and cpufunc.h (cpufunc.h is included from
systm.h). Merged functionality of pio.h into cpufunc.h. Cleaned up some
related code.
1994-09-16 13:33:56 +00:00
Bruce Evans
2c22dd40a2 Conditionalize support for my debugger. This normally saves 304 bytes. 1994-08-30 01:38:04 +00:00
Paul Richards
c4350ddb46 Removed disk type from disklabel lines, not needed for installing
bootblocks.

Reviewed by:
Submitted by:
1994-08-21 18:15:45 +00:00
Paul Richards
b95ed23990 Fixed bootblocks to work with FreeBSD 2.0
1) Fixed up some header locations
2) Replaced list of boot files with /kernel
3) Changed disklabel use in Makefile to conform to 4.4
4) Added size command in Makefile to get close estimate of bootblock
   sizes. Total size of text and data must be below 64K, slightly
   overestimated since a.out header subsequently gets stripped.
5) Various buffer sizes are set to 8192 bytes in sys.c. In 4.4 MAXBSIZE
   is set to 64K which is too big for the bootblocks to deal with.

Submitted by:	Paul Richards
1994-08-21 17:47:26 +00:00
Jordan K. Hubbard
1c28e35f68 Commit a whole cluster of last minute critical (and one cosmetic) fixes
from David Greenman, Bruce Evans and Julian Elischer.

They are:

[vnode pager - David/Bruce]:
  The following patch fixes a problem where some data could be lost in a
delayed-write buffer if the cached buffer was larger than a page. This fix was
provided by Bruce Evans and modified slightly by me.

[st.c - Julian]:
  My fix for "bad request, must be between 0 and 0"

RTFS if you're interested).

[gnu/fpemul - David/Bruce]:
  These changes fix single stepping of emulated FPU instructions.
Previously, the instruction after an emulated instruction was
executed without causing a SIGTRAP ...

The also fix the initial control word being different for the
GPL emulator (it is still wrong for the old emulator) and remove
an unnecessary panic when emulation is not configured (I hope at
least init, sh and reboot will run without floating point.  I
remember only df and mkfs being broken by the lack of FP in 0.0).

[Various fixes described below - Bruce/David]:
sys/i386/boot/boot2.S:
        Yet another attempt to propagate the correct fix for 16 vs
        32-bit mode bugs.  [verified]

sys/i386/i386/db_interface.c:
        Protect against reentering Debugger().

sys/kern/kern_time.c:
        Don't allow 'time.tv_usec == 0' except at clock interrupts.

sys/pcfs/pcfs_fat.c:
        Make it compile without -O.

sys/scsi/sd.c:
        Fix as posted to some freebsd mailing list.
        (changes the order of the assignment of "sectors" because it earlier
          value is needed first -DG)

sys/vm/vm_glue.c:
        Fix stale comments and verbose code.

sys/vm/vm_mmap.c
        Fix off by 1 errors and verbose code.

[From Nate - cosmetic but non-intrusive and useful enough to go in]
sys/i386/isa/isa.c:
Appended you'll find a patch to the NMI error log routine in isa/isa.c.
The below patch just adds some additional information when an NMI occurs
which can help debug the hardware problem.
1994-06-22 05:52:25 +00:00
Jordan K. Hubbard
2e2df8360c Make BOOTWAIT a truly tunable parameter. It was hard-set before. 1994-06-20 04:32:40 +00:00
Adam David
3f9e73d24f Changed delay mechanism to rely more on I/O spinning. If spinning on the
like this is bad news, it will have to be revised.
Shortened some verbose messages for when the kernel is loaded below 640k.
Updated version number.
1994-06-16 03:53:29 +00:00
Jordan K. Hubbard
f4c5931839 From Hellmuth Michaelis, reviewed by Bruce Evans: This enables
the keyboard clock rather than incorrectly disabling it.
1994-06-15 19:09:14 +00:00
Adam David
f675355835 make BOOTWAIT loopcount parameter available for tuning.
This changes nothing unless f.e. -DBOOTWAIT=0 or -DBOOTWAIT=640000 is used
1994-06-15 18:15:17 +00:00
Rodney W. Grimes
f2009cbfdb Touch the $Revision$ string to cause a cvs revision update of the boot
code (ie, should now print Revision 1.13).
1994-06-14 07:31:42 +00:00