summaryrefslogtreecommitdiffstats
path: root/sys/boot
Commit message (Collapse)AuthorAgeFilesLines
* Don't bother to build ficl if NOFORTH is defined.benno2003-02-131-0/+2
|
* s/hw.pci_allow_unsupported_io_range/hw.pci.allow_unsupported_io_range/trhodes2003-02-081-1/+1
| | | | The former was incorrect and gave an `unknown oid' error.
* Remove special casing for running in the simulator from the kernelmarcel2003-02-0119-53/+1385
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and instead add platform, firmware and EFI stubs to the loader. The net effect of this change is that besides a special console and disk driver, the kernel has no knowledge of the simulator. This has the following advantages: o Simulator support is much harder to break, o It's easier to make use of more feature complete simulators. This would only need a change in the simulator specific loader, o Running SMP kernels within the simulator. Note that ski at this time does not simulate IPIs, so there's no way to start APs. The platform, firmware and EFI stubs describe the following hardware: o 4 CPU Itanium, o 128 MB RAM within the 4GB address space, o 64 MB RAM above the 4GB address space. NOTE: The stubs in the skiloader describe a machine that should in parts be defined by the simulator. Things like processor interrupt block and AP wakeup vector cannot be choosen at random because they require interpretation by the simulator. Currently the simulator is ignorant of this. This change introduces an unofficial SSC call SSC_SAL_SET_VECTORS which is ignored by the simulator. Tested with: ski (version 0.943 for linux)
* SSC calls use break immediate 0x80000. 0x80001 only works formarcel2003-02-012-2/+2
| | | | break.i. Ski is rather broken in this respect.
* MFi386: Install the "boot" image which is boot1 + boot2.nyan2003-01-301-2/+7
|
* Link /boot/boot1 to the name /boot/boot to avoid per-arch naming of thephk2003-01-261-0/+1
| | | | bootstrap code for disklabel using architectures.
* Build a file "boot" which consists of boot1 and boot2 concatenated.phk2003-01-262-2/+12
| | | | | There is little if any reason to treat the two components separately and it will simplify disklabel(8) and libdisk if we didn't.
* Use NDOSPART instead of NEXTDOSPART.nyan2003-01-211-2/+2
|
* MFi386: revision 1.63.nyan2003-01-211-10/+9
|
* Fix module dependency (pre)loading on sparc64 by relocating the variablesjake2003-01-211-6/+57
| | | | | | | | read from the raw kld files. Submitted by: Hartmut Brandt <brandt@fokus.gmd.de> PR: 46870 Tested on: alpha (obrien), i386, sparc64
* Use NEXTDOSPART instead of MAX_SLICES.phk2003-01-202-5/+4
|
* Simplify the Makefile by just using our standard PROG variable.obrien2003-01-181-9/+8
|
* Minimally document hw.syscons.sc_no_suspend_vtswitch.mdodd2003-01-151-0/+6
| | | | Requested by: Nate Lawson <nate@root.org>
* Save 4 more bytes by not initializing opts to 0. This moves it fromimp2003-01-142-2/+2
| | | | | | the data section to the bss section givig us initialization for free. Noticed by: bde
* Fix interactive booting:imp2003-01-132-4/+8
| | | | | | | | | | | | | o Revision 1.38 introduced the -n flag. It conflicted with the RB_BOOTINFO flag, so was in effect always on. Change the -n flag to be bit 0x1c instead of 0x1f. This also had the consequence that a mal-formed /boot.config would render the system unbootable because the user was unable to enter anything at all on the command line. o Remove the initialization of opt to be RB_BOOTINFO since we filter that bit out and do not otherwise use it. Reviewed by: jhb MFC after: 3 days
* Add SCSI MO device support.nyan2003-01-065-98/+156
| | | | Submitted by: Kawanobe Koh <kawanobe@st.rim.or.jp>
* Rename the dos_partition structure for pc98 to pc98_partition.nyan2003-01-042-8/+8
|
* RIP liloldr.obrien2002-12-314-364/+0
| | | | | | | It is not complete (the LILO root= specification isn't passed to our loader for instance), it has not been touched in over 2 years. Linux has moved on to GRUB, so this is OBE now. If someone creeps up to work on it, it could become a port.
* Fix typos, mostly s/ an / a / where appropriate and a few s/an/and/schweikh2002-12-301-1/+1
| | | | Add FreeBSD Id tag where missing.
* -mno-align-long-strings can make things smaller, so lets use it in hopesobrien2002-12-212-0/+2
| | | | that it does here.
* Put back the casts to unsigned. While no strictly necessary for itsimp2002-12-202-2/+2
| | | | | | | current uses, the name strcmp has strong connotations that shouldn't lightly be discarded. This doesn't cost us anything. Submitted by: bde
* Fix breakage from earlier inadvertant changes.jake2002-12-201-4/+0
|
* Renamed the loader's zipfs to gzipfs. zipfs.c was repo-copied to gzipfs.c.jake2002-12-1910-10/+13
|
* Add command `hcdp'. This command dumps the DIG64 HCDP table if onemarcel2002-12-182-0/+150
| | | | exists.
* I didn't intend to delete this rm from the Makefile. It snuck in atimp2002-12-182-0/+2
| | | | | | | | | the last second before the commit. # likely we can remove this hack now that gcc generates better aligned code # in the align to word case. Noticed by: bde
* Reduce diffs with Peter's expanded diffs:imp2002-12-172-8/+8
| | | | | 1) Put back the keyboard printing printf, at the cost of 58 bytes. 2) Minor tweak to getstr at no apparent cost.
* Make both UFS1 and UFS2 fit on the same boot blocks. These are aimp2002-12-174-142/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | subset of Peter's patchs that are believed to be safe. Makefile tweaks: o -fomit-frame-pointer o Change default to building both UFS1 and UFS2 bootblocks. Lots of boot2 tweaks: o lookup is only ever called with kname, so use it directly. o inline memsize o getstr are only ever called with cmd, so hardware that. o tweaks to the parsing code to test after the conversion rather than before since we tested after anyways. o eliminate support for %x in printf. o eliminate a few bytes in printfs. o Tweak the boot banner. o eliminate support for wd and " " devices (I might add wd back to keep bde happy). o eliminate support for a few arguments. This takes us from -162 bytes free to 67 bytes free. I've tested this only on a few systems, so be careful when updating to this change. Submitted by: peter, imp, ian
* Remove unneeded casts. Add others to make WARNS=5 happy.obrien2002-12-152-12/+12
|
* Employ the unused bytes after the disklabel in the second sector. This makesphk2002-12-144-48/+22
| | | | | | | | | | it possible to make UFS1_ONLY and UFS2_ONLY versions which fit inside the traditional 16 sectors. Remove assorted now unneeded hackery. UFS1_AND_UFS2 still needs another 150 bytes to work, and that is probably not within our reach, ever.
* Remove unnecessary call to fsread().phk2002-12-142-2/+0
|
* Restructure so we can compile UFS1_ONLY, UFS2_ONLY or UFS1_AND_UFS2phk2002-12-141-91/+33
| | | | versions from the same basic function.
* Always use the smaller GCC builtin memcpyphk2002-12-142-20/+0
|
* Remove unused variable.phk2002-12-142-2/+2
|
* Don't fill in the table with the BIOS idea about disk-geometry, we don'tphk2002-12-142-30/+0
| | | | use it. This saves a surprising number of bytes.
* Uniformly refer to a file system as "file system".ru2002-12-122-2/+2
| | | | Approved by: re
* Pass the HCDP table address to the kernel. If no such table exists,marcel2002-12-108-28/+33
| | | | | | | | | | | | | NULL is passed. The address of the HCDP table can be found by iterating over the configuration tables in the EFI system table. To avoid more duplication, a function can be called with the GUID of interest. The function will do the scanning. Use the function in all places where we iterate over the configuration tables in an attempt to find a specific one. Bump the loader version number as the result of this. Approved by: re (blanket)
* The exit() function has been moved to libefi.c to better deal withmarcel2002-12-101-39/+0
| | | | | | | cleaning up after ourselves. Approved by: re (blankoscheck) German corrections: Alexander (both :-)
* Change the startup code to fix a memory leak and to allow us tomarcel2002-12-105-41/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | accept load options (=command line options). The call graph changes from *entry*->efi_main->efi_init, where efi_main is the EFI equivalent of main to *entry*->efi_main->main, where main is what you'd expect. efi_main now is what efi_init was. The prototype of main follows that of C. The first argument is argc and the second is argv. There is no third argument. Allocation of heap pages is now handled by the EFI library and it now deallocates the pages when main() returns or when exit() is called. This allows us to safely return to the boot manager (or EFI shell) without leaks. EFI applications are responsible to free all memory themselves. Handling of the load options is a bit tricky. There are either no load options, load options in ASCII or load options in Unicode. The EFI library will translate the ASCII options to Unicode options as to simplify user code. Since the load options are passed as a single string (if present) and main() accepts argc and argv, the startup code also has to split the string into words and build the argv vector. Here the trickiness starts. When the loader is started from the EFI shell, argv[0] will automaticly load the program name. In all other cases (ie through the boot manager), this is not the case. Unfortunately, there's no trivial way to check. Hence, a set of conditions is checked to determine if we need to fill in argv[0] ourselves or not. This checking is not perfect. There are known cases where it fails to do the right thing. The logic works for most expected cases, though. This includes the case where no options are given. Approved by: re (blanket)
* o Make all GUID variables global to maximize reuse.marcel2002-12-102-42/+64
| | | | | | | o Recognize the HCDP configuration table. o Dump the GUID of tables we don't recognize. Approved by: re (carte blanche)
* Build EFI with -fshort-wchar so that L"some string" works with themarcel2002-12-101-1/+1
| | | | EFI has defined CHAR16.
* Remove _putchar, _puts and _puthex. These functions are unused.marcel2002-12-102-202/+4
| | | | Approved by: re (blanket)
* Add the GUID of the DIG64 HCDP table.marcel2002-12-081-0/+3
|
* The boot manager sets the watchdog timer to 5 minutes before invokingmarcel2002-12-082-12/+20
| | | | | | | | | | | | | | | | | | | a boot option. When the timer expires the machine is rebooted. Disable the watchdog timer for 2 reasons: o We're an interactive program. We cannot guarantee that we've booted the kernel in the time available to us. There have been situations where netbooting the right kernel took 2 tries and more time than given. Not to speak of the normal behaviour to have the loader sitting at the prompt while the user is off doing other things (such as figuring out what to type next ;-) o We may not boot a kernel at all. We may exit as the result of the user typing quit (assuming it took less than 5 minutes to type it :-). It is documented that loaders should have disabled the watchdog timer if they return to the boot manager. Not doing so would cause a reboot while in the boot manager. This appears to be harmless, besides of course the actual reboot. Approved by: re (weisse karte)
* In efi_cons_poll we check if a key is present (pending) by checkingmarcel2002-12-081-4/+10
| | | | | | | | | | | | | | | | | | | | | | | | the signaled state of the apropriate event. As a side-effect of checking the event, it's signaled state is cleared if it was set. In efi_cons_getchar we used to wait for the apropriate event to be signaled before reading a character. This however does not work if we poll before reading the characteri, such as during autoboot. On a more compliant EFI implementation this resulted in the behaviour that hitting a key during autoboot would stop the countdown, but would then wait for a new character to arrive instead of reading the already pending key that stopped the countdown. The correct behaviour for efi_cons_getchar is to try to read a key and if none is pending, to wait for the apropriate event to signal the arrival of a new key. Note that with the previous behaviour, the second key would determine how the autoboot was interrupted. This would indicate that the first key got lost. This indicates that EFI does not necessarily maintain a queue of pending keys. FWIW... Approved by: re (carte blanche) French corrected by: various people :-)
* Fix a dumb bug that broke net booting on sparc64. The wrong length wasjake2002-12-021-1/+1
| | | | | | | | passed to strncmp. Noticed by: tmm Approved by: re Pointy hat to: jake
* Remove a left-over virtual mapping of uncached I/O port space.marcel2002-11-284-34/+6
| | | | | | | | | | | | | Previous kernels unwantingly depended on this mapping, but as of version 1.123 of src/sys/ia64/ia64/machdep.c this dependency has been removed. Consequently, one has to update the kernel before updating the loader. The documented/recommended upgrade will suffice in this case. Due to a visible (from the kernels point of view) change in behaviour, bump the loader version number from 0.3 to 1.0. Approved by: re (carte blanc)
* Enable UFS2 support in boot1. Just as with sparc64 the same boot1 worksjhb2002-11-271-1/+0
| | | | | | great with both UFS1 and UFS2 filesystems. Approved by: re
* Create a new 32-bit fs_flags word in the superblock. Add code to movemckusick2002-11-271-1/+1
| | | | | | | | | | | | | | | | | the old 8-bit fs_old_flags to the new location the first time that the filesystem is mounted by a new kernel. One of the unused flags in fs_old_flags is used to indicate that the flags have been moved. Leave the fs_old_flags word intact so that it will work properly if used on an old kernel. Change the fs_sblockloc superblock location field to be in units of bytes instead of in units of filesystem fragments. The old units did not work properly when the fragment size exceeeded the superblock size (8192). Update old fs_sblockloc values at the same time that the flags are moved. Suggested by: BOUWSMA Barry <freebsd-misuser@netscum.dyndns.dk> Sponsored by: DARPA & NAI Labs.
* Eliminate references to defunct kernel tunables.yar2002-11-263-24/+0
| | | | | Approved by: re PR: bin/43343
* MFp4:marcel2002-11-242-10/+48
| | | | | | | | | o Show the contents of the AP wakeup descriptor when dumping SAL information. o Increase S/N ratio when listing the itr and dtr. Only show valid mappings and give the total number of TRs. Approved by: re (blanket)
OpenPOWER on IntegriCloud