Commit Graph

1218 Commits

Author SHA1 Message Date
jhay
fa9aaf2ad1 DEV_BSIZE lives in sys/param.h and not in machine/param.h anymore. 2002-05-15 11:32:53 +00:00
ru
a4cd115dd3 Even more BBSIZE related breakage. 2002-05-14 13:30:45 +00:00
nyan
4e0ba1d0e6 Fixed to build for GCC 3.1 2002-05-14 12:34:03 +00:00
nyan
ff317ae810 Add -ffreestanding to CFLAGS. 2002-05-14 12:32:59 +00:00
ru
825bd47b27 Align CLEANFILES with revision 1.25 changes. 2002-05-13 16:16:00 +00:00
ru
b2b69cf2b8 Fixed CLEANFILES after bsd.lib.mk sweep. 2002-05-13 15:48:05 +00:00
ru
bc2e1305d8 Removed now unused INTERNALSTATICLIB.
INTERNALLIB now implies NOPIC and NOPROFILE.
Removed gratuitous NOMAN.
2002-05-13 11:09:07 +00:00
ru
dc9ee40833 Major cleanup of bsd.lib.mk.
Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB.
INTERNALLIB now means to build static library only and don't install
anything.  Added a NOINSTALLLIB knob for libpam/modules.  To not
build any library at all, just do not set LIB.
2002-05-13 10:53:24 +00:00
obrien
f788b3f04d Match the default newfs UFS block size. 2002-05-13 05:09:34 +00:00
bde
d526f40e5c Saved 176 bytes by compiling with -fno-guess-branch-probability. The
default of -fguess-branch-probablility causes time optimizations (?)
like rewriting `if (foo) x++;' as
`if (!foo) goto forth; back: ; ...; forth: x++; goto back;".  This is
pessimizes space especially well on i386's because one short branch
gets converted to 2 long ones.

Removed -fno-align-foo since it is implied by -Os.  Previous commit
messages seem to have overstated the new alignment bugs in gcc.  The
only case that affects boot2 is that -fno-align-functions (or
equivalently -falign-functions=1) actually gives -falign-functions=2.
This is caused by FUNCTION_BOUNDARY being 2 (bytes) instead of 1.
The default case where the optimization level is 1 and no alignment
options are given is more broken.  All alignments are minimal, modulo
the bug in FUNCTION_BOUNDARY.  This is caused by toplev.c setting
defaults too early.

Some hacks in previous commits ar not needed now, but may as well be
kept until gcc is fixed.  The previous on in the Makefile saved 96
bytes of text due to the wrong FUNCTION_BOUNDARY and 32 bytes of data
due to unrelated bloat in the alignment of large objects.  There aren't
even any options to control alignment of data.
2002-05-12 15:45:28 +00:00
obrien
1b23a3102e Back out last commit. I expect our bsd.*.mk gods to remove the need for
defining so many extra things in addition to INTERNALLIB.  We don't like
repetitive C code and we shouldn't for make code either.
2002-05-12 13:54:42 +00:00
jake
2923a1a3ac Attempt to not crash and burn on UltraSPARC III machines; the cpuid property
is named differently.
2002-05-11 22:05:22 +00:00
peter
4daf43a4a4 Save about 60 bytes by #define memcpy __builtin_memcpy and removing
the function we provided.  Restore the Keyboard: yes/no  printf for the
probe diagnostics.  We end up with 40 bytes free.
2002-05-11 21:49:39 +00:00
peter
b47f03e300 Reconnect boot2. I'm sure I'll regret this though. :-) 2002-05-11 21:41:03 +00:00
peter
f9b8106499 Use a crowbar and duct-tape to make boot2 fit again. This gets it down
to 4 bytes free.  I removed a printf (the Keyboard yes/no) since it is of
marginal value and sed'ed the generated asm output to remove the unwanted
aligns.  There's probably a better way to gain a few extra bytes than
losing the printf.  Shortening strings is probably a better option but this
should get us over the hurdle.
2002-05-11 21:39:59 +00:00
jake
9b110cfade Change the disk probing so that it will actually find disks other
than the first one on a controller, and work for secondary
controllers.
Due to the prom not having nodes for each disk, but a catch-all one,
we have to iterate over each device, trying to open it to determine
whether it is actually present.
Since probing this way takese some time (and spews some spurious
warnings), it should maybe be short-circuited if we use the
device we were booted from.
Implement lazy device probing, and correct slice/partiniton
handling in the ofwd_open() code. With this, I can now actually boot
a kernel from disk, and the loader does not create unnecessary
delays.

Submitted by:	tmm
2002-05-11 21:30:46 +00:00
obrien
4da1be0803 NOPIC, NOPROFILE, NOMAN, and INTERNALSTATICLIB are redundant when using
INTERNALLIB now.
2002-05-11 18:02:33 +00:00
obrien
ce04447cdf -ffreestanding is the word.
(also resort some CFLAGS such that the more "important" value are first so
they are easier to see)
2002-05-10 09:26:35 +00:00
jhb
446a06fc8c - Axe -mpreferred-stack-boundary=2 as -Os turns this on by default.
- Axe -fdata-sections as turning it on or off makes no difference.  If
  it did make a difference it would serve to bloat boot2 even further with
  extra padding.
- Axe -fforce-addr.  This gets us 32 bytes so we are down to only being
  64-bytes over.

