Commit Graph

26 Commits

Author SHA1 Message Date
Bruce Evans f79e6ee387 Staticize. 1997-05-27 16:26:39 +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
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 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
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 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
Poul-Henning Kamp b679d552d3 Add #ifdef for RAWBOOT.
remove some #if 0 stuff.
1996-09-11 19:23:11 +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 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 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
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 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
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
Bruce Evans 2987d72f4a Adjust for rearranged slice numbers. 1995-02-16 15:06:09 +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
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
Andrey A. Chernov 7b5cad487c From Bruce:
*	If there is no 386BSD partition, initialize the label sector with
 *	LABELSECTOR instead of with garbage.
 *	Fixed reading of bad sector table.  It is at the end of the 'c'
 *	partition, which is not always at the end of the disk.
1994-05-16 03:06:00 +00:00
Rodney W. Grimes 9ad564373e Bump boot block revision to 1.9 by a dummy edit on disk.c and:
>From: bde@kralizec.zeta.org.au (Bruce Evans)
Subject: cache botch in bootstrap
Date: Sun, 20 Feb 94 18:14:35 +1100
The cache in the bootstrap loader didn't allow for the device changing.

This caused surprisingly little trouble - the cache is only for a single
track (or part of a track), and the first access to a new device is
always for an early sector, so there is no problem unless the last access
to the old device was for an early sector.  I saw the problem on a system
with BSD on wd1 and no label on wd0.  Everything worked if the the device
name wd(1,a) was specified before the default of wd(0,a) was tried, but
when the default was tried, it failed on the first sector because there
was no label, and then the first sector on wd0 was always used instead
of the first sector on wd1, so there was apparently no label on wd1
either.

Bruce
1994-02-22 22:59:40 +00:00
Rodney W. Grimes dd05fde699 Removed all patch kit headers, sccsid and rcsid strings, put $Id$ in, some
minor cleanup.  Added $Id$ to files that did not have any version info, etc
1993-10-16 19:17:18 +00:00
Charlie Root f7710986e2 New boot blocks, from Bruce Evans, and NetBSD fixes. Allows kernel to
be loaded above 1MB.  Same boot code for floppies now.  Speed improvements.
etc etc etc. (I don't have much history on this, but then have been tested)
1993-07-13 18:15:32 +00:00
Rodney W. Grimes 5b81b6b301 Initial import, 0.1 + pk 0.2.4-B1 1993-06-12 14:58:17 +00:00