267654 |
20-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation
|
266013 |
14-May-2014 |
marius |
MFC: r255977 (partial)
Sweep man pages replacing ad -> ada.
|
263965 |
31-Mar-2014 |
ae |
MFC r263468: When loader(8) inspects MBR, it chooses GPT as main partition table, when MBR contains only PMBR entry or it is bootcamp-compatible. If MBR has PMBR entry and some other, the loader rejects it.
Make these checks to be less strict. If loader decided that PMBR isn't suitable for GPT, it will use MBR.
Reported by: Paul Thornton
|
254366 |
15-Aug-2013 |
ae |
MFC r254092: Make the check for number of entries less strict. Some partitioning tools can create GPT with number of entries less than 128.
|
254146 |
09-Aug-2013 |
dteske |
MFC r242688: Hook in new files menusets.4th and manual.
|
252875 |
06-Jul-2013 |
avg |
MFC r249139: strncmp for boot code: fix an off by one error
|
250043 |
29-Apr-2013 |
ae |
MFC r249719: Since we didn't break the loop, we should set i to -1 to start from the beginning.
Submitted by: Steven Hartland
|
246938 |
18-Feb-2013 |
ae |
MFC r246630: Add bootcamp support to the loader.
|
243243 |
18-Nov-2012 |
ae |
MFC 239054,239057,239058,239060,239066,239067,239068,239070,239073, 239087,239088,239127,239210,239211,239230,239231,239232,239243, 239292,239293,239294,239325,240272,240273,240274,240275,240276, 240277,240335,240481,241023,241047,241053,241065,241068,241069, 241070,241164,241809,241876
239054: Create the interface to work with various partition tables from the loader(8). The following partition tables are supported: BSD label, GPT, MBR, EBR and VTOC8. 239057: Remove unused variables. 239058: Introduce new API to work with disks from the loader's drivers. It uses new API from the part.c to work with partition tables. 239060: When GPT signature is invalid in the primary GPT header, then try to read backup GPT header. 239066: Add offset field to the i386_devdesc structure to be compatible with disk_devdesc structure. Update biosdisk driver to the new disk API. 239067: Remove unneeded flag. 239068: Teach the ZFS use new partitions API when probing. Note: now ZFS does probe only for partitions with type "freebsd-zfs" and "freebsd". 239070: Add simple test program that uses the partition tables handling code. It is useful to test and debug how boot loader handles partition tables metadata. 239073: Bump USERBOOT_VERSION. 239087: Add to the debug output the offset from the parent partitioning scheme. 239088: Fix start offset calculation for the EBR partitions. 239127: As it turned out, there are some installations, where BSD label contains partitions with type zero. And it has worked. So, allow detect these partitions. 239210: Add more debug messages. 239211: Add another debug message. 239230: Unbreak booting from the true dedicated disks. When we open the disk, check the type of partition table, that has been detected. If this is BSD label, then we assume this is DD mode. 239231: Remove colons from the debug message, device name returned by the disk_fmtdev() already has the colons. 239232: Restore the old behaviour. If requested partition is a BSD slice, but d_partition isn't explicitly set, then try to open BSD label and its first partition. 239243: After r239066, reinitialize v86.ctl and v86.addr for int 13 EDD probing in sys/boot/i386/libi386/biosdisk.c. Otherwise, when DISK_DEBUG is enabled, the DEBUG() macros will clobber those fields, and cause the probing to always fail mysteriously when debugging is enabled. 239292: Explicitly terminate the string after strncpy(3). 239293: Rework r239232 to unbreak ZFS detection on MBR slices. 239294: Some BIOSes return incorrect number of sectors, make checks less strictly, to do not lost some partitions. 239325: Add comment why the code has been disabled. 240272: Make struct uboot_devdesc compatible with struct disk_devdesc. 240273: Use disk_fmtdev() and disk_parsedev() functions from the new DISK API. 240274: Update uboot's disk driver to use new DISK API. 240275: Build disk.c only when DISK_SUPPORT is enabled. 240276: Update according to the change of struct uboot_devdesc. 240277: Handle LOADER_NO_DISK_SUPPORT knob in the arm and powerpc ubldr. 240335: Slightly reduce an overhead for the open() call in the zfsloader. libstand(3) tries to detect file system in the predefined order, but zfsloader usually is used for the booting from ZFS, and there is no need to try detect several file system types for each open() call. 240481: The MBR data is not necessarily aligned. This is a problem on ARM. 241023: Make the loader a bit smarter, when it tries to open disk and the slice number is not exactly specified. When the disk has MBR, also try to read BSD label after ptable_getpart() call. When the disk has GPT, also set d_partition to 255. Mostly, this is how it worked before. 241047: Disable splitfs support, since we aren't support floppies for a long time. This slightly reduces an overhead, when loader tries to open file that doesn't exist. 241053: Almost each time when loader opens a file, this leads to calling disk_open(). Very often this is called several times for one file. This leads to reading partition table metadata for each call. To reduce the number of disk I/O we have a simple block cache, but it is very dumb and more than half of I/O operations related to reading metadata, misses this cache.
Introduce new cache layer to resolve this problem. It is independent and doesn't need initialization like bcache, and will work by default for all loaders which use the new DISK API. A successful disk_open() call to each new disk or partition produces new entry in the cache. Even more, when disk was already open, now opening of any nested partitions does not require reading top level partition table. So, if without this cache, partition table metadata was read around 20-50 times during boot, now it reads only once. This affects the booting from GPT and MBR from the UFS. 241065: Fix disk_cleanup() to work without DISK_DEBUG too. 241068: Reduce the number of attempts to detect proper kld format for the amd64 loader. 241069: Remember the file format of the last loaded module and try to use it for next files. 241070: Fix the style. 241164: Replace all references to loader_callbacks_v1 with loader_callbacks. 241809: Add the flags parameter to the disk_open() function and DISK_F_NOCACHE flag, that disables the caching of partition tables metadata. Use this flag for floppies in the libi386/biosdisk driver. 241876: When loader tries to open GPT partition, but partition table is not GPT, then try automatically detect an appropriate partition type.
|
242557 |
04-Nov-2012 |
avg |
MFC r241299: boot/console: handle consoles that fail to probe
|
241260 |
06-Oct-2012 |
avg |
MFC r240342: boot: file_loadraw should strdup name argument
|
241036 |
28-Sep-2012 |
andreast |
MFC r240782:
Implement elfN(reloc) for powerpc. With this change the kernel is now able to resolve dependencies of modules at boot time and load additional modules when needed.
|
240533 |
15-Sep-2012 |
andreast |
MFC: r240249 Fix loading of kernel modules at boot time for powerpc64.
Reported by: Mathias Breuninger
|
240097 |
04-Sep-2012 |
des |
MFH (r239255, r239730): increase maxswzone on i386 and remove it on amd64.
|
239821 |
29-Aug-2012 |
jhb |
MFC 237338: Don't return an error if a kld does not contain any modules (e.g. a kld that only contained a sysctl). The kernel linker allows such modules, so the boot loader should not reject them.
|
237767 |
29-Jun-2012 |
avg |
MFC r235330: zfs boot: try to set vfs.root.mountfrom from currdev as a fallback
|
237766 |
29-Jun-2012 |
avg |
MFC r235329,235343,235361,235364: zfsboot/zfsloader: support accessing filesystems within a pool
|
237752 |
29-Jun-2012 |
avg |
MFC r235153: sys/boot: add common CTASSERT definition
|
237247 |
19-Jun-2012 |
wblock |
MFC r235873, r235967:
Fixes to man8 groff mandoc style, usage mistakes, or typos.
PR: 168016 Submitted by: Nobuyuki Koganemaru Approved by: gjb (mentor)
|
237216 |
18-Jun-2012 |
eadler |
MFC r233648: Remove trailing whitespace per mdoc lint warning
Approved by: cperciva (implicit)
|
235995 |
25-May-2012 |
marius |
MFC: r234789
Add multiple inclusion protection.
PR: 165025 Submitted by: Gavin Mu
|
234693 |
26-Apr-2012 |
ae |
MFC r234692: Read backup GPT header from the last LBA only when primary GPT header and table aren't valid. If they are ok, use hdr_lba_alt value to read backup header. This will make gptboot happy when GPT used atop of some GEOM provider, e.g. GEOM_MIRROR.
|
233468 |
25-Mar-2012 |
marius |
MFC: r233105
Declare some variables static in order to reduce the object size and redo r232822 (MFC'ed to stable/9 in r232962) in a less hackish way. The latter now no longer breaks compiling the x86 boot2 with clang.
|
232962 |
14-Mar-2012 |
marius |
MFC: r232822
Fix a bug introduced in r223938; on big-endian machines coping a 32-bit quantum bytewise to the address of a 64-bit variable results in writing to the "wrong" 32-bit half so adjust the address accordingly. This fix is implemented in a hackish way for two reasons: o in order to be able to get it into 8.3 with zero impact on the little- endian architectures where this bug has no effect and o to avoid blowing the x86 boot2 out of the water again when compiling it with clang, which all sane versions of this fix tested do. This change fixes booting from UFS1 file systems on big-endian machines.
|
230259 |
17-Jan-2012 |
kib |
MFC r229771: Document comconsole_port and comconsole_pcidev loader variables.
|
229492 |
04-Jan-2012 |
pluknet |
MFC r228916: Clean up from the 4.x era.
In an example of boot command: - rename wd(4) IDE disk drives name to ad(4) for the time being. - update the used kernel path "/kernel" to the current default.
Bump .Dd for this and previous changes.
|
229480 |
04-Jan-2012 |
pluknet |
Revert MFC r226833,227056. /stand exists in the MFS root used during a sysinstall-based install.
Reported by: jhb Pointy hat to: pluknet
|
229473 |
04-Jan-2012 |
pluknet |
MFC r226833,r227056:
Remove the long reprecated ``/stand/sysinstall'' from the init_path.
|
227705 |
19-Nov-2011 |
pjd |
MFC r226549,r226550,r226551,r226552,r226553,r226554,r226568,r226569,r226611, r226612:
r226549:
Remove redundant size calculation.
r226550:
Initialize 'rc' properly before using it. This error could lead to infinite loop when data reconstruction was needed.
r226551:
Don't mark vdev as healthy too soon, so we won't try to use invalid vdevs.
r226552:
Never pass NULL block pointer when reading. This is neither expected nor handled by lower layers like vdev_raidz, which uses bp for checksum verification. This bug could lead to NULL pointer reference and resets during boot.
r226553:
Always pass data size for checksum verification function, as using physical block size declared in bp may not always be what we want. For example in case of gang block header physical block size declared in bp is much larger than SPA_GANGBLOCKSIZE (512 bytes) and checksum calculation failed. This bug could lead to accessing unallocated memory and resets/failures during boot.
r226554:
Fix missing return when LOADER_GPT_SUPPORT is defined, but LOADER_MBR_SUPPORT is not.
r226568:
- Correctly read gang header from raidz. - Decompress assembled gang block data if compressed. - Verify checksum of a gang header. - Verify checksum of assembled gang block data. - Verify checksum of uber block.
Submitted by: avg
r226569:
With LOADER_MBR_SUPPORT defined and LOADER_GPT_SUPPORT undefined we would never call disk_openmbr().
Submitted by: avg
r226611:
- Allow to specify multiple files to check, eg.
zfsboottest gpt/system0 gpt/system1 - /boot/kernel/kernel /boot/zfsloader
- Instead of printing file's content calculate MD5 hash of the file, so it can be easly compared to the hash calculated via file system. - Some other minor improvements.
r226612:
Because ZFS boot code was very fragile in the past and real PITA to debug, introduce zfsboottest.sh script that will verify if it will be possible to boot from the given pool.
# zfsboottest.sh system
Where "system" is pool name of the pool we want to boot from.
What is being verified by the script: - Does the pool exist? - Does it have bootfs property configured? - Is mountpoint property of the boot dataset set to 'legacy'?
Dataset configured in bootfs property has to be mounted to perform more checks: - Does the /boot directory in boot dataset exist? - Is this dataset configured as root file system in /etc/fstab or set in vfs.root.mountfrom variable in /boot/loader.conf?
By using zfsboottest tool the script will read all the files in /boot directory using ZFS boot code and calculate their checksums. Then, it will walk /boot directory using find(1) though regular file sytem and also read all the files in /boot directory and calculate their checksums. If any of the files cannot be looked up, read or checksum is invalid it will be reported and booting off of this pool is probably not possible.
Some additional checks may be interesting as well. For example if the disks contain proper pmbr and gptzfsboot code or if all expected files in /boot/ are present.
When upgrading FreeBSD, one should snapshot datasets that contain operating system, upgrade (install new world and kernel) and use zfsboottest.sh to verify if it will be possible to boot from new configuration. If all is good one should upgrade boot blocks, by eg.:
# gpart -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
If something is wrong, one should rollback datasets and report the problems.
Approved by: re (kib)
|
225736 |
23-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
224722 |
08-Aug-2011 |
dim |
Fix buffer overflow in sys/boot/common/util.c's printf(), when printing large (>= 10^10) numbers. In theory, 20 characaters should be enough, but bump the buffer to 32 characters, so we have some room for the future.
Reviewed by: pjd Approved by: re (kib)
|
223938 |
11-Jul-2011 |
marius |
Since r219452 the alignment of __dmadat has changed, revealing that fsread() bogusly casts its contents around causing alignment faults on sparc64 and most likely also on at least powerpc. Fix this by copying the contents bytewise instead as partly already done here. Solving this the right way costs some space, i.e. 148 bytes with GCC and 16 bytes with clang on x86 there are still some bytes left there though, and an acceptable hack which tricks the compiler into only using a 2-byte alignment instead of the native one when accessing the contents turned out to even take up more space that.
|
223712 |
01-Jul-2011 |
marius |
Fix r223695 to compile on architectures which don't use the MBR scheme; wrap the MBR support in the common part of the loader in #ifdef's and enable it only for userboot for now.
|
223695 |
30-Jun-2011 |
dfr |
Add a version of the FreeBSD bootloader which can run in userland, packaged as a shared library. This is intended to be used by BHyVe to load FreeBSD kernels into new virtual machines.
|
223295 |
19-Jun-2011 |
kan |
Minimize backward seeks when trying to load ELF relocatable modules.
Some of loader filesystems are very ill equipped to handle seeking backwards within the file. Namely, tftp requires trasfer to be restarted from the start of the file every time we go backwards.
|
222417 |
28-May-2011 |
julian |
New boot loader menus from Devin Teske. Discussed on hackers and recommended for inclusion into 9.0 at the devsummit. All support email to devin dteske at vicor dot ignoreme dot com .
Submitted by: dteske at vicor dot ignoreme dot com Reviewed by: me and many others
|
221869 |
14-May-2011 |
attilio |
Disconnect sun4v architecture from the three.
Some files keep the SUN4V tags as a code reference, for the future, if any rewamped sun4v support wants to be added again.
Reviewed by: marius Tested by: sbruno Approved by: re
|
221601 |
07-May-2011 |
avg |
a whitespace nit
Reminder from: kib MFC after: 4 days
|
221593 |
07-May-2011 |
avg |
a whitespace nit
MFC after: 4 days
|
220332 |
04-Apr-2011 |
marcel |
Fix a long standing bug where file_load() passes down the global loadaddr to the l_load() method in the file_formats structure, while being passed an address as an argument (dest). With file_load() calling arch_loadaddr() now, this bug is a little bit more significant.
Spotted by: nyan@ (nice catch!)
|
220311 |
03-Apr-2011 |
marcel |
Add 2 new archsw interfaces: 1. arch_loadaddr - used by platform code to adjust the address at which the object gets loaded. Implement PC98 using this new interface instead of using conditional compilation. For ELF objects the ELF header is passed as the data pointer. For raw files it's the filename. Note that ELF objects are first considered as raw files. 2. arch_loadseg - used by platform code to keep track of actual segments, so that (instruction) caches can be flushed or translations can be created. Both the ELF header as well as the program header are passed to allow platform code to treat the kernel proper differently from any additional modules and to have all the relevant details of the loaded segment (e.g. protection).
|
220290 |
03-Apr-2011 |
marcel |
Revert rev 165325. The arch_maphint interface hasn't been in use for more than 4 years.
|
219691 |
16-Mar-2011 |
marcel |
MFaltix: Add support for Pre-Boot Virtual Memory (PBVM) to the loader.
PBVM allows us to link the kernel at a fixed virtual address without having to make any assumptions about the physical memory layout. On the SGI Altix 350 for example, there's no usuable physical memory below 192GB. Also, the PBVM allows us to control better where we're going to physically load the kernel and its modules so that we can make sure we load the kernel in memory that's close to the BSP.
The PBVM is managed by a simple page table. The minimum size of the page table is 4KB (EFI page size) and the maximum is currently set to 1MB. A page in the PBVM is 64KB, as that's the maximum alignment one can specify in a linker script. The bottom line is that PBVM is between 64KB and 8GB in size.
The loader maps the PBVM page table at a fixed virtual address and using a single translations. The PBVM itself is also mapped using a single translation for a maximum of 32MB.
While here, increase the heap in the EFI loader from 512KB to 2MB and set the stage for supporting relocatable modules.
|
219452 |
10-Mar-2011 |
rdivacky |
Some more shrinking.
o bunch of variables are turned into uint8_t
o initial setting of namep[] in lookup() is removed as it's only overwritten a few lines down
o kname is explicitly initialized in main() as BSS in boot2 is not zeroed
o the setting and reading of "fmt" in load() is removed
o buf in printf() is made static to save space
Reviewed by: jhb Tested by: me and Fabian Keil <freebsd-listen fabiankeil de>
|
219083 |
27-Feb-2011 |
pjd |
Rename bcpy() macro to bcopy().
|
218974 |
23-Feb-2011 |
brucec |
Handle memory allocation failures in include().
PR: i386/85652 Submitted by: Ben Thomas <bthomas at virtualiron.com> MFC after: 3 days
|
218716 |
15-Feb-2011 |
dim |
In sys/boot/common/ufsread.c, use uint8_t instead of u_int8_t.
Submitted by: mdf
|
218713 |
15-Feb-2011 |
dim |
Apply a few small optimizations to boot2's code, to make it shrink a little further. This gets us further on the way to be able to build it successfully with clang. Using in-tree gcc, this shrinks boot2.bin with 60 bytes, the in-tree clang shaves off 72 bytes, and ToT clang 84 bytes.
Submitted by: rdivacky Reviewed by: imp
|
217688 |
21-Jan-2011 |
pluknet |
Make MSGBUF_SIZE kernel option a loader tunable kern.msgbufsize.
Submitted by: perryh pluto.rain.com (previous version) Reviewed by: jhb Approved by: kib (mentor) Tested by: universe
|
215811 |
25-Nov-2010 |
emaste |
Give a bit of a hint of the failure (read != expected) but don't make the error message needlessly more verbose.
Discussed with: attilio
|
215758 |
23-Nov-2010 |
attilio |
Make this printfoutput more verbose.
Sponsored by: Sandvine Incorporated Submitted by: Sandvine Incorporated MFC after: 3 days
|
215016 |
08-Nov-2010 |
jhb |
Remove support for autoloading ACPI from the loader. Leave in the code to detect ACPI and export info such as the location of the RSDP via hints as that is still useful.
|
214114 |
20-Oct-2010 |
pjd |
Correct typos.
|
213573 |
08-Oct-2010 |
uqs |
mdoc: drop redundant .Pp and .LP calls
They have no effect when coming in pairs, or before .Bl/.Bd
|
213136 |
24-Sep-2010 |
pjd |
- Split code shared by almost any boot loader into separate files and clean up most layering violations:
sys/boot/i386/common/rbx.h:
RBX_* defines OPT_SET() OPT_CHECK()
sys/boot/common/util.[ch]:
memcpy() memset() memcmp() bcpy() bzero() bcmp() strcmp() strncmp() [new] strcpy() strcat() strchr() strlen() printf()
sys/boot/i386/common/cons.[ch]:
ioctrl putc() xputc() putchar() getc() xgetc() keyhit() [now takes number of seconds as an argument] getstr()
sys/boot/i386/common/drv.[ch]:
struct dsk drvread() drvwrite() [new] drvsize() [new]
sys/boot/common/crc32.[ch] [new]
sys/boot/common/gpt.[ch] [new]
- Teach gptboot and gptzfsboot about new files. I haven't touched the rest, but there is still a lot of code duplication to be removed.
- Implement full GPT support. Currently we just read primary header and partition table and don't care about checksums, etc. After this change we verify checksums of primary header and primary partition table and if there is a problem we fall back to backup header and backup partition table.
- Clean up most messages to use prefix of boot program, so in case of an error we know where the error comes from, eg.:
gptboot: unable to read primary GPT header
- If we can't boot, print boot prompt only once and not every five seconds.
- Honour newly added GPT attributes:
bootme - this is bootable partition bootonce - try to boot from this partition only once bootfailed - we failed to boot from this partition
- Change boot order of gptboot to the following:
1. Try to boot from all the partitions that have both 'bootme' and 'bootonce' attributes one by one. 2. Try to boot from all the partitions that have only 'bootme' attribute one by one. 3. If there are no partitions with 'bootme' attribute, boot from the first UFS partition.
- The 'bootonce' functionality is implemented in the following way:
1. Walk through all the partitions and when 'bootonce' attribute is found without 'bootme' attribute, remove 'bootonce' attribute and set 'bootfailed' attribute. 'bootonce' attribute alone means that we tried to boot from this partition, but boot failed after leaving gptboot and machine was restarted. 2. Find partition with both 'bootme' and 'bootonce' attributes. 3. Remove 'bootme' attribute. 4. Try to execute /boot/loader or /boot/kernel/kernel from that partition. If succeeded we stop here. 5. If execution failed, remove 'bootonce' and set 'bootfailed'. 6. Go to 2.
If whole boot succeeded there is new /etc/rc.d/gptboot script coming that will log all partitions that we failed to boot from (the ones with 'bootfailed' attribute) and will remove this attribute. It will also find partition with 'bootonce' attribute - this is the partition we booted from successfully. The script will log success and remove the attribute.
All the GPT updates we do here goes to both primary and backup GPT if they are valid. We don't touch headers or partition tables when checksum doesn't match.
Reviewed by: arch (Message-ID: <20100917234542.GE1902@garage.freebsd.pl>) Obtained from: Wheel Systems Sp. z o.o. http://www.wheelsystems.com MFC after: 2 weeks
|
211817 |
25-Aug-2010 |
nwhitehorn |
Fix build of ppc32 loader.
|
211747 |
24-Aug-2010 |
rpaulo |
Replace structure assignments with explicity memcpy calls. This allows Clang to compile this file: it was using the builtin memcpy and we want to use the memcpy defined in gptboot.c. (Clang can't compile boot2 yet).
Submitted by: Dimitry Andric <dimitry at andric.com> Reviewed by: jhb
|
211678 |
23-Aug-2010 |
imp |
MF tbemd: Minor tweaks, prefer MACHINE_CPUARCH generally to MACHINE_ARCH (which simplifies some powerpc/powerpc64 ifs)
|
210764 |
02-Aug-2010 |
uqs |
mdoc: make sure to pass at least one argument to quotation macros
|
210423 |
23-Jul-2010 |
avg |
completely ignore zero-sized elf sections in modules of elf object type (amd64)
Current code doesn't check size of elf sections and may perform needless actions of zero-sized memory allocation and similar. The bigger issue is that alignment requirement of a zero-sized section gets effectively applied to the next section if it has smaller alignment requirement. But other tools, like gdb and consequently kgdb, completely ignore zero-sized sections and thus may map symbols to addresses differently.
Zero-sized sections are not typical in general. Their typical (only, even) cause in FreeBSD modules is inline assembly that creates custom sections which is found in pcpu.h and vnet.h. Mere inclusion of one of those header files produces a custom section in elf output. If there is no actual use for the section in a given module, then the section remains empty.
Better solution is to avoid creating zero-sized sections altogether, which is in plans.
Preloaded modules are handled in boot code (load_elf_obj.c), while dynamically loaded modules are handled by kernel (link_elf_obj.c).
Based on code by: np MFC after: 3 weeks
|
209920 |
12-Jul-2010 |
nwhitehorn |
Provide support in loader for booting 64-bit PowerPC kernels. Like amd64, 64-bit PowerPC kernels are loaded by a 32-bit loader, since nearly all powerpc64 firmwares execute in 32-bit mode.
|
207854 |
10-May-2010 |
imp |
Formatting nit
|
201941 |
09-Jan-2010 |
marcel |
Remove file system support based on the simple file system protocol as this only allows us to access file systems that EFI knows about. With a loader that can only use EFI-supported file systems, we're forced to put /boot on the EFI system partition. This is suboptimal in the following ways: 1. With /boot a symlink to /efi/boot, mergemaster complains about the mismatch and there's no quick solution. 2. The EFI loader can only boot a single version of FreeBSD. There's no way to install multiple versions of FreeBSD and select one at the loader prompt. 3. ZFS maintains /boot/zfs/zpool.cache and with /boot a symlink we end up with the file on a MSDOS file system. ZFS does not have proper handling of file systems that are under Giant.
Implement a disk device based on the block I/O protocol instead and pull in file system code from libstand. The disk devices are really the partitions that EFI knows about.
This change is backward compatible.
MFC after: 1 week
|
201932 |
09-Jan-2010 |
marius |
- Add code allowing a network device to only be open and closed once by keeping it opened after the first open and closing it via the cleanup handler when NETIF_OPEN_CLOSE_ONCE is defined in order to avoid the open-close-dance on every file access which with firmware that for example performs an auto-negotiation on every open causes netbooting to take horribly long. Basically the behavior with this knob enabled resembles the one employed between r60506 and r177108 (and for sparc64 also again since r182919) with the addition that the network device now is closed eventually before entering the kernel and before rebooting. Actually I think this should be the desired MI behavior, however the U-Boot loader actually requires net_close() to be called after every transaction in order for some local shutdown operations to be performed (and which I think thus will break on concurrent opens, i.e. when netdev_opens is > 1, like the loader does at least for disks when LOADER_GZIP_SUPPORT is enabled). - Use NETIF_OPEN_CLOSE_ONCE to replace the hack, which artificially increased netdev_opens for sparc64 in order to keep the network device opened forever, as at least some firmware versions require the network device to be closed eventually before entering the kernel or otherwise will DMA received packets to stale memory. The powerpc OFW loader probably wants NETIF_OPEN_CLOSE_ONCE to be set as well for the same reasons.
|
201901 |
09-Jan-2010 |
marius |
Remove clause 3 and 4 from TNF licenses (this was the only 4-clause TNF license FreeBSD had in sys/boot).
Obtained from: NetBSD
|
201340 |
31-Dec-2009 |
nyan |
Don't use 15M-16M area on pc98. It's reserved for some devices.
MFC after: 2 week
|
200945 |
24-Dec-2009 |
marius |
- Consistently wrap debugging in NETIF_DEBUG. This basically merges NetBSD rev 1.19. - Make the functions match their prototypes regarding static.
|
200460 |
13-Dec-2009 |
marcel |
Add support for memory disk (md). The size of the memory disk is determined by MD_IMAGE_SIZE. A file system can be embedded into the loader with /sys/tools/embed_mfs.sh. Note that md.c is not included when MD_IMAGE_SIZE is not set.
|
199210 |
12-Nov-2009 |
attilio |
Introduce a new option (BOOT_PROMPT_123) that lets enter the boot prompt only when typing the sequence "123" (opposite to the standard 'push any button' approach). That results useful when using serial lines sending garbage and leading to unwilling boot prompt appearence.
Obtained from: Sandvine Incorporated Reviewed by: emaste, jhb Sponsored by: Sandvine Incorporated MFC: 1 week
|
198537 |
28-Oct-2009 |
brueffer |
Close a file descriptor leak in an error case.
PR: 138374 Submitted by: Patroklos Argyroudis <argp@census-labs.com> MFC after: 1 week
|
193192 |
01-Jun-2009 |
rodrigc |
sys/boot/common.c ================= Extend the loader to parse the root file system mount options in /etc/fstab, and set a new loader variable vfs.root.mountfrom.options with these options. The root mount options must be a comma-delimited string, as specified in /etc/fstab. Only set the vfs.root.mountfrom.options variable if it has not been set in the environment.
sys/kern/vfs_mount.c ==================== When mounting the root file system, pass the mount options specified in vfs.root.mountfrom.options, but filter out "rw" and "noro", since the initial mount of the root file system must be done as "ro". While we are here, try to add a few hints to the mountroot prompt to give users and idea what might of gone wrong during mounting of the root file system.
Reviewed by: jhb (an earlier patch)
|
192972 |
28-May-2009 |
dfr |
Some of the boot loader code only works on a ufs file system, but it uses the generic struct dirent, which happens to look identical to UFS's struct direct. If BSD ever changes dirent then this will be a problem.
Submitted by: matthew dot fleming at isilon dot com
|
188666 |
16-Feb-2009 |
thompsa |
Add a helper function for loading geli keys from the loader.
|
187197 |
13-Jan-2009 |
luigi |
remove a file which is, as far as I can tell, totally unused.
|
185692 |
06-Dec-2008 |
danger |
- correct variable name
PR: docs/129448 Submitted by: Kenyon Ralph <kralph@gmail.com> MFC after: Revision 1.91 is merged
|
185132 |
20-Nov-2008 |
luigi |
As reported in kern/118222, pxeboot in RELENG7 (and presumably above) exhibits some misbehaviours on machines with AMD64 CPUs, which at least in some cases I have tracked down to a heap overflow.
It is unclear whether it depends on the CPU or on the pxe bios itself which may use more memory on AMD machines.
Noticeably a pxeboot compiled from 6.x sources works fine on all machines I have tried so far, while a pxeboot compiled from 7.x sources does not.
This patch is a first step in reducing the amount of memory used while processing the configuration files read by the loader at boot (some of them are quite large, 1700+ lines), and it does so by: + moving a buffer to static memory instead of allocating in the heap; + skipping empty lines; + reducing the amount of memory used for line descriptors;
Unfortunately there are several changes between 6.x and above, affecting the compiler, the loader code itself, and libstand, and it is not so straightforward to These changes fix the behaviour on one motherboard with a single-core AMD cpu, but are still not enough e.g on an Asus M2N-VM (with a dual-core CPU).
I need to investigate the problem a bit more before figuring out what should be committed to RELENG_7
PR: kern/118222
|
185029 |
17-Nov-2008 |
pjd |
Update ZFS from version 6 to 13 and bring some FreeBSD-specific changes.
This bring huge amount of changes, I'll enumerate only user-visible changes:
- Delegated Administration
Allows regular users to perform ZFS operations, like file system creation, snapshot creation, etc.
- L2ARC
Level 2 cache for ZFS - allows to use additional disks for cache. Huge performance improvements mostly for random read of mostly static content.
- slog
Allow to use additional disks for ZFS Intent Log to speed up operations like fsync(2).
- vfs.zfs.super_owner
Allows regular users to perform privileged operations on files stored on ZFS file systems owned by him. Very careful with this one.
- chflags(2)
Not all the flags are supported. This still needs work.
- ZFSBoot
Support to boot off of ZFS pool. Not finished, AFAIK.
Submitted by: dfr
- Snapshot properties
- New failure modes
Before if write requested failed, system paniced. Now one can select from one of three failure modes: - panic - panic on write error - wait - wait for disk to reappear - continue - serve read requests if possible, block write requests
- Refquota, refreservation properties
Just quota and reservation properties, but don't count space consumed by children file systems, clones and snapshots.
- Sparse volumes
ZVOLs that don't reserve space in the pool.
- External attributes
Compatible with extattr(2).
- NFSv4-ACLs
Not sure about the status, might not be complete yet.
Submitted by: trasz
- Creation-time properties
- Regression tests for zpool(8) command.
Obtained from: OpenSolaris
|
183878 |
14-Oct-2008 |
raj |
Initial support of loader(8) for ARM machines running U-Boot.
This uses the common U-Boot support lib (sys/boot/uboot, already used on FreeBSD/powerpc), and assumes the underlying firmware has the modern API for stand-alone apps enabled in the config (CONFIG_API).
Only netbooting is supported at the moment.
Obtained from: Marvell, Semihalf
|
182919 |
10-Sep-2008 |
marius |
Revert r177108 and restore r60506 for sparc64 as long as libstand isn't fixed to only open the network device once and not do a open and close dance on every file access; the firmwares of newer sparc64 machines perform an auto-negotiation with every open which in turn causes netbooting to take horribly long if we open and close the device over and over again.
|
182731 |
03-Sep-2008 |
raj |
Show info about net devices in loader's 'lsdev' command. While there fix style.
|
181278 |
04-Aug-2008 |
cperciva |
Setting a variable to the same value twice doesn't actually make it more likely to have the right value. Remove superfluous assignments.
Found by: LLVM/Clang Static Checker
|
180208 |
03-Jul-2008 |
peter |
Set magic fbsd:nokeywords property that allows files to bypass keyword expansion. (file-specific replacement for CVSROOT/exclude)
|
179634 |
07-Jun-2008 |
kib |
Fix the incorrect calculation of a block address within a single indirect block.
PR: 108215 Submitted by: Yuichiro Goto, y7goto gmail com MFC after: 2 weeks
|
177108 |
12-Mar-2008 |
raj |
Eliminate artificial increasing of 'netdev_opens' counter in loader's net_open().
This was introduced as a workaround long time ago for some Alpha firmware (which is now gone), and actually prevented net_close() to ever be called.
Certain firmwares (U-Boot) need local shutdown operations to be performed on a network controller upon transaction end: such platform-specific hooks are supposed to be called via netif_close() (from within net_close()).
This change effectively reverts the following CVS commit:
sys/boot/common/dev_net.c
revision 1.7 date: 2000/05/13 15:40:46; author: dfr; state: Exp; lines: +2 -1 Only probe network settings on the first open of the network device. The alpha firmware takes a seriously long time to open the network device the first time.
Also suppress excessive output while netbooting via loader, unless debugging.
While there, make sys/boot/uboot more style(9) compliant.
Reviewed by: imp Approved by: cognet (mentor)
|
176484 |
23-Feb-2008 |
marcel |
Add __elfN(relocation_offset). It holds the offset between the virtual (link) address and the physical (load) address. Ideally, the mapping between link and load addresses should be abstracted by the copyin(), copyout() and readin() functions, so that we don't have to add kluges in __elfN(loadimage)(). Then, we could also have paged virtual memory for the kernel. This can be important under EFI, where you need to allocate physical memory form the firmware if you want to work in all scenarios.
|
173440 |
08-Nov-2007 |
ru |
Document the per-arch default value of kern.maxbcache.
|
173040 |
26-Oct-2007 |
jhb |
Use the smaller cgbase() macro in ufsread.c if UFS_SMALL_CGBASE is defined. This lets each boot program choose which version of cgbase() it wants to use rather than forcing ufsread.c to have that knowledge.
MFC after: 1 week Discussed with: imp
|
173024 |
26-Oct-2007 |
imp |
The arm boot code uses this function as well. Redefining cgbase() saves about 500 bytes in the boot code. While the AT91RM9200 has 12k of space for the boot loader, which is more than i386's 8k, the code generated by gcc is a bit bigger.
I've had this in p4 for about two years now.
|
172940 |
24-Oct-2007 |
jhb |
First cut at support for booting a GPT labeled disk via the BIOS bootstrap on i386 and amd64 machines. The overall process is that /boot/pmbr lives in the PMBR (similar to /boot/mbr for MBR disks) and is responsible for locating and loading /boot/gptboot. /boot/gptboot is similar to /boot/boot except that it groks GPT rather than MBR + bsdlabel. Unlike /boot/boot, /boot/gptboot lives in its own dedicated GPT partition with a new "FreeBSD boot" type. This partition does not have a fixed size in that /boot/pmbr will load the entire partition into the lower 640k. However, it is limited in that it can only be 545k. That's still a lot better than the current 7.5k limit for boot2 on MBR. gptboot mostly acts just like boot2 in that it reads /boot.config and loads up /boot/loader. Some more details: - Include uuid_equal() and uuid_is_nil() in libstand. - Add a new 'boot' command to gpt(8) which makes a GPT disk bootable using /boot/pmbr and /boot/gptboot. Note that the disk must have some free space for the boot partition. - This required exposing the backend of the 'add' function as a gpt_add_part() function to the rest of gpt(8). 'boot' uses this to create a boot partition if needed. - Don't cripple cgbase() in the UFS boot code for /boot/gptboot so that it can handle a filesystem > 1.5 TB. - /boot/gptboot has a simple loader (gptldr) that doesn't do any I/O unlike boot1 since /boot/pmbr loads all of gptboot up front. The C portion of gptboot (gptboot.c) has been repocopied from boot2.c. The primary changes are to parse the GPT to find a root filesystem and to use 64-bit disk addresses. Currently gptboot assumes that the first UFS partition on the disk is the / filesystem, but this algorithm will likely be improved in the future. - Teach the biosdisk driver in /boot/loader to understand GPT tables. GPT partitions are identified as 'disk0pX:' (e.g. disk0p2:) which is similar to the /dev names the kernel uses (e.g. /dev/ad0p2). - Add a new "freebsd-boot" alias to g_part() for the new boot UUID.
MFC after: 1 month Discussed with: marcel (some things might still change, but am committing what I have so far)
|
172445 |
04-Oct-2007 |
obrien |
Also boot *.debug if everything else fails.
Approved by: re(gnn)
|
169399 |
09-May-2007 |
sepotvin |
Add documentation for the vm.kmem_size_min and vm.kmem_size_max tunables.
Approved by: njl (mentor, blanket)
|
169286 |
05-May-2007 |
jmg |
fixup talk of kern.maxswzone... It's been 32MB for almost 5 years now... and only supports just over 7GB of swap...
Sound a bit more professional..
Inspired by: Marc G. Fournier MFC After: 3 days
|
166486 |
04-Feb-2007 |
imp |
Document the init_chroot and init_script variables.
# I didn't check the markup too closely, so doc people, please check
Submitted by: Oliver Fromme
|
165876 |
07-Jan-2007 |
marius |
Garbage collect the code for auto-loading modules based on ISAPNP IDs, which is #if'ed out since nearly eight years, along with its outdated database.
Agreed by: ru (some months ago)
|
165325 |
18-Dec-2006 |
kmacy |
add an interface for passing the entire kernel size up front to the loader so that it can memory can be allocated aligned at the beginning of the desired large page
|
164739 |
29-Nov-2006 |
yar |
Note that not all architectures use sendfile(2) buffers; refer to the respective manpage for details.
MFC after: 3 days
|
163917 |
02-Nov-2006 |
ru |
Unbreak compile with ELF_VERBOSE defined, and fix format warnings.
|
163914 |
02-Nov-2006 |
ru |
Revert the last change. Masking only 2 MSBs of the virtual address to get the physical address doesn't work for all values of KVA_PAGES, while masking 8 MSBs works for all values of KVA_PAGES that are multiple of 4 for non-PAE and 8 for PAE. (This leaves us limited with 12MB for non-PAE kernels and 14MB for PAE kernels.)
To get things right, we'd need to subtract the KERNBASE from the virtual address (but KERNBASE is not easy to figure out from here), or have physical addresses set properly in the ELF headers.
Discussed with: jhb
|
163897 |
02-Nov-2006 |
marcel |
Extend struct devdesc with a unit field, called d_unit. Promote the device (kind) specific unit field to the common field. This change allows a future version of libefi to work without requiring anything more than what is defined in struct devdesc and as such makes it possible to compile said version of libefi for different platforms without requiring that those platforms have identical derivatives of struct devdesc.
|
163893 |
02-Nov-2006 |
marcel |
Don't unconditionally compile-in the bcache code. It's only used on i386/amd64 and pc98. Remove useless calls to bcache_init() from the ia64 and sparc64 loaders, as well as from the OFW common code.
|
163891 |
02-Nov-2006 |
marcel |
o Make sure to clear f->f_devdata if d_dev->dv_open() fails. It would otherwise cause devclose() to free() the memory again. o Refactor devopen() so that it's more readable.
|
163765 |
29-Oct-2006 |
ru |
Because the BTX mini-kernel now uses flat memory mode and clients are no longer limited to a virtual address space of 16 megabytes, only mask high two bits of a virtual address. This allows to load larger kernels (up to 1 gigabyte). Not masking addresses at all was a bad idea on machines with less than >3G of memory -- kernels are linked at 0xc0xxxxxx, and that would attempt to load a kernel at above 3G. By masking only two highest bits we stay within the safe limits while still allowing to boot larger kernels.
(This is a safer reimplmentation of sys/boot/i386/boot2/boot.2.c rev. 1.71.)
Prodded by: jhb Tested by: nyan (pc98)
|
163327 |
13-Oct-2006 |
ru |
Replace a rarely used "depuration" with "debugging".
PR: docs/85127 Submitted by: Gary W. Swearingen (partially) MFC after: 3 days
|
162815 |
29-Sep-2006 |
ru |
Fix WARNS=2 warnings.
|
162742 |
28-Sep-2006 |
jhb |
Ignore a sub-topic match if it is inside the command description. Otherwise, merge-help can get confused by a command description that includes a word that starts with a capital S.
MFC after: 1 week
|
161471 |
20-Aug-2006 |
ru |
Make the default "init_path" value breakable, so it fits on the screen's width, thus eliminating a groff(1) warning.
Suggested by: marck
|
161431 |
18-Aug-2006 |
marck |
kern.ipc.nmbclusters is sysctl, not compile-time option. Change Dv to Va.
Touch .Dd.
Pointed out by: ru MFC after: 1 week
|
161429 |
18-Aug-2006 |
marck |
Remove references to NMBCLUSTERS which is obsoleted.
PR: 100427 Approved by: maxim MFC after: 1 week
|
158467 |
12-May-2006 |
jhb |
Remove more Alpha bits from the boot code including fixing several stale comments.
|
154257 |
12-Jan-2006 |
marius |
In moduledir_readhints() cast the value returned by sizeof() to ssize_t when checking whether it's greater than a struct stat st_size in order to also catch the case when st_size is -1. Previously this check didn't trigger on sparc64 when st_size is -1 (as it's the case for a file on a bzipfs, TFTP server etc.), causing the content of the linker hints file to be copied to memory referenced by a null-pointer.
PR: 91231 MFC after: 1 week
|
153504 |
18-Dec-2005 |
marcel |
Make our ELF64 type definitions match standards. In particular this means: o Remove Elf64_Quarter, o Redefine Elf64_Half to be 16-bit, o Redefine Elf64_Word to be 32-bit, o Add Elf64_Xword and Elf64_Sxword for 64-bit entities, o Use Elf_Size in MI code to abstract the difference between Elf32_Word and Elf64_Word. o Add Elf_Ssize as the signed counterpart of Elf_Size.
MFC after: 2 weeks
|
150469 |
22-Sep-2005 |
ru |
Add loader(8) variables for RB_DFLTROOT, RB_MUTE, and RB_PAUSE: "boot_dfltroot", "boot_mute", and "boot_pause" respectively.
|
149213 |
18-Aug-2005 |
iedowse |
Add a "comconsole_speed" loader variable that can be used to change the serial console speed (i386 and amd64 only). If the previous stage boot loader requested a serial console (RB_SERIAL or RB_MULTIPLE) then the default speed is determined from the current serial port speed. Otherwise it is set to 9600 or the value of BOOT_COMCONSOLE_SPEED at compile time.
This makes it possible to set the serial port speed once in /boot.config and the setting will propagate to boot2, loader and the kernel serial console.
|
148516 |
29-Jul-2005 |
brian |
Fix a comparison that broke ``set console=vidconsole'' and even the loader.conf line ``console="vidconsole"''.
Sponsored by: ActiveState/Sophos MFC after: 1 week
|
148398 |
25-Jul-2005 |
jmg |
remove a pointless comment with a more helpful one...
Submitted by: Tobias Roth MFC after: 5 days
|
147366 |
14-Jun-2005 |
ru |
Improved markup, fixes some spelling and grammar.
Approved by: re (blanket)
|
146804 |
30-May-2005 |
ru |
Markup nits.
|
146698 |
27-May-2005 |
jhb |
- Add support to the loader for multiple consoles. - Teach the i386 and pc98 loaders to honor multiple console requests from their respective boot2 binaries so that the same console(s) are used in both boot2 and the loader. - Since the kernel doesn't support multiple consoles, whichever console is listed first is treated as the "primary" console and is passed to the kernel in the boot_howto flags.
PR: kern/66425 Submitted by: Gavin Atkinson gavin at ury dot york dot ac dot uk MFC after: 1 week
|
146421 |
19-May-2005 |
sobomax |
Extend `autoboot_delay' handling - is this variable is set to -1 don't allow user to interrupt autoboot process at all. Currently, even when `autoboot_delay' is set to 0, loader(8) still allows autoboot process to be interrupted by pressing any key on the console when the loader reads kernel and modules from the disk. In some cases (i.e. untrusted environment) such behaviour is highly indesirable and user should not be allowed to interfere with the autoboot process at all.
Sponsored by: PBXpress Inc. MFC after: 3 days
|
146365 |
19-May-2005 |
sobomax |
Whitespace only: kill trailing spaces.
|
142012 |
17-Feb-2005 |
des |
Document the new default init_path.
Reminded by: ru MFC after: 2 weeks
|
141060 |
30-Jan-2005 |
rwatson |
Insert an explicit McAfee license, as we use a stock two-clause BSD license rather than the slightly custom licence in ufsread.c.
|
138249 |
01-Dec-2004 |
scottl |
Remove the last vestiges of the userconfig option. None of this actually did anything, so this commit should be considered a NO-OP.
|
137667 |
13-Nov-2004 |
ru |
There's no reason for "read" and "echo" commands to not appear in the online command list.
|
137615 |
12-Nov-2004 |
ru |
Pass the "?" command output through the pager.
(This doesn't quite work as this command is overridden by Forth, and some Forth commands are appended to the output.)
|
136895 |
24-Oct-2004 |
ru |
Collapse several adjacent .if's into .if/.elif.
|
136893 |
24-Oct-2004 |
nyan |
ELF64 support is not needed on pc98.
|
136549 |
15-Oct-2004 |
imp |
document host_start_mem.
# feel free to wordsmith.
Suggested by: ru@
|
136548 |
15-Oct-2004 |
ru |
Polish the last change.
|
136525 |
15-Oct-2004 |
imp |
Document hw.{pci,acpi}.host_start_mem
Requested by: ru@
|
136144 |
05-Oct-2004 |
pjd |
Back out changes which were introduced to delay mounting root file system. Those changes were made on gmirror needs, but now gmirror handles this by itself.
|
136097 |
03-Oct-2004 |
stefanf |
Use the correct printf specifier.
PR: 47187
|
135999 |
01-Oct-2004 |
ru |
The "autoboot" command also has a third (optional) parameter.
|
135996 |
30-Sep-2004 |
ru |
Don't give instructions on how to disable ACPI in the MI section. For novice users, beastie.4th can just do it. Expert users can read ACPI instructions by typing "help ACPI".
|
135980 |
30-Sep-2004 |
ru |
Retire now useless userconfig_script_*.
|
135975 |
30-Sep-2004 |
ru |
The value of $interpret is "OK", in uppercase.
|
135974 |
30-Sep-2004 |
ru |
Fixed the default value of the $prompt variable, document what happens if $prompt is unset.
|
135973 |
30-Sep-2004 |
ru |
Setting dump device from loader(8) has not been supported since 2002.
|
135970 |
30-Sep-2004 |
ru |
The default value of "bootfile" has been "kernel" since 2000.
|
135969 |
30-Sep-2004 |
ru |
Mention "help index" in the online help, and provide a help for the `?' command.
|
135967 |
30-Sep-2004 |
ru |
Document boot_cdrom, boot_multicons, and boot_serial. Reduce diffs between help.common and loader(8). Mention that boot_userconfig is currently a no-op.
|
135965 |
30-Sep-2004 |
ru |
`?' is not the same as "help index".
|
135929 |
29-Sep-2004 |
ru |
Fixed exiting from pager using the `q' key while paging "help index" or "help <topic>" with list of subtopics.
|
135729 |
24-Sep-2004 |
pjd |
Document vfs.root.mountdelay value.
Reminded by: ru
|
134459 |
29-Aug-2004 |
iedowse |
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.
|
134458 |
28-Aug-2004 |
iedowse |
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.
|
134441 |
28-Aug-2004 |
iedowse |
Add a few helper functions for zeroing kernel space and reading from specified file offsets. Make use of these in load_elf.c.
|
134151 |
22-Aug-2004 |
maxim |
Trim EOL white spaces.
|
134150 |
22-Aug-2004 |
maxim |
Check a return code from read(2) correctly.
PR: kern/70815 Submitted by: info [at] haakh.de
|
133948 |
18-Aug-2004 |
maxim |
Bump the manpage date.
Noticed by: ru
|
133947 |
18-Aug-2004 |
maxim |
Retire hw.pci.allow_unsupported_io_range.
PR: bin/70533 Submitted by: Gavin Atkinson
|
133217 |
06-Aug-2004 |
jmg |
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)
|
132854 |
29-Jul-2004 |
ceri |
Correct a documentation bug.
Approved by: jhb
|
131840 |
08-Jul-2004 |
brian |
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
|
131814 |
08-Jul-2004 |
brian |
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.
|
131754 |
07-Jul-2004 |
ru |
mdoc(7) fixes.
|
131575 |
04-Jul-2004 |
stefanf |
Consistently use __inline instead of __inline__ as the former is an empty macro in <sys/cdefs.h> for compilers without support for inline.
|
131489 |
02-Jul-2004 |
ru |
Fixed what appeared to be a hard sentence break.
|
131393 |
01-Jul-2004 |
ps |
When building a kernel or the loader, let the hostname be overridden
|
129310 |
16-May-2004 |
ru |
Markup fixes.
|
128019 |
07-Apr-2004 |
imp |
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
|
127789 |
03-Apr-2004 |
le |
mdoc fix: put the end-of-list macro after the last list element.
Approved by: grog (mentor)
|
126837 |
11-Mar-2004 |
bde |
Fixed a misspelling of 0 as NULL.
|
125561 |
07-Feb-2004 |
ru |
Style: use the defined() expression explicitly.
|
125091 |
27-Jan-2004 |
des |
Rename the kern.vm.kmem.size tunable to the more logical vm.kmem_size. To assure backward compatibility (conditional on !BURN_BRIDGES), look it up by its old name first, and log a warning (but accept the setting) if it was found. If both the old and new name are defined, the new name takes precedence.
Also export vm.kmem_size as a read-only sysctl variable; I find it hard to tune a parameter when I don't know its default value, especially when that default value is computed at boot time.
|
121973 |
03-Nov-2003 |
iedowse |
Override the root server address if an IP address is specified in the root path. This is reported to make non-PXE netbooting, such as is used on sparc64 systems, work correctly when the TFTP server is not the same as the root server.
PR: kern/57328 Submitted by: Per Kristian Hove <Per.Hove@math.ntnu.no>
|
119483 |
25-Aug-2003 |
obrien |
Use __FBSDID(). Also some minor style cleanups.
|
117044 |
29-Jun-2003 |
brueffer |
Capitalize an occurrence of 'ficl' for consistency.
Submitted by: Andre Guibert de Bruet <andy@siliconlandmark.com> MFC after: 3 days
|
116864 |
26-Jun-2003 |
peter |
Build on amd64. Yes, I know this isn't particularly nice.
|
115113 |
17-May-2003 |
ru |
Fixed the markup and wording of the kern.ipc.nsfbufs tunable. (It does not modify NSFBUFS, but just overrides it if set.)
Approved by: re (blanket)
|
114937 |
12-May-2003 |
peter |
Fix lookup of module metadata on amd64 systems. While this is in common code, the non-trivial part is #ifdef'ed and only executes when loading amd64 kernels. The rest is trivial but needed for the the amd64 case. (Two variables changed from char ** to Elf_Addr).
Approved by: re (amd64 "low-risk" stuff)
|
114707 |
05-May-2003 |
obrien |
Since we insist on loading the POS ACPI by default, give the poor user instructions on the main help screen for disabling it.
|
114654 |
04-May-2003 |
murray |
Fix a bunch of typos and grammatical errors.
PR: docs/40234 Submitted by: Chris Pepper <pepper@rockefeller.edu> (mostly) MFC After: 3 days
|
114379 |
01-May-2003 |
peter |
Enable the i386 loader to load and run an amd64 kernel. If this puts things over floppy size limits, I can exclude it for release builds or something like that. Most of the changes are to get the load_elf.c file into a seperate elf32_ or elf64_ namespace so that you can have two ELF loaders present at once. Note that for 64 bit kernels, it actually starts up the kernel already in 64 bit mode with paging enabled. This is really easy because we have a known minimum feature set.
Of note is that for amd64, we have to pass in the bios int 15 0xe821 memory map because once in long mode, you absolutely cannot make VM86 calls. amd64 does not use 'struct bootinfo' at all. It is a pure loader metadata startup, just like sparc64 and powerpc. Much of the infrastructure to support this was adapted from sparc64.
|
113161 |
06-Apr-2003 |
peter |
Zap some a.out leftovers
|
113083 |
04-Apr-2003 |
phk |
Libdisk does not need to include <sys/diskslice.h> any more.
Move the remaining bits of <sys/diskslice.h> to <i386/include/bootinfo.h>
Move i386/pc98 specific bits from <sys/reboot.h> to <i386/include/bootinfo.h> as well.
Adjust includes in sys/boot accordingly.
|
111957 |
07-Mar-2003 |
trhodes |
Fix a few spelling errors.
Submitted by: Stefan Farfeleder <stefan@fafoe.dyndns.org> via -doc.
|
111890 |
04-Mar-2003 |
seanc |
Document the tunable kern.ipc.nsfbufs in help.common and loader.8. Small nearby grammar fixup that saves a line of display while in the loader (help set tunables), but reuses the line for kern.ipc.nsfbufs.
Approved by: roam
|
111852 |
03-Mar-2003 |
ru |
FreeBSD 5.0 has stopped shipping /modules 2.5 years ago. Catch up with this further by excluding /modules from the (default) kern.module_path.
|
111456 |
25-Feb-2003 |
obrien |
Only apply rev 1.10 (which hacks around the i386 boot2 being too big for both ufs1 and ufs2 support) on i386.
|
111410 |
24-Feb-2003 |
mckusick |
Revert to old (broken for over 1.5Tb filesystems) version of cgbase so that boot loader once again will fit.
Sponsored by: DARPA & NAI Labs.
|
110554 |
08-Feb-2003 |
trhodes |
s/hw.pci_allow_unsupported_io_range/hw.pci.allow_unsupported_io_range/
The former was incorrect and gave an `unknown oid' error.
|
109616 |
21-Jan-2003 |
jake |
Fix module dependency (pre)loading on sparc64 by relocating the variables read from the raw kld files.
Submitted by: Hartmut Brandt <brandt@fokus.gmd.de> PR: 46870 Tested on: alpha (obrien), i386, sparc64
|
109281 |
15-Jan-2003 |
mdodd |
Minimally document hw.syscons.sc_no_suspend_vtswitch.
Requested by: Nate Lawson <nate@root.org>
|
107877 |
14-Dec-2002 |
phk |
Restructure so we can compile UFS1_ONLY, UFS2_ONLY or UFS1_AND_UFS2 versions from the same basic function.
|
107788 |
12-Dec-2002 |
ru |
Uniformly refer to a file system as "file system".
Approved by: re
|
107294 |
27-Nov-2002 |
mckusick |
Create a new 32-bit fs_flags word in the superblock. Add code to move 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.
|
107266 |
26-Nov-2002 |
yar |
Eliminate references to defunct kernel tunables.
Approved by: re PR: bin/43343
|
106845 |
13-Nov-2002 |
mdodd |
Document loader tunables hw.pci.enable_io_modes and hw.pci.allow_unsupported_io_range.
Submitted by: Hiten Pandya <hiten@angelica.unixdaemons.com> Approved by: re (murray)
|
106842 |
13-Nov-2002 |
mdodd |
Loader tunable 'machdep.disable_mtrrs'. Sysctl of same name to reflect status.
Submitted by: jhb Approved by: re (murray) MFC after: 1 day
|
104678 |
08-Oct-2002 |
phk |
It seems that the only problem with UFS2 booting on i386 is the 64bit divide/remainder calls. For reasons not resolved, compiling the relevant routines from libkern into boot2 results in stack corruption.
Do the simple thing: Don't use 64bit divide/remainder operations.
Sponsored by: DARPA & NAI Labs
|
104612 |
07-Oct-2002 |
phk |
Move the definition of UFS1_ONLY into the Makefiles where it belongs.
Sponsored by: DARPA & NAI Labs.
|
102612 |
30-Aug-2002 |
iwasaki |
s/hint.acpi.0.disable/hint.acpi.0.disabled/
Fix device hints entry for disabling acpi(4). This also should fix the arbitration with apm(4) when both drivers are enabled.
Note that your /boot/device.hints needs to be updated if you want to stop auto-loading acpi.ko or disable acpi(4).
|
102588 |
29-Aug-2002 |
peter |
Actually remove the stale a.out kld support. This is the stuff that was never updated for the metadata infrastructure.
|
102556 |
29-Aug-2002 |
peter |
Initiate deorbit burn of i386 a.out kld "support" in loader. Note that this was quite broken, it never was updated for metadata support. The a.out kld file support was never really used, as it wasn't necessary. You could always load elf kld's, even in an a.out kernel.
|
101823 |
13-Aug-2002 |
ru |
mdoc(7) police: revert unapproved changes in rev. 1.43, added missing markup bits in rev. 1.45.
|
101558 |
09-Aug-2002 |
obrien |
Restore autoloading of ACPI module.
Document the approved ways of disabling it. Submitted by: Daniel O'Connor <doconnor@gsoft.com.au>
|
101112 |
31-Jul-2002 |
jake |
Stash various networking paramters in the environment for the kernel to pick up, ala pxe.
|
100016 |
15-Jul-2002 |
keramida |
Use present tense in all the verbs, when describing loader's startup. Most of them are not in a future tense already.
|
99974 |
14-Jul-2002 |
charnier |
The .Nm
|
99546 |
07-Jul-2002 |
mp |
Change help documentation for bootfile and module_path to reflect the actual code. Both use a ";" (not a ",") to delimit entries.
PR: 39679 Submitted by: Cyrille Lefevre <cyrille.lefevre@laposte.net> MFC after: 3 days
|
98593 |
21-Jun-2002 |
jake |
Enable UFS1_AND_UFS2 support for sparc64 by default. Booting from ufs1 or ufs2 filesystems seems to work fine.
|
98542 |
21-Jun-2002 |
mckusick |
This commit adds basic support for the UFS2 filesystem. The UFS2 filesystem expands the inode to 256 bytes to make space for 64-bit block pointers. It also adds a file-creation time field, an ability to use jumbo blocks per inode to allow extent like pointer density, and space for extended attributes (up to twice the filesystem block size worth of attributes, e.g., on a 16K filesystem, there is space for 32K of attributes). UFS2 fully supports and runs existing UFS1 filesystems. New filesystems built using newfs can be built in either UFS1 or UFS2 format using the -O option. In this commit UFS1 is the default format, so if you want to build UFS2 format filesystems, you must specify -O 2. This default will be changed to UFS2 when UFS2 proves itself to be stable. In this commit the boot code for reading UFS2 filesystems is not compiled (see /sys/boot/common/ufsread.c) as there is insufficient space in the boot block. Once the size of the boot block is increased, this code can be defined.
Things to note: the definition of SBSIZE has changed to SBLOCKSIZE. The header file <ufs/ufs/dinode.h> must be included before <ufs/ffs/fs.h> so as to get the definitions of ufs2_daddr_t and ufs_lbn_t.
Still TODO: Verify that the first level bootstraps work for all the architectures. Convert the utility ffsinfo to understand UFS2 and test growfs. Add support for the extended attribute storage. Update soft updates to ensure integrity of extended attribute storage. Switch the current extended attribute interfaces to use the extended attribute storage. Add the extent like functionality (framework is there, but is currently never used).
Sponsored by: DARPA & NAI Labs. Reviewed by: Poul-Henning Kamp <phk@freebsd.org>
|
97864 |
05-Jun-2002 |
phk |
Make sparc64 share ufsread.c with i386.
Sponsored by: DARPA & NAI Labs.
|
97861 |
05-Jun-2002 |
phk |
Indent this file more like style(9).
Sponsored by: DARPA & NAI Labs.
|
97860 |
05-Jun-2002 |
phk |
Preparation for UFS2 commit:
Factor the ufs reading code out of the i386/boot2 loader so it can be reused by for instance sparc64.
Sponsored by: DARPA and NAI Labs.
|
97525 |
29-May-2002 |
schweikh |
Fix a handful of typos and grammar bogons. No content changes. Translators can ignore this commit.
MFC after: 2 weeks
|
96310 |
10-May-2002 |
obrien |
We don't need bootinfo any more, and sparc64 doesn't have it anyways.
|
94419 |
11-Apr-2002 |
peter |
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.
|
94313 |
09-Apr-2002 |
dcs |
Upgrade FICL to 3.02. Forgot this one, sorry.
PR: 36308 Submitted by: dcs
|
94248 |
09-Apr-2002 |
jake |
Fix another unsigned long used to index the symbol table which should be Elf_Hashelt.
|
93922 |
06-Apr-2002 |
peter |
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.
|
93306 |
28-Mar-2002 |
obrien |
Not all platforms have and want a.out format support.
|
92766 |
20-Mar-2002 |
alfred |
Remove __P.
|
92339 |
15-Mar-2002 |
ru |
mdoc(7) police: fix a typo and markup.
|
92030 |
10-Mar-2002 |
sobomax |
CG superfluous prototype.
|
91219 |
25-Feb-2002 |
bde |
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.
|
91218 |
25-Feb-2002 |
bde |
Removed mounds of unused variables.
|
91008 |
21-Feb-2002 |
davidc |
Document the hw.physmem kernel environment variable.
Reviewed by: alfred
|
89699 |
23-Jan-2002 |
sobomax |
CG hard sentence breaks.
Submitted by: ru
|
89601 |
21-Jan-2002 |
sobomax |
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
|
87855 |
14-Dec-2001 |
ru |
mdoc(7) police: remove hard sentence break which I didn't submit to Jonathan Mini.
|
87636 |
11-Dec-2001 |
jhb |
- 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.
|
87634 |
11-Dec-2001 |
jhb |
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.
|
87599 |
10-Dec-2001 |
obrien |
Update to C99, s/__FUNCTION__/__func__/, also don't use ANSI string concatenation.
|
87505 |
07-Dec-2001 |
rwatson |
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.
|
87344 |
04-Dec-2001 |
des |
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
|
87261 |
03-Dec-2001 |
murray |
Fix typo.
PR: 32455 Submitted by: "Gary W. Swearingen" <swear@blarg.net>
|
87058 |
28-Nov-2001 |
dcs |
Waits for a keypress before rebooting on panic.
PR: kern/32351 Submitted by: Jonathan Mini <mini@haikugeek.com> MFC after: 1 week
|
86608 |
19-Nov-2001 |
obrien |
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.
|
86469 |
16-Nov-2001 |
iedowse |
Fix a number of misspellings of "dependency" and "dependencies" in comments and function names.
PR: kern/8589 Submitted by: Rajesh Vaidheeswarran <rv@fore.com>
|
86168 |
07-Nov-2001 |
fenner |
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>
|
86090 |
05-Nov-2001 |
jhb |
Add a DEVT_CD type for CD drivers.
|
85997 |
04-Nov-2001 |
jhb |
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?
|
85935 |
03-Nov-2001 |
obrien |
Revert rev 1.3 which moved us away from POSIX character classes. The community feels our base AWK must handle them.
|
85808 |
01-Nov-2001 |
obrien |
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>
|
84337 |
01-Oct-2001 |
silby |
grammar fix: to -> too
|
83321 |
11-Sep-2001 |
peter |
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
|
81955 |
20-Aug-2001 |
ru |
mdoc(7) police: markup nits.
|
81933 |
20-Aug-2001 |
dillon |
Limit the amount of KVM reserved for the buffer cache and for swap-meta information. The default limits only effect machines with > 1GB of ram and can be overriden with two new kernel conf variables VM_SWZONE_SIZE_MAX and VM_BCACHE_SIZE_MAX, or with loader variables kern.maxswzone and kern.maxbcache. This has the effect of leaving more KVM available for sizing NMBCLUSTERS and 'maxusers' and should avoid tripups where a sysad adds memory to a machine and then sees the kernel panic on boot due to running out of KVM.
Also change the default swap-meta auto-sizing calculation to allocate half of what it was previously allocating. The prior defaults were way too high. Note that we cannot afford to run out of swap-meta structures so we still stay somewhat conservative here.
|
81462 |
10-Aug-2001 |
ru |
mdoc(7) police: join split punctuation to macro calls.
|
79757 |
15-Jul-2001 |
dd |
Remove whitespace at EOL.
|
78696 |
24-Jun-2001 |
dwmalone |
Get rid of some constness warnings.
|
78465 |
19-Jun-2001 |
peter |
Convert the elf loader to the new linker set layout for elf files. This should make dependencies at load time work like before. Oops.
Noticed by: markm
|
78463 |
19-Jun-2001 |
peter |
Fix some of the worst formatting bug (seperate commit)
|
78195 |
14-Jun-2001 |
peter |
Nuke old gensetdefs based linker sets with extreme prejudice
|
77971 |
10-Jun-2001 |
jesper |
Fix a minor style bug in the last commit.
Submitted by: Adrian Steinmann <ast@marabu.ch> MFC after: 2 days
|
77285 |
27-May-2001 |
jesper |
In sys/boot/common/module.c, near line 105 a request for a raw file is processed by passing its name in argv[1]: return(mod_loadobj(typestr, argv[1])); however, it is not tested to see if argv[1] actually is defined.
At best, mod_loadobj() near line 244 returns an error like "can't find 'garbage'" but if the "filename" entered is sufficiently long, some buffer gets overrun. Of course, "load -t filename" is actually a typo because we meant to type "load -t mfs_root filename"; nevertheless, a hung machine seems like too harsh a punishment for such a small typo...
PR: i386/27693 Submitted by: Adrian Steinmann <ast@marabu.ch> MFC after: 1 week
|
74850 |
27-Mar-2001 |
ru |
MAN[1-9] -> MAN.
|
73349 |
02-Mar-2001 |
ru |
setlocale(3) has been fixed to match POSIX standard: LC_ALL takes precedence over other LC_* envariables.
|
73233 |
28-Feb-2001 |
ru |
Eliminate mdocNG warnings caused by misplaced or extraneous macro calls.
|
72879 |
22-Feb-2001 |
dcs |
Whenever the user might be offered a chance to quit through pager_output(), respect that choice.
PR: 15747
|
71895 |
01-Feb-2001 |
ru |
mdoc(7) police: split punctuation characters + misc fixes.
|
70519 |
30-Dec-2000 |
phk |
Use <sys/queue.h> macro API.
Submitted by: "Jason" <jsmethers@pdq.net> Reviewed by: /sbin/md5
|
70405 |
27-Dec-2000 |
ru |
Prepare for mdoc(7)NG.
|
70020 |
14-Dec-2000 |
ru |
mdoc(7) police: removed duplicate .Os call.
|
69027 |
22-Nov-2000 |
ru |
mdoc(7) police: do not split author names in the AUTHORS section.
|
68961 |
20-Nov-2000 |
ru |
mdoc(7) police: use the new features of the Nm macro.
|
68851 |
17-Nov-2000 |
msmith |
The default kernel filename is "kernel" again, not "kernel.ko".
Submitted by: mckusick
|
68716 |
14-Nov-2000 |
ru |
Use Fx macro wherever possible.
|
68548 |
10-Nov-2000 |
benno |
OpenFirmware/PowerPC loader, part 2.
As of this patchset, the loader builds (under NetBSD/macppc), boots, interacts and talks to BOOTP/NFS servers.
(main.c was moved from boot/ofw/libofw to boot/ofw/common but has no revision history)
Reviewed by: obrien
|
68547 |
10-Nov-2000 |
benno |
Give the network device a print method.
Reviewed by: obrien
|
67591 |
25-Oct-2000 |
dfr |
Don't indirect through a null pointer if we run out of kernel filenames.
|
65940 |
16-Sep-2000 |
dcs |
The default search path for kernel and modules was bogus. It makes no sense for /boot/kernel to come last.
|
65881 |
15-Sep-2000 |
dcs |
Start countdown only _after_ the kernel was loaded. Not very fair otherwise.
|
65683 |
10-Sep-2000 |
dcs |
Change NOFORTH comment character from # to \ followed by space, to make things more interchangeable between it and the FORTH case.
Perhaps requiring the space is a bit too much, but...
Nothing in the tree seems to produce loader.rc files with comment line, at this time.
|
65622 |
08-Sep-2000 |
dcs |
Update boot and boot-conf descriptions to reflect new and old changes. Add a warning in loader(8) that boot might be changed by loader.4th.
|
65614 |
08-Sep-2000 |
dcs |
Make the pnp structure a global variable, so it can be used elsewhere.
|
65613 |
08-Sep-2000 |
dcs |
Fix autoboot. Now autoboot *always* show the correct kernel name. It gets the name from the environment variable kernelname, which is set when a kernel is loaded. For this reason, autoboot will _first_ try to load a kernel, and only proceed with the wait prompt after that succeeds. If it fails, it will abort immediately.
While I understand some may think this behavior undesirable, I think it is, overall, the best thing to do, even if we do not consider the aesthetic issue. Notice that anyone using the default loader.rc already has the kernel loaded before autoboot.
On unload, unset kernelname.
Separate the code that tries to load a kernel from the list of options to the function loadakernel(). It is used by both boot() and autoboot().
|
65549 |
06-Sep-2000 |
obrien |
With the committed changes to the loaders modules path code, the kernel path does not need to be hard coded.
|
65502 |
05-Sep-2000 |
obrien |
Fix the kernel default load from "/boot/modules" to "/boot/kernel".
Reported by: dcs
|
65501 |
05-Sep-2000 |
obrien |
The kernel is now known as `kernel.ko' and it and its matching modules live in ``/boot/kernel/''.
|
65042 |
24-Aug-2000 |
sheldonh |
List loader.conf and friends in the FILES section.
Requested by: obrien
|
64532 |
11-Aug-2000 |
dcs |
Add missing "is".
PR: 20524 Submitted by: Peter Pentchev <roam@orbitel.bg>
|
64527 |
11-Aug-2000 |
ps |
Add support to send the string 'PXEClient' as the Vendor class identifier to the DHCP server. Now you can check for this string in your dhcp configuration to decide whether you will hand out a lease to the client or not.
|
64220 |
04-Aug-2000 |
jhb |
Bring back the perform() function. However, conditionionalize it on BOOT_FORTH as it is only used if BOOT_FORTH is not defined.
|
64188 |
03-Aug-2000 |
jhb |
Fix the more obvious warnings to deal with my earlier warning cleanups.
|
64187 |
03-Aug-2000 |
jhb |
Cleanup warnings. Most of these are signed/unsigned warnings, as well as some added const's.
|
62874 |
10-Jul-2000 |
kris |
Don't call printf with no format string.
|
62873 |
10-Jul-2000 |
kris |
Don't call printf with no format string. This is technically a security vulnerability and could in principle be used to upload a new kernel from the bootloader :-)
|
62049 |
25-Jun-2000 |
mph |
Typo fix: tunnable. Backslash-parsing is not the role of printf(3), but is provided by the C language.
|
61943 |
22-Jun-2000 |
sheldonh |
Whitespace-only changes: apply accepted line breaking style as a pre-cursor to other markup changes.
Accepted in principle by the author.
|
61720 |
16-Jun-2000 |
dcs |
Fix vocabulary juggling so that builtins voc is always searched before forth vocabulary when initially creating the builtins. FICL 2.05 has a better way to do this, but this works for now.
Fixes "?".
|
61693 |
14-Jun-2000 |
dcs |
Remove the setting of sourceid from bf_vm(), as bf_vm() really has no clue.
Set sourceid to 0 when booting, which is the correct setting for stdin.
Set sourceid to an arbitrary fd when include'ing, preserving and restoring the previous sourceid. This is possibly broken(), as 0 is a valid fd. Maybe we should +1 to this value.
This fixes the version problem widely reported.
|
61659 |
14-Jun-2000 |
ps |
Delay calling the device cleanup routines until the absolute last moment. We were cleaning up after PXE too early and the module dependancy code would not be able to load any files if it needed too.
|
61653 |
14-Jun-2000 |
ps |
Make typing 'q' or 'Q' work for the show command as the pager prompt says it should.
|
61371 |
07-Jun-2000 |
dcs |
Place original builtins in a vocabulary called "builtins". This is intended mainly for debuging purposes, but it can be used by other words if done carefully.
|
61353 |
07-Jun-2000 |
dcs |
Remove residual printf.
Prodded by: msmith
|
60938 |
26-May-2000 |
jake |
Back out the previous change to the queue(3) interface. It was not discussed and should probably not happen.
Requested by: msmith and others
|
60833 |
23-May-2000 |
jake |
Change the way that the queue(3) structures are declared; don't assume that the type argument to *_HEAD and *_ENTRY is a struct.
Suggested by: phk Reviewed by: phk Approved by: mdodd
|
60820 |
23-May-2000 |
dcs |
Document abial's .#.
|
60710 |
19-May-2000 |
dcs |
One of loaders' bugs disappeared somewhere along the way.
|
60704 |
19-May-2000 |
dcs |
Move man page directives to common/Makefile.inc.
|
60684 |
18-May-2000 |
dcs |
Make corrections to allow for Alpha.
|
60506 |
13-May-2000 |
dfr |
Only probe network settings on the first open of the network device. The alpha firmware takes a seriously long time to open the network device the first time.
|
60490 |
13-May-2000 |
obrien |
The loader was written so that if /kernel was missing /kernel.old would be booted. Due to a bug, this wasn't happening.
There is still a lesser bug in that the loader decides which file to boot after the 10sec count down. This means the bootfile listed in the count down in is wrong in the case where the loader will boot /kernel.old.
|
60432 |
12-May-2000 |
bp |
long != int on Alphas.
|
60006 |
04-May-2000 |
dcs |
Make documentation on recently added heap? command reflect reality.
|
60005 |
04-May-2000 |
dcs |
Add "heap?" to loader's man page.
|
60003 |
04-May-2000 |
dcs |
Further improve ordering.
|
60002 |
04-May-2000 |
dcs |
Sort entries in FreeBSD-specific FICL commands.
|
59874 |
01-May-2000 |
peter |
Add $FreeBSD$
|
59857 |
01-May-2000 |
peter |
GC unused variable (size)
|
59856 |
01-May-2000 |
peter |
Fix some warnings on the Alpha. sizeof() returns different things on x86 and Alpha. Sigh.
|
59854 |
01-May-2000 |
bp |
Update loader logic to distinguish modules vs. files. Add support for module metadata. The old way of dependancy handling will be supported for a while.
Reviewed by: peter
|
59767 |
29-Apr-2000 |
jlemon |
Teach the loader about the ext2fs filesystem, extended partitions, and the new readdir function.
|
59408 |
20-Apr-2000 |
ps |
Add a cleanup function. This is needed for PXE where you should shutdown the UNDI and unload the stack.
|
59294 |
16-Apr-2000 |
msmith |
Some more i386-only BIOS-friendliness:
- Add support for using the PCI BIOS functions for configuration space accesses, and make this the default.
- Make PNPBIOS the default (obsoletes the PNPBIOS config option).
- Add two new boot-time tunables to disable each of the above.
|
58080 |
15-Mar-2000 |
dcs |
bcache_strategy() now receives an unit number, and keep track of what was the last unit number received. If it changes, it flushes the cache. Add bcache_flash().
The actual fix is sligthly different from the one in the PR.
PR: 17098 Submitted by: John Hood <jhood@sitaranetworks.com>
|
57468 |
25-Feb-2000 |
bp |
Fix the loader to handle module dependencies properly. More fixes will be provided after modmetadata appears in the kernel.
Reviewed by: msmith Approved by: jkh
|
57269 |
17-Feb-2000 |
msmith |
Close a file descriptor leak in the code which loads file objects.
Submitted by: Paul Saab <paul@mu.org> Approved by: jkh
|
55206 |
29-Dec-1999 |
peter |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
55173 |
28-Dec-1999 |
msmith |
Correctly handle a user-requested abort in the middle of displaying a help subtopic.
PR: kern/13196 Submitted by: MIHIRA Sanpei Yoshiro <sanpei@sanpei.org>
|
54695 |
16-Dec-1999 |
marcel |
Don't build gensetdefs when we can use /usr/bin/gensetdefs. The latter also creates setdef{0|1}.c so there's no need to have those in the repository. Using /usr/bin/gensetdefs has no consequences for the output.
|
54264 |
07-Dec-1999 |
msmith |
Update to reflect use of : not ; as separator in paths passed to the kernel.
|
53993 |
01-Dec-1999 |
dcs |
Add fairings. Do not depend on user actually supplying the arguments he is supposed to supply.
|
53786 |
27-Nov-1999 |
dcs |
Make the prompt look like on OpenBoot.
|
52748 |
01-Nov-1999 |
dcs |
Changes the default prompt to "ok".
Mike says the whole idea of a current device was a bad idea in first place, and will be doing away with currdev.
Anyway, people are not supposed to even notice this. :-)
|
51786 |
29-Sep-1999 |
dcs |
Bring in ficl version 2.03. No version bump for loader.
|
50737 |
01-Sep-1999 |
dfr |
* Fix a stack of warnings. * Make it possible to type a filename to boot1 so that it is possible to recover from fatally broken versions of /boot/loader. * Make a start at a CD boot program (not yet functional).
|
50477 |
28-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
49191 |
28-Jul-1999 |
nik |
Fix some typos.
PR: docs/11955 Submitted by: Christian Weisgerber <naddy@mips.rhein-neckar.de>
|
48952 |
21-Jul-1999 |
msmith |
Walk around the end of all the silly guessing of device types and unit numbers that we have been doing in the past, and read /etc/fstab off the proposed root filesystem to determine the actual device name and vfs type for the root filesystem. These are then exported to the kernel via the environment variable vfs.root.mountfrom.
|
48829 |
15-Jul-1999 |
n_hibma |
The boot countdown timer says it will boot in 1 seconds, which is grammatically incorrect.
PR: 12628 Submitted-By: R. Matthew Emerson <rme@nightfly.apk.net>
|
48477 |
02-Jul-1999 |
msmith |
Document the hw.physmem tunable. (There should be arch-specific tunable help sections.)
|
48351 |
29-Jun-1999 |
peter |
Reconcile all the loader newvers.sh's into one common one.
|
48243 |
26-Jun-1999 |
peter |
ABS_SET() and BSS_SET() are no longer used. The sole remaining user of TEXT_SET() is DDB's command tables.
|
48135 |
23-Jun-1999 |
ru |
-mdoc fix.
|
47609 |
30-May-1999 |
dfr |
Typo: "can't boot 'boot'" should be "can't boot 'kernel'"
|
47576 |
28-May-1999 |
brian |
Always output a linefeed when we've decided whether to boot or display a loader prompt; either we've said "Booting [%s]..." or we've received a non-line-feed character and need a '\n' anyway.
|
47395 |
22-May-1999 |
rnordier |
Fix a reference to the mysterious Mike Smisth.
|
47011 |
11-May-1999 |
jb |
Found the needle in the haystack!
Use colons instead of semi-colons in the default init_path to behave like UNIX instead of DOS.
Suggested by: bde Reminded by: des (with no hint as to *which* man page).
|
46356 |
03-May-1999 |
dfr |
Changes to support diskless booting on the alpha: * Make the network code in the bootstrap more chatty (helps debugging) * Add nfs root stuff to cpu_rootconf(). I also added a check to make sure it really was netbooting which allows the use of the same kernel for local and network boots. * Tweak the de driver so that it takes the speed setting from the console for the alpha (some PWSs have broken de chipsets). This is the same behaviour as NetBSD/alpha.
Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
|
46354 |
03-May-1999 |
jkoshy |
Correct typos.
PR: docs/11445 Submitted by: Kazuo Horikawa <horikawa@jp.freebsd.org>
|
46074 |
25-Apr-1999 |
dcs |
Make man page reflect reality on parsing rules. Now I know Jordan never read this man page... :-)
|
45881 |
20-Apr-1999 |
des |
Make the location of init(8) tunable at boot time.
|
45867 |
20-Apr-1999 |
joerg |
Don't clobber the "prompt" variable if it has already been set (e. g. from within loader.conf).
Reviewed by: dcs
|
45720 |
16-Apr-1999 |
peter |
Bring the 'new-bus' to the i386. This extensively changes the way the i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA.
(Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.)
This is a checkpoint of work-in-progress, but is quite functional.
The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman.
Approved by: core
|
44780 |
15-Mar-1999 |
dcs |
The man page, version 0.1.
|
44750 |
14-Mar-1999 |
msmith |
Fix syntax for boot command
Noticed by: Ruslan Ermilov <ru@ucb.crimea.ua>
|
44571 |
08-Mar-1999 |
dcs |
Increase ficl's dictionary size, in preparation for the newer loader.rc.
|
44570 |
08-Mar-1999 |
dcs |
Fix a number of memory leaks and other memory-related disorders.
Also, unbreak the breakage introduced at the last revision of module.c. This changes the semantics of mod_searchfile() (and mod_searchmodule()) to make the caller's responsibility freeing the buffer returned. This is different from other functions in loader's code, and was done as a fix for kern/9631. If someone wants to revert this to the original behavior, don't forget to fix kern/9631 in another way.
This should also fix bin/10462, which was introduced as a result of the first try at kern/9631 (module.c last revision).
PR: bin/10462 Submitted by: Takanori Saneto <sanewo@ba2.so-net.ne.jp>
|
44427 |
02-Mar-1999 |
dcs |
Don't treat empty lines as end-of-file in include(). (I can't believe this bug is still here... :-( )
|
44210 |
22-Feb-1999 |
dcs |
Fix assorted memory leak/buffer reuse problems.
Not restricted to, but including:
PR: kern/9631 Submitted by: Bill Fenner <fenner@parc.xerox.com>
|
44069 |
15-Feb-1999 |
tegge |
Enable load of i386 ELF kernels with larger KVA range (e.g. starting at 0xe0100000u or 0xc0100000u instead of the usual 0xf0100000u).
|
43738 |
07-Feb-1999 |
dcs |
Remove strange-looking quotes. This part of the code is #if'ed out, and the variable doesn't even exist (though it is referenced elsewhere). Just make sure it produces error messages when Mike get back to it.
PR: kern/9934 Submitted by: Adrian Filipi-Martin
|
43614 |
04-Feb-1999 |
dcs |
Make use of prototypes to silence warnings.
Change include() so it will be able to load files with forth code, instead of just builtins. Remove #@- from the include section of the help file, since they don't work in the new version of include, unless BOOT_FORTH is not defined.
Change bf_run() so it will return the result returned by ficlExec(). Also, make bf_run() push "interpret" to be executed by ficlExec(), since ficlExec() doesn't do it by itself. (Things worked previously because nothing recursed through ficlExec() by the way of bf_run()).
Change/extend comments on builtin behavior.
Search for "interpret" at the end of bf_init(), so /boot/boot.4th can provide it's own version.
Remove dead code.
|
43600 |
04-Feb-1999 |
dcs |
Silence a warning. PR: bin/9754
|
43563 |
03-Feb-1999 |
msmith |
Mention the net.inet.tcp.tcbhashsize tunable.
|
43561 |
03-Feb-1999 |
kato |
PC98 version of new boot loader. Because boot2 has not yet ported, files in boot2 directory are copies from legacy biosboot.
Submitted by: IMAI Takeshi <take-i@ceres.dti.ne.jp>
|
43491 |
01-Feb-1999 |
jkh |
Whoops! Forgot to include Mr. Sobray's more command in the last set of commits.
Submitted by: Daniel C. Sobral <dcs@newsguy.com>
|
43368 |
29-Jan-1999 |
msmith |
Document the machdep.pccard.pcic_irq tunable, which allows the user to tune the interrupt which will be given to the PCIC. If the value supplied is illegal or not available, interrupts will be turned off and polled mode used instead.
|
43321 |
28-Jan-1999 |
jkh |
Make builtin's state-aware in loader.
Submitted by: Daniel C. Sobral PR: 9663
|
43189 |
25-Jan-1999 |
rnordier |
Correctly record the end of the a.out symbol table. In practice, a bootinfo structure where bi_esymtab < bi_symtab was being passed to the kernel. In the case of older 2.x kernels, this was causing garbage to be printed to the video console, followed by an exception.
This should resolve a problem reported on -current by Peter Jeremy <peter.jeremy@auss2.alcatel.com.au>.
|
43077 |
22-Jan-1999 |
msmith |
bootstrap.h help.common interp.c Rename the 'source' command to 'include' in order to avoid conflict with the ANS Forth command of the same name. (kern/9473)
interp_forth.c: Changes from kern/9412 (EXCEPTION word), kern/9442 (TIB buffer sizing) and an improved version of kern/9460 (set version numbers).
load_aout.c: Trim some obsolete #if 0'ed cruft.
pnp.c: Tidy the pnpscan output, turn off the module scanning until we sort out how to do it right.
PR: kern/9412 kern/9442 kern/9460 kern/9473 Submitted by: PRs from Daniel Sobral <dcs@newsguy.com>
|
43072 |
22-Jan-1999 |
rnordier |
Fix extraneous free() on error.
|
43016 |
21-Jan-1999 |
msmith |
Add 'set tunables' help, list the kernel tunable values that can currently be overridden.
|
42807 |
18-Jan-1999 |
msmith |
Transition from using Perl to using awk for our text-manipulation needs. This removes the dependancy on Perl for the generation of the loader, allowing the world to be built on a perl-free system.
Submitted by: Joe Abley <jabley@clear.co.nz>
|
42713 |
16-Jan-1999 |
jdp |
Replace duplicated "old" linker set definitions with an include of <sys/linker_set.h>. Note, this isn't used on the i386.
|
42682 |
15-Jan-1999 |
abial |
Fall back to /boot/boot.conf, if /boot/loader.rc was not fount. This is to cover the transition period.
Suggested by: msmith
|
42636 |
13-Jan-1999 |
abial |
Change /boot/boot.conf to /boot/loader.rc - this name reflects what it really is.
Agreed upon by: jkh, msmith and many others
|
42620 |
13-Jan-1999 |
msmith |
Typo in patch application.
PR: kern/9459 Submitted by: "Daniel C. Sobral" <dcs@newsguy.com>
|
42512 |
11-Jan-1999 |
msmith |
No builtin command resets getopt before using it, causing problems in case a wrong option was given previously, and no option is given to the next command.
PR: kern/9371 Submitted by: "Daniel C. Sobral" <dcs@newsguy.com>
|
42465 |
10-Jan-1999 |
msmith |
Enable escapes for $ to make it possible to insert variable names into other variable values.
|
42418 |
09-Jan-1999 |
msmith |
Add a description for 'lsdev' so that it shows up in the '?' display
|
42290 |
04-Jan-1999 |
peter |
Fix variable initialization.. It was written with '==' instead of '-'. #include <string.h> for string prototypes.
|
42289 |
04-Jan-1999 |
peter |
Clean some unused variables lint
|
42288 |
04-Jan-1999 |
peter |
Don't forget a trailing \n when loading a kernel that has been stripped. (This might make ELF_VERBOSE look funny, but I'm tempted to delete that anyway)
|
42000 |
22-Dec-1998 |
abial |
* Begin integration of built-ins with Forth: leave the exit code from a built-in command on Forth stack. * Fix a bug which was causing a panic when loading stripped aout kernels.
Reviewed by: jkh
|
41861 |
16-Dec-1998 |
n_hibma |
Removed dynamic loading of FileHandle
|
41822 |
15-Dec-1998 |
msmith |
Reformat help to improve subtopic display appearance, other minor cleaning. The 'help' command in the loader should now be usable and hopefully informative.
|
41821 |
15-Dec-1998 |
msmith |
Build the composite help file from the generic and architecture-specific help files, sorting topics and subtopics to allow maximum flexibility.
|
41259 |
20-Nov-1998 |
archie |
Fix misallocation of buffer bug (too short)
|
41254 |
19-Nov-1998 |
paul |
This fixes a bug in the bcache code whereby false cache hits occur the first time block 0 is read. This fix initialises the block numbers to -1 which isn't the most correct thing for a daddr_t but it isn't likely to cause a problem in the boot blocks and it could do with a more thought out fix later.
The bug is probably benign on the i386 but on the alpha it can cause initial file opens to fail. This is the cause of the "can't open /boot/boot.conf" errors.
It appears on the alpha because of a number of combining factors. On the alpha the LABELSECTOR is 0 so block 0 needs to be read in from the media. The first time this happens you get a false hit because the bc_blkno field is zero initially. Also, the timestamp check against this cache hit succeeds because on the alpha a hacked getsecs() function can return 0 when it starts counting so that the zero initial timestamp + BCACHE_TIMEOUT is greater than the current time until getsecs() has counted passed BCACHE_TIMEOUT.
The overall effect is that the first open() that occurs gets a false cache hit and returns garbage to the bd_strategy() function which then fails the open() call. This false hit then stays in the cache until BCACHE_TIMEOUT getsecs() ticks have passed; all open() calls during this time fail.
This explains why you can generally access the media by the time you get to interp() and start issuing commands but the earlier attempts to run the boot scripts are failing.
It's possible that this is causing the problem switching to the mfsroot floppy as well but I haven't confirmed that.
|
41140 |
13-Nov-1998 |
msmith |
Add documentation for $rootdev.
|
40988 |
07-Nov-1998 |
jkh |
Eliminate much code cruft by extending simple file I/O API to include fopen and fclose. Also look for /boot/boot.4th now and, if found, load its contents.
|
40984 |
07-Nov-1998 |
jkh |
Don't have debugging on by default - it makes testing annoying. :)
|
40950 |
06-Nov-1998 |
msmith |
Ack. Create parseable command tail properly, and eat args out of the TIB.
|
40948 |
06-Nov-1998 |
msmith |
Don't use the poxy vmGetString interface (who uses counted strings these days?), get the input buffer ourselves. Add some debugging code.
|
40929 |
05-Nov-1998 |
jkh |
Remember a bit more of my forth and do:
o Add fexists word to check for the presence of a file o make fexists and fload immediate words which DTRT both interpreted and compiled (doh!) o add an init word which gets run at bootstrapping time to do extra post-coldload initialization (in the default implementation, we look for /boot/boot.4th and load it if found).
|
40882 |
04-Nov-1998 |
msmith |
Use a smaller default dictionary to waste less space.
|
40875 |
04-Nov-1998 |
msmith |
Add BootForth hooks; if BOOT_FORTH is defined, pass every line read to the Forth interpreter. Instantiate all of our inbuilt commands as Forth words, and handle them being called from there.
Add my copyright to the bcache module (oops).
|
40835 |
02-Nov-1998 |
msmith |
Ok, the entry aging algorithm sucked; 1s time resolution is not enough for LRU. Use a 31-bit counter instead. If we decide to do heavy I/O through the bootloader this will have to be revisited.
|
40834 |
02-Nov-1998 |
msmith |
Implement a simple LRU block cache. By default this is initialised to 16k, and will bypass transfers for more than 8k. Blocks are invalidated after 2 seconds, so removable media should not confuse the cache.
The 8k threshold is a compromise; all UFS transfers performed by libstand are 8k or less, so large file reads thrash the cache. However many filesystem metadata operations are also performed using 8k blocks, so using a lower threshold gives poor performance.
Those of you with an eye for cache algorithms are welcome to tell me how badly this one sucks; you can start with the 'bcachestats' command which will print the contents of the cache and access statistics.
|
40832 |
02-Nov-1998 |
msmith |
Standardise on ';' as a component separator; it seems to be a little more common than ','.
|
40793 |
31-Oct-1998 |
dfr |
* Extend the memory available for the heap from 256k to 512k. * Embed the stack into the bss section for loader and netboot. This is required for netboot since otherwise the stack would be inside our heap. * Install loader and netboot in /boot by default. * Fix getbootfile so that it searches for a ',' instead of a ';' when terminating the filename.
|
40775 |
31-Oct-1998 |
msmith |
- Add a new command 'lsdev' to list devices which might be likely to host filesystems. - New 'help' command and data in the help.* files (not yet installed), provides topic and subtopic help, indexes, etc. - Don't crash if the user tries to set an invalid console. Be helpful instead. - Expand tabs (badly) on the i386 video console. - Some minor cosmetic changes.
|
40597 |
22-Oct-1998 |
msmith |
Export an interface for presetting the ISA PnP read port address. Make the EISA ID formatter generally available
|
40553 |
21-Oct-1998 |
msmith |
Make ISA PnP work. This successfully enumerates as many ISA devices as I can fit into my test machine.
- Move to using STAILQs rather than ad-hoc singly-linked lists. - Use a mostly procedural interface to the PnP information. This improves data-hiding.
Implement a new linker-set technique (currently on i386 only but should work on Alpha as well). This is a good candidate for replacing the current gensetdefs cruft completely.
|
40465 |
17-Oct-1998 |
peter |
Load the first page of the file and use the headers in it. This should avoid the need to seek back to offset zero which is causing trouble on the Alpha with a gzipped kernel.
|
40429 |
16-Oct-1998 |
peter |
"fix" the gzipped kernel load problem by having the loader check that it can seek back to the first PT_LOAD and doing a close/reopen if it cannot. This is because the first PT_LOAD section includes the ELF headers. This fixes gzipped kernels on the i386, it should solve mike's problem for the Alpha.
|
40414 |
15-Oct-1998 |
dfr |
Change some printfs so that ELF_VERBOSE prints meaningful values on the alpha.
|
40327 |
14-Oct-1998 |
peter |
Tweak the output one more time again. The kernel or module pathname is useful, and usually fits all on one line with the load sizes.
|
40291 |
13-Oct-1998 |
peter |
Make the ELF load messages cleaner.
|
40254 |
12-Oct-1998 |
peter |
Only print kernel entry point during load. Drastically quieten down the verbose load progress messages. They were more useful for debugging than anything, but are beyond a joke when loading a few dozen modules. Simplify the ELF extended symbol table load format. Just take the main symbol table and the string table that corresponds. This is what we will be getting local symbols from. (needed for the alpha stack tracebacks). Use the (optional) full symbol tables in lookups. This means we have to furhter distinguish between symbols that can come from the dynamic linking table and the complete table. The alpha boot code now needs to be adapted as ddb/db_elf.c cannot use the simpler format. I have not implemented loading the extended symbol tables from the syscall interface yet, just for preloaded modules. I am not sure about the symbol resolution. I *think* it's possible that a local symbol can be found in preference to a global, depending on the search sequence and dependency tree.
|
40253 |
12-Oct-1998 |
peter |
Only print filename and entry address for the kernel itself. The rest have a meaningless entry as they are relocatable.
|
40215 |
11-Oct-1998 |
peter |
Fix a warning
|
40214 |
11-Oct-1998 |
peter |
Probe all consoles, not just the first. It doesn't make a lot of difference, but might later on when we implement some sort of multi-head console mode. Select a console after probing them all. Don't strdup a potentially NULL return from getenv(). If we don't select an active console, choose the first regardless. Call the console init function, at startup time and on a manual change. The env_setenv() function needs EV_VOLATILE because it's pointing to data that isn't malloc'ed and will cause a fault if it's freed later.
|
40213 |
11-Oct-1998 |
peter |
Cosmetic: After the autoboot timeout, print a \n.
|
40143 |
09-Oct-1998 |
peter |
Implement preloading for elf modules - get dependency info from PT_DYNAMIC's DT_NEEDED tags. - store MODINFOMD_DYNAMIC for the kernel's later use setenv kernelname when we have it Fix firstaddr/lastaddr calculation (duh! :-) Explicitly skip string table with section names in it.
|
40142 |
09-Oct-1998 |
peter |
Preload support for a.out KLD not implemented yet. (almost) KLD modules are *not* PIC. (Shared libs are pic to avoid relocations causing copy-on-write, that's irrelevant here). setenv kernelname when we load it. Use MODINFO_SSYM/ESYM for each symbol section when (if) there are more than one being loaded.
|
40141 |
09-Oct-1998 |
peter |
Use a consistant module search path (same as kernel will be). Use new dependency mechanism.
|
40140 |
09-Oct-1998 |
peter |
loader <-> kernel preload module interface constants moved to common file. Remove Mike's explicit data structures for dependency info. This is done via DT_NEEDED etc in the dynamic section for now. This may need to be revisited later on.
|
40106 |
09-Oct-1998 |
msmith |
Sync the MODINFO constants with <sys/linker.h> Remove debugging in command_read(). Correctly strip leading controls on script commands. Make 'ls' more DWIM in regard to pathnames. We can still do better.
|
40015 |
07-Oct-1998 |
msmith |
- VERBOSE_LS is obsolete, as the heap is much better behaved now. - Don't whine about nodes we can't stat(); these are usually symlinks that lead out of the filesystem. - Autoboot is now controlled by $autoboot_delay, which is a value in seconds or NO to disable autoboot. - Don't autoboot at the end of boot.conf if we have already tried. - Add a 'read' command to complement 'echo'. Both are still hidden. - Improve the 'source' command/function so that it is possible to source scripts off removable media. The entire script is read and saved before beginning execution. Script lines beginning with '@' will not be echoed when being executed. Script execution will normally terminate at the first error, however if the script line begins with '-' this behaviour is overriden for that command.
|
39968 |
05-Oct-1998 |
msmith |
Insert whitespace between unargv'd arguments. Submitted by: "Louis A. Mamakos" <louie@TransSys.COM>
|
39894 |
02-Oct-1998 |
msmith |
boot.c Increase the robustness of the "is it time to boot yet" test; if the time skipped the "when" time, we would miss it. Don't spin in an endless loop if we don't find the first possible kernel suggested. When we run out, don't try to load an empty kernel name.
load_aout.c printf format warnings
|
39887 |
02-Oct-1998 |
peter |
First shot at loading elf symbols. Things are a bit strange because of the ..umm.. "wierd" way binutils lays out the file. The section headers are nearly at the end of the file and this is a problem when loading from a .gz file which can't seek backwards (or has a limited reverse seek, ~2K from memory).
This is intended to be compatable with the ddb/db_elf.c code and the alpha/libalpha/elf_freebsd.c layout. I've studied these (which are NetBSD derived) but did it a bit differently. Naturally the process is similar since it's supposed to end up with the same result.
|
39830 |
30-Sep-1998 |
peter |
ELF loader, part 1. It works with ELF kernels generated on the i386 so far, and should probably be able to be made to work for the alpha without too much trouble once it's connected up and my assumptions tested.
I think (but have not tested) it will also load "old" ELF kernels that were not linked with DYNAMIC headers.
The module glue is yet to come. (oh fun.. :-)
It does not explicitly load symbols [yet]. The _DYNAMIC data contains a runtime symbol set that ddb can use via ddb/db_kld.c. It'll be missing some detail that stabs normally provides (eg: number of args to a function, line numbers, etc). On the other hand, those minimal symbols will always be available even on a stripped kernel.
This is mostly stolen from load_aout.c with some ideas from alpha/libalpha/elf_freebsd.c.
|
39828 |
30-Sep-1998 |
peter |
s/out_loadmodule/aout_loadmodule/ in a printf diagnostic.
|
39827 |
30-Sep-1998 |
peter |
Uncomment prototype for elf_loadmodule
|
39732 |
28-Sep-1998 |
peter |
Use the variable with the path in it for the error message.
|
39673 |
26-Sep-1998 |
dfr |
* Add old UFS compatibility code to alpha/boot1. * Fix a raft of warnings, printf and otherwise. * Allocate the correct amount in mod_searchmodule to prevent an overflow. * Fix the makefiles so they work outside my home directory (oops).
|
39660 |
26-Sep-1998 |
msmith |
console.c Allow the MI code to override the preferred console (eg. so that an RB_SERIAL flag from the i386 boot2 can override the default first active console)
isapnp.c Use the standard format for ISA PnP IDs.
pnp.c Allow trailing comments on lines, be less picky about line contents.
ls.c Cosmetic error message fix.
panic.c Print the right arguments.
|
39530 |
20-Sep-1998 |
dfr |
Make the alpha bootstrap build again, fix some warning and change sdboot to daboot.
|
39472 |
19-Sep-1998 |
msmith |
Add a generic hexdump tool for debugging purposes.
|
39448 |
18-Sep-1998 |
msmith |
Remove 'panic' command (it works), don't ask for a keypress in panic, as exit() does. Perhaps it shouldn't?
|
39446 |
18-Sep-1998 |
msmith |
Use a.out.h to get all the correct bits in one place.
|
39444 |
18-Sep-1998 |
msmith |
Oops, missed these. Machine-independant ISA PnP enumerator.
|
39441 |
17-Sep-1998 |
msmith |
Initial integration of the i386 bootloader and BTX.
- Discard large amounts of BIOS-related code in favour of the more compact BTX vm86 interface. - Build the loader module as ELF, although the resulting object is a.out, make gensetdefs 32/64-bit sensitive and use a single copy of it. - Throw away installboot, as it's no longer required. - Use direct bcopy operations in the i386_copy module, as BTX maps the first 16M of memory. Check operations against the detected size of actual memory.
|
39178 |
14-Sep-1998 |
msmith |
Resynch with working sources before BTX integration.
- Use format-independant module allocator. - Conditionalise ISA PnP support. - Simplify PnP enumerator interface. - Improve module/object searching. - Add missing depend/install targets in BTX makefiles. - Pass the kernel environment and module data in extended bootinfo fields. - Add a pointer to the end of the kernel + modules in bootinfo. - Fix parsing of old-style kernel arguments.
|
38789 |
04-Sep-1998 |
msmith |
Generic plug-and-play enumerator infrastructure. Query supplied enumerators, crossreference returned identifiers with a text-format database and automatically load corresponding modules and dependancies.
|
38765 |
03-Sep-1998 |
jkh |
Allow quoted strings (single or double) for grouping whitespace separated items. Eliminate warnings.
|
38764 |
03-Sep-1998 |
msmith |
Bootstrap updates.
- Move some startup code from MD to MI sections - Add a 'copyout' and some copyout-related functions. These will be obsoleted when BTX is available for the 386 and the kernel load area becomes directly addressable. - Add the ability load an arbitrary file as a module, associating and arbitrary type string with it. This can be used eg. for loading splash-screen images etc. - Add KLD module dependancy infrastructure. We know how to look for dependancies inside KLD modules, how to resolve these dependancies and what to do if things go wrong. Only works for a.out at the moment, due to lack of an MI ELF loader. Attach KLD module information to loaded modules as metadata, but don't pass it to the kernel (it can find it itself). - Load a.out KLD modules on a page boundary. Only pad the a.out BSS for the kernel, as it may want to throw symbols away. (We might want to do this for KLD modules too.) - Allow commands to be hidden from the '?' display, to avoid cluttering it with things like 'echo'. Add 'echo'. - Bring the 'prompt' command into line with the parser syntax. - Fix the verbose 'ls'; it was using an uninitialised stack variable. - Add a '-v' flag to 'lsmod' to have it display module metadata as well (not terribly useful for the average user) - Support a 'module searchpath' for required modules. - The bootstrap file on i386 is now called 'loader' to permit the /boot directory to use that name. - Discard the old i386 pread() function, as it's replaced by arch_readin()
|
38716 |
01-Sep-1998 |
msmith |
New commandline/script parser, supports backslash quoting and environment variable substitution.
Submitted by: Jordan Hubbard <jkh@freebsd.org>
|
38712 |
31-Aug-1998 |
msmith |
Bootloader update.
- Implement a new copyin/readin interface for loading modules. This allows the module loaders to become MI, reducing code duplication. - Simplify the search for an image activator for the loaded kernel. - Use the common module management code for all module metadata. - Add an 'unload' command that throws everything away. - Move the a.out module loader to MI code, add support for a.out kld modules.
Submitted by: Alpha changes fixed by Doug Rabson <dfr@freebsd.org>
|
38475 |
22-Aug-1998 |
dfr |
Minor tweaks to track a couple of i386 changes and to make it compile.
|
38466 |
21-Aug-1998 |
msmith |
This commit was generated by cvs2svn to compensate for changes in r38465, which included commits to RCS files with non-trunk default branches.
|