We still can't compile this with gcc 3.1.  The problem seems to be that
the -fno-align-foo options don't actually work.  Comparing the new and
old output it turns out that gcc is 4-byte padding all the functions and
labels and what not despite the passed in arguments thus adding the
unfortunate bloat to boot2.
2002-05-10 04:05:42 +00:00
obrien
eb01ba72c4 We don't need bootinfo any more, and sparc64 doesn't have it anyways. 2002-05-10 01:20:37 +00:00
obrien
ded6baca77 Don't be redundant. 2002-05-10 01:06:52 +00:00
obrien
b12dc54a67 -ffreestanding is the word for /sys. 2002-05-10 00:53:45 +00:00
obrien
09f3564bdf Turn off boot2 -- it gained over 96 bytes dieting on the in-tree Gcc 3.1. 2002-05-10 00:52:00 +00:00
obrien
e8779e48c0 Ficl doesn't build on sparc64. 2002-05-09 20:33:22 +00:00
obrien
d3e7ae74e6 Partical style cleanup. 2002-05-09 17:47:25 +00:00
joe
36c976074e Replace /kernel with /boot/kernel/kernel.
PR:		docs/37757
Submitted by:	Hiten Pandya <hiten@uk.FreeBSD.org>
2002-05-09 11:47:42 +00:00
wes
210f257e4e Rename the file used to specify the nextboot to make it clear that this
is a loader configuration file and can be used for more than just a
kernel name.

Submitted by:	Gordon Tetlow <gordont@gnf.org>
2002-04-26 22:32:15 +00:00
dcs
c6603b03d3 A long, long time ago, msmith introduced vfs.root.mountfrom
loader variable, which let users specify the root mount point
the exact way one does after booting the kernel.

Let's take this opportunity to document it...
2002-04-26 20:52:59 +00:00
wes
9bf40bea60 Add a -k option to reboot to specify the kernel to boot next time
around.  If the kernel boots successfully, the record of this kernel
is erased, it is intended to be a one-shot option for testing
kernels.

This could be improved by having the loader remove the record of
the next kernel to boot, it is currently removed in /etc/rc immediately
after disks are mounted r/w.

I'd like to MFC this before the 4.6 freeze unless there is violent
objection.

Reviewed by:	Several on IRC
MFC after:	4 days
2002-04-26 07:31:04 +00:00
nyan
2d4219d383 MFi386: revision 1.56 2002-04-25 13:31:27 +00:00
nyan
f51b511837 MFi386: revision 1.8 2002-04-25 13:28:10 +00:00
jake
9a5eae2a45 Split file system setup code out into a function called mount.
Implement vsnprintf.  Implement panic in terms of it.
2002-04-24 05:54:10 +00:00
jake
11cf71a416 Add support for loading files other than /boot/loader. Useful if you're
loader is screwed and you want loader.old.
Rewrite the scaled down printf so it actually works right, and add support
for more formats.
2002-04-24 04:27:49 +00:00
jake
40d13085f4 Add an exit function. 2002-04-24 02:50:59 +00:00
jake
628ea2a252 Add -Wno-unused. 2002-04-24 02:50:36 +00:00
jake
3473cf4ec1 memcpy, memset -> bcopy, bzero. 2002-04-24 02:24:32 +00:00
jake
ab92bb92b7 Clean up elf loading to not make assumptions about the ordering of sections.
Don't load the symbol table; this is only needed for loading kernels and we
load the loader.
2002-04-24 02:10:35 +00:00
jake
205c7831cd Remove xfsread. Just call fsread directly. 2002-04-24 01:47:05 +00:00
jake
1aa7da0fd6 Remove a bunch of unused variables, functions and macros. Allocate storage
statically instead of using a faked up malloc.
2002-04-24 01:40:54 +00:00
marcel
1f2cc7b30c Improve self-relocation:
o  We don't expect the PLT relocations to follow the .rela section
   anymore. We still assume that PLT relocations are long formed,
o  Document register usage,
o  Improve ILP,
o  Fix the FPTR relocation by creating unique OPDs per function.
   Comparing functions is valid now,
o  The IPLT relocation naturally handles the addend. Deal with it.
   We ignore the addend for FPTR relocations for now. It's not at
   all clear what it means anyway.

Fix ABI misinterpretation:
o  For Elf_Rela relocations, the addend is explicit and should not
   be loaded from the memory address we're relocating. Only do that
   for Elf_Rel relocations (ie the short form).
o  DIR64LSB is not the same as REL64LSB. DIR64LSB applies to a
   symbol (S+A), whereas REL64LSB applies to the base address (BD+A),
2002-04-21 08:49:47 +00:00
obrien
76b7ec65d9 o Use our own elf2aout now.
o Generalize a little.
2002-04-21 02:37:55 +00:00
marcel
b37c8f0b41 Allocate sufficient pages to hold the bootinfo block and stop
hardwiring the location.
2002-04-19 06:43:09 +00:00
ru
217b7e94cc Install files via FILES, there's no reason to compare them before installing. 2002-04-17 16:56:36 +00:00
ru
0b397f2023 Really unbreak it this time (clean and install were still broken). 2002-04-17 15:33:40 +00:00
nyan
c911a2cbdc MFi386: revision 1.7. 2002-04-15 13:44:00 +00:00
ru
5f45c246ce Unbreak this as well.
At the extra bonus of fixing the contents of the .depend file.

Not really my day.
2002-04-12 15:49:30 +00:00
peter
a2bdc11625 Bandaid for a buffer overrun in the module searching code. When breaking
up the module_path string, we would walk one past the end of the buffer.
This hurting ia64 originally, but it was probably also happening on i386
occasionally as well.  The effects were usually harmless, it would add
bogus "binary" search directories to the places it actually looked for
files.
2002-04-11 10:00:44 +00:00
peter
63071c12c8 Finally fix loader completely for IA64. efifs_stat() wasn't setting
the S_IFREG bit for regular files.  This caused the path search code to
skip it when it finally did find the kernel (after the common/module.c
buffer overrun bug was fixed)
2002-04-11 09:50:11 +00:00
pb
bfa5faab11 Code cleanup, no functional change.
Patch adapted from PR.

PR:		i386/36015
Submitted by:	thomas@cuivre.fr.eu.org
MFC after:	1 week
2002-04-11 09:21:10 +00:00
dcs
2ead48154d Upgrade FICL to 3.02. Forgot this one, sorry.
PR:		36308
Submitted by:	dcs
2002-04-09 20:59:34 +00:00
dcs
eeb34873c0 Upgrade to FICL version 3.02. Anything wrong is my fault, everything right is
due Jon Mini.

