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

875 Commits

Author SHA1 Message Date
Michael Brown fb809da2df Remove some assumptions about DHCP obtaining only a single options block. 2007-11-21 04:48:18 +00:00
Michael Brown 8d18338ae7 Add PXE-required DHCP options to DHCPDISCOVER and DHCPREQUEST packets. 2007-11-21 03:57:30 +00:00
Michael Brown 26f3a09ccf Add UUID to DHCP request as option 97 (if available). 2007-11-21 03:29:53 +00:00
Michael Brown 899f5b8ab2 Added definition of a UUID and uuid_ntoa() (for debugging), and
implemented smbios_get_uuid().
2007-11-21 02:27:07 +00:00
Marty Connor 048a234dce Add errfile definition for new e1000.c 2007-11-18 10:45:20 -05:00
Marty Connor 8bd670301c Add ERRFILE information for e1000_main and e1000_hw, part of the new e1000 driver
It is likely we will rename e1000_main to e1000 when the new e1000 driver is debugged.
2007-11-18 09:51:21 -05:00
Michael Brown 44461b1854 Merge branch 'master' into 3leaf-delivery 2007-09-21 01:27:03 +01:00
Michael Brown 1e677b2024 Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-09-21 01:26:06 +01:00
Michael Brown 5793dbe96f Infinband requires longer link-layer addresses and headers than Ethernet. 2007-09-21 01:23:57 +01:00
Michael Brown 2ee76d0c93 Added defines for Infiniband files (which can't be committed to the
main tree yet, but reserving the error numbers now avoids problems later).
2007-09-21 01:19:04 +01:00
Michael Brown af303db75d Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
2007-09-21 01:15:58 +01:00
Michael Brown db124b1255 Add fls() for non-constant values. 2007-09-21 01:14:38 +01:00
Michael Brown f09173326c Moved iobuf.h assertions outside the static inline functions, so that
the assert message's file and line number gives some clue as to the
real location of the problem.

Added similar assertions to list.h.
2007-09-21 01:13:22 +01:00
Michael Brown 30717896f5 IB can't afford many RX buffers, because the MTU is so large. Reduce
the TCP window to compensate.
2007-09-18 07:02:41 +01:00
Michael Brown 2f23881856 Added arbel.c 2007-09-18 06:37:22 +01:00
Michael Brown 2c56ede6f8 Moved iobuf.h assertions outside the static inline functions, so that
the assert message's file and line number gives some clue as to the
real location of the problem.

