summaryrefslogtreecommitdiffstats
path: root/src/arch/i386/interface
Commit message (Collapse)AuthorAgeFilesLines
* [PXEXT] Add FILE_API_CHECK API functionH. Peter Anvin2008-03-261-0/+5
| | | | | Add FILE_API_CHECK to the PXEXT API so the NBP can query the availability and status of the API.
* [PXEXT] Add PXENV_FILE_EXEC call to PXE extensions API.Michael Brown2008-03-041-0/+5
| | | | | | | | This allows pxelinux to execute arbitrary gPXE commands. This is remarkably unsafe (not least because some of the commands will assume full ownership of memory and do nasty things like edit the e820 map underneath the calling pxelinux), but it does allow access to the "sanboot" command.
* Added more verbose memory-map debugging.Michael Brown2007-09-211-0/+9
| | | | | Added redundant call to get_memmap() in int13_boot() immediately before jumping to boot sector, to assist in debugging.
* Auto-assign drive number only if set to 0xff; almost all applicationsMichael Brown2007-08-231-2/+3
| | | | require that we use drive 0x80, so it should probably be the default.
* Add PXE FILE API.Michael Brown2007-08-041-0/+25
|
* Applied a modified version of holger's regparm patches.Michael Brown2007-07-292-3/+3
|
* Don't overwrite %dl with a (potentially) modified drive number if weMichael Brown2007-07-251-1/+1
| | | | already handled the INT13 call.
* Remove INT 13,4b handler; it represents an incomplete feature (CD-ROMMichael Brown2007-07-191-35/+0Star
| | | | emulation support) for an unknown purpose, and breaks grub.
* Completed definition of struct int13_cdrom_specification, and moved toMichael Brown2007-07-191-9/+9
| | | | int13.h.
* Dump first 64 bytes of chained ISR when debugging is enabled.Michael Brown2007-07-101-0/+6
|
* We probably ought not to call INT13 with interrupts disabled.Michael Brown2007-07-101-0/+1
|
* Always increase number of BIOS drives when registeringMichael Brown2007-07-091-3/+5
|
* Change %dl fixup rules for INT13:Michael Brown2007-07-091-11/+16
| | | | | | INT 13,08 : read number of drives from 40:75 INT 13,15 : do nothing all others : restore original value of %dl
* Proof of concept; works, but has several hard-coded hacks.Michael Brown2007-07-091-7/+46
|
* Set CF by default, clear on success (rather than clearing and settingMichael Brown2007-07-091-2/+4
| | | | on failure).
* Add (untested) UNDI loader C-level implementation.Michael Brown2007-07-041-0/+25
|
* Separate out pxe_start_nbp() from pxe_image.c into pxe_call.cMichael Brown2007-06-301-0/+25
| | | | Implement PXENV_RESTART_TFTP.
* Split bootsector execution code out into bootsector.c.Michael Brown2007-01-291-69/+58Star
| | | | Added basic El Torito ISO image boot capability
* Select a PXE network device before starting PXE NBP.Michael Brown2007-01-142-56/+20Star
| | | | Move pxe_boot() code to pxe_image.c
* Add header for pxe_boot()Michael Brown2007-01-131-0/+1
|
* Allow boot sector to completely destroy real-mode stack, but stillMichael Brown2007-01-091-10/+15
| | | | manage to return control.
* Added debugging statementsMichael Brown2007-01-081-1/+19
|
* Fix building on gas versions that don't auto-insert addr32 prefixesMichael Brown2006-12-121-3/+3
|
* We don't actually have a stdio.h header file. Our printf() functions areMichael Brown2006-09-272-2/+0Star
| | | | | | | | 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 compilationMarty Connor2006-09-272-0/+2
|
* Added geometry-guessing code based on the partition tableMichael Brown2006-09-091-11/+52
|
* Added support for INT 13,15; NTLDR calls it (though it may notMichael Brown2006-08-271-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, sinceMichael Brown2006-08-241-18/+14Star
| | | | our manual ".code32" will break a KEEP_IT_REAL build.
* Both the !PXE and PXENV+ structures must be paragraph-alignedMichael Brown2006-08-091-0/+2
|
* Note to self: learn to count.Michael Brown2006-08-091-3/+3
|
* Added missing __from_text16()s when passing pointers to PXE NBP.Michael Brown2006-08-091-1/+3
|
* pxe_int_1a is needed by pxe_call.cMichael Brown2006-08-091-0/+1
|
* Added (not yet tested) PXE API entry point and support functions.Michael Brown2006-08-082-0/+300
|
* Updated PXE UDP implementation to use the new Etherboot UDP API.Michael Brown2006-08-031-0/+290
| | | | | | | 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.)
* Fix bug with >256 cylinders.Michael Brown2006-06-081-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.
* init_librm() and prot_call() are now real-mode far calls.Michael Brown2006-05-251-1/+2
| | | | | install() now calls relocate(), moves the protected-mode code to the new location, and calls hide_etherboot().
* Updated to REAL_CODE().Michael Brown2006-05-241-31/+38
| | | | | | int13_boot() now does its own segment register save and restore, ready for the removal of segment register restoration from the libkir generic code.
* Refactored to reduce code size; now down from 1304 to 1105 bytes.Michael Brown2006-05-201-120/+98Star
| | | | | | | | Tidied up debug messages; the log now contains one line per INT 13 operation, looking like INT 13,08 (80): Get drive parameters INT 13,02 (80): Read: C/H/S 0/47/14 = LBA 0xb9e <-> 1084:0000 (count 106)
* Add the concept of a "user pointer" (similar to the void __user * inMichael Brown2006-05-191-21/+13Star
| | | | | | | | | | | | | | | | | | | | the kernel), which encapsulates the information needed to refer to an external buffer. Under normal operation, this can just be a void * equivalent, but under -DKEEP_IT_REAL it would be a segoff_t equivalent. Use this concept to avoid the need for bounce buffers in int13.c, which reduces memory usage and opens up the possibility of using multi-sector reads. Extend the block-device API and the SCSI block device implementation to support multi-sector reads. Update iscsi.c to use user buffers. Move the obsolete portions of realmode.h to old_realmode.h. MS-DOS now boots an order of magnitude faster over iSCSI (~10 seconds from power-up to C:> prompt in bochs).
* Add INT 13,41 (extensions installation check). LILO's MBR now usesMichael Brown2006-05-151-0/+24
| | | | linear calls to load the MS-DOS boot sector in my test setup.
* Fix a couple of minor typos.Michael Brown2006-05-141-2/+2
|
* Also capture INT 19 as a failure path, to allow for boot sectors thatMichael Brown2006-05-141-3/+14
| | | | don't conform to BBS (e.g. the one created by mkdosfs).
* Add int13_boot(), to allow booting from INT 13 emulated drives.Michael Brown2006-05-141-0/+88
|
* Allow re-entrancy and provide a global counter of the number ofMichael Brown2006-05-131-0/+20
| | | | interrupts hooked.
* Add INT 13 emulation layer (which provides an interface to gPXE blockMichael Brown2006-05-131-0/+475
| | | | devices).
* (Redoing check-in lost by SourceForge's failure.)Michael Brown2006-05-131-0/+57
Add method for hooking real-mode interrupt vectors.