PR:		36308
Submitted by:	Jon Mini <mini@haikugeek.com>
MFC after:	4 weeks
2002-04-09 17:45:28 +00:00
jake
297661679e Fix another unsigned long used to index the symbol table which should be
Elf_Hashelt.
2002-04-09 00:05:46 +00:00
peter
d76ff96eff We must not let install(1) strip loader.efi when installing it, or the
resulting binary will be damaged and no longer work.
2002-04-07 04:27:50 +00:00
peter
1a2f6bfa9f Set BINDIR 2002-04-07 04:26:42 +00:00
peter
a0a4c849a0 Add loader bootforth infrastructure and install it. 2002-04-07 04:25:45 +00:00
peter
cddc57f171 Make it a bit closer to the EFI build and tie up some loose ends. 2002-04-06 04:33:53 +00:00
peter
8eb1fab9da Try and tidy up some very loose ends with paths to various libraries etc. 2002-04-06 04:29:36 +00:00
peter
bc98e7be03 Do not add the ficl/alpha subdir to the ia64 include path. Try ficl/ia64
instead.
2002-04-06 04:16:58 +00:00
peter
b2d9042186 Do not assume that ${OBJCOPY} variable exists. It was hidden by the
fact that the 'ia64-make' wrapper explicitly set it.
2002-04-06 04:11:46 +00:00
peter
66482b75cf Use the correct elf hash table entry type. This matches a similar fix
in the kernel side of things some time ago.  The hash table entries are
always 32 bits wide, even on 64 bit machines.
2002-04-06 04:09:42 +00:00
peter
4e70269a83 Fix self hosted loader building. When you use a self configured gcc, it
detects and uses the gas section merge support.  As a result, a whole bunch
of new sections arrive, including .rodata.str1.8, which was not included
in our custom ldscript.ia64.  The result was a loader binary that EFI
rejected.

While here, collect the loader shell commands linker set and include it
in the data area rather than having its own section.

/boot/loader.efi was the last holdout for having a 100% self built ia64
system.
2002-04-06 03:39:22 +00:00
peter
b486ed03d8 Use a relative path to libstand.. /usr/src/lib/libstand may not exist
or may have the wrong header files.
2002-04-04 06:04:38 +00:00
tmm
eb20435a69 Do not use semi-fixed TLB slots for the 4M kernel pages any more. 2002-04-02 17:10:15 +00:00
tmm
2025cfe33a 1.) Rename locore.s to locore.S (by repocopy), to be able to remove
special-case make rule
2.) Cleanups, remove superfluous expicit rules, add -nostdlib to LDFLAGS,
    remove -X and -g, remove -g from CFLAGS
3.) Add BINDIR
4.) Build install the loader help file, add an empty help.sparc64
5.) Change the default configuration to only support booting from disk
6.) Get libofw.a from a path relative ${.OBJDIR}, not ${.CURDIR}

Submitted by:	jake (1 - 5), obrien (6)
2002-04-02 17:08:37 +00:00
tmm
a683bcc922 Add support for booting from CD-ROM. Make it possible to enable UFS
support using make arguments.
2002-04-01 23:28:35 +00:00
tmm
7151c10d96 1.) Produce a boot1 disklabel template of the format disklabel(8) expects.
2.) Clean up and change over to using bsd.prog.mk

Submitted by:	jake (2)
2002-04-01 22:57:51 +00:00
marcel
2830f94478 Only install the help file if we can find it. Use ${BASE}.help
in both the condition and for the install. We expect to find
the help file in ${.OBJDIR}.
2002-03-31 20:48:13 +00:00
marcel
688cf86e24 Pass the address of the bootinfo block to the kernel in register
r8. Keep it at the hardwired address for now. Bump the version.
2002-03-30 23:52:34 +00:00
marcel
83aa1632bb Pass the physical address of the bootinfo block to the kernel in
register r8. We continue to write the bootinfo block at the same
hardwired address, because the kernel still expects it there.
It is expected that future kernels use register r8 to get to the
bootinfo block and don't depend on the hardwired address anymore.

Bump the loader version once again due to the interface change.
2002-03-30 23:00:05 +00:00
nyan
cbfb12da8c MFi386: revision 1.55 2002-03-30 11:18:30 +00:00
marcel
dd7885b88d Add a quick and dirty way to determine where we're loaded from. We
only care if it's network or not at this time. If we're loaded from
the network, we set currdev (=loaddev) so that the kernel is loaded
from the network as well. In all other cases we initialize to disk.
This makes netbooting more convenient and can easily be enhanced to
do more elaborate checking.
2002-03-30 07:32:08 +00:00
marcel
64a996484d The EFI loader has been improved a lot since it was first added.
Most significantly (from an interfacing point of view) is the
support for the FPSWA pointer passing. Even though that was added
4 months ago, it's probably not a bad idea to bump the version
number to reflect this.
2002-03-30 04:54:54 +00:00
marcel
bafbd25360 Fix the initialization of the protocol:
o  Query the state field of the protocol mode to determine whether
   we need to start and/or initialize the protocol. When we're
   loaded across the network, the protocol has already been started
   and is already initialized. When no networking has happened yet,
   we have to start and initialize the protocol ourselves.
o  After initialization, we have to set the receive filters. Not
   doing this results in a deaf interface. We set the unicast and
   broadcast filters. Multicast may not be supported. This specific
   change fixes the problem we had that we could not netboot if
   the loader was started from the EFI shell.
o  To help future debugging, add a function that dumps the current
   mode of the interface. It's conditional on EFINET_DEBUG.
o  To help in runtime problems, emit a diagnostic message when we
   could not initialize the protocol properly.
2002-03-30 04:50:52 +00:00
marcel
08a102c3c4 Don't blindly dereference f->f_devdata as if it's always a pointer to
an efi_devdesc structure. When we're netbooting, f->f_devdata holds
the address of the network socket variable. Dereferencing this caused
some very unpredictable behaviour, including proper functioning.
So, as a sanity check, we first make sure f->f_dev points to our
own devsw. If not, the open will fail before we use f->f_devdata.

