Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Optimise bios_putchar for speed(!) by avoiding two separate real-mode | Michael Brown | 2006-12-19 | 1 | -11/+16 |
| | | | | | calls. This does make a visible difference when clearing the screen with werase() inside bochs or qemu. | ||||
* | Add basic ANSI escape sequence support to BIOS console | Michael Brown | 2006-12-18 | 1 | -1/+139 |
| | |||||
* | Fix building on gas versions that don't auto-insert addr32 prefixes | Michael Brown | 2006-12-12 | 1 | -3/+3 |
| | |||||
* | Avoid draining the keyboard buffer during gateA20_set(). It shouldn't | Michael Brown | 2006-12-05 | 1 | -8/+10 |
| | | | | | | | | | | | | | | | | | | | | technically be necessary, because the "enable A20" command requires only that the keyboard controller is ready to accept input (i.e. that its input buffer is empty), and shouldn't also require that the keyboard is ready to send output (i.e. that its output buffer is also empty). See http://www.smsc.com/main/tools/io-bios/42i.pdf section 3.1 ("Command Invocation") for a justification. gateA20_set() is called on every real-mode transition (in case some idiot piece of external code such as Intel's PXE stack decided it would be fun to re-disable A20), so draining the keyboard buffer means that we end up losing keypresses on some systems. In particular, this makes typing at the command line almost impossible, and causes Etherboot to ignore Ctrl-Alt-Del. We should really implement a gateA20_test() function to verify that gate A20 has been correctly enabled, and think about adding other commonly-used methods such as Fast Gate A20. | ||||
* | We don't actually have a stdio.h header file. Our printf() functions are | Michael Brown | 2006-09-27 | 6 | -6/+0 |
| | | | | | | | | defined in vsprintf.h. (This may change, since vsprintf.h is a non-standard name, but for now it's the one to use.) There should be no need to include vsprintf.h just for DBG() statements, since include/compiler.h forces it in for a debug build anyway. | ||||
* | added stdio.h to includes for DBG compilation | Marty Connor | 2006-09-27 | 6 | -0/+6 |
| | |||||
* | fix args to _disable routine | Marty Connor | 2006-09-19 | 1 | -2/+1 |
| | |||||
* | get rid of compile warnings (except intentionally generated ones) | Marty Connor | 2006-09-14 | 1 | -5/+5 |
| | |||||
* | fix DBG macro unknown variable | Marty Connor | 2006-09-14 | 1 | -5/+5 |
| | |||||
* | Added geometry-guessing code based on the partition table | Michael Brown | 2006-09-09 | 2 | -11/+91 |
| | |||||
* | Check to see if we've reached the end of the map before attempting to | Michael Brown | 2006-08-31 | 1 | -0/+5 |
| | | | | | | skip past an empty region, otherwise we end up generating an infinitely long e820 map. (Yes, there *are* real systems that provide e820 maps with a zero-length region at the end...) | ||||
* | Added support for INT 13,15; NTLDR calls it (though it may not | Michael Brown | 2006-08-27 | 1 | -0/+18 |
| | | | | | actually do anything with the result, since it carried on using us even when we returned failure). | ||||
* | Added support for INT 13,15; NTLDR calls it (though it may not | Michael Brown | 2006-08-27 | 1 | -1/+20 |
| | | | | | actually do anything with the result, since it carried on using us even when we returned failure). | ||||
* | Use TEXT16_CODE() rather than manually specifying ".code16" etc, since | Michael Brown | 2006-08-24 | 1 | -18/+14 |
| | | | | our manual ".code32" will break a KEEP_IT_REAL build. | ||||
* | Towards making KEEP_IT_REAL work again. | Michael Brown | 2006-08-24 | 7 | -33/+261 |
| | | | | | Fix bug that caused over-allocation of .text16 and .data16 memory areas by a factor of 16. | ||||
* | Both the !PXE and PXENV+ structures must be paragraph-aligned | Michael Brown | 2006-08-09 | 1 | -0/+2 |
| | |||||
* | Note to self: learn to count. | Michael Brown | 2006-08-09 | 1 | -3/+3 |
| | |||||
* | Added missing __from_text16()s when passing pointers to PXE NBP. | Michael Brown | 2006-08-09 | 1 | -1/+3 |
| | |||||
* | pxe_int_1a is needed by pxe_call.c | Michael Brown | 2006-08-09 | 1 | -0/+1 |
| | |||||
* | Added (not yet tested) PXE API entry point and support functions. | Michael Brown | 2006-08-08 | 2 | -0/+300 |
| | |||||
* | Updated PXE UDP implementation to use the new Etherboot UDP API. | Michael Brown | 2006-08-03 | 2 | -0/+291 |
| | | | | | | | Updated PXE API dispatcher to use copy_{to,from}_user, and moved to arch/i386 since the implementation is quite architecture-dependent. (The individual PXE API calls can be largely architecture-independent.) | ||||
* | Add "addr32" required explicitly by older gas. | Michael Brown | 2006-06-12 | 1 | -1/+1 |
| | |||||
* | Added null trap code for debugging. (Must be included by adding | Michael Brown | 2006-06-11 | 2 | -0/+49 |
| | | | | --nulltrap to the make target at the moment.) | ||||
* | Windows Server 2003 sulks if we feed it an empty region in base memory | Michael Brown | 2006-06-09 | 1 | -4/+42 |
| | | | | as a result of our memory map editing, so strip out any empty regions. | ||||
* | Added missing check-in | Michael Brown | 2006-06-09 | 1 | -0/+16 |
| | |||||
* | Fix bug with >256 cylinders. | Michael Brown | 2006-06-08 | 1 | -15/+18 |
| | | | | | | | | | Allow our functions to return a non-zero, non-error status (since the INT 13 Extensions Check has to return the API version in the register that is otherwise always used for the error code). Report a non-zero API version from the INT 13 Extensions Check; GRUB now uses extended reads. | ||||
* | It's astonishing how long really fundamental bugs can survive without | Michael Brown | 2006-06-08 | 1 | -2/+2 |
| | | | | being noticed... | ||||
* | Fix some remarkably obvious mistakes in pcidirect.h | Michael Brown | 2006-06-08 | 1 | -3/+3 |
| | |||||
* | We now have just romprefix, rather than having isaprefix and pciprefix | Michael Brown | 2006-06-06 | 1 | -5/+2 |
| | |||||
* | Cut out almost all the optional code paths, drastically simplifying the | Michael Brown | 2006-06-06 | 1 | -375/+143 |
| | | | | | | | | | flow of control through this code. We now always add PCI and PnP headers even for ISA ROMs; there's no harm in doing so. UNDI loader is still missing. | ||||
* | Code segment may not be writable; create the temporary pointer to the GDT | Michael Brown | 2006-06-06 | 1 | -2/+7 |
| | | | | on the stack. | ||||
* | Calculate _rom_size for the ROM prefix | Michael Brown | 2006-06-06 | 1 | -0/+1 |
| | |||||
* | Tidy up comment | Michael Brown | 2006-05-28 | 1 | -4/+5 |
| | |||||
* | Fixed assembly on old versions of gas | Michael Brown | 2006-05-28 | 2 | -4/+4 |
| | |||||
* | Updated to work with libprefix. | Michael Brown | 2006-05-26 | 1 | -186/+179 |
| | |||||
* | Documented the fact that the prefix can prot_call(main) without | Michael Brown | 2006-05-26 | 1 | -0/+9 |
| | | | | worrying about its stack being destroyed during the Etherboot run. | ||||
* | Also hide base memory region from E820 map. | Michael Brown | 2006-05-25 | 1 | -2/+7 |
| | |||||
* | init_librm() and prot_call() are now real-mode far calls. | Michael Brown | 2006-05-25 | 4 | -90/+120 |
| | | | | | install() now calls relocate(), moves the protected-mode code to the new location, and calls hide_etherboot(). | ||||
* | Has been obsolete for a while. | Michael Brown | 2006-05-25 | 1 | -160/+0 |
| | |||||
* | Update relocate() to work with get_memmap(). | Michael Brown | 2006-05-25 | 1 | -66/+44 |
| | | | | | | Change semantics; relocate() now just finds a suitable location; it doesn't actually perform the relocation itself. Code in libprefix does the copy in flat real mode. | ||||
* | Fix printf format warning error | Michael Brown | 2006-05-25 | 1 | -2/+3 |
| | |||||
* | Why should pushal/popal put the registers on the stack in a logical | Michael Brown | 2006-05-25 | 1 | -1/+1 |
| | | | | order? | ||||
* | Typo. | Michael Brown | 2006-05-25 | 1 | -1/+1 |
| | |||||
* | Add a "count" field to struct memory_map. | Michael Brown | 2006-05-25 | 2 | -6/+11 |
| | |||||
* | Define a struct memory_map with a fixed number of entries, rather than | Michael Brown | 2006-05-24 | 2 | -13/+21 |
| | | | | requiring each caller to decide how many entries it wants to permit. | ||||
* | Remove the automatic segment register save and restore; most users of | Michael Brown | 2006-05-24 | 1 | -8/+0 |
| | | | | REAL_CODE() don't need it. | ||||
* | Removed REAL_EXEC(); there is no longer any code using it. | Michael Brown | 2006-05-24 | 3 | -44/+14 |
| | |||||
* | Added potentially required "\n\t" on the end of asm_code_str | Michael Brown | 2006-05-24 | 1 | -14/+1 |
| | |||||
* | NBI is due for removal | Michael Brown | 2006-05-24 | 1 | -0/+5 |
| | |||||
* | Will be replaced with a block-device implementation. | Michael Brown | 2006-05-24 | 1 | -0/+5 |
| |