Commit Graph

1539 Commits

Author SHA1 Message Date
Marcel Moolenaar
759e38dbbe Remove. This file was repocopied to ../ski. 2004-09-24 04:49:32 +00:00
Marcel Moolenaar
8da69dadbe Replace misuse of NULL with 0UL. 2004-09-24 04:40:28 +00:00
Marcel Moolenaar
9ba97f7322 Remove the dependency on the Intel EFI headers in sys/boot/efi. Instead
use <machine/efi.h> for the necessary definitions. This makes the EFI
code in sys/boot/efi totally unused, except for pure EFI loaders. As
such, maintenance and porting (to IA-32) of the EFI code is made as easy
as possible.
2004-09-24 04:35:07 +00:00
Marcel Moolenaar
7886b298bf Unhook libski and skiload and hook up ski. 2004-09-24 04:21:14 +00:00
Marcel Moolenaar
cf1dd2e903 Post repocopy build fixes. 2004-09-24 04:06:22 +00:00
Marcel Moolenaar
f3a21ad7c6 Redefine a PTE as a 64-bit integral type instead of a struct of
bit-fields. Unify the PTE defines accordingly and update all
uses.
2004-09-23 18:37:36 +00:00
Wes Peters
ecaf63f715 Trap invalid sector size 0 in disk probe, refusing to add such a
device to the list.  This prevents crashes on /0 errors in 'lsdev'
et al.

Reviewed-by:	jhb@
MT5 after:	RE approval
2004-09-21 06:46:44 +00:00
Marcel Moolenaar
6e2faf455e Remove useless include of <machine/fpu.h>. 2004-09-18 21:18:44 +00:00
John Baldwin
ca9b2364c3 A long, long time ago in a CVS branch far away (specifically, HEAD prior
to 4.0 and RELENG_3), the BTX mini-kernel used paging rather than flat
mode and clients were limited to a virtual address space of 16 megabytes.
Because of this limitation, boot2 silently masked all physical addresses
in any binaries it loaded so that they were always loaded into the first
16 Meg.  Since BTX no longer has this limitation (and hasn't for a long
time), remove the masking from boot2.  This allows boot2 to load kernels
larger than about 12 to 14 meg (12 for non-PAE, 14 for PAE).

Submitted by:	Sergey Lyubka devnull at uptsoft dot com
MFC after:	1 month
2004-09-18 02:07:00 +00:00
Yoshihiro Takahashi
cede9ec016 MFi386: revision 1.56 (Add -fno-unit-at-a-time to CFLAGS). 2004-09-18 00:12:04 +00:00
Ken Smith
a6406834da Back out v1.24. v1.40 of sys/sparc64/sparc64/bus_machdep.c fixes the
problem this hack was put in place for.

MFC to be done if the fix to bus_machdep.c is MFC-ed.
2004-09-08 12:52:45 +00:00
Ian Dowse
941fdb393b Add the loader side of support for preloading ELF relocatable object
format modules, which are currently only used on the amd64 platform.
This initial implementation just parses enough of the module to
allow it to extract dependencies and load all the bits into the
right place in memory, so the kernel must still do the full relocation
and linking. The details of the loaded sections are passed to the
kernel by supplying a copy of the ELF section header table as module
metadata with the MODINFOMD_SHDR tag.
2004-08-29 00:48:42 +00:00
Ian Dowse
45b8d7c46e Separate out the ELF relocation code from the ELF loader, and add
better relocation support for the amd64 and i386 platforms. This
should not result in any change in functionality, but moves a step
towards supporting the relocatable object file modules on amd64.

The same hack/trick as load_elf*.c uses is used here to simultaneously
support both elf32 and elf64 on amd64 and i386.
2004-08-28 23:03:05 +00:00
Ian Dowse
c0b43624d5 Add a few helper functions for zeroing kernel space and reading
from specified file offsets. Make use of these in load_elf.c.
2004-08-28 14:57:34 +00:00
Yaroslav Tykhiy
a30e1135b4 Don't be too smart, just try packet mode of INT13 first.
This way of operation is more robust than the "AI" used
before.

Add flags to mbr accessible from make.conf as BOOT_MBR_FLAGS.
Only one flag is defined now, "allow using packet mode", which
is 0x80 in accord with the rest of i386 boot code.  The "packet"
flag is on by default.

