mirror of
https://github.com/xcat2/xcat-dep.git
synced 2024-11-27 03:39:11 +00:00
a60d90375d
-Add workaround for use of Etherboot UNDI stack from git tree -Add workaround for UNDI drivers that do not call the undi open call before attempting to use defive from git tree -Change ProxyDHCP broadcast to go to port 67 (from git tree) -Enable use of DHCP options when BOOTP fields are not present -Report UNDI device to driver as a more standard interface type -Workaround malformed OACK packets sent by certain PXE servers -Avoid a spurious IRQ -Add fix for e1000 driver -Have the UNDI stack report UNDI capabilities -Fix some places where interrupt handlers did not use iret to return
45 lines
2.0 KiB
Diff
45 lines
2.0 KiB
Diff
diff -urN gpxe-0.9.7/src/arch/i386/include/pxe_api.h gpxe-0.9.7-undiserviceflags/src/arch/i386/include/pxe_api.h
|
|
--- gpxe-0.9.7/src/arch/i386/include/pxe_api.h 2009-03-01 21:23:42.000000000 -0500
|
|
+++ gpxe-0.9.7-undiserviceflags/src/arch/i386/include/pxe_api.h 2009-08-21 20:49:41.000000000 -0400
|
|
@@ -1415,6 +1415,25 @@
|
|
/** PXE API function code for pxenv_undi_get_iface_info() */
|
|
#define PXENV_UNDI_GET_IFACE_INFO 0x0013
|
|
|
|
+/** Broadcast supported */
|
|
+#define SUPPORTED_BROADCAST 0x0001
|
|
+/** Multicast supported */
|
|
+#define SUPPORTED_MULTICAST 0x0002
|
|
+/** Functional/group addressing supported */
|
|
+#define SUPPORTED_GROUP 0x0004
|
|
+/** Promiscuous mode supported */
|
|
+#define SUPPORTED_PROMISCUOUS 0x0008
|
|
+/** Software settable station address */
|
|
+#define SUPPORTED_SET_STATION_ADDRESS 0x0010
|
|
+/** InitiateDiagnostics supported */
|
|
+#define SUPPORTED_DIAGNOSTICS 0x0040
|
|
+/** Reset MAC supported */
|
|
+#define SUPPORTED_RESET 0x0400
|
|
+/** Open / Close Adapter supported */
|
|
+#define SUPPORTED_OPEN_CLOSE 0x0800
|
|
+/** Interrupt Request supported */
|
|
+#define SUPPORTED_IRQ 0x1000
|
|
+
|
|
/** Parameter block for pxenv_undi_get_iface_info() */
|
|
struct s_PXENV_UNDI_GET_IFACE_INFO {
|
|
PXENV_STATUS_t Status; /**< PXE status code */
|
|
diff -urN gpxe-0.9.7/src/arch/i386/interface/pxe/pxe_undi.c gpxe-0.9.7-undiserviceflags/src/arch/i386/interface/pxe/pxe_undi.c
|
|
--- gpxe-0.9.7/src/arch/i386/interface/pxe/pxe_undi.c 2009-03-01 21:23:42.000000000 -0500
|
|
+++ gpxe-0.9.7-undiserviceflags/src/arch/i386/interface/pxe/pxe_undi.c 2009-08-21 20:49:41.000000000 -0400
|
|
@@ -519,7 +519,10 @@
|
|
snprintf ( ( char * ) undi_get_iface_info->IfaceType,
|
|
sizeof ( undi_get_iface_info->IfaceType ), "gPXE" );
|
|
undi_get_iface_info->LinkSpeed = 10000000; /* 10 Mbps */
|
|
- undi_get_iface_info->ServiceFlags = 0;
|
|
+ undi_get_iface_info->ServiceFlags =
|
|
+ ( SUPPORTED_BROADCAST | SUPPORTED_MULTICAST |
|
|
+ SUPPORTED_SET_STATION_ADDRESS | SUPPORTED_RESET |
|
|
+ SUPPORTED_OPEN_CLOSE | SUPPORTED_IRQ );
|
|
memset ( undi_get_iface_info->Reserved, 0,
|
|
sizeof(undi_get_iface_info->Reserved) );
|
|
|