aboutsummaryrefslogtreecommitdiff
path: root/sys/boot
Commit message (Collapse)AuthorAgeFilesLines
* Add a cleanup function. This is needed for PXE where you shouldPaul Saab2000-04-203-7/+20
| | | | | | | shutdown the UNDI and unload the stack. Notes: svn path=/head/; revision=59408
* Use !PXE api over PXENV+ api.Paul Saab2000-04-193-18/+106
| | | | | | | | Magic trampoline by: peter (at 4am and after a good whipping at airhockey) Do a better job of returning and detecting errors. Notes: svn path=/head/; revision=59390
* Some more i386-only BIOS-friendliness:Mike Smith2000-04-161-0/+8
| | | | | | | | | | | | - 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. Notes: svn path=/head/; revision=59294
* The printf function of boot2 can't recognize "%lx" format.Yoshihiro Takahashi2000-04-141-4/+4
| | | | | | | Submitted by: Nobuyuki Koganemaru <kogane@koganemaru.co.jp> Notes: svn path=/head/; revision=59230
* Merged from sys/boot/i386/loader/Makefile revision 1.43.Yoshihiro Takahashi2000-04-141-2/+6
| | | | Notes: svn path=/head/; revision=59228
* Merged from sys/boot/i386/loader/main.c rev 1.19.KATO Takenori2000-04-121-0/+11
| | | | Notes: svn path=/head/; revision=59167
* Add a missing dependency: boot2 depends on the BTX kernel.John Baldwin2000-04-112-2/+2
| | | | Notes: svn path=/head/; revision=59150
* Nuke duplicate struct declaration from somebody's paste-oJordan K. Hubbard2000-04-081-11/+0
| | | | Notes: svn path=/head/; revision=59100
* Make PXE use the UDP API. This allows for both TFTP and NFS support.Paul Saab2000-04-088-296/+255
| | | | | | | | | | | You may specify TFTP or NFS via compile time options in the loader, but not both at this time. Also, remove a warning about not knowing how to boot from network devices. We can obviously do that now. Notes: svn path=/head/; revision=59087
* Add a missing PXE API call and structure.Paul Saab2000-04-041-0/+11
| | | | Notes: svn path=/head/; revision=58999
* Add all the PXE related structures from the 2.1 PXE spec from Intel.Paul Saab2000-04-042-155/+531
| | | | | | | Fix exsisting code to match the spec. Notes: svn path=/head/; revision=58993
* Synced with following files:KATO Takenori2000-03-319-183/+332
| | | | | | | | | | | | | | | | src/sys/boot/i386/Makefile.inc 1.1 src/sys/boot/i386/btx/btx/btx.s 1.15 src/sys/boot/i386/btx/btxldr/Makefile 1.8 src/sys/boot/i386/btx/btxldr/btxldr.s 1.9 src/sys/boot/i386/libi386/biosdisk.c 1.29 src/sys/boot/i386/loader/Makefile 1.42 src/sys/boot/i386/loader/main.c 1.18 (entry point address of loader was not changed.) Reviewed by: nyan Notes: svn path=/head/; revision=58871
* Separated serial boot block interface routine into NS16550 stuff andKATO Takenori2000-03-303-146/+381
| | | | | | | i8251 stuff. Notes: svn path=/head/; revision=58829
* Mega i386 loader commit.John Baldwin2000-03-2818-271/+1610
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Don't hard code 0x10000 as the entry point for the loader. Instead add src/sys/boot/i386/Makefile.inc which defines a make variable with the entry point for the loader. Move the loader's entry point up to 0x20000, which makes PXE happy. - Don't try to use cpp to parse btxldr for the optional BTXLDR_VERBOSE, instead use m4 to achieve this. Also, add a BTXLDR_VERBOSE knob in the btxldr Makefile to turn this option on. - Redo parts of cdldr's Makefile so that it now builds and installs cdboot instead of having i386/loader/Makefile do that. Also, add in some more variables to make the pxeldr Makefile almost identical and thus to ease maintainability. - Teach cdldr about the a.out format. Cdldr now parsers the a.out header of the loader binary and relocates it based on that. The entry point of the loader no longer has to be hardcoded into cdldr. Also, the boot info table from mkisofs is no longer required to get a useful cdboot. - Update the lsdev function for BIOS disks to parse other file systems (such as DOS FAT) that we currently support. This is still buggy as it assumes that a floppy with a DOS boot sector actually has a MBR and parses it as such. I'll be fixing this in the future. - The biggie: Add in support for booting off of PXE-enabled network adapters. Currently, we use the TFTP API provided by the PXE BIOS. Eventually we will switch to using the low-level NIC driver thus allowing both TFTP and NFS to be used, but for now it's just TFTP. Submitted by: ps, alfred Testing by: Benno Rice <benno@netizen.com.au> Notes: svn path=/head/; revision=58713
* Sync with sys/boot/i386/libi386/biosdisk.c revision 1.27 and 1.28.Yoshihiro Takahashi2000-03-171-7/+8
| | | | | | | Submitted by: Kaho Toshikazu <kaho@elam.kais.kyoto-u.ac.jp> Notes: svn path=/head/; revision=58165
* Remove some extra spammage that made it into this commit. This will beJohn Baldwin2000-03-151-47/+0
| | | | | | | | | revisited later with a better fix, or at least one that compiles. :) Approved by: dcs Notes: svn path=/head/; revision=58098
* Pass an unit number to bcache_strategy, so it can flush the cache whenDaniel C. Sobral2000-03-151-7/+55
| | | | | | | | | | | | | necessary. Pass an absolute block number too, instead of receiving a relative one in realstrategy(), as bcache_strategy() requires this. The fix is sligthly different from the one in the PR. PR: 17098 Submitted by: John Hood <jhood@sitaranetworks.com> Notes: svn path=/head/; revision=58081
* bcache_strategy() now receives an unit number, and keep track of whatDaniel C. Sobral2000-03-152-8/+25
| | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=58080
* Pass unit number to bcache_strategy(), so that the cache can beDaniel C. Sobral2000-03-151-2/+3
| | | | | | | | | | | | | flushed if the unit changes. Compute the absolute offset before bcache_strategy() instead of after. The actual fix is sligthly different for the one in the PR. PR: 17098 Submitted by: John Hood <jhood@sitaranetworks.com> Notes: svn path=/head/; revision=58079
* Fix the loader to handle module dependencies properly. More fixesBoris Popov2000-02-252-107/+80
| | | | | | | | | | will be provided after modmetadata appears in the kernel. Reviewed by: msmith Approved by: jkh Notes: svn path=/head/; revision=57468
* Close a file descriptor leak in the code which loads file objects.Mike Smith2000-02-171-0/+2
| | | | | | | | Submitted by: Paul Saab <paul@mu.org> Approved by: jkh Notes: svn path=/head/; revision=57269
* This patch to BTX fixes several small things:John Baldwin2000-02-162-12/+58
| | | | | | | | | | | | | | | | | | | | | | | | 1) Fix a bug in the int15 function 87 emulation where we only copied half of what the BIOS asked for. This caused the Mylex RAID adapter to go haywire and start trashing memory when you tried to boot from it. 2) Don't use interrupt 19 to reboot. Instead, set the reboot flag to a warm boot and jump to the BIOS's reboot handler. int 19 doesn't clear memory or restore the interrupt vector table, and thus really isn't safe. For example, when booting off of PXE, the PXE BIOS eats up a chunk of memory for its internal data and structures. Since we rebooted via int 19, using the 'reboot' command in the loader resulted in that memory not being reclaimed by the BIOS. Thus, after a few PXE boots, the system was out of lower memory. 3) Catch any int 19 calls made by a BTX client or a user pressing Ctrl-Alt-Delete and shutdown BTX and reboot the machine cleanly. This fixes Ctrl-Alt-Delete in the loader and in boot2 instead of presenting the user with a BTX fault. Approved by: jkh Found by: 1) by msmith Notes: svn path=/head/; revision=57254
* Support the new ata(4) syntax, while providing backward compatibility for wd(4).Ruslan Ermilov2000-02-092-20/+26
| | | | | | | | Reviewed by: jkh, msmith, sos Approved by: jkh Notes: svn path=/head/; revision=57090
* Synced with sys/boot/i386/loader/Makefile rev 1.41.KATO Takenori2000-02-051-0/+2
| | | | Notes: svn path=/head/; revision=56994
* Add a NOFORTH variable so we can build a smaller loader withoutLuigi Rizzo2000-02-041-0/+2
| | | | | | | | | Forth support, for use with PicoBSD Approved-By: jordan Notes: svn path=/head/; revision=56992
* Fix bogon in previous commit. Re-enable Forth in the loader.John Baldwin2000-01-301-2/+2
| | | | | | | | Noticed by: dcs Approved by: jkh Notes: svn path=/head/; revision=56903
* Synced with sys/boot/i386/btx/btx/btx.s rev 1.14.KATO Takenori2000-01-292-2/+6
| | | | Notes: svn path=/head/; revision=56813
* Allow for cdldr to be built in ${.OBJDIR}/../cdldr/cdldr instead ofJohn Baldwin2000-01-281-3/+9
| | | | | | | only looking for it in ${.CURDIR}/../cdldr/cdldr. This fixes world. Notes: svn path=/head/; revision=56752
* Implement a machine-independent (word size-independent) FICL_TRUE.Daniel C. Sobral2000-01-281-1/+1
| | | | Notes: svn path=/head/; revision=56719
* ANS Forth for logical not is 0=, not invert. Replace wrong usage.Daniel C. Sobral2000-01-281-2/+2
| | | | Notes: svn path=/head/; revision=56718
* Add testmain.o to CLEANFILES.Daniel C. Sobral2000-01-281-1/+1
| | | | Notes: svn path=/head/; revision=56717
* Try my hand again at removing ugly testmain target.Daniel C. Sobral2000-01-281-14/+12
| | | | Notes: svn path=/head/; revision=56716
* Add the new cdldr CD bootstrap loader. This patch includes the following:John Baldwin2000-01-279-8/+589
| | | | | | | | | | | | | | | | | | | - Fix btxldr to preserve a NULL bootinfo pointer when it copies the kernel arguments. - Add the cdldr bootstrap program. This program is tacked onto the beginning of the standard 3rd stage boot loader (/boot/loader) to form the CD boot loader (/boot/cdboot). When a CD is booted, the cdboot file is copied into memory instead and executed. The cdldr stub emulates the environment normally provided by boot2 and then starts the loader. This booting method does not emulate a floppy drive, but boots directly off of the CD. This should fix the problems some BIOS's have with emulating a 2.88 MB floppy image. - Add support to the loader to recognize that it has been booted by cdldr instead of boot2 and use a simpler method of extracting the BIOS boot device. Notes: svn path=/head/; revision=56693
* Fix brokenness introduced with the PAGING conditional variable. The valueJohn Baldwin2000-01-272-2/+6
| | | | | | | | | | | | of %cr0 wasn't reloaded into %eax before being modified to turn protected mode off if PAGING was not defined. The result was that the processor did not exit protected mode, so when it tried to jump to segment 0x0 in the next instruction to clear the prefetch cache like one should when leaving protected mode, it actually tried to jump to a null selector, causing a GPF. Notes: svn path=/head/; revision=56691
* Add driver support for the Aironet 4500/4800 series wireless 802.11Bill Paul2000-01-141-1/+2
| | | | | | | | | | | | | | | | | NICs. (Finally!) The PCMCIA, ISA and PCI varieties are all supported, though only the ISA and PCI ones will work on the alpha for now. PCCARD, ISA and PCI attachments are all provided. Also provided an ancontrol(8) utility for configuring the NIC, man pages, and updated pccard.conf.sample. ISA cards are supported in both ISA PnP and hard-wired mode, although you must configure the kernel explicitly to support the hardwired mode since you have to know the I/O address and port ahead of time. Special thanks to Doug Ambrisko for doing the initial newbus hackery and getting it to work in infrastructure mode. Notes: svn path=/head/; revision=55992
* Add device driver support for USB ethernet adapters based on the CATCBill Paul2000-01-141-0/+1
| | | | | | | | | | | | | | | | | | | USB-EL1202A chipset. Between this and the other two drivers, we should have support for pretty much every USB ethernet adapter on the market. The only other USB chip that I know of is the SMC USB97C196, and right now I don't know of any adapters that use it (including the ones made by SMC :/ ). Note that the CATC chip supports a nifty feature: read and write combining. This allows multiple ethernet packets to be transfered in a single USB bulk in/out transaction. However I'm again having trouble with large bulk in transfers like I did with the ADMtek chip, which leads me to believe that our USB stack needs some work before we can really make use of this feature. When/if things improve, I intend to revisit the aue and cue drivers. For now, I've lost enough sanity points. Notes: svn path=/head/; revision=55944
* Add device driver support for USB ethernet adapters based on theBill Paul2000-01-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Kawasaki LSI KL5KUSB101B chip, including the LinkSys USB10T, the Entrega NET-USB-E45, the Peracom USB Ethernet Adapter, the 3Com 3c19250 and the ADS Technologies USB-10BT. This device is 10mbs half-duplex only, so there's miibus or ifmedia support. This device also requires firmware to be loaded into it, however KLSI allows redistribution of the firmware images (I specifically asked about this; they said it was ok). Special thanks to Annelise Anderson for getting me in touch with KLSI (eventually) and thanks to KLSI for providing the necessary programming info. Highlights: - Add driver files to /sys/dev/usb - update usbdevs and regenerate attendate files - update usb_quirks.c - Update HARDWARE.TXT and RELNOTES.TXT for i386 and alpha - Update LINT, GENERIC and others for i386, alpha and pc98 - Add man page - Add module - Update sysinstall and userconfig.c Notes: svn path=/head/; revision=55429
* Merge from the following changes.Yoshihiro Takahashi2000-01-033-48/+121
| | | | | | | | | sys/boot/i386/libi386/biosmem.c Rev 1.4 sys/boot/i386/libi386/time.c Rev 1.3 sys/boot/i386/loader/main.c Rev 1.16 Notes: svn path=/head/; revision=55342
* Fixed to get the BIOS geometry.Yoshihiro Takahashi2000-01-031-4/+5
| | | | Notes: svn path=/head/; revision=55339
* Substantially revamp the way that we determine the amount of memory availableMike Smith1999-12-298-57/+164
| | | | | | | | | | | | | | | | | | for our use. Use the same search order for BIOS memory size functions as the kernel will later use. Allow the loader to use all of the detected physical memory (this will greatly help people trying to load enormous memory disk images). More correctly handle running out of memory when loading an object. Use the end of base memory for the top of the heap, rather than blindly hoping that there is 384k left. Add copyrights to a couple of files I forgot. Notes: svn path=/head/; revision=55211
* Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"Peter Wemm1999-12-291-3/+3
| | | | | | | | | 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. Notes: svn path=/head/; revision=55206
* Correctly handle a user-requested abort in the middle of displaying aMike Smith1999-12-281-2/+4
| | | | | | | | | | help subtopic. PR: kern/13196 Submitted by: MIHIRA Sanpei Yoshiro <sanpei@sanpei.org> Notes: svn path=/head/; revision=55173
* This commit adds device driver support for the ADMtek AN986 PegasusBill Paul1999-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | USB ethernet chip. Adapters that use this chip include the LinkSys USB100TX. There are a few others, but I'm not certain of their availability in the U.S. I used an ADMtek eval board for development. Note that while the ADMtek chip is a 100Mbps device, you can't really get 100Mbps speeds over USB. Regardless, this driver uses miibus to allow speed and duplex mode selection as well as autonegotiation. Building and kldloading the driver as a module is also supported. Note that in order to make this driver work, I had to make what some may consider an ugly hack to sys/dev/usb/usbdi.c. The usbd_transfer() function will use tsleep() for synchronous transfers that don't complete right away. This is a problem since there are times when we need to do sync transfers from an interrupt context (i.e. when reading registers from the MAC via the control endpoint), where tsleep() us a no-no. My hack allows the driver to have the code poll for transfer completion subject to the xfer->timeout timeout rather that calling tsleep(). This hack is controlled by a quirk entry and is only enabled for the ADMtek device. Now, I'm sure there are a few of you out there ready to jump on me and suggest some other approach that doesn't involve a busy wait. The only solution that might work is to handle the interrupts in a kernel thread, where you may have something resembling a process context that makes it okay to tsleep(). This is lovely, except we don't have any mechanism like that now, and I'm not about to implement such a thing myself since it's beyond the scope of driver development. (Translation: I'll be damned if I know how to do it.) If FreeBSD ever aquires such a mechanism, I'll be glad to revisit the driver to take advantage of it. In the meantime, I settled for what I perceived to be the solution that involved the least amount of code changes. In general, the hit is pretty light. Also note that my only USB test box has a UHCI controller: I haven't I don't have a machine with an OHCI controller available. Highlights: - Updated usb_quirks.* to add UQ_NO_TSLEEP quirk for ADMtek part. - Updated usbdevs and regenerated generated files - Updated HARDWARE.TXT and RELNOTES.TXT files - Updated sysinstall/device.c and userconfig.c - Updated kernel configs -- device aue0 is commented out by default - Updated /sys/conf/files - Added new kld module directory Notes: svn path=/head/; revision=55162
* Connect up the bootforth glue and compile it, but don't initialize itPeter Wemm1999-12-271-3/+13
| | | | | | | | | at runtime as it has a nasty habit of crashing on the Alpha :-(. This is being done this way so we have a common starting point for debugging. Notes: svn path=/head/; revision=55139
* Close PR #15422; fix loader.conf to reflect new driver support (oldBill Paul1999-12-231-5/+2
| | | | | | | | | tulip clone NICs merged into if_dc driver). PR: conf/15422 Notes: svn path=/head/; revision=55017
* - Supported the bd_getbigeom function and use this function to get BIOSYoshihiro Takahashi1999-12-193-350/+26
| | | | | | | | | | geometry. - Use i386/libi386/bootinfo.c instead of pc98/libpc98/bootinfo.c. Submitted by: IMAI Takeshi <take-i@ceres.dti.ne.jp> Notes: svn path=/head/; revision=54819
* Don't build gensetdefs when we can use /usr/bin/gensetdefs. The latterMarcel Moolenaar1999-12-167-532/+17
| | | | | | | | | 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. Notes: svn path=/head/; revision=54695
* Add -L${DESTDIR}${LIBDIR} to ld's command line so that the rightMarcel Moolenaar1999-12-151-1/+3
| | | | | | | libstand is used. Notes: svn path=/head/; revision=54649
* Remove BAD144 support, it has already been disabled for some time.Poul-Henning Kamp1999-12-086-121/+2
| | | | Notes: svn path=/head/; revision=54294
* Update the sample for $init_path to reflect the kernel default.Mike Smith1999-12-071-1/+2
| | | | Notes: svn path=/head/; revision=54265