david/ipxe
Archived
1
0
Commit Graph

99 Commits

Author SHA1 Message Date
Michael Brown
687c1e3227 Nothing (not even hidemem.c) uses this file! 2007-01-12 02:45:46 +00:00
Michael Brown
ddbc60b5ae Whoever put together the grub multiboot.h header is insane. 2007-01-11 21:20:27 +00:00
Michael Brown
200d92c76d Avoid namespace clashes 2007-01-11 19:42:26 +00:00
Michael Brown
bcc98c78b8 Added fields present in the documentation but not in the header file. 2007-01-11 19:41:13 +00:00
Michael Brown
9196e9069c Add PHYS_CODE, for use as in __asm__ ( PHYS_CODE ( ... ) ), comparable
to the REAL_CODE interface.
2007-01-11 18:40:46 +00:00
Michael Brown
143e3b84a4 Downloaded from current grub CVS. 2007-01-11 16:22:03 +00:00
Michael Brown
ceca6b185c Added user_to_phys() and memset_user(). 2007-01-11 14:27:27 +00:00
Michael Brown
c980cdd0aa Move memmap.h out of arch/i386; it no longer contains anything
architecture-dependent and is needed by the ELF code.
2007-01-11 14:08:44 +00:00
Michael Brown
c6a4055fae Add phys_to_user() and copy_user(). 2007-01-11 14:01:20 +00:00
Michael Brown
fdc97499bf Add device description fields to struct device. 2007-01-10 15:27:48 +00:00
Michael Brown
6b09dd8244 undipci_probe() has to calculate busdevfn anyway, so we may as well pass
it directly to undi_load_pci().
2007-01-09 02:58:07 +00:00
Michael Brown
937289cdc8 Provide storage for an undi_device structure representing the preloaded
UNDI stack.
2007-01-09 02:29:18 +00:00
Michael Brown
cea2221737 Use fixed-width fields in struct undi_device, so that pxeprefix.S will be
able to populate the structure.
2007-01-09 01:41:26 +00:00
Michael Brown
239965ff3b Added missing includes 2007-01-08 03:03:42 +00:00
Michael Brown
6115356859 Added missing declarations 2007-01-08 02:51:27 +00:00
Michael Brown
aff96c13d2 Added missing include 2007-01-08 02:51:04 +00:00
Michael Brown
afc01a1a7f Split UNDI load/unload out into undiload.c. 2007-01-08 02:48:17 +00:00
Michael Brown
6fc75f659b Separated out UNDI ROM location code into undirom.c, and use struct
undi_rom rather than struct pxe_driver.  (This is part of the naming
consistency fixes).
2007-01-08 02:38:10 +00:00
Michael Brown
675fe200e5 Use "struct undi_device" instead of "struct pxe_device", and use the
function prefix "undinet_" and the variable name "undinic" in undinet.c,
so that we can reserve the variable name "undi" for a struct undi_device.