Added similar assertions to list.h.
2007-09-17 18:38:04 +01:00
Michael Brown bdac591726 Some interesting packet corruption happening now. 2007-09-17 13:31:13 +01:00
Michael Brown 2ed1acb9e9 Broadcast GID is now calculated by IPoIB layer. 2007-09-17 11:50:25 +01:00
Michael Brown ab191e45db Unicasts seem to be working. :) 2007-09-17 10:39:30 +01:00
Michael Brown b3d3814c17 Obtains a response to the get path record! 2007-09-17 08:36:56 +01:00
Michael Brown e05a8cd4de Use pkey table access to determine broadcast GID directly. 2007-09-17 06:35:21 +01:00
Michael Brown 440e7926fb Dead code removal 2007-09-17 05:12:47 +01:00
Michael Brown 4e78a53cf2 IPoIB code separated out to ipoib.c. 2007-09-17 05:04:58 +01:00
Michael Brown 67836430e6 Read port GID directly using MAD IFC. 2007-09-17 02:54:15 +01:00
Michael Brown 3c6a6bdc5d Multicast join now works. 2007-09-17 00:24:44 +01:00
Michael Brown 7e85f0d296 create_qp() and destroy_qp() now written (but not tested). 2007-09-16 20:54:21 +01:00
Michael Brown 251cc84ed6 Started implementing create_qp() and destroy_qp(). 2007-09-16 19:03:24 +01:00
Michael Brown 6d15a193aa Add fls() for non-constant values. 2007-09-16 17:36:40 +01:00
Michael Brown b21d4ca21e Revert to dev_priv/owner_priv scheme, rather than container_of; it
makes it easier to put the generic allocation code into infiniband.c
2007-09-16 17:25:15 +01:00
Michael Brown e238bb1e43 destroy_cq() now implemented (not tested). 2007-09-16 14:39:51 +01:00
Michael Brown 156b409ccc Rearrange data structures to maximise embedding (and hence minimise
the number of separate allocations that need to be done).
2007-09-16 04:02:20 +01:00
Michael Brown 37fc40bc8c post_recv() now works, and we can pass data on the IPoIB queue pair
using entirely our own code.
2007-09-15 23:33:25 +01:00
Michael Brown 8deef093d9 Direct polling of TX completion queue now works. 2007-09-15 20:58:29 +01:00
Michael Brown 6a791649f0 Updated MLX_* accessor macros to use implicit type information. 2007-09-15 18:44:09 +01:00
Michael Brown a3a91fedc1 Started added poll_cq() verb.
Started reworking MLX_EXTRACT(), MLX_POPULATE() etc. to automatically
determine type information.
2007-09-15 15:40:35 +01:00
Michael Brown 970951666f arbel_post_send() has been observed to transmit a packet! 2007-09-15 02:53:05 +01:00
Michael Brown 8b27da9de1 Gets a response out of the hardware. (An error completion, to be precise.) 2007-09-15 01:35:07 +01:00
Michael Brown 38a73b55c4 Now at least compiles 2007-09-15 00:19:38 +01:00
Michael Brown 9d08b7c692 Starting to introduce an Infiniband device abstraction 2007-09-14 20:29:44 +01:00
Michael Brown 08e8dfd801 Now handling TX completions in our poll loop. 2007-09-14 11:10:25 +01:00
Michael Brown 30a19c3f1c Can now both send and receive packets. LL header format not yet
fixed; still using a quick hack-up just to be able to pass through
data.
2007-09-13 14:43:12 +01:00
Michael Brown 99411e36da Added netdev_priv() to ease Linux driver compatibility. 2007-09-13 13:34:38 +01:00
Michael Brown 7e4e5af462 Use RFC4390 whenever hardware address exceeds 16 bytes; this allows us
to construct DHCP packets suitable for Infiniband.
2007-09-13 01:53:04 +01:00
Michael Brown 7b6d11e713 Started IB driver rewrite 2007-09-12 22:17:43 +01:00
Holger Lubitz 5d6f6fb924 Merge branch 'master' into curses
Conflicts:

	src/include/compiler.h
	src/include/readline/readline.h

created by strings branch merge. resolved.
2007-08-23 23:15:54 +02:00
Michael Brown 746d0f8feb Merge commit 'holger/strings' 2007-08-23 21:51:57 +01:00
Holger Lubitz 8bb295e3fd use malloc attribute 2007-08-20 20:29:58 +02:00
Holger Lubitz 6f61e254dc use malloc attribute 2007-08-20 20:29:50 +02:00
Holger Lubitz 347ab9b8c2 use malloc attribute 2007-08-20 20:29:41 +02:00
Holger Lubitz c4285e148d use malloc attribute 2007-08-20 20:29:30 +02:00
Holger Lubitz 05708503e5 use malloc attribute 2007-08-20 20:29:23 +02:00
Holger Lubitz 9386263433 use malloc attribute 2007-08-20 20:29:09 +02:00
Holger Lubitz 2220e1a676 define malloc attribute 2007-08-20 20:28:11 +02:00
Holger Lubitz 2e88138b06 __nonnull changes 2007-08-20 00:35:07 +02:00
Holger Lubitz a0fbce4656 __nonnull changes 2007-08-20 00:34:59 +02:00
Holger Lubitz d0867b101d __nonnull changes 2007-08-20 00:34:46 +02:00
Holger Lubitz d2dd4b9e31 __nonnull changes 2007-08-20 00:34:39 +02:00
Holger Lubitz e1eefee16b __nonnull changes 2007-08-20 00:34:32 +02:00
Holger Lubitz 3859abb7de define __nonnull 2007-08-19 22:51:17 +02:00
Holger Lubitz e8b8991b84 define __pure and __const 2007-08-19 22:50:48 +02:00
Michael Brown db61b0a577 Added error IDs for all files in drivers/net; they're likely to need them. 2007-08-19 00:29:27 +01:00
Michael Brown a895fd0c15 Add barrier() primitive (was present in Eb5.4), used by some currently
out-of-tree driver code.
2007-08-18 18:04:50 +01:00
Michael Brown eff8b06eff Separate out arch-independent parts of stdint.h 2007-08-17 19:51:08 +01:00
Michael Brown 0a3c2b80ea Add start_timer_nodelay() 2007-08-13 10:59:00 -07:00
Michael Brown 54bf2621ed Add iBFT code derived from IBM document.
No Microsoft intellectual property was harmed in the production of
this code.
2007-08-09 17:44:20 -07:00
Michael Brown 950057eeed Add PXE FILE API. 2007-08-04 01:23:37 +01:00
Michael Brown 07f84566d5 Make read_user() non-blocking, and add select() call. 2007-08-04 01:22:52 +01:00
Michael Brown 218651e125 Display name and status of each file as it is downloaded. 2007-08-03 12:49:21 +01:00
Michael Brown 49009a4c1b uri_get(NULL) and uri_put(NULL) are explicitly allowed. 2007-08-02 20:26:49 +01:00
Michael Brown d4947c05b2 Allow images to hold references to the originating URI.
Some shuffling around of the image management code; this needs tidying up.
2007-08-02 20:18:32 +01:00
Michael Brown 9fd6a0418f Allowed zero-cost enforced ordering of features in startup banner
list.