PR:             i386/70241
Submitted by:   Valentin Nechayev <netch <@> netch.kiev.ua> (inital version)
Discussed with: jhb (by Valentin Nechayev)
Tested on:      bochs (with EDD turned on or off by patching the BIOS), PCs
2004-08-28 08:39:35 +00:00
Yaroslav Tykhiy
57888b4c83 Try packet mode of INT13 on a hard disk first if not prohibited by
the flag, fall back to the old INT13/AH=02 function if that fails.
This way of operation is less likely to fail with modern BIOSes and
large disks of strange geometries.

PR:		i386/70241
Submitted by:	Valentin Nechayev <netch <@> netch.kiev.ua> (inital version)
Discussed with:	jhb (by Valentin Nechayev)
Tested on:	bochs (with EDD turned on or off by patching the BIOS), PCs
2004-08-28 08:32:23 +00:00
Yaroslav Tykhiy
9e4211a1b8 B1FLAGS -> BOOT_BOOT1_FLAGS, which is consistent with
naming of other boot-related make vars.
2004-08-27 15:01:56 +00:00
David E. O'Brien
8ae136ae71 In conjunction with having boot0cfg(8) default boot0 to packet mode.
Submitted by:	Tor.Egge@cvsup.no.freebsd.org
2004-08-27 00:18:03 +00:00
Maxim Konovalov
d4c8cbf109 Trim EOL white spaces. 2004-08-22 08:57:05 +00:00
Maxim Konovalov
022c9a28ee Check a return code from read(2) correctly.
PR:		kern/70815
Submitted by:	info [at] haakh.de
2004-08-22 08:56:01 +00:00
Marcel Moolenaar
fa1fc9094a Part 2 of fixing the boot code: gcc 3.4 fixes.
The whole problem seems to be size. Which is odd, because it is said
that size doesn't matter. Anyway... Add -Os to strategic places in the
makefile to have the final loader be as mall as possible. This seems
to be enough to make it work. For now... I think something is more
fundamentally wrong; or something more fundamental is wrong. Potato,
potaato.
2004-08-22 06:24:59 +00:00
Marcel Moolenaar
dc2492d303 Part 1 of fixing the boot code: binutils 2.15 fixes.
The binutils 2.15 assembler now automaticly and non-optionally adds
the .eh_frame section for unwind information. This section appears
to wreck havoc to the final boot code. Fix this by using a special
linker script that discards the .eh_frame sections, but is otherwise
identical to the linker internal script used for -N.

Compiler used: gcc 3.3.5
Verified with: binutils 2.14 & binutils 2.15 (stock and in-tree)
Tested with: /boot/loader & /boot/netboot
2004-08-22 00:26:01 +00:00
Ken Smith
7a4cf071fc Temporary bandaid to help sparc64 systems with ATA disks boot. Recent
changes to the ATA driver cause a kernel crash, no fault of the ATA
code.  Work is in progress to add the necessary feature to the sparc64
kernel and this commit will be backed out when it is complete.  This
bandaid is being put in mostly in the interests of getting the first
release snapshot done and out the door.

Tested on:	Ultra-10 exhibiting the insta-panic.
MFC:		Real Soon
2004-08-19 20:13:31 +00:00
Peter Grehan
523c8e33e4 Remove NOMAN so loader man pages are installed.
Noticed by:	ru
2004-08-18 11:31:00 +00:00
Maxim Konovalov
4233992afa Bump the manpage date.
Noticed by:	ru
2004-08-18 09:39:24 +00:00
Maxim Konovalov
ac92ad1b5d Retire hw.pci.allow_unsupported_io_range.
PR:		bin/70533
Submitted by:	Gavin Atkinson
2004-08-18 09:25:55 +00:00
Marius Strobl
39513fa664 Instead of "OpenFirmware", "openfirmware", etc. use the official spelling
"Open Firmware" from IEEE 1275 and OpenFirmware.org (no pun intended).

