david/ipxe
david
/
ipxe
Archived
1
0
Fork 0
Commit Graph

160 Commits

Author SHA1 Message Date
Michael Brown 81d92c6d34 [efi] Add EFI image format and basic runtime environment
We have EFI APIs for CPU I/O, PCI I/O, timers, console I/O, user
access and user memory allocation.

EFI executables are created using the vanilla GNU toolchain, with the
EXE header handcrafted in assembly and relocations generated by a
custom efilink utility.
2008-10-13 10:24:14 +01:00
Michael Brown 3029eb0e84 [makefile] Reduce verbosity of various NON_AUTO_MEDIA rules 2008-10-10 03:57:31 +01:00
Michael Brown cdd619d11f [util] Don't die on undefined symbols in sortobjdump.pl
Undefined symbols shouldn't reach sortobjdump.pl, but if they do then it
is not a helpful place to report the error.
2008-10-10 03:42:22 +01:00
Michael Brown 96ea558e98 [util] Add optional debug messages to zbin.c 2008-10-10 03:42:08 +01:00
Michael Brown e817a347fb [makefile] Split config.h out into config/*.h and kill off mkconfig.pl 2008-10-08 02:17:32 +01:00
Eygene Ryabinkin 6de45ad4ae [util] Avoid calling fclose(NULL) in zbin.c
Must check that argument to a fclose() is not NULL -- we can get to the
'err' label when file was not opened.  fclose(NULL) is known to produce
core dump on some platforms and we don't want zbin to fail so loudly.

Signed-off-by: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
2008-09-04 11:29:37 +01:00
Michael Brown bd5189a96d [util] Fix interpretation of short jumps in Option::ROM
Option::ROM was assuming that ROM images using a short jump
instruction for the init entry point would have a zero byte at offset
5; this is not necessarily true.
2008-08-27 20:36:30 +01:00
Michael Brown 23bca8f9d8 [util] Allow Option::ROM to understand and modify initialisation entry point
Add support for manipulating the jump instruction that forms the
option ROM initialisation entry point, so that mergerom.pl can treat
it just like other entry points.

Add support for merging the initialisation entry point (and IBM BOFM
table) to mergerom.pl; this is another slightly icky but unfortunately
necessary GPL vs. NDA workaround.  When mergerom.pl replaces an entry
point in the original ROM, it now fills in the corresponding entry
point in the merged ROM with the original value; this allows (for
example) a merged initialisation entry point to do some processing and
then jump back to the original entry point.
2008-08-15 04:10:35 +01:00
Michael Brown 12a37ab99e [util] Add mergerom.pl
This utility is required as a workaround for legal restrictions on
including GPL and non-GPL code within the same expansion ROM image.

While this is not encouraged, we are prepared to accept that
concatenation of ROM images and updating of the ROM header data
structures can be classed as "mere aggregation" within the terms of
the GPL.

If in any doubt, assume that you cannot include GPL and non-GPL code
within the same expansion ROM image.  Contact the Etherboot team for
clarification on your specific circumstances.
2008-07-31 06:28:46 +01:00
Michael Brown 6f73bb5e00 [util] Add Option::ROM library and rewrite disrom.pl to use it.
The Option::ROM module provides an easy way to read and edit fields
within option ROM headers.
2008-07-31 05:30:04 +01:00
Stefan Hajnoczi f866b17998 [util] config-local.h to avoid accidental commits
During development it is often handy to change the config.h options from
their defaults, for example to enable debugging features.

To prevent accidental commits of debugging config.h changes, mdc
suggested having a config-local.h that is excluded from source control.
This file acts as a temporary config.h and can override any of the
defaults.

This commit is an attempt to implement the config-local.h feature.

The config.h file now has the following as its last line:
/* @TRYSOURCE config-local.h */