Added FEATURE() macros to most relevant (non-driver) files.
2007-08-02 14:51:03 +01:00
Michael Brown 67afe84292 Use otherwise-useless byte in DHCP feature option as a version number 2007-08-02 04:36:00 +01:00
Michael Brown 0acb016840 Add FEATURE() macro, plus code to display features at startup time,
and generate DHCP options to indicate features to DHCP server (and to
PXE NBPs).
2007-08-02 04:24:39 +01:00
Holger Lubitz 7e1db201b9 strdup and strndup call malloc and are not pure 2007-08-02 03:04:44 +02:00
Holger Lubitz 7e8e4f8abd declare pointers passed to string functions as nonnull 2007-08-02 01:02:06 +02:00
Holger Lubitz e3d10ac673 define __nonnull 2007-08-02 01:01:01 +02:00
Holger Lubitz 8e3e97fcef set __pure attribute where possible 2007-08-02 00:51:38 +02:00
Holger Lubitz cd619a1eec define __pure and __const 2007-08-02 00:27:54 +02:00
Michael Brown 726e366e8f Add code for constructing single-file cpio archives on the fly 2007-08-01 23:10:30 +01:00
Michael Brown 291d69d7fd Added support for draft version of the AoE Boot Firmware Table. 2007-07-31 14:05:03 +01:00
Michael Brown 79691961ba Add identifier for the network device into the DHCP request. 2007-07-31 03:32:22 +01:00
Michael Brown 5e26df0325 Centralise construction of the DHCP request and response packets. 2007-07-31 03:02:21 +01:00
Michael Brown bf3d8fb1aa Allowed HTTPS to be a separately configurable feature. 2007-07-30 03:01:04 +01:00
Michael Brown 3b8b06ae90 Added missing #include 2007-07-30 03:00:15 +01:00
Michael Brown 6fc9ed167e TLS now working again. 2007-07-30 02:48:38 +01:00
Michael Brown 3b9bf40682 Preparation for adding tls.c 2007-07-29 17:16:00 +01:00
Michael Brown a6467c99a0 Added a simple pass-through filter layer for data transfer interfaces. 2007-07-29 16:05:14 +01:00
Michael Brown 218314e712 Added HMAC code from TLS project 2007-07-29 03:09:00 +01:00
Michael Brown 43013da9bf Quick hack to get AoE back in to the tree, on a par with the current
iSCSI hack.
2007-07-29 02:31:14 +01:00
Michael Brown a6a1052096 Applied a modified version of holger's regparm patches. 2007-07-29 00:17:25 +01:00
Michael Brown e3484e26eb Merge branch 'symcheck2' 2007-07-28 22:55:31 +01:00
Michael Brown 0d568ac219 Make has_key() a static inline, rather than omitting it altogether. 2007-07-28 22:55:17 +01:00
Michael Brown 47a86bca2d Prepare for iBFT merge when possible. iscsiboot.c contains a really,
really ugly hack at present, but that doesn't hugely matter since I'm
aiming to change the interface to iSCSI devices anyway within the next
week.
2007-07-26 02:13:38 +01:00
Michael Brown 9aa61ad5a2 Add per-file error identifiers 2007-07-24 17:11:31 +01:00
Michael Brown 3f338b7b80 Include errno.h in the few drivers which use it, rather than in nic.h 2007-07-24 14:05:32 +01:00
Michael Brown f44969f7df nameserver should be static 2007-07-17 01:21:20 +01:00
Michael Brown 7df3d4a177 Obsolete code removal 2007-07-17 01:19:35 +01:00
Michael Brown 60ce8e884d Added missing extern 2007-07-17 01:16:24 +01:00
Michael Brown 7e3a8f5e10 Remove more obsolete files 2007-07-14 23:16:01 +01:00
Michael Brown 25fd42ca87 Reduced etherboot.h dependencies to avoid unnecessary rebuilds.
etherboot.h is only now used by drivers that have not been updated to
the new API.
2007-07-14 15:52:23 +01:00
Michael Brown e330db3c74 Dead code removal.
Kill off use of etherboot.h outside drivers/net.
2007-07-14 15:42:26 +01:00
Michael Brown 096fa94f0c Add support for TCP timestamps 2007-07-13 11:32:53 +01:00
Michael Brown 9dc6a1e678 Remove some obsolete stream-API files 2007-07-09 03:53:06 +01:00
Michael Brown 487dc5be56 Fix up iscsiboot missing prototype warnings 2007-07-09 01:10:32 +01:00
Michael Brown cc80750694 Merge branch 'master' into iscsi-update 2007-07-08 22:06:33 +01:00
Michael Brown 7137c20ed1 Add strcspn() and strndup() 2007-07-08 22:03:12 +01:00
Michael Brown ed20fee0cf Make ref_get() return the reference, for cleaner code. 2007-07-08 22:02:45 +01:00
Michael Brown b94420a52b Ready to start testing 2007-07-08 22:01:49 +01:00
Michael Brown edd1b173a7 Code in place to use a hypothetical SCSI interface. 2007-07-08 19:33:26 +01:00
Michael Brown f2fa390ae6 Everything except the SCSI interface should now be present 2007-07-08 18:51:56 +01:00
Michael Brown 9b28b25332 iSCSI updated to use data-xfer interface on the socket side (TCP).
SCSI interface not yet implemented.
2007-07-08 16:04:13 +01:00
Michael Brown edded7546e Limit xmit window to one MTU. (Path MTU discovery not yet
implemented; should be done at some point.)
2007-07-08 14:33:53 +01:00
Michael Brown 3e1dd0772a Fix typo that was preventing any DHCP option applicators from being
applied.
2007-07-08 14:32:20 +01:00
Michael Brown b34d4d0449 Separate the "is data ready" function of xfer_seek() into an
xfer_window() function, which can return a scalar rather than a
boolean.
2007-07-08 14:11:07 +01:00
Michael Brown ca4c6f9eee Kill off unused request() method in data-xfer interface. 2007-07-08 02:10:54 +01:00
Michael Brown 4c418d2100 Use net_device_operations structure and netdev_nullify() to allow for
safe dropping of the netdev ref by the driver while other refs still
exist.