Ok'ed by:	tmm
2004-08-16 15:45:27 +00:00
Marcel Moolenaar
0797d69c78 Catch up with change to <machine/pte.h>. 2004-08-10 02:08:57 +00:00
John-Mark Gurney
bd8fc733cb remove /boot/kernel from the default path.. There is already code that
will prepend the current kernel booting...  This prevents a problem of
loading /boot/kernel's modules when a different kernel has no modules,
but you left your module_load="YES" in loader.conf...

Reviewed by:	dcs (minus the help part)
2004-08-06 15:06:06 +00:00
Alexander Kabaev
2939c8a0b9 Move boot2 BSS zeroing into btx startup code out of boot1. boot1 does not
have clear idea on boot2 BSS size and leaves portion of it not zeroed out.
btxcsu.s is in much better position for this job.

Obtained from: DragonflyBSD (with minor adjustments)
2004-08-05 06:00:05 +00:00
Peter Grehan
1f302e5357 Add PowerPC bridge instruction flag to the assembler to help out
with test code written in the loader.
2004-08-02 03:06:21 +00:00
Peter Grehan
d4a57a3131 G5 support: handle the case where the OpenFirmware memory array uses
64 bits for the phys address, but only 32 for the virtual address.
2004-08-02 03:05:09 +00:00
Yoshihiro Takahashi
c80f54d479 Fix new compiler error (s/bcopy/memcpy/). 2004-07-30 09:42:04 +00:00
Alexander Kabaev
3cd25b7e7b Compile boot2 with -fno-unit-at-a-time. GCCs aggressive optimization
breaks boot in spectacular ways otherwise.
2004-07-30 04:27:20 +00:00
Alexander Kabaev
1bc32c1ffc Clean up local memcpy implementation to take void * parameters. 2004-07-30 00:33:09 +00:00
Ceri Davies
4529da5f33 Correct a documentation bug.
Approved by:	jhb
2004-07-29 20:09:25 +00:00
Ceri Davies
b2e74e8249 Correct typo in a comment.
Approved by:	jhb
2004-07-29 20:08:40 +00:00
Alexander Kabaev
d9eedfd93c Define our own memcpy here instead of relying on GCC to provide one. 2004-07-28 06:03:27 +00:00
Marcel Moolenaar
1701be6ed4 o Support the REL32LSB relocation. It's in the ELF file from which
we construct the EFI image. It doesn't seem to actually end up
   in the EFI image, AFAICT.
o  Replace .quad, .long and .short with data8, data4 and data2 resp.
   The former are gnuisms.
o  Redefine _start_plabel as a data16 with @iplt(_start) as its
   value. This is the preferred way to create user PLT entries.
2004-07-20 07:11:14 +00:00
Marcel Moolenaar
8af8df6452 Fix the creation of EFI images that got broken by the import of
binutils 2.15. The linker now creates a .rela.dyn section for
dynamic relocations, while our script created a .rela section.
Likewise, we copied the .rela section to the EFI image, but not
the .rela.dyn section. The fix is to rename .rela to .rela.dyn
in the linker script so that all relocations end up in the same
section again. This we copy into the EFI image.
2004-07-20 07:01:02 +00:00
Seigo Tanimura
10ad45d2fc Rename snd_pcm as sound. 2004-07-16 07:24:20 +00:00
Brian Somers
0ac4013324 Change the following environment variables to kernel options:
bootp -> BOOTP
    bootp.nfsroot -> BOOTP_NFSROOT
    bootp.nfsv3 -> BOOTP_NFSV3
    bootp.compat -> BOOTP_COMPAT
    bootp.wired_to -> BOOTP_WIRED_TO

- i.e. back out the previous commit.  It's already possible to
pxeboot(8) with a GENERIC kernel.

Pointed out by: dwmalone
2004-07-08 22:35:36 +00:00
Brian Somers
59e1ebc9b5 Change the following kernel options to environment variables:
BOOTP -> bootp
    BOOTP_NFSROOT -> bootp.nfsroot
    BOOTP_NFSV3 -> bootp.nfsv3
    BOOTP_COMPAT -> bootp.compat
    BOOTP_WIRED_TO -> bootp.wired_to

This lets you PXE boot with a GENERIC kernel by putting this sort of thing
in loader.conf:

    bootp="YES"
    bootp.nfsroot="YES"
    bootp.nfsv3="YES"
    bootp.wired_to="bge1"

