summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386
Commit message (Collapse)AuthorAgeFilesLines
* Revert MEM_USR back to 0xa000 for BTX clients. Instead, adjust boot2jhb2002-10-088-18/+18
| | | | | | | to run at 0xc000 by changing its virtual start address from 0x1000 to 0x2000. Tested by: phk
* Now that ufsread.c doesn't do 64bit divide remainder operations,phk2002-10-082-30/+4
| | | | | | don't bother with libkern. Sponsored by: DARPA & NAI Labs.
* Save a couple of bytes by not returning ints nobody care about.phk2002-10-082-12/+12
| | | | Sponsored by: DARPA & NAI labs
* Reinstate rev 1.36 with an important line that got missed. Note thisgreen2002-10-082-4/+10
| | | | | also improves the "random undocumented offsets into various memory spaces" a little bit.
* Remove unused TYPE_WD and TYPE_WFD.phk2002-10-082-4/+0
|
* Correctly calculate dmadat: We need to take the address of _end, it'sphk2002-10-082-2/+2
| | | | | | | contents is irrelevant and likely to be zero; This doesn't change the resultant value, but it does save a couple of bytes because &_end is constant.
* Unbreak boot2 by backing out rev 1.36 to Makefile, which does notphk2002-10-082-6/+2
| | | | | | | | | | | | | | | | | | work as advertised: bang# pwd /bang/src/sys/boot/i386/boot2 bang# make clean >& /dev/null bang# cvs -q update -r 1.35 Makefile >& /dev/null bang# make >& /dev/null bang# cat /usr/obj/`pwd`/boot2.h #define XREADORG 0x725 bang# cvs -q update -r 1.36 Makefile > & /dev/null bang# make clean > & /dev/null bang# make > & /dev/null bang# cat /usr/obj/`pwd`/boot2.h #define XREADORG 0x25 bang#
* Save four bytes by shortening a string two chars.phk2002-10-082-4/+2
| | | | Sponsored by: DARPA & NAI Labs.
* Correct a bug in adding 0x700 to a number.green2002-10-072-2/+6
|
* Conditionalize the number of sectors loaded by boot1.s on UFS1/UFS12.phk2002-10-076-12/+84
| | | | | | | | Conditionalize the "XX bytes left" checks reference on UFS1/UFS12. Conditionally build the necessary 64bit math for boot2 if UFS12. Sponsored by: DARPA & NAI Labs.
* Change the comment character from # to // in boot1.s and runphk2002-10-074-646/+648
| | | | | | it through CPP so we can conditionalized things. Sponsored by: DARPA & NAI Labs
* Correctly adjust for moved start address.phk2002-10-072-2/+2
| | | | | | | | It seems that the existence of a "depend" target in src/sys/boot is not to be taken as an indication that it actually does what one would expect, at least it clearly threw my testing off. Apologies to: jhb
* Correctly compensate for both offset and unoffset on-disk BSD disklabels.phk2002-10-072-2/+4
| | | | Sponsored by: DARPA & NAI Labs.
* Move MEM_USR a page upwards to make space for larger UFS1 boot2.phk2002-10-074-10/+10
| | | | | | | Load 4 sectors more than we used to. This is harmless overhead for the UFS1_ONLY case, but sufficient for boot2(UFS1+2). Sponsored by: DARPA & NAI Labs
* Move the definition of UFS1_ONLY into the Makefiles where it belongs.phk2002-10-072-0/+4
| | | | Sponsored by: DARPA & NAI Labs.
* Don't call INT 12H anymore in boot program.iwasaki2002-10-013-2/+6
| | | | | | | | | | | Many recent machine have a broken INT 12H (Get base memory size) implementation and boot program stops if INT 12H is called. This commit should solve the problem at very first step of FreeBSD installation occurred on newer some machines. Reviewed by: bde, jhb MFC after: 1 week
* Split MBR and PC98 on-disk sliceformats out from disklabel.h, step 1:phk2002-10-013-0/+3
| | | | | | | | | | | | | | | | Peter had repocopied sys/disklabel.h to sys/diskpc98.h and sys/diskmbr.h. These two new copies are still intact copies of disklabel.h and therefore protected by #ifndef _SYS_DISKLABEL_H_ so #including them in programs which already include <sys.disklabel.h> is currently a no-op. This commit adds a number of such #includes. Once I have verified that I have fixed all the places which need fixing, I will commit the updated versions of the three #include files. Sponsored by: DARPA & NAI Labs.
* Use as's --defsym switch to compensate for the loss of the M4 substitutionpeter2002-09-302-3/+1
| | | | | | of SIOPRT which broke kgzldr and therefore make release. Pointed out by: murray
* use __packed.alfred2002-09-233-26/+26
|
* Initiate deorbit burn for the i386-only a.out related support. Moves arepeter2002-09-1713-78/+6
| | | | | | | | | | | | | | | under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that. Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now. Tested on: i386 (extensively), alpha
* Parse hint.acpi.0.disabled correctly.iwasaki2002-09-051-2/+10
| | | | | | Now that hint.acpi.0.disabled="0" won't disable acpi as expected. Pointed-out by: bde
* Restore Rev. 1.40 (remove "Keyboard yes/no" printf).kan2002-09-012-2/+2
| | | | | | | GCC 3.2 overflows boot2 by 12 bytes, this patch brings it back within the boundaries, with 12 bytes available for future bloat. Approved by: obrien
* Revert previous untested revision. The i386 loader consists of three parts:jhb2002-08-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At the front is btxldr, in the middle is BTX itself (our mini-kernel), and then the 'client' (loader.bin) which is the actual loader itself. boot2 just executes a raw ELF or a.out binary with the only setup provided being that a bootinfo structure is passed on the stack. Now, since loader.bin is a BTX client, the loader needs to be able to locate a BTX kernel for the client to execute in the context. Thus, just like pxelder, btxldr uses the a.out header on the loader binary to find the BTX kernel stored in the loader and set it up. It does _not_ just reuse the BTX kernel that boot2 invoked it with. This is because it can't assume that it will _have_ a "spare" BTX kernel lying around. For example, when cdboot loads the loader there isn't an existing BTX kernel. In fact, cdboot will only work with an a.out loader as well since it also "borrows" the BTX kernel in the loader binary (which it finds by parsing the a.out header) just as pxeldr does. The only difference between cdboot and pxeldr is where they get /boot/loader from. If we wanted to make /boot/loader be an actual ELF binary we would need to change the following utilites to handle that (and they all have to be able to handle locating the BTX kernel inside of an ELF binary somehow): - btxldr - pxeldr - cdboot If we didn't want to require a flag day but make the transition smooth then we need to be able to support both a.out and ELF versions of /boot/loader which isn't exactly trivial since all three of these utilities are written in assembly. Pointy-hat to: peter
* s/hint.acpi.0.disable/hint.acpi.0.disabled/iwasaki2002-08-302-2/+2
| | | | | | | | | 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).
* Try #2 at having /boot/loader default to ELF. Have pxeldr build itspeter2002-08-292-4/+19
| | | | | own a.out version of loader.bin rather than depend on ../loader/loader being a.out.
* Actually remove the stale a.out kld support. This is the stuff that waspeter2002-08-291-83/+0
| | | | never updated for the metadata infrastructure.
* Initiate deorbit burn of i386 a.out kld "support" in loader. Note thatpeter2002-08-293-6/+1
| | | | | | 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.
* Add help about hint.acpi.0.disable.iwasaki2002-08-091-0/+4
|
* Restore autoloading of ACPI module.obrien2002-08-091-0/+8
| | | | | Document the approved ways of disabling it. Submitted by: Daniel O'Connor <doconnor@gsoft.com.au>
* Don't auto load ACPI -- it causes trouble with my laptop and is TOTALLYobrien2002-08-091-8/+0
| | | | | undocumented how to control its loading and queries to freebsd-current go unanswered.
* Drop support for COPY, -c has been the default mode of install(1)ru2002-07-292-4/+4
| | | | | | for a long time now. Approved by: bde
* The .Nm bootloadercharnier2002-07-141-5/+10
|
* Resolve conflicts arising from the ACPI CA 20020611 import.iwasaki2002-07-091-2/+1
|
* Fix a build problem for the ACPI CA 20020404 import.iwasaki2002-06-301-1/+2
| | | | | | | Add definition of COMPILER_DEPENDENT_INT64 and also fix definition of COMPILER_DEPENDENT_UINT64. Pointed-out by: Michael Nottebrock <michaelnottebrock@gmx.net>
* Revert the part of Kirks UFS2 commit which added divdi3.c and moddi3.cphk2002-06-215-11/+8
| | | | to libi386, this issue was resolved already in a cleaner way.
* This commit adds basic support for the UFS2 filesystem. The UFS2mckusick2002-06-217-98/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add boot_serial and boot_multicons variables to set RB_SERIAL andpeter2002-06-203-0/+6
| | | | | RB_MULTIPLE since this seems to be the easiest way to add these flags for non-forth loaders etc.
* Add explicit dependency on ufsread.cphk2002-06-052-2/+2
|
* Preparation for UFS2 commit:phk2002-06-054-322/+8
| | | | | | | 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.
* Fix one of the va_arg() with less than int sized type probelms.phk2002-05-181-1/+1
|
* DEV_BSIZE lives in sys/param.h and not in machine/param.h anymore.jhay2002-05-151-1/+1
|
* Align CLEANFILES with revision 1.25 changes.ru2002-05-132-2/+2
|
* Fixed CLEANFILES after bsd.lib.mk sweep.ru2002-05-131-1/+1
|
* Removed now unused INTERNALSTATICLIB.ru2002-05-131-3/+0
| | | | | INTERNALLIB now implies NOPIC and NOPROFILE. Removed gratuitous NOMAN.
* Major cleanup of bsd.lib.mk.ru2002-05-131-4/+0
| | | | | | | Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB. INTERNALLIB now means to build static library only and don't install anything. Added a NOINSTALLLIB knob for libpam/modules. To not build any library at all, just do not set LIB.
* Saved 176 bytes by compiling with -fno-guess-branch-probability. Thebde2002-05-122-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | default of -fguess-branch-probablility causes time optimizations (?) like rewriting `if (foo) x++;' as `if (!foo) goto forth; back: ; ...; forth: x++; goto back;". This is pessimizes space especially well on i386's because one short branch gets converted to 2 long ones. Removed -fno-align-foo since it is implied by -Os. Previous commit messages seem to have overstated the new alignment bugs in gcc. The only case that affects boot2 is that -fno-align-functions (or equivalently -falign-functions=1) actually gives -falign-functions=2. This is caused by FUNCTION_BOUNDARY being 2 (bytes) instead of 1. The default case where the optimization level is 1 and no alignment options are given is more broken. All alignments are minimal, modulo the bug in FUNCTION_BOUNDARY. This is caused by toplev.c setting defaults too early. Some hacks in previous commits ar not needed now, but may as well be kept until gcc is fixed. The previous on in the Makefile saved 96 bytes of text due to the wrong FUNCTION_BOUNDARY and 32 bytes of data due to unrelated bloat in the alignment of large objects. There aren't even any options to control alignment of data.
* Back out last commit. I expect our bsd.*.mk gods to remove the need forobrien2002-05-122-0/+6
| | | | | defining so many extra things in addition to INTERNALLIB. We don't like repetitive C code and we shouldn't for make code either.
* Save about 60 bytes by #define memcpy __builtin_memcpy and removingpeter2002-05-112-26/+6
| | | | | the function we provided. Restore the Keyboard: yes/no printf for the probe diagnostics. We end up with 40 bytes free.
* Reconnect boot2. I'm sure I'll regret this though. :-)peter2002-05-111-1/+1
|
* Use a crowbar and duct-tape to make boot2 fit again. This gets it downpeter2002-05-114-2/+14
| | | | | | | | to 4 bytes free. I removed a printf (the Keyboard yes/no) since it is of marginal value and sed'ed the generated asm output to remove the unwanted aligns. There's probably a better way to gain a few extra bytes than losing the printf. Shortening strings is probably a better option but this should get us over the hurdle.
OpenPOWER on IntegriCloud