Index: /trunk/src/VBox/Main/BIOSSettingsImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/BIOSSettingsImpl.cpp	(revision 5170)
+++ /trunk/src/VBox/Main/BIOSSettingsImpl.cpp	(revision 5171)
@@ -373,4 +373,36 @@
 }
 
+STDMETHODIMP BIOSSettings::COMGETTER(PXEDebugEnabled)(BOOL *enabled)
+{
+    if (!enabled)
+        return E_POINTER;
+
+    AutoCaller autoCaller (this);
+    CheckComRCReturnRC (autoCaller.rc());
+
+    AutoReaderLock alock (this);
+
+    *enabled = mData->mPXEDebugEnabled;
+
+    return S_OK;
+}
+
+STDMETHODIMP BIOSSettings::COMSETTER(PXEDebugEnabled)(BOOL enable)
+{
+    AutoCaller autoCaller (this);
+    CheckComRCReturnRC (autoCaller.rc());
+
+    /* the machine needs to be mutable */
+    Machine::AutoMutableStateDependency adep (mParent);
+    CheckComRCReturnRC (adep.rc());
+
+    AutoLock alock (this);
+
+    mData.backup();
+    mData->mPXEDebugEnabled = enable;
+
+    return S_OK;
+}
+
 STDMETHODIMP BIOSSettings::COMGETTER(TimeOffset)(LONG64 *offset)
 {
Index: /trunk/src/VBox/Main/ConsoleImpl2.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 5170)
+++ /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 5171)
@@ -170,4 +170,7 @@
     hrc = biosSettings->COMGETTER(IOAPICEnabled)(&fIOAPIC);                          H();
 
+    BOOL fPXEDebug;
+    hrc = biosSettings->COMGETTER(PXEDebugEnabled)(&fPXEDebug);                      H();
+
     /*
      * PDM config.
@@ -222,4 +225,5 @@
     rc = CFGMR3InsertString(pCfg,   "FloppyDevice",         "i82078");              RC_CHECK();
     rc = CFGMR3InsertInteger(pCfg,  "IOAPIC",               fIOAPIC);               RC_CHECK();
+    rc = CFGMR3InsertInteger(pCfg,  "PXEDebug",             fPXEDebug);             RC_CHECK();
     rc = CFGMR3InsertBytes(pCfg,    "UUID", pUuid, sizeof(*pUuid));                 RC_CHECK();
 
Index: /trunk/src/VBox/Main/MachineImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/MachineImpl.cpp	(revision 5170)
+++ /trunk/src/VBox/Main/MachineImpl.cpp	(revision 5171)
@@ -4226,4 +4226,17 @@
             }
 
+            /* PXE debug logging (optional) */
+            {
+                CFGNODE pxedebugNode = 0;
+                CFGLDRGetChildNode (biosNode, "PXEDebug", 0, &pxedebugNode);
+                if (pxedebugNode)
+                {
+                    bool enabled;
+                    CFGLDRQueryBool (pxedebugNode, "enabled", &enabled);
+                    mBIOSSettings->COMSETTER(PXEDebugEnabled)(enabled);
+                    CFGLDRReleaseNode (pxedebugNode);
+                }
+            }
+
             /* time offset (optional) */
             {
@@ -6153,4 +6166,12 @@
             CFGLDRSetInt64 (timeOffsetNode, "value", timeOffset);
             CFGLDRReleaseNode (timeOffsetNode);
+
+            /* PXE debug flag (optional) */
+            CFGNODE pxedebugNode = 0;
+            CFGLDRCreateChildNode (biosNode, "PXEDebug", &pxedebugNode);
+            mBIOSSettings->COMGETTER(PXEDebugEnabled)(&fSet);
+            CFGLDRSetBool (pxedebugNode, "enabled", !!fSet);
+            CFGLDRReleaseNode (pxedebugNode);
+
         }
         CFGLDRReleaseNode(biosNode);
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 5170)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 5171)
@@ -2068,4 +2068,11 @@
     </attribute>
 
+    <attribute name="PXEDebugEnabled" type="boolean">
+      <desc>
+        PXE debug logging flag. If set, VirtualBox will write extensive
+        PXE trace information to the release log.
+      </desc>
+    </attribute>
+
   </interface>
 
Index: /trunk/src/VBox/Main/include/BIOSSettingsImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/BIOSSettingsImpl.h	(revision 5170)
+++ /trunk/src/VBox/Main/include/BIOSSettingsImpl.h	(revision 5171)
@@ -41,4 +41,5 @@
             mACPIEnabled = true;
             mIOAPICEnabled = false;
+            mPXEDebugEnabled = false;
             mTimeOffset = 0;
         }
@@ -54,4 +55,5 @@
                     mACPIEnabled     == that.mACPIEnabled &&
                     mIOAPICEnabled   == that.mIOAPICEnabled &&
+                    mPXEDebugEnabled == that.mPXEDebugEnabled &&
                     mTimeOffset      == that.mTimeOffset);
         }
@@ -64,4 +66,5 @@
         BOOL               mACPIEnabled;
         BOOL               mIOAPICEnabled;
+        BOOL               mPXEDebugEnabled;
         LONG64             mTimeOffset;
     };
@@ -101,4 +104,6 @@
     STDMETHOD(COMGETTER(IOAPICEnabled))(BOOL *enabled);
     STDMETHOD(COMSETTER(IOAPICEnabled))(BOOL enable);
+    STDMETHOD(COMGETTER(PXEDebugEnabled))(BOOL *enabled);
+    STDMETHOD(COMSETTER(PXEDebugEnabled))(BOOL enable);
     STDMETHOD(COMGETTER)(TimeOffset)(LONG64 *offset);
     STDMETHOD(COMSETTER)(TimeOffset)(LONG64 offset);
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 5170)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 5171)
@@ -465,4 +465,9 @@
       </xsd:complexType>
     </xsd:element>
+    <xsd:element name="PXEDebug" minOccurs="0">
+      <xsd:complexType>
+          <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+      </xsd:complexType>
+    </xsd:element>
   </xsd:all>
 </xsd:complexType>