The idea is that we preserve the Etherboot 5.4 convention that the "UNDI"
code refers to our using an underlying UNDI stack, while the "PXE" code
refers to our providing a PXE API.
2007-01-08 02:24:53 +00:00
Michael Brown
477a70697a Added PnP BIOS scanning code, separated out from the UNDI driver 2007-01-05 16:10:03 +00:00
Michael Brown
9780fef360 Partial implementation of UNDI loader caller. 2007-01-05 03:24:39 +00:00
Michael Brown
70acce06e4 This file is no longer used 2007-01-04 19:36:31 +00:00
Michael Brown
b12cd68726 Ripped out everything except the ability to send EOI to the PIC. 2007-01-04 19:36:18 +00:00
Michael Brown
0566ab2a2f Added geometry-guessing code based on the partition table 2006-09-08 22:22:03 +00:00
Michael Brown
5a54225aef Added support for INT 13,15; NTLDR calls it (though it may not
actually do anything with the result, since it carried on using us
even when we returned failure).
2006-08-27 01:22:01 +00:00
Michael Brown
6abfaa153b Towards making KEEP_IT_REAL work again.
Fix bug that caused over-allocation of .text16 and .data16 memory areas
by a factor of 16.
2006-08-24 13:18:05 +00:00
Michael Brown
6fd1bd0510 Added missing check-in 2006-06-09 10:19:17 +00:00
Michael Brown
fdf62528ca It's astonishing how long really fundamental bugs can survive without
being noticed...
2006-06-08 15:06:09 +00:00
Michael Brown
191a906338 Fix some remarkably obvious mistakes in pcidirect.h 2006-06-08 14:57:04 +00:00
Michael Brown
e4f8d6eed7 Add a "count" field to struct memory_map. 2006-05-25 00:00:30 +00:00
Michael Brown
986f6ffff1 Define a struct memory_map with a fixed number of entries, rather than
requiring each caller to decide how many entries it wants to permit.
2006-05-24 14:41:27 +00:00
Michael Brown
edcf89e2b0 Remove the automatic segment register save and restore; most users of
REAL_CODE() don't need it.
2006-05-24 14:11:36 +00:00
Michael Brown
02cf755f3f Removed REAL_EXEC(); there is no longer any code using it. 2006-05-24 14:10:15 +00:00
Michael Brown
103aff3ae2 Added potentially required "\n\t" on the end of asm_code_str 2006-05-24 14:06:28 +00:00
Michael Brown
7a53d07027 Split out REAL_CODE() from REAL_EXEC(), preparatory to removing REAL_EXEC
completely.
2006-05-24 09:51:04 +00:00
Michael Brown
83d80d9e79 Remove references to obsoleted REAL_CALL from documentation. 2006-05-24 09:16:48 +00:00
Michael Brown
3b525385af Removed REAL_FRAGMENT and REAL_CALL, and left just REAL_EXEC (which is
the only one we actually use).  This allows REAL_EXEC fragments to
contain proper references to constraints (e.g. "%w0"), rather than having
to force the use of specific registers.

Note that the "num_constraints" parameter is now completely obsolete, and
that we can probably reduce the syntax to something like
  __asm__ __volatile__ ( REAL_CODE ( "asm statements" )
                         : output constraints
                         : input constraints
                         : clobber );
which would look much more natural, and avoid the need to always specify
a clobber list.


Add userptr_t to libkir.h, to allow it to at least compile.
2006-05-24 09:14:44 +00:00
Michael Brown
77a65075a6 Replaced memsizes.c with smaller memmap.c, taking advantage of __data16,
and creating a memory map that's easier to work with than the E820 map.
2006-05-24 01:37:46 +00:00
Michael Brown
897313007b Add __{text,data}16_array, since there's no way I can see to make the
usual __{text,data}16 trick work with arrays.  gcc seems to accept the
__asm__ ( asmlabel ) only after the [] of the array declaration, not
before.
2006-05-23 23:42:45 +00:00
Michael Brown
d48d0fb1bb Add the concept of a "user pointer" (similar to the void __user * in
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).
2006-05-19 15:06:51 +00:00
Michael Brown
0ab92faedb Use typeof(sizeof(...)) to define a size_t. This stops gcc complaining
about format errors for %zX arguments.
2006-05-19 14:51:59 +00:00
Michael Brown
6b6096d28b Strip down i386 PCI configuration space I/O to the bare minimum. A
typical build will now include 880 bytes of PCI support code, compared to
2327 bytes in Etherboot 5.4.

(There is a slight cost of around 5 extra bytes per access to a
non-constant config space address; this should be an overall win.
Driver-specific accesses will usually be to constant addresses, for
which there is no additional cost.)
2006-05-17 01:12:11 +00:00
Michael Brown
295e11b2b0 Add INT 13,41 (extensions installation check). LILO's MBR now uses
linear calls to load the MS-DOS boot sector in my test setup.
2006-05-14 23:46:28 +00:00
Michael Brown
4435667a00 Add int13_boot(), to allow booting from INT 13 emulated drives. 2006-05-14 13:44:47 +00:00
Michael Brown
b4f941b257 Specify attributes on .text16. 2006-05-14 13:39:27 +00:00
Michael Brown
2421723a15 Rewrote printf and friends to better support standard C semantics. 2006-05-14 02:51:55 +00:00
Michael Brown
5080668704 Provide access to rm_cs and rm_ds from protected-mode code. 2006-05-13 11:45:31 +00:00
Michael Brown
dc8d429ec6 Provide a global counter for the number of interrupts hooked. 2006-05-13 11:44:53 +00:00
Michael Brown
d822b3d4cd Define BIOS data segment in bios.h 2006-05-13 11:43:07 +00:00
Michael Brown
a27defa483 Add flag definitions. 2006-05-13 11:42:07 +00:00