Commit graph

956 commits

Author SHA1 Message Date
Peter Wemm a812f645bc Fix a dependency violation, same as in libefi/elf_freebsd.c a while back. 2001-11-19 06:59:53 +00:00
Peter Wemm 8e92224a8a 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
Yoshihiro Takahashi 608f31f640 MFi386: revisions from 1.26 to 1.30. 2001-11-17 13:58:04 +00:00
Yoshihiro Takahashi b9c5c179c3 MFi386: revision 1.12 2001-11-17 13:57:32 +00:00
Ian Dowse 7b9716bad2 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
Bill Fenner ce20386909 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
John Baldwin 6a50ba658c 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
Mitsuru IWASAKI 1611ea8727 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
Yoshihiro Takahashi 5cb7d2f699 MFi386: sys/boot/i386/loader/main.c revision 1.25 2001-11-06 12:31:56 +00:00
Yoshihiro Takahashi 748c552f0e MFi386: sys/boot/i386/libi386/Makefile revision 1.21 2001-11-06 12:31:05 +00:00
John Baldwin 4c3bb58384 - 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
John Baldwin 6514d92792 Hook up the bioscd driver and the cd9660 filesystem. 2001-11-05 18:59:13 +00:00
John Baldwin 0322b80600 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
John Baldwin 9248a89d0b Add a DEVT_CD type for CD drivers. 2001-11-05 18:51:47 +00:00
John Baldwin 0a0fed8681 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
John Baldwin f941b4c14e Axe the old cdldr. 2001-11-04 03:28:10 +00:00
John Baldwin 6bbbde38ca Use the new cdboot instead of cdldr. 2001-11-04 03:27:06 +00:00
John Baldwin 5af9115c77 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
John Baldwin f0699bb775 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
John Baldwin dfd89d691e Whoops, missed these bits in the previous commit. 2001-11-03 22:21:21 +00:00
John Baldwin 580d63df68 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
John Baldwin 0535c2bbad 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
John Baldwin 5eef06c222 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
John Baldwin 25895accd8 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
David E. O'Brien 5daeec1454 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
David E. O'Brien 09a4374e6d 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 Barcroft 0ac2d551f2 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
Yoshihiro Takahashi 716d0f6c04 Fixed sioreg.h path. 2001-11-02 15:15:09 +00:00
David E. O'Brien 2273086d55 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
David E. O'Brien 3a167df8c3 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 Wemm ce4c60d38d 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 Burkholder 8be89d4719 Add code to copy the enironment and loader metadata into kernel space. 2001-10-30 06:37:36 +00:00
Jake Burkholder a237ed036e 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 Burkholder 073e92a52c 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 Burkholder eea923d7f8 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 Moolenaar 997313be99 Set RB_MULTIPLE (multiple console support) if the kernel is booted
with the -D flag.
2001-10-29 01:11:40 +00:00
Ruslan Ermilov ff0c93cc0e Just use ${MACHINE}, it's already special-casing pc98. 2001-10-25 09:05:47 +00:00
Doug Rabson 4abfff1e2e 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
Doug Rabson 7d5af294dc 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
Doug Rabson 88f5f7ac50 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
Jonathan Lemon 22dc069c24 Set RB_MULTIPLE (multiple console support) if the kernel is booted
with the -D flag.
2001-10-23 20:27:48 +00:00
Jonathan Lemon c80bd6e378 Allow the RBX_DUAL flag to appear in bootinfo. 2001-10-23 20:27:05 +00:00
Yoshihiro Takahashi aa0abed214 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
Yoshihiro Takahashi f49ccfe990 Merged from sys/boot/i386/libi386/vidconsole.c revisions 1.16, 1.17 and 1.18. 2001-10-17 14:41:50 +00:00
Yoshihiro Takahashi 2967d8485e fix style(9) 2001-10-17 14:17:11 +00:00
Yoshihiro Takahashi 60e0796757 Merged from sys/boot/i386/loader/Makefile revision 1.54. 2001-10-17 14:13:36 +00:00
Robert Drehmel aa5bde88b1 Add a prototype for OF_alloc_phys. 2001-10-15 14:43:38 +00:00
Robert Drehmel 8414482077 Fix some warnings. 2001-10-15 14:40:36 +00:00
Robert Drehmel 2727d8ffc8 Add the FreeBSD/sparc64 boot loader source files. 2001-10-15 14:35:39 +00:00
Robert Drehmel 7081e52987 Make the ofw_reg structure and ofw_alloc_heap 64-bit save. 2001-10-15 12:16:20 +00:00
Robert Drehmel fc06896610 Add a Makefile for the sparc64 boot loader. 2001-10-15 10:36:35 +00:00
Robert Drehmel d729d0aa31 Do not include openfirm.h; it is now included by libofw.h. 2001-10-15 09:52:38 +00:00
Robert Drehmel 66631c00de - Use the cell_t type definition for Open Firmware arguments in
combination with requisite casts as this avoids fatal side
   effects on 64-bit architectures.
 - Add the OF_alloc_phys function.