This solves the netboot hangs I invariably got whenever I used the
latest toolchain to compile the EFI loader.
2002-03-30 01:36:03 +00:00
marcel
fa19ce8844 o Make efinet_put a blocking call by waiting for the protocol
layer to signal transmission of the packet. This resolves the
   problem I'm seeing that an immediate call to net->Receive
   after calling net->Transmit returns EFI_DEVICE_ERROR. This
   condition seems to be sufficiently persistent that BOOTP and
   RARP fail.
o  While here, unify all functions to have 'nif' defined. Some
   have it as arguments. The others now have them as locals. We
   now always get the protocol interface by using the 'nif' var.

The current status of netbooting is that even though we now reliably
have BOOTP working (again), opening a file (ie loading a kernel)
across the network causes the loader to hang. I'm working on that now.
2002-03-29 23:10:15 +00:00
marcel
e27cdad86b Fix the beforeinstall target. We install ${PROG}.help if loader.help
exists, otherwise we install it anyway. I interpret this as a very
high desire to install ${PROG}.help. Alas, ${PROG}.help doesn't exist
at the moment and neither does loader.help, so in practice this just
doesn't work, no matter how you interpret it. The compromise is to
install ${PROG}.help IFF it exists. I realize we lost creativity with
this commit, but style should have been preserved, AFAICT :-)
2002-03-29 22:53:56 +00:00
obrien
031fa0ff97 Needs a.out support built into the loader. 2002-03-28 19:09:44 +00:00
marcel
5a1b52129d o Don't include sys/cdefs.h 2002-03-28 07:07:45 +00:00
marcel
bc47b3f988 o Add -L${DESTDIR}${LIBDIR} on the link line for -lstand.
o  Add -j .dynstr to objcopy. This makes .efi binaries work
   when built with a 3.x based toolchain.
2002-03-28 06:58:46 +00:00
marcel
4131d9a132 Duplicate the logic used elsewhere to define LIBSTAND. 2002-03-28 06:52:10 +00:00
obrien
d6e11fba68 was repocopied to ../boot1 2002-03-28 02:56:05 +00:00
obrien
892e01faba Apparently either gcc or ld, in their infinite wisdom, want to
put a bunch of crap before the code in .text.  Since the firmware
doesn't seem to honour the a.out entry point, we need to include
a little assmbler file which jumps to where we want to be in C.

Submitted by:	jake
2002-03-28 02:41:52 +00:00
obrien
69ebea4b1c Opps, bootblock component is no more. 2002-03-28 01:41:23 +00:00
obrien
fdd8f809c1 sparc64 is an ofw consumer. 2002-03-28 01:37:10 +00:00
obrien
a9e6f07077 Not all platforms have and want a.out format support. 2002-03-28 01:28:21 +00:00
obrien
21fae6eb80 Add a Makefile for sparc64 at this level. 2002-03-28 01:01:43 +00:00
pb
67873bb7a8 Add option -n to i386 boot2 to disallow boot interruption by keypress.
PR:		i386/36016
Submitted by:	Thomas Quinot <thomas@cuivre.fr.eu.org>
Reviewed by:	rnordier
MFC after:	1 week
2002-03-23 19:40:27 +00:00
alfred
c61e01af35 Remove __P. 2002-03-20 08:00:54 +00:00
peter
84239ef763 Add EFI write support to loader 2002-03-19 23:05:33 +00:00
peter
d508cde2ba Add -ffreestanding to avoid printf/puts/putchar conversions 2002-03-19 10:51:57 +00:00
peter
497bf7e888 Boot from efifs first. 2002-03-19 10:50:41 +00:00
peter
337520ffc2 gcc-3.1 likes to have extra { } around the internal array initializers in
the GUID templates.
2002-03-19 10:50:09 +00:00
sobomax
9d703dcfed Add splitfs vfs layer into libstand, which allows loading big kernels and
modules split across several physical medias. Following is how it works:

The splitfs code, when asked to open "foo" looks for a file "foo.split"
which is a text file containing a list of filenames and media names, e.g.

	foo.aa "Kernel floppy 1"
	foo.ab "Kernel floppy 2"
	foo.ac "Kernel and modules floppy"

For each file segment, the process is:

- try to open the file
- prompt "Insert the disk labelled <whatever> and press any key..."
- try to open the file
- return error if file could not be located

RE team is free to use this feature in the upcoming 5.0-DP1.

Reviewed by:	msmith, dcs
2002-03-17 12:18:05 +00:00
ru
104f4547d1 mdoc(7) police: fix a typo and markup. 2002-03-15 15:12:10 +00:00
ru
bb48189d63 Implement -m and -p loader(8) "boot" command options in boot2.
(This is more useful for 4.x where boot blocks can still load
kernels, modulo the PR kern/17422.)
2002-03-13 11:03:36 +00:00
ru
4eb95bc05a Further document "console" (nullconsole). 2002-03-13 10:55:22 +00:00
sobomax
ddf6a89609 CG superfluous prototype. 2002-03-10 22:33:04 +00:00
robert
3114b0f152 Change every occurrence of "bootblock" into "boot1" after
the repo-move from "src/sys/boot/sparc64/bootblock".
2002-03-05 16:39:36 +00:00
robert
29222a8f67 - Fix seeking for offsets requiring more than 32 bits.
- Add sanity checks to lookup().
 - Implement the 'l' modifier in printf().

Submitted by:	tmm
2002-03-05 11:22:43 +00:00
alfred
199a58a697 Support for USB fm radio.
Submitted by: David Yeske <dyeske@yahoo.com>
2002-03-04 03:51:21 +00:00
jake
7d70ce2abc Catch up to change in tte format.
Forgetten by:	jake
Submitted by:	tmm
2002-03-01 06:17:28 +00:00
nyan
dce4f706b7 Add -D_KERNEL to CFLAGS for ntohl(). 2002-02-28 10:08:23 +00:00
robert
01103f4256 - Fix indentation and return statements to conform to style(9).
- Use the __FBSDID macro.
 - Fix some warnings.

