david/ipxe
Archived
1
0
Commit Graph

255 Commits

Author SHA1 Message Date
Michael Brown
66f7bcc785 Tidied up debug messages 2007-01-08 03:34:06 +00:00
Michael Brown
a6ba48e51e Added debugging statements 2007-01-08 03:04:54 +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
359c888aec Remove obsolete includes 2007-01-08 02:39:56 +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
36c1e1aa57 Renamed undi.c to undinet.c. (undi.c will become the UNDI PCI driver) 2007-01-08 02:02:07 +00:00
Michael Brown
234d81728a Obsolete 2007-01-08 02:00:55 +00:00
Michael Brown
d3558fdd3a Remove accidentally checked-in code 2007-01-07 19:05:28 +00:00
Michael Brown
85a41b25fe Move START_UNDI, UNDI_STARTUP, UNDI_INITIALIZE and
UNDI_GET_INFORMATION calls into drivers/net/undi.c.  undi_probe() now
gets given a pxe_device representing a PXE stack that has been loaded
into memory but not initialised in any way.
2007-01-07 19:02:17 +00:00
Michael Brown
23cb837951 Remember to enable/disable the interrupt at the PIC.
Handle failures in undi_open() properly.
2007-01-07 13:31:39 +00:00
Michael Brown
9ab5c0dde7 Remove redundant debug message 2007-01-05 16:15:50 +00:00
Michael Brown
fa9055197d UNDI loader routine now works 2007-01-05 16:11:05 +00:00
Michael Brown
477a70697a Added PnP BIOS scanning code, separated out from the UNDI driver 2007-01-05 16:10:03 +00:00
Marty Connor
7dee2556f4 Fixed typo 2007-01-05 16:09:47 +00:00
Michael Brown
9780fef360 Partial implementation of UNDI loader caller. 2007-01-05 03:24:39 +00:00
Michael Brown
0638945c7e Add PXE driver-scanning code, capable of locating all PXE ROMs in a system
and matching them up to (e.g. PCI) devices.
2007-01-05 01:52:06 +00:00
Michael Brown
ef50ea0b2b Renamed undi_net.c to undi.c. 2007-01-04 19:43:35 +00:00
Michael Brown
6cf488dcf7 Obsolete; net driver functionality is now in undi_net.c and bus driver
functionality is now in pxebus.c.  (Not all bus functionality is ported
across yet.)
2007-01-04 19:42:05 +00:00
Michael Brown
7e07dfb2f4 Added PXE bus driver (with support only for using PXE structures found
lying about in memory, not for loading from ROM), and UNDI net driver.
2007-01-04 19:38:34 +00:00
Michael Brown
e28db95de6 Obsolete 2007-01-04 19:37:31 +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
de2fc50f4c Add as a separate file so that we can do "make bin/xxxx.kpxe" rather than
having to edit PXELOADER_KEEP_ALL as a config option.
2007-01-04 19:35:10 +00:00
Michael Brown
290c5ee779 Don't automatically call gateA20_set() when returning from a real-mode
call.
2007-01-04 04:32:18 +00:00
Michael Brown
f58f193633 Engage brain: since when was zero >= 0x80 ? 2006-12-21 05:15:26 +00:00
Michael Brown
9c3b4e5b0b Some BIOSes return 0xe0 for extended characters. Just assume that
anything over 0x80 is an extended character.
2006-12-21 00:07:48 +00:00
Michael Brown
dbb7b30cca Return ANSI sequences for special keys 2006-12-20 23:42:28 +00:00
Michael Brown
43d976edd0 Prevent NULL from ever pointing to some real code or data. (This was
causing the serial console to ignore input, because it happened to end up
linked with serial_ischar() at address 0, which core/console.c decided was
invalid).
2006-12-20 20:28:20 +00:00
Michael Brown
0aa1223264 Optimise bios_putchar for speed(!) by avoiding two separate real-mode
calls.  This does make a visible difference when clearing the screen with
werase() inside bochs or qemu.
2006-12-19 01:15:05 +00:00
Michael Brown
8b3a4c9862 Add basic ANSI escape sequence support to BIOS console 2006-12-18 01:19:38 +00:00
Michael Brown
8a45f619a9 Fix building on gas versions that don't auto-insert addr32 prefixes 2006-12-12 19:07:18 +00:00
Michael Brown
8bff0f0619 Avoid draining the keyboard buffer during gateA20_set(). It shouldn't
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.
2006-12-05 09:45:39 +00:00
Michael Brown
88e38fa148 We don't actually have a stdio.h header file. Our printf() functions are
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.
2006-09-27 10:58:14 +00:00
Marty Connor
6ac78f6aff added stdio.h to includes for DBG compilation 2006-09-27 05:57:06 +00:00
Marty Connor
c4964c3e3a fix args to _disable routine 2006-09-19 15:01:16 +00:00
Marty Connor
56a3ff7202 get rid of compile warnings (except intentionally generated ones) 2006-09-14 20:54:05 +00:00
Marty Connor
c30623b739 fix DBG macro unknown variable 2006-09-14 20:34:53 +00:00
Michael Brown
0566ab2a2f Added geometry-guessing code based on the partition table 2006-09-08 22:22:03 +00:00
Michael Brown
78dd963c1f Check to see if we've reached the end of the map before attempting to
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...)
2006-08-31 13:25:45 +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
40724431e8 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-26 23:42:02 +00:00
Michael Brown
19883779ba Use TEXT16_CODE() rather than manually specifying ".code16" etc, since
our manual ".code32" will break a KEEP_IT_REAL build.
2006-08-24 18:43:28 +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
4afc494b83 Both the !PXE and PXENV+ structures must be paragraph-aligned 2006-08-09 18:22:25 +00:00
Michael Brown
fd07f56f0d Note to self: learn to count. 2006-08-09 00:56:07 +00:00
Michael Brown
843bcc291d Added missing __from_text16()s when passing pointers to PXE NBP. 2006-08-09 00:39:21 +00:00