2001-10-15 09:51:09 +00:00
Robert Drehmel 1da9b140b7 - Fill dummy functions with code to read from disk using Open
Firmware.
 - Add a temporary disklabel header to boot off a NetBSD/sparc64
   partition.  This file can be deleted when we have got a FCode
   bootblock.

The disklabel header was obtained from NetBSD.
2001-10-15 09:35:40 +00:00
Robert Drehmel 7ff1bab73b - Include openfirm.h for phandle_t.
- Add some necessary members to the ofwdisk structure.
 - Add a prototype for ofw_parseofwdev.
2001-10-15 09:28:07 +00:00
Robert Drehmel cdfc68815b Add a function for parsing an Open Firmware boot path into the
ofw_devdesc structure.
2001-10-15 09:25:30 +00:00
Robert Drehmel 8716f26121 - Add an ifdef guard.
- Use unsigned types for the (32-bit) Open Firmware device handles
   to avoid sign extension on 64-bit architectures.
 - Add a standard type definition for Open Firmware arguments.
2001-10-15 09:02:03 +00:00
Doug Rabson 65601f6da8 Fix typo in comment. 2001-10-11 13:47:20 +00:00
Marcel Moolenaar 8daca20f62 s/alpha/${MACHINE_ARCH}/g 2001-10-08 01:41:45 +00:00
Benno Rice 225845627b Whitespace fixes. 2001-10-07 13:27:27 +00:00
Benno Rice a6bfff4582 Add new files needed by previous commit. 2001-10-07 13:24:56 +00:00
Benno Rice cae2c81dc2 Mega-patch for OpenFirmware loader support.
- Flesh out ofw_readin routine.
- Add OpenFirmware load and exec routines.
- Make sure memory allocation for the kernel is done correctly.
- Change the way the heap is allocated so as to make it easier to deallocate
  when we hand over.
- Add a command to print memory maps similar to the one for ia64.

With this patch, I can now load and hand over to a kernel on my iMac.  There
are some problems with OpenFirmware routines failing after the hand over that
still need to be addressed.
2001-10-07 13:22:25 +00:00
John Baldwin 69ad5bdd3f Whitespace fixes. 2001-10-04 10:18:00 +00:00
Kazutaka YOKOTA 82fe828980 Fix the ANSI color escape sequence \E[m.
- Corretly map the ansi color number to a PC BIOS color.
- Handle multiple arguments to the escape sequence.
2001-10-02 13:11:35 +00:00
Kazutaka YOKOTA 4238458ba2 Fix the local macro: isvisible().
- The space char (0x20) IS a visible char :-)
2001-10-02 09:13:07 +00:00
Mike Silbersack 0742c2bb67 grammar fix: to -> too 2001-10-01 23:41:13 +00:00
Kazutaka YOKOTA b827a63aa6 Fix the function CD(): "Clear to the end of the screen".
- When the video BIOS is called to clear the region (x, y)-(79, 24)
  (by scrolling), the slashed region in Fig.1 is cleared.  CD() is
  supposed to clear the region shown in Fig.2.
        x                 x
    +-------+         +-------+
    |       |         |       |
   y|   ////|        y|   ////|
    |   ////|         |///////|
    |   ////|         |///////|
    +-------+         +-------+
      Fig.1             Fig.2

- Don't move the cursor during this operation.
2001-10-01 11:48:02 +00:00
Kazutaka YOKOTA 6c8e596705 This is white-space only change. No functional difference.
- Be consistent about placing spaces around keywords and
  operators; don't mix statements like "if(A==B)" and "if (X == Y)",
  "return(0)" and "return (-1)", "P=10" and "Q = 0", etc.

- Consitently indent lines. It's not good to indent by 8 columns
  in one part of the file, and by 4 columns in the other part.