Add netdev_irq() method.  Net device open()/close() methods should no
longer enable or disable IRQs.

Remove rx_quota; it wasn't used anywhere and added too much complexity
to implementing correct interrupt-masking behaviour in pxe_undi.c.
2007-07-07 16:43:39 +01:00
Michael Brown 934b70d62c Apply global DHCP options when register_dhcp_options() is called. Do
not apply DHCP options in dhcp_configure_netdev().
2007-07-06 17:07:50 +01:00
Michael Brown b3ca73c303 Remap EBADF to PXENV_STATUS_TFTP_FILE_NOT_FOUND; the only user is
posix_io.c and this PXE error makes more sense in this context.
2007-07-05 18:47:46 +01:00
Michael Brown 1567b69895 Add concept of DHCP option applicators. 2007-07-05 18:38:14 +01:00
Michael Brown 539ff45fd0 Allow recording of TX and RX errors to aid in end-user debugging. 2007-07-05 17:18:27 +01:00
Michael Brown bdd1a0f462 Make masking constants unsigned, to avoid a gcc3-only compiler warning. 2007-07-05 12:04:53 +01:00
Marty Connor b219814627 Remove deprecation of pci_bar_size() 2007-07-04 18:28:37 -04:00
Michael Brown 89349d7fad Separated out initialisation functions from startup/shutdown functions. 2007-07-03 23:09:56 +01:00
Michael Brown 1f24ba73c4 Added missing "extern" 2007-07-03 21:12:54 +01:00
Michael Brown cbd4542dc0 Merge branch 'master' of rom.etherboot.org:/pub/scm/gpxe 2007-07-03 21:09:26 +01:00
Marty Connor 6be8cdbb6f Merge branch 'master' of /pub/scm/gpxe 2007-07-03 16:02:26 -04:00
Marty Connor 9b3c4e4d79 Warnings purge: src/arch/i386, src/core/disk.c, ramdisk, autoboot 2007-07-03 16:02:15 -04:00
Michael Brown fae10a7ca1 We don't actually use the reset functions anywhere, and nothing really
provides them.
2007-07-03 20:34:51 +01:00
Michael Brown fd86c819ba Use a linker-table based system to automatically mark and start up
permanent processes, rather than requiring each one to have its own
initialisation function.
2007-07-03 20:09:14 +01:00
Marty Connor 4bcfe7507b Merge branch 'master' of /pub/scm/gpxe 2007-07-03 13:20:54 -04:00
Marty Connor c77704cb60 Warnings purge: src/{crypto,hci,net} 2007-07-03 13:20:22 -04:00
Michael Brown 0924cf678e Implemented (untested) PXENV_START_UNDI. 2007-07-03 18:17:14 +01:00
Michael Brown 4968caab82 Add trivial net device statistics (TX and RX packet count), reported
via UNDI API and also by ifstat command; may be useful for debugging.
2007-07-03 00:15:53 +01:00
Marty Connor 0297a63877 Merge branch 'master' of ssh://rom.etherboot.org/pub/scm/gpxe 2007-07-02 15:36:19 -04:00
Marty Connor ef7f6e72a1 Warnings purge 2007-07-02 15:28:55 -04:00
Michael Brown 332614a382 Add untested support for UNDI transmit and receive. 2007-07-02 20:05:58 +01:00
Michael Brown 5f17089b14 pxe_netdev now holds a reference to the network device.
Use generic fields in struct device_description rather than assuming
that the struct device * is contained within a pci_device or
isapnp_device; this assumption is broken when using the undionly
driver.

