summaryrefslogtreecommitdiffstats
path: root/sys/boot/forth
Commit message (Collapse)AuthorAgeFilesLines
* remove period from SEE ALSO.ben2000-11-151-1/+1
|
* Add entry for umodemn_hibma2000-10-301-0/+1
|
* The USB scanner driver. To be used together with SANE.n_hibma2000-10-251-0/+1
|
* Now I see the error of my ways.dcs2000-10-091-6/+8
| | | | | | | | | | | | | | | Previous revision of this file changed the "boot" commands to take no arguments from the stack. This is only valid in the case where a kernel has not been loaded. In that case, load_kernel_and_modules will be called, which takes a list of arguments from the stack. When a kernel is presently loaded, though, the list of arguments must be passed to the boot command, which was the behaviour before the last revision. Fix things for both cases. Noticed by: S-Max and others on that chat room
* Get rid of garbage left on the stack.dcs2000-09-251-2/+1
|
* What could possibly have possessed me to forget the "0 (arguments)"dcs2000-09-251-2/+2
| | | | | | | | in two of the three boot words in the "boot" redefinition, I have no clue. Fix it. Noticed by: bp Noticed by: adrian
* Check for the correct minimum version required by the current code.dcs2000-09-181-4/+4
| | | | I hope I got this right... :-)
* Use _ instead or - where proper, according to the style I have beendcs2000-09-162-17/+35
| | | | | | using. Overload "?" so it will also show loader.4th commands.
* Solve a name clash.dcs2000-09-162-6/+12
| | | | Add something to help debugging.
* The module_path set by default was bogus. It had /boot/kernel last,dcs2000-09-161-3/+3
| | | | which makes little sense.
* Both boot and boot-conf were using a different algorithm from the onedcs2000-09-162-32/+38
| | | | | | | | | | | | | used by start to find the kernel. Fix this. Also, boot would proceed immediately in the absence of a path as argument. Check first if a kernel has already been loaded, and, if not, fall back to load kernel&modules behavior. Some further factorizing. I deem this code to be mostly readable by now! :-) Many thanks to: Makoto MATSUSHITA <matusita@jp.FreeBSD.org>
* Factorize, reorganize, and move code around.dcs2000-09-152-116/+152
| | | | | | | | | | | | | | | | | | | | | | | The boot-conf and boot code had various bugs, and some of it was big, ugly, unwieldy, and, sometimes, plain incorrect. I'm just about completely replaced these ugly parts with something much more manageable. Minor changes were made to the well-factorized parts of it, to accomodate the new code. Of note: * make sure boot-conf has the exact same behavior wrt boot order as start. * Correct both boot and boot-conf so they'll work correctly when compiled in, as they both had some bugs, minor and major. * Remove all the crud from loader.4th back into support.4th, for the first time since boot-conf was first improved. Hurray! I'm fairly satisfied with the code at this time. Time to see about those man pages...
* New world order wrt to kernel location and name. This doesn't actuallydcs2000-09-121-2/+2
| | | | | changes anything (in theory), just better document it. I'm waiting for the final word before I tackle the man pages.
* Back out bktr_mem_load. It is not needed because I'm use MODULE_DEPENDroger2000-09-121-1/+0
| | | | | elsewhere. Reminded by: Mike Smith
* Add bktr_mem_loader, default to NO.roger2000-09-111-0/+1
| | | | In the near future the bktr module will need the bktr_mem module too.
* The entropy driver module has changed name.markm2000-09-101-1/+1
|
* Upon reflection, I decided that bootfile must have priority over kerneldcs2000-09-091-8/+8
| | | | | | as the kernel name. The one very unfortunate consequence is that kernel as an absolute path loses the priority. It will only be tried after /boot/${kernel}/${bootfile}. I'll see what can be done about it later.
* First tackle at trying to handle the New Deal on kernels.dcs2000-09-093-118/+280
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Load the first of the following kernels to be found: ${kernel} if ${kernel} is an absolute path /boot/${kernel}/${kernel} /boot/${kernel}/${bootfile} ${kernel}/${kernel} ${kernel}/${bootfile} ${kernel} ${bootfile} The last instance of ${kernel} and ${bootfile} will be treated as a list of semicolon separated file names, and each will be tried in turn, from left to right. Also, for each filename loader(8) will try filename, filename.ko, filename.gz, filename.ko.gz, in that order, but that's not related to this code. This resulted in a major reorganization of the code, and much of what was accumulating on loader.4th was rightly transfered to support.4th. The semantics of boot-conf and boot also changed. Both will try to load a kernel the same as above. After a kernel was loaded, the variable module_path may get changed. Such change will happen if the kernel was found with a directory prefix. In that case, the module path will be set to ${directory};${module_path}. Next, the modules are loaded as usual. This is intended so kernel="xyzzy" in /boot/loader.conf will load /boot/xyzzy/kernel.ko, load system modules from /boot/xyzzy/, and load third party modules from /boot/modules or /modules. If that doesn't work, it's a bug. Also, fix a breakage of "boot" which was recently introduced. Boot without any arguments would fail. No longer. Also, boot will only unload/reload if the first argument is a path. If no argument exists or the first argument is a flag, boot will use whatever is already loaded. I hope this is POLA. That behavior is markedly different from that of boot-conf, which will always unload/reload. The semantics introduced here are experimental. Even if the code works, we might decide this is not the prefered behavior. If you feel so, send your feedback. (Yeah, this belongs in a HEADS UP or something, but I've been working for the past 16 hours on this stuff, so gimme a break.)
* Update boot and boot-conf descriptions to reflect new and old changes.dcs2000-09-081-3/+26
| | | | Add a warning in loader(8) that boot might be changed by loader.4th.
* Enhance boot-conf.dcs2000-09-081-24/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now boot-conf can also receive parameters to be passed to the kernel being booted. The syntax is the same as in the boot command, so one boots /kernel.OLD in single-user mode by typing: boot-conf /kernel.OLD -s instead of boot-conf -s /kernel.OLD The syntax still supports use of directory instead of file name, so boot-conf kernel.OLD -s may be used to boot /boot/kernel.OLD/kernel.ko in single-user mode. Notice that if one passes a flag to boot-conf, it will override the flags set in .conf files, but only for that invocation. If the user aborts the countdown and tries again without passing any flags, the flags set in .conf files will be used. Some factorization was done in the process of enhancing boot-conf, as it has been growing steadly as features are getting added, becoming too big for a Forth word. It still could do with more factorization, as a matter of fact. Override the builtin "boot" with something based on boot-conf. It will behave exactly like boot-conf, but booting directly instead of going through autoboot. Since we are now pairing kernel and module set in the same directory, this change to boot makes sense.
* Strictly speaking, this works. It enumarates the PnP devices, anddcs2000-09-081-0/+172
| | | | | | | | | | | | | | load the modules needed according to a file relating module names (actually, _file_ names, not really modules -- the dependency stuff is not exported to loader's UI) to PnP IDs. But it still lacks a number of desired features, and it's too crude for my tastes. But since I don't have time to work on it, it might be preferable to make it available to those who might. It's not installed by default, much less loaded. In fact, it wouldn't even had a copyright message (who? me? assume responsibility for _this_?), if the cvs commit hadn't aborted for lack of $FreeBSD$, and I decided to just cut&paste the stuff from elsewhere.
* Fix an error message which was using the wrong variable to get thedcs2000-09-081-1/+1
| | | | kernel name from.
* Add constructors to crude structure support. Rework some of thedcs2000-09-081-19/+142
| | | | | | | | | | | | | | | | code into a more modular interface, with hidden vocabularies and such. Remove the need to a lot of ugly initialization. Also, add a few structure definitions, from stuff used on the C part of loader. Some of this will disappear, and the crude structure support will most likely be replaced by full-blown OOP support already present on FICL, but not installed by default. But it was getting increasingly inconvenient to keep this separate on my tree, and I already lost lots of work once because of the hurdles, so commit this. Anyway, it makes support.4th more structured, and I'm not proceeding with the work on it any time soon, unfortunately.
* The kernel is now known as `kernel.ko' and it and its matching modulesobrien2000-09-051-2/+2
| | | | live in ``/boot/kernel/''.
* Rename the loadable nullfs kernel module: null -> nullfssheldonh2000-07-281-1/+1
|
* Add randomdev_load="NO"ache2000-06-291-0/+1
|
* Add wx and ispfw loadable module defaults.mjacob2000-06-171-0/+2
|
* Revert to 1.8dcs2000-06-141-23/+23
|
* With apologies to dcs, temporarily comment out the version check code. Itpeter2000-06-141-23/+23
| | | | | | | | | | | | | | | is failing for everybody that I have spoken with that has tried it. FreeBSD/i386 bootstrap loader, Revision 0.8 (root@outback.netplex.com.au, Tue Jun 13 23:26:49 PDT 2000) Loader version 0.3+ required Aborted! start not found Note that the 0.3+ message is from inside the arch-alpha block, not the i386 block of code. And even then, 0.8 is higher than 0.3. This prevents the rest of the loader.conf stuff working. :-/
* Borrow phk's axe and apply the next stage of config(8)'s evolution.peter2000-06-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use Warner Losh's "hint" driver to decode ascii strings to fill the resource table at boot time. config(8) no longer generates an ioconf.c table - ie: the configuration no longer has to be compiled into the kernel. You can reconfigure your isa devices with the likes of this at loader(8) time: set hint.ed.0.port=0x320 userconfig will be rewritten to use this style interface one day and will move to /boot/userconfig.4th or something like that. It is still possible to statically compile in a set of hints into a kernel if you do not wish to use loader(8). See the "hints" directive in GENERIC as an example. All device wiring has been moved out of config(8). There is a set of helper scripts (see i386/conf/gethints.pl, and the same for alpha and pc98) that extract the 'at isa? port foo irq bar' from the old files and produces a hints file. If you install this file as /boot/device.hints (and update /boot/defaults/loader.conf - You can do a build/install in sys/boot) then loader will load it automatically for you. You can also compile in the hints directly with: hints "device.hints" as well. There are a few things that I'm not too happy with yet. Under this scheme, things like LINT would no longer be useful as "documentation" of settings. I have renamed this file to 'NOTES' and stored the example hints strings in it. However... this is not something that config(8) understands, so there is a script that extracts the build-specific data from the documentation file (NOTES) to produce a LINT that can be config'ed and built. A stack of man4 pages will need updating. :-/ Also, since there is no longer a difference between 'device' and 'pseudo-device' I collapsed the two together, and the resulting 'device' takes a 'number of units' for devices that still have it statically allocated. eg: 'device fe 4' will compile the fe driver with NFE set to 4. You can then set hints for 4 units (0 - 3). Also note that 'device fe0' will be interpreted as "zero units of 'fe'" which would be bad, so there is a config warning for this. This is only needed for old drivers that still have static limits on numbers of units. All the statically limited drivers that I could find were marked. Please exercise EXTREME CAUTION when transitioning! Moral support by: phk, msmith, dfr, asmodai, imp, and others
* The word environment? returns a flag indicating whether the variabledcs2000-06-121-7/+23
| | | | | | was found or not. Fix it's usage. Alas, it caused no problem before, besides leaving garbage in the stack, because refill, used by [if] [else] [then], was broken.
* Put some version checking.dcs2000-06-071-0/+8
|
* Modify boot-conf so it can take a kernel or directory name asdcs2000-06-071-4/+122
| | | | | | | | | | a parameter and dtrt. Also, make boot-conf always unload first. There wasn't really any point in not doing this, as the kernel _has_ to be loaded before any other modules. Tested by: dwhite
* Remove AGAIN definition, as FICL 2.04 provides it.dcs2000-06-071-3/+11
| | | | | | Add strlen, to help handling data generated by C code. Add 2>r 2r>, because OO programming without them sucks.
* Add the udbp modulen_hibma2000-05-021-0/+1
|
* Add driver support for the Aironet 4500/4800 series wireless 802.11wpaul2000-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.
* Add device driver support for USB ethernet adapters based on the CATCwpaul2000-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.
* Add device driver support for USB ethernet adapters based on thewpaul2000-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
* This commit adds device driver support for the ADMtek AN986 Pegasuswpaul1999-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
* Close PR #15422; fix loader.conf to reflect new driver support (oldwpaul1999-12-231-5/+2
| | | | | | tulip clone NICs merged into if_dc driver). PR: conf/15422
* Update the sample for $init_path to reflect the kernel default.msmith1999-12-071-1/+2
|
* Make some examples reflect defaults.dcs1999-12-071-7/+7
|
* Add bus suffix to mii.dcs1999-12-021-1/+1
|
* Add if_ prefix to network drivers.dcs1999-12-021-14/+14
|
* Belatedly add splash_pcx_load to the documented variables. Reworddcs1999-11-261-1/+7
| | | | splash_bmp_load.
* Activates password protection (if a password is defined).dcs1999-11-241-0/+4
| | | | Adds $FreeBSD$.
* Add silly password feature. If people want to depend on a flaweddcs1999-11-243-14/+101
| | | | | | | security measures, so be it. It costs us almost nothing. Document some code in support.4th that I was unable to understand just by reading.
* Add comments on what it the USB modules are. Add the usb module.n_hibma1999-11-221-5/+8
| | | | | | The USB module contains the OHCI and UHCI controllers as well. Sticking them into separate modules might be possible after I have untangled the mess.
* Change the name of the modules from <name>_mod to <name>n_hibma1999-11-171-5/+0
| | | | Suggested by: David O'Brien <obrien@FreeBSD.ORG>
* Add the USB modules.n_hibma1999-11-161-0/+15
|
OpenPOWER on IntegriCloud