The @TRYSOURCE directive causes config-local.h to be included at that
point in the file.  If config-local.h does not exist, no error will be
printed and parsing will continue as normal.  Therefore, mkconfig.pl is
"trying" to "source" config-local.h.
2008-06-05 00:45:33 +01:00
Michael Brown fad35829eb [Makefile] Use bin/VVVVDDDD.rom instead of bin/pci_VVVV_DDDD.rom
The generate-by-PCI-device-ID rules (bin/pci_VVVV_DDDD.rom) are generally
used for building actual ROM images to be burned, and the burning
utilities generally run under some DOS variant.  Change the filename from
pci_VVVV_DDDD.rom to VVVVDDDD.rom so that it is compatible with the DOS
8.3-character filename limit.
2008-03-06 15:37:34 +00:00
Michael Brown a1e243d504 Add bin/pci_VVVV_DDDD target to allow building ROM images without
needing to know the gPXE internal ROM name.
2007-11-19 20:14:20 +00:00
Michael Brown cb237819ca Produce no output unless -v is specified or an error occurs. 2007-07-17 01:59:48 +01:00
Michael Brown 19904804da Restore the "shared symbol found only in a single object should be
treated as being provided by that object" code.
2007-07-17 01:39:06 +01:00
Michael Brown 62d92348fe Added symbols that the DBG() macros will use. 2007-07-17 01:24:04 +01:00
Michael Brown c3290aae54 Use objdump -t for symcheck; it allows us to take the symbol section
into account (and so remove the false positives due to .tbl.* symbols).
2007-07-17 01:15:39 +01:00
Michael Brown 048bbeeebc Compressed ROM images now work. 2007-07-16 16:58:38 +01:00
Michael Brown a8780a4fe4 Added nrv2b binary to ignore list 2007-07-15 13:31:31 +01:00
Marty Connor 28d8d828b3 Rename .lilo extension to .lkrn and updated dependencies 2007-07-06 08:04:06 -04:00
Michael Brown 0f8d7d705d Rename .cvsignore files to .gitignore 2007-06-09 22:57:00 +01:00
Michael Brown a6d1815bc6 Obsolete for some time now. 2006-12-20 07:05:32 +00:00
Michael Brown 028bc034e4 Always update the PnP checksum, even if the ident string is not being set. 2006-08-24 17:56:46 +00:00
Michael Brown cddf8df8d4 Quick utility to pad floppy disk images for vmware/qemu 2006-08-23 03:07:41 +00:00
Dan Lynch ba2bfd54ed - modified length of password string to match visible field length
- value of n passed to wgetnstr should now be equivalent to output from strlen (i.e. length excluding NUL-terminating character)
2006-06-28 11:52:30 +00:00
Dan Lynch 2b15084388 - first check-in for mucurses_test.c
- added mucurses_test.c build targets
2006-06-27 17:31:01 +00:00
Michael Brown 8d0c5f3302 Use byte 6 for the checksum, rather than byte 5. (Byte 5 may be part of
the jmp instruction).
2006-06-06 15:29:14 +00:00
Michael Brown 1a60444fe4 Added netmask and gateway global options.
Added iSCSI testing.
2006-04-05 11:46:18 +00:00
Michael Brown 9ea782d339 Make pcap_inject non-static, so that its prototype doesn't conflict with
the real pcap_inject in the case where we do have it.
2006-04-05 11:44:05 +00:00
Michael Brown 90892d5ec7 Allow specifying the local IP address via --from. 2006-03-24 17:28:40 +00:00
Michael Brown 1c607470e3 Put in a substitute pcap_inject() function, since earlier versions of
libpcap are lacking the function.  For now, we always use the
substitute version, since there's no easy way to determine whether or
not we need it.
2006-03-24 16:43:12 +00:00
Michael Brown 7e61f38799 Moved "hello world" protocol implementation out of prototester.c and into
the first standalong uIP-based protocol module.
2006-03-23 22:37:05 +00:00
Michael Brown 99032becce Pick up the gPXE include files when building prototester. 2006-03-23 21:35:20 +00:00
Michael Brown a4a0244aa3 Moved uIP wrapper out of prototester.c and into proto/tcp.c. 2006-03-23 21:32:03 +00:00
Michael Brown eaf40883ff Add Makefile for hijack and prototester utilities. 2006-03-23 13:11:41 +00:00
Michael Brown 218c26ff2b Can now also print data sent by the remote side. 2006-03-23 13:06:08 +00:00
Michael Brown 0d506a5c6a Now capable of sending "Hello world!" via TCP. 2006-03-23 12:25:28 +00:00
Michael Brown 911486fe41 Added basic http-specific option parsing 2006-03-22 22:35:32 +00:00
Michael Brown 5263a5abf4 Started adding structure to allow for separate protocol tests, with
individual options.

