summaryrefslogtreecommitdiffstats
path: root/sys/boot
Commit message (Collapse)AuthorAgeFilesLines
* OK, fload/fexec work properly when both compiling and interpretingjkh1998-11-071-11/+9
| | | | now. Gack.
* switch words to default mode.jkh1998-11-061-4/+4
|
* Submit better fix to the prompt bug.jkh1998-11-062-3/+3
|
* Make fexists/fload work with existing string literals instead. Doingjkh1998-11-062-41/+9
| | | | my own string literal handling is just too wonky.
* Argh, I had this right[er] before. More commits to follow.jkh1998-11-061-2/+2
|
* Use proper literal names.jkh1998-11-061-2/+2
|
* Ack. Create parseable command tail properly, and eat args out of the TIB.msmith1998-11-061-2/+5
|
* Don't not print the prompt string; not doing this has funny side-effects.msmith1998-11-062-4/+6
| | | | Make the prompt an empty string instead.
* Don't use the poxy vmGetString interface (who uses counted strings thesemsmith1998-11-061-7/+23
| | | | days?), get the input buffer ourselves. Add some debugging code.
* Make use of BIOS int 0x13 extensions configurable, and disabledrnordier1998-11-055-9/+20
| | | | by default.
* Remember a bit more of my forth and do:jkh1998-11-054-16/+59
| | | | | | | | | 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).
* 1. rebuild all elements of testmain properly for safety.jkh1998-11-053-7/+99
| | | | 2. add fload and key prims for doing simple file and terminal I/O, respectively
* Explicitly invoke perl to run the softwords.pl script in case themsmith1998-11-051-2/+2
| | | | | script is not executable. Submitted by: Don Lewis <Don.Lewis@tsc.tdk.com>
* Improve the assertion testing for successful softword compilation.msmith1998-11-041-4/+1
| | | | The excessive use of assert() vs. robust error checking is annoying.
* Turn off -g accidentally left in from testing.msmith1998-11-041-3/+3
|
* Fix includes; we were still pulling in <stdlib.h> in some places.msmith1998-11-0410-34/+54
| | | | | Support building a standalone interpreter with 'make testmain', remove win32 and egregious gets() in testmain.c
* Use a smaller default dictionary to waste less space.msmith1998-11-041-2/+2
|
* Respect ${.OBJDIR} properly when looking for libficl.ajkh1998-11-041-1/+5
|
* Add required parts for BootForth building (currently disabled andmsmith1998-11-041-5/+10
| | | | | untested). Only suitable for i386 at the moment, as we are missing setjmp/longjmp on the Alpha.
* Make this work in the libstand environment; don't use stdio/stdlib headers.msmith1998-11-047-30/+12
|
* Add BootForth hooks; if BOOT_FORTH is defined, pass every line readmsmith1998-11-044-5/+155
| | | | | | | 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).
* Include "bootstrap.h" to get a definition for bcache_devdata.msmith1998-11-031-1/+2
| | | | Submitted by: jkh
* Add the Ficl (Forth Inspired Command Language) interpreter. If all goes well,msmith1998-11-0323-2/+9740
| | | | | | | | | | | | | | | | | | | this will allow us to manage bloat in the loader by using a bytecoded HLL rather than lots of C code. It also offers an opportunity for vendors or others with special applications to significantly customise the boot process without having to commit to a divergent code branch. This early commit is to allow others to experiment with the most effective mechanisms for integrating FICL with the loader as it currently stands. Ficl is distributed with the following license conditions: "Ficl is freeware. Use it in any way that you like, with the understanding that the code is not supported." All source files contain authorship attributions. Obtained from: John Sadler (john_sadler@alum.mit.edu)
* Ok, the entry aging algorithm sucked; 1s time resolution is not enough formsmith1998-11-021-7/+16
| | | | | LRU. Use a 31-bit counter instead. If we decide to do heavy I/O through the bootloader this will have to be revisited.
* Implement a simple LRU block cache. By default this is initialised to 16k,msmith1998-11-027-13/+278
| | | | | | | | | | | | | | 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.
* Revise a few comments.rnordier1998-11-022-14/+14
|
* Standardise on ';' as a component separator; it seems to be a little moremsmith1998-11-021-4/+4
| | | | common than ','.
* Ignore, rather than emulate, an i386 'hlt' instruction (though forrnordier1998-11-012-22/+22
| | | | | | | most practical purposes, this should be indistinguishable from a more strictly correct approach). Feedback and testing: msmith
* * Extend the memory available for the heap from 256k to 512k.dfr1998-10-318-20/+86
| | | | | | | | | * 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.
* - Add a new command 'lsdev' to list devices which might be likely to hostmsmith1998-10-318-22/+657
| | | | | | | | | | 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.
* Fix an uninitialized variable in the `dangerously dedicated disk' case.luoqi1998-10-301-1/+2
|
* Make the BTX loader much more quiet about what it's doing. This removesmsmith1998-10-303-54/+87
| | | | most of the "what the (*^&%(*^ was that?" stuff that normally flies by.
* Simplify the "is a character ready" test, so that we don't return a falsemsmith1998-10-281-4/+2
| | | | | | | negative for keypresses with zero ascii values. This is in line with the comconsole test, rather than being more ambitious. Submitted by: rnordier
* Avoid interruptions while talking to keyboard controller.rnordier1998-10-272-10/+14
|
* biosboot compatibility fix: change behavior of backspace in getstr().rnordier1998-10-272-8/+12
| | | | | | Noticed by: abial Optimize away a few bytes to make space for the above.
* Reserve some space for the stack in the region we recover from the initialmsmith1998-10-241-2/+3
| | | | | bootloader. Submitted by: dfr
* Clean the ${BASE}.sym file as well.msmith1998-10-231-2/+2
|
* Remove a debugging copy of offsetof() that snuck in.msmith1998-10-231-2/+1
|
* Enable the PCI BIOS PnP enumerator.msmith1998-10-231-3/+3
|
* PnP enumerator using the PCI BIOS. This is needlessly complex due to themsmith1998-10-233-6/+300
| | | | lack of a simple "enumerate all PCI devices" function.
* PnP BIOS enumerator; mostly useful for hunting PnP devices that are supportedmsmith1998-10-221-0/+290
| | | | by the system BIOS rather than supporting ISA PnP.
* Add a dependancy on the BTX crt0 objectmsmith1998-10-223-8/+6
| | | | | Add the biospnp handler to the pnp handler array Drop some old debugging code
* Add biospnp.cmsmith1998-10-221-2/+3
|
* Pop the return address off the stack before making a V86_CALLF call;msmith1998-10-221-2/+5
| | | | | this allows us to implement what look like C function calls from user space "directly" to v86 mode code. (Used for calling the PnP BIOS)
* Export an interface for presetting the ISA PnP read port address.msmith1998-10-223-46/+77
| | | | Make the EISA ID formatter generally available
* Bye-bye setdefs.msmith1998-10-212-90/+0
|
* - Enable PnP and ISA PnP code.msmith1998-10-213-26/+59
| | | | | | | | - Use the ISA PnP enumerator. - Use the new linker set code, throw out the gensetdefs stuff. - Produce an intermediate loader image that has symbols stripped, to aid - in debugging. - Supply ISA port access functions required for ISA PnP
* Don't depend on being part of the kernel tree. If we are, use the kernel'smsmith1998-10-211-5/+8
| | | | <machine> includes rather than the system's.
* Make ISA PnP work. This successfully enumerates as many ISA devices as Imsmith1998-10-216-127/+303
| | | | | | | | | | | | 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.
* Make serial port, data format, and bps configurable.rnordier1998-10-204-12/+24
|
OpenPOWER on IntegriCloud