995 Commits

Author SHA1 Message Date
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