Submitted by:	obrien (partly)
2002-02-26 10:05:20 +00:00
bde
1d63dbb1d3 Declare time(not3) instead of depending on namespace pollution 3 layers
deep in <stand.h> to eventually include <time.h> to declare the user
version.

This is not quite the right place to declare it, but <stand.h> would
be worse because time() is very MD so it isn't in libstand.

Many places in the boot sources still get the user version using only
1 layer of pollution (#include <sys/time.h>.  Some pollute themselves
directly (#include <time.h>).  But the boot Makefiles are too broken
to enable warnings for redeclarations.
2002-02-25 04:31:25 +00:00
bde
3e9af13b4e Removed mounds of unused variables. 2002-02-25 03:45:09 +00:00
jake
33e8ee5265 Keep track of the ttes used to map the kernel and pass them to it as loader
metadata.  Modify tlb handling functions to take a tte, instead of virtual
address, physical address and flags.
2002-02-23 11:06:37 +00:00
jake
7994a37bd4 Add -ffreestanding to CFLAGS. 2002-02-23 04:36:15 +00:00
jake
ce801add09 Add make variables for fs support and propagate them to CFLAGS. Put
-ffreestanding in CFLAGS.  Remove unnecessary LDFLAGS.
2002-02-23 04:35:28 +00:00
jake
8f643f6169 Fix test for != 0 that should be > 0. 2002-02-23 04:33:15 +00:00
jake
e187f56a06 Check the return values of index() and don't dereference it if its null;
the path may not have a ':' in it.  The mac address property is called
mac-address for sparc64.  Don't allocate a dma buffer for sparc64 either.
2002-02-23 04:31:30 +00:00
jake
c819020411 #if 0 more bootinfo stuff. 2002-02-23 04:13:02 +00:00
jake
c34e322792 Fix fs support ifdefs. Add tftp support. Add physical and virtual
watchpoint support for debugging (under LOADER_DEBUG).  Claim the
physical and virtual addresses used to map the kernel from the prom;
we map it ourselves behind the scenes though.  Add a reboot command.

Submitted by:	tmm
2002-02-23 04:04:30 +00:00
jake
9ee486a3f2 Allocate a frame on our initial stack so that it doesn't run off into
random memory.  Disable interrupts while loading the tlb.

Submitted by:	tmm
2002-02-23 03:38:18 +00:00
jake
3088b53a9a Add OF_claim_virt() and OF_release_phys().
Submitted by:	tmm
2002-02-23 03:36:04 +00:00
jake
cd8694ee32 Include <machine/metadata.h>. 2002-02-23 03:33:39 +00:00
davidc
d697d82de9 Document the hw.physmem kernel environment variable.
Reviewed by:	alfred
2002-02-21 05:15:52 +00:00
robert
7e57a5d41a - Remove unneeded variable.
- Remove change for my local configuration that slipped in with
   the last commit; I am having problems booting when multiple SCSI
   disks are attached, so I will change this part as soon as I find
   a solution, anyway.
2002-02-15 13:22:09 +00:00
robert
964cc8dfc6 This file is now unneeded. 2002-02-15 13:11:00 +00:00
robert
36d5064113 - Do not include a NetBSD header as it is not needed anymore.
- Remove two constants that were needed in conjuction with the
   NetBSD disklabel header.  Use the FreeBSD equivalents.
   To boot from NetBSD/sparc64 partitions, define LABELOFFSET to
   be 128.
 - Do not use the complete open firmware path to filter out cdrom drives.
   No path containing "cdrom" is detected as a disk now.
 - Simplify some code.
2002-02-15 13:09:34 +00:00
robert
a1db61378b Add the FreeBSD/sparc64 bootblock and its make file. 2002-02-15 12:49:20 +00:00
nyan
71445fd2e0 Expand COMBRD(x) macro. 2002-02-01 14:48:44 +00:00
sobomax
baadf3178a CG hard sentence breaks.
Submitted by:	ru
2002-01-23 09:35:55 +00:00
sobomax
4e0549db55 Allow dump device be configured as early as possible using loader(8) tunable.
This allows obtaining crash dumps from the panics occured during late stages
of kernel initialisation before system enters into single-user mode.

MFC after:	2 weeks
2002-01-21 01:16:11 +00:00
iedowse
9301dd7f81 Cut more than 500 bytes off the size of the alpha boot1 by adding
a simple version of bcopy() so we avoid picking up the overly-complex
implementation in libc (via libstand). This is not necessary on
-current, but RELENG_4 has apparently just exceeded the 15-sector
limit for boot1.

Reviewed by:	wilko
2002-01-18 21:54:02 +00:00
nyan
677e0da5fb Added kgzldr for pc98.
crt.s is based on btx.s.
2002-01-18 09:00:38 +00:00
iedowse
8ff94b6175 Oops, the previous revision (1.35) broke booting from floppies
because the buffers we use could end up spanning a 64k boundary.
Unfortunately it causes too much bloat (228 -> 72 bytes free) to
just reinstate the old malloc() function.

Instead, define a structure that contains all 4 buffers which must
not cross 64k boundaries. We allocate a 64k-aligned instance in
main() using the magic that was in the old boot2 malloc() function.
This brings the free space down to 168 bytes, but that is still
better than it was before revision 1.35 (136 bytes).

Reported by:	Mike Brancato <funnyguy@digitalsmackdown.net>
Pointy-hat to:	iedowse
2002-01-17 22:39:19 +00:00
iedowse
d40b4fe11b Make the i386 boot2 fully blocksize-agnostic, as has already been
done with boot1 on the alpha. We use 4k buffers regardless of the
actual filesystem block size.

Remove the simple malloc() implementation, as it is no longer used.
2002-01-14 19:39:19 +00:00
iedowse
bfc7272806 Make the alpha boot1 work on filesystems that have a block size
larger than 8k. We now use 4k buffers regardless of the filesystem
block size, so there is no longer a static limit.

Simply increasing the buffer size from 8k to 16k as done on the
i386 doesn't work on the alpha, probably because it causes us
to overshoot boot1's 48k runtime memory limit.

Tested by:	naddy
2002-01-11 16:14:34 +00:00
jhb
7ec591383b Catch the netboot version up to the main loader. This is pretty bogus.
All the alpha loaders should use the same version file.  Also, we might
should merge the various loaders (cdboot, loader, netboot) into one loader
that can boot off of disks, CD's, and network devices.  The version bump
is needed so the FICL scripts won't bomb out thinking that the netboot
binary is too old.
2002-01-11 00:09:59 +00:00
jhb
980260907b Unrevert revision 1.12. Revision 1.14 backed this out saying it was
backing out the 1024 sector boot0, but revision 1.12 had nothing to do with
that.  Instead, it documented various compile time options for boot0 and
allowed them to be overridden via make.conf or options on the make
command line.
2002-01-10 21:40:33 +00:00
iedowse
ae08498603 Increase BSIZEMAX from 8k to 16k, so that we can reliably boot from
filesystems with 16k blocks.
2002-01-09 15:46:17 +00:00
jhb
97b2294b85 Don't turn on RB_CDROM if the rootdev is a BIOS cd device for now as this
breaks when cdboot is used with an MFS root.
2002-01-04 07:59:27 +00:00
robert
099b3fa082 Avoid having the text and data sections merged into one program
header table entry by removing the -N flag from the LDFLAGS.
2001-12-28 22:12:38 +00:00
jim
57e9e6cf4e Add missing snd_ich_load entry.
Noticed by:	will
MFC after:	2 days
2001-12-20 09:14:45 +00:00
ru
d216345eb6 mdoc(7) police: remove hard sentence break which I didn't
submit to Jonathan Mini.
2001-12-14 09:06:11 +00:00
nyan
a59db7704d MFi386: revision 1.35 (Add support for writing to BIOS disks) 2001-12-12 13:47:04 +00:00
jhb
8c6afa35be - Add 'fwrite' and 'fseek' words for writing to and seeking on files.
- Change the 'fopen' keyword to accept a mode parameter.  Note that this
  will break existing 4th scripts that use fopen.  Thus, the loader
  version has been bumped and loader.4th has been changed to check for a
  sufficient version on i386 and alpha.  Be sure that you either do a full
  world build or install or full build and install of sys/boot after this
  since loader.old won't work with the new 4th files and vice versa.

PR:		kern/32389
Submitted by:	Jonathan Mini <mini@haikugeek.com>
Sponsored by:	ClickArray, Inc.
2001-12-11 00:49:34 +00:00
jhb
356efe3c0b Add support for writing blocks to the loader's disk cache.
PR:		kern/32389
Submitted by:	Jonathan Mini <mini@haikugeek.com>
Sponsored by:	ClickArray, Inc.
2001-12-11 00:10:00 +00:00
jhb
f4789ce28d Add support for writing to BIOS disks.
PR:		kern/32389
Submitted by:	Jonathan Mini <mini@haikugeek.com>
Sponsored by:	ClickArray, Inc.
2001-12-11 00:08:10 +00:00
guido
d779575f78 Add new boot flag to i386 boot: -p.
This flag adds a pausing utility. When ran with -p, during the kernel
probing phase, the kernel will pause after each line of output.
This pausing can be ended with the '.' key, and is automatically
suspended when entering ddb.

This flag comes in handy at systems without a serial port that either hang
during booting or reser.
Reviewed by:	(partly by jlemon)
MFC after:	1 week
2001-12-10 20:02:22 +00:00
obrien
7fd9a6a23a Update to C99, s/__FUNCTION__/__func__/,
also don't use ANSI string concatenation.
2001-12-10 08:09:49 +00:00
rwatson
03b1add9d3 o Expand list of tunables documented in loader.8 to include kern.maxusers,
since other related tunables were also documented here.  Add a cross
  reference to tuning(7) for information on setting this value
  appropriately.
2001-12-07 18:05:24 +00:00
des
6b161786dd The entry for the 'set' command no longer has a list of variables.
PR:		32454
Submitted by:	Gary W. Swearingen <swear@blarg.net>
MFC after:	3 days
2001-12-04 12:01:00 +00:00
dcs
462671a608 Remove unused filed.
PR:		kern/32395
Submitted by:	Jonathan Mini <mini@haikugeek.com>
2001-12-03 12:07:05 +00:00
murray
f02533b302 Fix typo.
PR:		32455
Submitted by:	"Gary W. Swearingen" <swear@blarg.net>
2001-12-03 06:00:24 +00:00
dcs
35b8c147a0 Waits for a keypress before rebooting on panic.
PR:		kern/32351
Submitted by:	Jonathan Mini <mini@haikugeek.com>
MFC after:	1 week
2001-11-28 14:00:36 +00:00
rwatson
ff7583e80a Document the "console" setting in loader.conf, suggesting vidconsole
or comconsole.
2001-11-27 20:37:40 +00:00
rwatson
0a72d60f9d o Add 'kern.maxusers' to the list of commented out sample tunable
variables, since that can now be tuned at boot-time without a
  recompile.
2001-11-26 03:49:59 +00:00
jhb
a3e4cf9a6b Bump the CD boot loader up to 1.1 so that the FICL upgrade a while back
will not fail thinking that the loader version is stale.  This lets us
use the Forth code on the CD now.
2001-11-21 23:16:26 +00:00
obrien
7a00c069a1 Upper case the FreeBSD loader prompt.
On OFW based machines, it is just too confusing having the firmware and
OS loader giving the same prompt.  This is a nice compromise that 99% of the
users on non-OFW platforms will probably not even notice.
2001-11-19 17:30:26 +00:00
peter
b866d91337 Lookup the EFI_FPSWA driver and pass the interface pointer through to the
kernel before we call ExitBootServices().  I've typed the definitions
in efifpswa.h from the Intel FPSWA manual (urk).
2001-11-19 07:09:47 +00:00
peter
40fe009adb Remove bootinfo.bi_kernel. It isn't used by the kernel. struct bootinfo
should go away on ia64, we should be loader metadata based since that is
the only way we can boot (loader, skiload).
2001-11-19 07:05:10 +00:00
peter
536bf9b42b Fix a dependency violation, same as in libefi/elf_freebsd.c a while back. 2001-11-19 06:59:53 +00:00
peter
58087902a2 This is used in C, not C++. functions with no args have func(void) in our
kernel.
2001-11-19 06:58:14 +00:00
nyan
82943ba683 MFi386: revisions from 1.26 to 1.30. 2001-11-17 13:58:04 +00:00
nyan
d482b20b09 MFi386: revision 1.12 2001-11-17 13:57:32 +00:00
iedowse
4e3498d275 Fix a number of misspellings of "dependency" and "dependencies" in
comments and function names.

PR:		kern/8589
Submitted by:	Rajesh Vaidheeswarran <rv@fore.com>
2001-11-16 21:08:40 +00:00
fenner
5c86756d5c Initialize first to -1; this will create a (nearly) empty file on failure,
instead of looping until the disk is full.  This kind of failure can
especially happen when a version of awk that doesn't support POSIX
character classes is used.

Submitted by:	David Wolfskill <david@catwhisker.org>
2001-11-07 17:53:25 +00:00
jhb
a4e77dae6a Remove a few more debugging bits and turn on twiddle output while reading
from the CD.  This turns off the dual console output to COM1.
2001-11-07 01:20:33 +00:00
iwasaki
37688d6327 Add S4BIOS sleep (BIOS hibernation) and DSDT overriding support.
- Add S4BIOS sleep implementation.  This will works well if MIB
   hw.acpi.s4bios is set (and of course BIOS supports it and hibernation
   is enabled correctly).
 - Add DSDT overriding support which is submitted by takawata originally.
   If loader tunable acpi_dsdt_load="YES" and DSDT file is set to
   acpi_dsdt_name (default DSDT file name is /boot/acpi_dsdt.aml),
   ACPI CA core loads DSDT from given file rather than BIOS memory block.
   DSDT file can be generated by iasl in ports/devel/acpicatools/.
 - Add new files so that we can add our proposed additional code to Intel
   ACPI CA into these files temporary.  They will be removed when
   similar code is added into ACPI CA officially.
2001-11-06 15:00:30 +00:00
nyan
f6200bb4f8 MFi386: sys/boot/i386/loader/main.c revision 1.25 2001-11-06 12:31:56 +00:00
nyan
0975bb0246 MFi386: sys/boot/i386/libi386/Makefile revision 1.21 2001-11-06 12:31:05 +00:00
jhb
c719e36f58 - If we are booted via cdboot, use bc_add() to instantiate the cd0 device
from the loader.
- Cleanup extract_currdev() some and add support for setting the currdev
  to cd0 when booted via cdboot.
2001-11-05 19:03:01 +00:00
jhb
a4fb7c0967 Hook up the bioscd driver and the cd9660 filesystem. 2001-11-05 18:59:13 +00:00
jhb
094cb29b11 Add a device driver for the BIOS device for CD-ROM's booted via El Torito
no emulation mode.  Unlike other BIOS devices, this device uses 2048 byte
sectors.  Also, the bioscd driver does not have to worry about slices
or partitions.
2001-11-05 18:58:33 +00:00
jhb
c077e35a66 Add a DEVT_CD type for CD drivers. 2001-11-05 18:51:47 +00:00
jhb
1c85c21111 Trim all the extra debugging output including hexdumps, debug messages,
etc.  The only bit of debugging left is performing dual output to both
the screen and COM1.  Also, the twiddle is still disabled since it seems
to do weird things to the serial dump.  cdboot now has 880 bytes to spare.
2001-11-04 03:51:59 +00:00
jhb
b95616aa58 Axe the old cdldr. 2001-11-04 03:28:10 +00:00
jhb
677b4a24d6 Use the new cdboot instead of cdldr. 2001-11-04 03:27:06 +00:00
jhb
2515f10902 This is a new CD bootstrap utility designed to replace cdldr. According
to the El Torito standard for CD booting, a CD may boot in "No emulation"
mode without using a floppy image.  In this mode, the BIOS loads a program
off of the CD into memory and creates a BIOS device using 2048 byte sectors
for the CD.  According to the standard, this program can be up to 0xFFFF
virtual (512-byte) sectors long.  The old cdldr depended on this by having
the BIOS load the entire loader and the small cdldr stub as one binary
similar to pxeboot so that cdldr didn't have to read the CD to find the
loader.  However, the NT no emulation loader just uses 1 disk sector
(4 virtual sectors), so it seems that at least some BIOS writers just did
enough to get NT to boot by only loading 1 sector and ignoring the sector
count.  Thus, while cdldr should have worked in theory, it doesn't in
practice.  This replacment fits entirely in 1 sector and includes simple
ISO 9660 support.  It looks for /boot/loader on the CD and loads it up
using the BIOS.  This allows us to not have to depend on the limited size
of floppy images but use a full GENERIC kernel for CD-ROM installs in the
future, among other things.

This version of cdboot is a bit bloated as it includes some useful
debugging routines that people can pull to use in other x86 assembly
modules.  Even with all the debugging cruft, we still have 272 bytes to
spare.
2001-11-04 03:24:16 +00:00
jhb
c22f597592 Print out 'foo devices:' as the line before displaying a group of
devices in 'lsdev' output rather than printing out a pointer to the
print function since the user really could care less about the pointer
value.  Perhaps this was intended to be a debugging printf?
2001-11-04 02:58:39 +00:00
jhb
7079074a9c Whoops, missed these bits in the previous commit. 2001-11-03 22:21:21 +00:00
jhb
a4df14b208 Add support for sending messages to the serial console which is helpful
when debugging boot problems.  It is not on by default but is enabled via
the BTX_SERIAL variable.  The port and speed can be set via the same
variables used by boot2 and the loader.
2001-11-03 22:09:30 +00:00
jhb
f40c8aa82e Add support for outputting multiple lines when dumping memory during the
register dump.  Change the default to bump 2 lines of output (32 bytes)
instead of 1 line (16 byte).
2001-11-03 21:53:46 +00:00
jhb
008cbb2dde Add support for trace traps by returning from them just as for breakpoint
traps rather than halting.  Ideally, we should avoid printing the
'BTX halted' message for debug register dumps.
2001-11-03 21:42:25 +00:00
jhb
6bee569517 Output a newline at the end of a dump so that there are blank lines between
dumps when using breakpoints or tracing.
2001-11-03 21:40:47 +00:00
obrien
9bd91d26be Revert rev 1.3 which moved us away from POSIX character classes.
The community feels our base AWK must handle them.
2001-11-03 01:35:07 +00:00
obrien
8e8327cb31 Revert rev 1.7 which moved us away from POSIX character classes.
The community feels our base AWK must handle them.
2001-11-03 01:33:12 +00:00
mike
3df91ed4db o Add new header <sys/stdint.h>.
o Make <stdint.h> a symbolic link to <sys/stdint.h>.
o Move most of <sys/inttypes.h> into <sys/stdint.h>, as per C99.
o Remove <sys/inttypes.h>.
o Adjust includes in sys/types.h and boot/efi/include/ia64/efibind.h
  to reflect new location of integer types in <sys/stdint.h>.
o Remove previously symbolicly linked <inttypes.h>, instead create a
  new file.
o Add MD headers <machine/_inttypes.h> from NetBSD.
o Include <sys/stdint.h> in <inttypes.h>, as required by C99; and
  include <machine/_inttypes.h> in <inttypes.h>, to fill in the
  remaining requirements for <inttypes.h>.
o Add additional integer types in <machine/ansi.h> and
  <machine/limits.h> which are included via <sys/stdint.h>.

Partially obtain from:	NetBSD
Tested on:		alpha, i386
Discussed on:		freebsd-standards@bostonradio.org
Reviewed by:		bde, fenner, obrien, wollman
2001-11-02 18:05:43 +00:00
nyan
40808c1936 Fixed sioreg.h path. 2001-11-02 15:15:09 +00:00
obrien
112eea5338 Substitute "[:space:]" with the character constants it expands to.
This was a silent 'failure' when using Bell-Labs awk.

Submitted by:	David Wolfskill <david@catwhisker.org>
2001-11-01 19:14:16 +00:00
obrien
3be11f77da Bell-Labs AWK does not support POSIX "bracket expressions" (POSIXese for
"character classes", basically).  So change them to their character
representation.

Submitted by:	David Wolfskill <david@catwhisker.org>
2001-11-01 07:16:35 +00:00
peter
364766b6e6 Fix the ILLEGAL fdisk table that is there for supporting "dangerously
dedicated" mode.  This was specifying that there are 256 (illegal!)
heads on the disk.  If bioses store that in a byte, and it gets truncated
to 0, then that almost certainly causes the infamous divide-by-zero
nightmare.

This is also most likely the reason why the Thinkpad T20/A20 series
were locking up when FreeBSD was installed.  This is also the most likely
reason why a boot1 being present causes an IA64 box to lock up at boot.
(removing the "part4" stuff from boot1.s fixes the IA64 boxes and would
most likely have fixed the T20/A20 and some TP600E series thinkpads)
2001-11-01 06:19:32 +00:00
jake
cf11e2a00d Add code to copy the enironment and loader metadata into kernel space. 2001-10-30 06:37:36 +00:00
jake
db9bc81630 Add definitions for network support, doesn't work yet.
Pass the right arguments to the kernel.
Replace magic numbers with symbolic constants.
Pass the real openfirmware entry point to OF_init.
2001-10-30 06:31:45 +00:00
jake
2fe78b0a1e Use ENTRY() for defining functions in asm.
Remove asm functions to call the openfirmware and kernel entry points;
we can just call them directly.
Don't use the stack pointer for an intermediate result in setx.
Put the stack in the bss.
2001-10-30 06:27:34 +00:00
jake
36e649fc50 Make the openfirmware entry point function pointer non-static so that it
can be passed to the kernel.
2001-10-30 06:23:32 +00:00
marcel
ff26515539 Set RB_MULTIPLE (multiple console support) if the kernel is booted
with the -D flag.
2001-10-29 01:11:40 +00:00
ru
591b34de05 Just use ${MACHINE}, it's already special-casing pc98. 2001-10-25 09:05:47 +00:00
dfr
ec791e2f38 Call ExitBootServices and disable interrupts before we start hacking
the VM registers. This ought to make things slightly more reliable here.
2001-10-25 08:53:39 +00:00
dfr
1455d39753 Add the two sections used for PLT entries to the text and sdata sections
respectively. This makes IPLTLSB relocations work properly (these are
generated for weak symbols, particularly for _longjmp).
2001-10-25 08:50:14 +00:00
dfr
eb865e7656 Try to get the self-relocator to work with IPLTLSB relocations. Doesn't
work right though - I can't figure out why.
2001-10-24 20:14:49 +00:00
jlemon
fa5eeb011c Set RB_MULTIPLE (multiple console support) if the kernel is booted
with the -D flag.
2001-10-23 20:27:48 +00:00
jlemon
66b3b14455 Allow the RBX_DUAL flag to appear in bootinfo. 2001-10-23 20:27:05 +00:00
nyan
4bff7137a2 Use a array to convert from a attribute for AT to one for PC98.
(merged from sys/pc98/pc98/scvtbpc98.c)
2001-10-17 15:15:01 +00:00
nyan
ee5a768271 Merged from sys/boot/i386/libi386/vidconsole.c revisions 1.16, 1.17 and 1.18. 2001-10-17 14:41:50 +00:00
nyan
bc3aadffa1 fix style(9) 2001-10-17 14:17:11 +00:00
nyan
097a07c676 Merged from sys/boot/i386/loader/Makefile revision 1.54. 2001-10-17 14:13:36 +00:00
robert
c9e9bef4c3 Add a prototype for OF_alloc_phys. 2001-10-15 14:43:38 +00:00
robert
ffc6df5e2b Fix some warnings. 2001-10-15 14:40:36 +00:00