or even setting the variables manually from the OK prompt.
2004-07-08 13:40:33 +00:00
Peter Grehan
744b9a014d Use a linker script for the loader. This avoids issues with
command-line options, such as misaligning the data segment.
Exposed by the limited PearPC OFW ELF loader, but a good thing in
general.
2004-07-08 12:52:35 +00:00
Peter Grehan
79c8d45fce Remove cache flush, 256Mb 1:1 BAT mapping, and BAT clearing. This doesn't
work on a G5 (no BAT registers) or on PearPC (dBAT3 used for mapping
the framebuffer and BATs not re-inited on OpenFirmware calls).

 It also hid a number of bugs.
2004-07-08 06:13:05 +00:00
Peter Grehan
c727d17006 All hell breaks loose if the loader image is released before
jumping to the kernel. Another bug exposed by removing the
1:1 BAT mapping. Sparc64 doesn't do this either.

Compile tested on: panther (sparc64). Code built, but not used, on sparc64.
2004-07-08 06:09:22 +00:00
Peter Grehan
ff6e6584fc Correctly calculate size of memory to be mapped when copying. Removal
of the 256Mb 1:1 BAT mapping exposed this as copying into memory that
hadn't been claimed from OpenFirmware.

compiled-tested on: panther (sparc64). Code built, but not used, on sparc64
2004-07-08 06:06:56 +00:00
Peter Grehan
4bb04ec4eb Extract entry point from elf header before releasing the heap.
This caused a data-miss trap when the BAT init code was removed
on PPC.

Compile tested on: panther (sparc64). Code built, but not used, on sparc64.
2004-07-08 06:04:45 +00:00
Ruslan Ermilov
2410103c1d mdoc(7) fixes. 2004-07-07 19:57:16 +00:00
Stefan Farfeleder
5908d366fb Consistently use __inline instead of __inline__ as the former is an empty macro
in <sys/cdefs.h> for compilers without support for inline.
2004-07-04 16:11:03 +00:00
Ruslan Ermilov
69cc5b91a0 Fixed what appeared to be a hard sentence break. 2004-07-02 21:49:22 +00:00
Paul Saab
b7c29ad503 When building a kernel or the loader, let the hostname be overridden 2004-07-01 06:40:12 +00:00
Josef El-Rayes
06fc89cc3a Remove the entry for configuring pcm0 mixer channels.
This is accomplished via device.hints now.
2004-06-24 17:49:18 +00:00
Christian Brueffer
c3a2ac100e Throw out pfsync and pflog, the modules were removed 2004-06-22 22:57:13 +00:00
John Baldwin
becfd988a3 Update the copyright to use a 3 clause BSD license rather than one that
is less clear about allowing redistribution of modified copies.

Requested by:	Tom Cosgrove tom dot cosgrove at arches-consulting dot com
2004-06-22 21:55:22 +00:00
John Baldwin
3c077ec681 Remove a bogus increment of %di when scanning the list of loader paths.
%di will already point to the character after the nul char when the
'repnz scasb' terminates.

Submitted by:	Tom Cosgrove tom dot cosgrove at arches-consulting dot com
2004-06-22 21:52:20 +00:00
Josef El-Rayes
a8c51f82b1 Document the possibility of setting default values for
mixer channels via boot loader.
2004-06-20 15:58:24 +00:00
Poul-Henning Kamp
d33ccadc81 Save a couple of bytes for the SIO case. 2004-06-17 12:02:25 +00:00
Poul-Henning Kamp
1400886b92 Fix another beak.
Seen by:	pjd
2004-06-17 11:44:05 +00:00
Poul-Henning Kamp
ad165b6f6d Unspam sys/boot, the dev_t commit should not have touched these.
Spotted by:	peter
2004-06-16 18:21:22 +00:00
Poul-Henning Kamp
0e69b1a1c7 My new keyboard can't spell. 2004-06-16 17:03:18 +00:00
Poul-Henning Kamp
89c9c53da0 Do the dreaded s/dev_t/struct cdev */
Bump __FreeBSD_version accordingly.
2004-06-16 09:47:26 +00:00
Poul-Henning Kamp
4ee9ad6b13 Premptively fix GCC3.4 issue: add break; after empty default: clauses.
PR:	65493
Submitted by:	Pawel Worach <sajd@telia.com>
2004-06-16 08:12:06 +00:00
Poul-Henning Kamp
f89485e2b1 Merge boot0 and boot0sio so they behave the same. 2004-06-11 09:45:18 +00:00
Poul-Henning Kamp
d7d485798f Some embedded platforms have no keyboard controller. Give up waiting
for it to react after a timeout.
2004-06-02 09:38:32 +00:00
Nate Lawson
2c0d74e8e8 Use the correct location of the EBDA for searching for the RSDP.
The EBDA is the 1 KB area addressed by the 16 bit pointer at 0x40E.