Add PXENV_UNDI_SET_STATION_ADDRESS.
2007-07-02 17:43:32 +01:00
Michael Brown 15f8323055 Removing obsolete files. 2007-07-01 15:30:12 +01:00
Michael Brown 95cb7aaacf Support cards such as natsemi which treat the data as little-endian
(i.e. LSB transmitted first on the wire), even though SPI commands and
addresses always have to be big-endian.
2007-07-01 15:22:12 +01:00
Michael Brown 8f6a4e8140 Add gdbsym.c object to help with running gdb-to-qemu 2007-06-30 22:43:31 +01:00
Michael Brown 4472e22b5e Implement the two UNDI API calls used by RIS. 2007-06-30 15:56:00 +01:00
Michael Brown acd598b4f9 Don't build option-overloaded packets; they just confuse people (ISC
DHCPD and Windows RIS in particular).
2007-06-30 01:32:53 +01:00
Michael Brown dffdc285b3 Obsoleted by downloader.c 2007-06-28 19:28:26 +01:00
Michael Brown 5de837cc67 Mildly ugly hack to force correct linkage. 2007-06-28 18:06:25 +01:00
Michael Brown 4b08f4cf0f Quick hack to get image booting working again 2007-06-28 17:55:29 +01:00
Michael Brown 1ec7bb789d Add dhcp_configure_netdev() 2007-06-28 15:18:26 +01:00
Michael Brown 6209d20779 Added monojob controller in lieu of a full working shell. 2007-06-28 14:53:12 +01:00
Michael Brown 73fe1ba9dd Kill off job::start() (it was only ever added as part of an aborted
attempt at triggering TCP-related protocols to start).
2007-06-28 01:09:45 +01:00
Michael Brown 07dc294de8 Update DHCP to use data-xfer interface (not yet tested). 2007-06-27 23:20:36 +01:00
Michael Brown f77815f2b1 Kill off hotplug.h and just make net devices normal reference-counted
structures.

DHCP still broken and #if 0'd out.
2007-06-27 14:48:31 +01:00