Created the embryonic beginnings of a cleanly separated driver and
protocol stack API.
2006-03-22 21:25:35 +00:00
Michael Brown c32e83ad8d Skeleton version: contains device driver (connecting to network via
hijack daemon) and a functional but very ugly and very primitive
wrapper around uIP.

This passes proof-of-concept testing; it successfully initiates a TCP
connection and responds to pings.
2006-03-22 02:23:20 +00:00
Michael Brown c5a9c38606 Terminate cleanly on SIGINT or SIGHUP 2006-03-21 17:48:33 +00:00
Michael Brown e072baeb8c Use libpcap API to send/receive packets.
Include automatic filtering (based on source MAC address of first
transmitted packet).

Proven to successfully elicit a ping response from a remote host.
2006-03-21 16:50:25 +00:00
Michael Brown 4485df516c Basic structure in place: can daemonise, listen on a Unix domain
socket, accept new connections, open a network interface using libpcap
and forward (all) traffic.
2006-03-21 02:25:30 +00:00
Michael Brown 4e87543c74 Synced across updates from Etherboot 5.4 tree 2005-05-19 16:47:19 +00:00
Michael Brown cc73bba7ba Allow read-only symbols to be large 2005-05-03 12:34:52 +00:00
Michael Brown 7df2857248 Reduce large symbol warning threshold, now that most of the really
large symbols have been fixed.
2005-05-03 12:24:52 +00:00
Michael Brown 35ab3bf808 Report on misuses of shared symbols, and excessively large static symbols. 2005-05-02 15:21:12 +00:00
Michael Brown 88baf7a383 Tweaked to read more information (including symbol size) from blib.a 2005-05-02 13:49:54 +00:00
Michael Brown c8fc121890 Special handling for symbols of the form "xxx_end", to make table end
markers appear before the symbols that immediately follow the table.
2005-04-27 12:08:13 +00:00
Michael Brown 69f09ebdd8 Linker no longer provides start and end symbols for each table; these
markers are now static labels within the objects that refer to them.
2005-04-27 11:27:38 +00:00
Michael Brown d6930e6e40 Use symbol size as a third index, mainly so that zero-length symbols
(e.g. section start indicators) show up before the symbols they're
indicating the start of.
2005-04-27 10:54:33 +00:00
Michael Brown ac01cf4997 First version 2005-04-27 10:40:59 +00:00
Michael Brown d94cb57143 Fixed to properly catch multiply defined symbols. 2005-04-23 14:54:30 +00:00
Michael Brown 4e5f10790b First working version 2005-04-23 14:41:15 +00:00
Michael Brown 6e4888400c Avoid deleting .cvsignore 2005-04-17 16:24:36 +00:00
Michael Brown a107996c9a If we end up with fragments that are older than config.h, set the
timestamp on config.h to match the oldest fragment, to prevent make
from always attempting to rebuild the fragments.
2005-04-17 15:56:32 +00:00
Michael Brown 7b2a0cded1 First version 2005-04-17 15:25:09 +00:00
Michael Brown 0ff80b477d Merged mcb30-realmode-redesign back to HEAD 2005-04-08 15:01:17 +00:00
Michael Brown 8bb1866f24 lzhuf is obsolete and no longer used 2005-03-09 14:14:01 +00:00
Michael Brown 3d6123e69a Initial revision 2005-03-08 18:53:11 +00:00