Pointed out by:	robert.moore AT intel.com
2004-05-25 05:52:48 +00:00
Ruslan Ermilov
f8aa392b11 Markup fixes. 2004-05-16 22:51:36 +00:00
Olivier Houchard
9049715ff9 Try harder not to compile anything in sys/boot for arm.
I wonder how buildworld ever worked for me...
2004-05-16 00:19:12 +00:00
Ruslan Ermilov
237266b2e6 Back out last revision that unnecessarily changed valid assembler
line comments and damaged the CVS history.

Prompted by:	bde, jhb
2004-05-14 20:29:30 +00:00
Ruslan Ermilov
b09ce52594 Partly back out last revision that unnecessarily changed valid
assembler line comments and damaged the CVS history.

Prompted by:	bde, jhb
2004-05-14 20:28:31 +00:00
Olivier Houchard
b791f3fb91 Do not attempt to build anything in sys/boot for arm. 2004-05-14 13:34:53 +00:00
John Polstra
15a3ddef19 Fix a potential stack buffer overflow on systems whose ACPI OEMID
fills its field (6 characters).  In that case the OEMID is not
null-terminated, and the sprintf that was used would copy up to the
next null byte, which could be pretty far away.
2004-05-14 01:29:21 +00:00
Ruslan Ermilov
3c96564d00 Convert block comments into C-style that is understood by cpp(1).
Keep line comments in assembler style.  A few lines that match
the '^[[:space:]]+#' regexp still need to be fixed, somehow.

OK'ed by:	bde, jhb
2004-04-29 18:58:38 +00:00
Yoshihiro Takahashi
dd4d0b14e8 MFi386: revisions from 1.15 to 1.17. 2004-04-29 08:24:57 +00:00
Yoshihiro Takahashi
798f9e7fa0 MFi386: revisions from 1.16 to 1.18. 2004-04-29 08:24:30 +00:00
Ruslan Ermilov
848c1050ee Thanks to David's patches, we can now simplify these makefiles
further, and just use PROG directly (without FILES).

Suggested by:	bde
2004-04-28 21:31:21 +00:00
Ruslan Ermilov
dfca089741 Properly merge boot0sio.s and boot0.s into boot0.S. 2004-04-28 21:14:40 +00:00
Ruslan Ermilov
df1a364da7 Switch to using C99 comments in assembler preprocessed with cpp(1). 2004-04-28 20:55:01 +00:00
Ruslan Ermilov
69dd73b976 - Properly merge boot0sio.s and boot0.s into boot0.S.
boot0sio.s was repo-copied to boot0.S.

- Rename boot0ext.s to boot0ext.S, to stay consistent
  with other preprocessed asm files around here, and
  for better portability.