2001-10-01 11:42:25 +00:00
Peter Wemm 4d7552180d Make this 'make obj' safe 2001-09-26 00:13:08 +00:00
Doug Rabson 5f802bfc9f Calculate the valid flag for ITRs and DTRs correctly. Also fix a couple
of minor problems and remove some debugging code.
2001-09-25 19:44:19 +00:00
Doug Rabson 9164a3125a Add commands to dump the itrs and dtrs. 2001-09-24 19:39:34 +00:00
Doug Rabson bc14d41c7e Return the mapkey which EFI gave us when we read the memory map - we need
it to call ExitBootServices.
2001-09-24 19:37:44 +00:00
Doug Rabson 6544e18249 Tidy up a little - don't try to print anything or enable interrupts after
we start changing translation registers. Also, call ExitBootServices
before we jump into the kernel.
2001-09-24 19:36:45 +00:00
Doug Rabson 6dd44dacaa Pick up pal.s from the kernel sources. 2001-09-24 19:31:44 +00:00
Doug Rabson 0f34719cf5 Add commands to dump the configuration tables and the SAL System Table. 2001-09-23 10:28:01 +00:00
Doug Rabson e565888bc5 Add EFI network support. 2001-09-22 19:12:30 +00:00
Doug Rabson 1271403685 * Flesh out elf_exec and bootinfo.
* Add EFI network support.
2001-09-22 19:10:56 +00:00
Doug Rabson f066622bdd Add getsecs() for the libstand network code. 2001-09-22 18:33:09 +00:00
Doug Rabson 81d63063b1 Add a twiddle meter when reading from files. Gives me something to look
at when a kernel is loading from a floppy.
2001-09-22 18:31:02 +00:00
Doug Rabson 68176c8544 Add definition of SSC_GET_RTC. 2001-09-20 08:22:56 +00:00
Doug Rabson 447a0851af Implement time(). 2001-09-19 12:12:12 +00:00
Maxim Sobolev 0f2c85b335 Add support for loading bzip2-compressed kernels and modules. This support
is turned off by default and could be enabled by defining LOADER_BZIP2_SUPPORT
make variable. Also make gzip support optional (turned on by default) -
it could be turned off via LOADER_NO_GZIP_SUPPORT make variable.

Please note, that due to limit on the amount of memory available to the
loader(8), it is possible to load modules/kernels compressed with the smallest
block size supported by the bzip2 - 100k (`-1' bzip2(1) option), however
even in this mode bzip2(1) usually provides better compression ratio than
gzip(1) in its best compression mode.

MFC after:	1 month
2001-09-18 14:52:36 +00:00
Yoshihiro Takahashi 8017b4dceb MFi386: sys/boot/i386/loader/main.c revision 1.24. 2001-09-16 05:22:51 +00:00
Yoshihiro Takahashi cd8b058539 MFi386: sys/boot/i386/libi386/Makefile revision 1.20. 2001-09-16 05:22:27 +00:00
Doug Rabson c5620b0763 Add a fake memory descriptor for the I/O port space. 2001-09-15 18:29:42 +00:00
Doug Rabson 8b43a51e12 Fill in the bootinfo's memory map. 2001-09-15 09:53:56 +00:00
Doug Rabson fb63a84609 Remove dead code. 2001-09-15 08:25:16 +00:00
Doug Rabson 28d7d2f0a0 Plug in ELF backend. 2001-09-14 08:28:17 +00:00
Doug Rabson 327b34100f Add ELF backend to the build. 2001-09-14 08:27:49 +00:00
Doug Rabson f19fa0b627 Make this do the right thing (mostly). We should still reserve the pages
that the kernel loads into using the EFI AllocatePages call.
2001-09-14 08:26:00 +00:00
Doug Rabson f0f40e4c2a Update code which creates bootinfo. 2001-09-13 12:49:02 +00:00
Doug Rabson 908e8cb5be A command file for SKI which runs the loader up to the first instruction
of the loaded kernel.
2001-09-12 15:08:49 +00:00
Ruslan Ermilov 188cdfac56 Create backup copies using install(1). 2001-09-12 10:25:50 +00:00
Doug Rabson 9b36a30ee4 Build ficl on all architectures. 2001-09-12 08:35:05 +00:00
Doug Rabson 3a19b480c8 Add a version of the loader which runs under SKI, the HP ia64 simulator.
This loader is quite functional and can load and run kernels. The kernels
don't quite work right after loading but that should be easily fixable.
2001-09-12 08:34:27 +00:00
Peter Wemm 505222d35f Implement the long-awaited module->file cache database. A userland
tool (kldxref(8)) keeps a cache of what modules and versions are inside
what .ko files.  I have tested this on both Alpha and i386.

Submitted by:	bp
2001-09-11 01:09:24 +00:00
Doug Rabson 9d2535d919 Add missing entry to memory type name table and adjust field widths. 2001-09-08 12:32:12 +00:00
Doug Rabson 3146b2d65c Add a command 'memmap' to print out the EFI memory map. 2001-09-08 12:21:37 +00:00
Doug Rabson 96bf6ac71e Hook up the native EFI filesystem reader. 2001-09-07 08:52:53 +00:00
Doug Rabson fc2b065c41 Set currdev and loaddev variables. 2001-09-07 08:52:26 +00:00