Repocopied by:	joe
2004-04-28 20:49:17 +00:00
Ruslan Ermilov
6886d8ff2a Temporary precaution measure until repocopy requests are
processed: don't forget to clean generated .s sources.
2004-04-28 16:16:16 +00:00
Ruslan Ermilov
edfa817773 After talking to Bruce Evans and reading more standards specs,
switch to using C99-style comments everywhere in preprocessed
assembler.  The reason is that lines starting with the regexp
'^[[:space:]]#' are treated as preprocessing directives, and
while it seems to work now with GCC, it's not necessarily has
to work.  Use C99 comments `//' for the trailing comments to
save whitespace.
2004-04-28 14:31:44 +00:00
Ruslan Ermilov
1e104f00e7 MFi386: Use C (and CPP) style comments for assembler-with-cpp
sources, for lines that start with a comment.
2004-04-28 10:15:31 +00:00
Ruslan Ermilov
d1974eb1c5 Use C (and CPP) style comments for assembler-with-cpp sources,
for lines that start with a comment.
2004-04-28 10:09:21 +00:00
Ruslan Ermilov
4b35719adf Use C (and CPP) style comments for assembler-with-cpp sources,
for lines that start with a comment.
2004-04-28 09:57:12 +00:00
Ruslan Ermilov
37e931894e - Use C (and CPP) style comments for assembler-with-cpp sources,
for lines that start with a comment.
- Preserve as(1) style comments for the rest.
2004-04-28 09:49:22 +00:00
Ruslan Ermilov
c9be1bb2f8 Removed now redundant CLEANFILES assignments.
Not read enough of my patch by:	obrien ;)
2004-04-27 19:45:16 +00:00
Poul-Henning Kamp
f025129b8a Change from '#' to "//" comment character to allow CPP preprocessing.
Merge boot0.s and boot0sio.s into boot0_512.s controlled by "#ifdef SIO".

Add Makefile magic to generate boot0.s and boot0sio.s from boot0_512.s.

The compile boot0 and boot0sio have unchanged MD5 checksums.
2004-04-27 19:07:35 +00:00
David E. O'Brien
a606451bd2 Use a more compact syntax for passing the "binary" options to 'ld'. 2004-04-25 20:36:44 +00:00
David E. O'Brien
a50d1c0876 Simplify the building of our i386 'binary' boot components by directly
producing them using 'ld' options rather than post-processing with 'objcopy'.

Idea by:	Ryan Sommers <ryans@gamersimpact.com>
2004-04-25 19:50:20 +00:00
David E. O'Brien
d2f313a8ae Fix a last second typo in 'vi' that caused a problem. 2004-04-20 13:34:18 +00:00
David E. O'Brien
a3ab3e07c5 White space style cleanup. 2004-04-20 03:15:59 +00:00
David E. O'Brien
6773834a49 MFp4: merge version #5 of the 2-sector boot0 from the "jhb boot" branch. 2004-04-19 19:31:48 +00:00
Colin Percival
851c07559f s/atspeaker/speaker/
cf. revision 1.2 of src/sys/modules/speaker/Makefile

PR:		conf/65195
Submitted by:	daichi
2004-04-15 12:12:15 +00:00
Warner Losh
f36cfd49ad Remove advertising clause from University of California Regent's
license, per letter dated July 22, 1999 and email from Peter Wemm,
Alan Cox and Robert Watson.

Approved by: core, peter, alc, rwatson
2004-04-07 20:46:16 +00:00
Warner Losh
9e127f523c Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core
2004-04-05 23:41:29 +00:00
Marcel Moolenaar
fa662cc9b2 To quote the submitter:
"...If "keyboard" is the selected input-device and "screen" the
output-device (both via /options) but the keyboard is unplugged,
OF automatically switches to ttya for the console, it even prints
a line telling so on "screen". Solaris respects this behaviour and
uses ttya as the console in this case and people probably expect
FreeBSD to do the same (it's also very handy to temporarily switch
consoles)..."
"...I changed the comparison of the console device with "ttya" ||
"ttyb" to "tty" because on AXe boards all 4 onboard UARTs end in
SUB-D connectors (ttya and ttyb being 16550 and ttyc and ttyd a
SAB82532) and there's no Sun keyboard connector (but PS/2). If one
plugs a serial card in a box there also can be more than just ttya
and ttyb available for a console..."

Submitted by: Marius Strobl <marius@alchemy.franken.de>
Has no doubt that the change is correct: marcel
2004-04-04 05:24:13 +00:00
Lukas Ertl
84ff42d8ff mdoc fix: put the end-of-list macro after the last list element.
Approved by:   grog (mentor)
2004-04-03 12:14:30 +00:00
David E. O'Brien
ddffbabad8 Bring back jhb's two sector (1024 bytes) 'boot0' [rev 1.22] as 'boot0ext'. 2004-03-26 18:46:31 +00:00
John Baldwin
a59f1c063e Enable splitfs in the Alpha boot loaders. 2004-03-25 20:36:57 +00:00
Yoshihiro Takahashi
f213e50a57 MFi386: revision 1.29. 2004-03-14 09:43:15 +00:00