Index: /trunk/src/VBox/ValidationKit/bootsectors/Config.kmk
===================================================================
--- /trunk/src/VBox/ValidationKit/bootsectors/Config.kmk	(revision 64703)
+++ /trunk/src/VBox/ValidationKit/bootsectors/Config.kmk	(revision 64704)
@@ -410,5 +410,4 @@
 $(TOOL_OPENWATCOM_COMPILE_C_CMDS)
 	$(QUIET)$(VBOX_BS3KIT_KSUBMIT_OBJ_CONV) $(VBoxBs3ObjConverter_1_TARGET) "$(obj)"
-	$(QUIET)$(REDIRECT) -wo /dev/null -- $(KBUILD_BIN_PATH)/kDepObj$(HOSTSUFF_EXE) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
 endef
 
@@ -444,5 +443,4 @@
 $(TOOL_OPENWATCOM_COMPILE_CXX_CMDS)
 	$(QUIET)$(VBOX_BS3KIT_KSUBMIT_OBJ_CONV) $(VBoxBs3ObjConverter_1_TARGET) "$(obj)"
-	$(QUIET)$(REDIRECT) -wo /dev/null -- $(KBUILD_BIN_PATH)/kDepObj$(HOSTSUFF_EXE) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
 endef
 
@@ -470,5 +468,4 @@
 $(TOOL_OPENWATCOM-16_COMPILE_C_CMDS)
 	$(QUIET)$(VBOX_BS3KIT_KSUBMIT_OBJ_CONV) $(VBoxBs3ObjConverter_1_TARGET) "$(obj)"
-	$(QUIET)$(REDIRECT) -wo /dev/null -- $(KBUILD_BIN_PATH)/kDepObj$(HOSTSUFF_EXE) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
 endef
 
@@ -504,5 +501,4 @@
 $(TOOL_OPENWATCOM-16_COMPILE_CXX_CMDS)
 	$(QUIET)$(VBOX_BS3KIT_KSUBMIT_OBJ_CONV) $(VBoxBs3ObjConverter_1_TARGET) "$(obj)"
-	$(QUIET)$(REDIRECT) -wo /dev/null -- $(KBUILD_BIN_PATH)/kDepObj$(HOSTSUFF_EXE) -s -f -q -o "$(dep)" -t "$(obj)" "$(obj)"
 endef
 
Index: /trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk
===================================================================
--- /trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk	(revision 64703)
+++ /trunk/src/VBox/ValidationKit/bootsectors/Makefile.kmk	(revision 64704)
@@ -244,4 +244,6 @@
 	bs3-cpu-basic-2.c \
 	bs3-cpu-basic-2-x0.c \
+	bs3-cpu-basic-2-32.c32 \
+	bs3-cpu-basic-2-pf.c32 \
 	bs3-cpu-basic-2-asm.asm \
        bs3kit/bs3-cmn-instantiate-x0.c16 \
Index: /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-32.c32
===================================================================
--- /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-32.c32	(revision 64704)
+++ /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-32.c32	(revision 64704)
@@ -0,0 +1,56 @@
+/* $Id$ */
+/** @file
+ * BS3Kit - bs3-cpu-basic-2, 32-bit C code.
+ */
+
+/*
+ * Copyright (C) 2007-2016 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * The contents of this file may alternatively be used under the terms
+ * of the Common Development and Distribution License Version 1.0
+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+ * VirtualBox OSE distribution, in which case the provisions of the
+ * CDDL are applicable instead of those of the GPL.
+ *
+ * You may elect to license modified versions of this file under the
+ * terms and conditions of either the GPL or the CDDL or both.
+ */
+
+
+/*********************************************************************************************************************************
+*   Header Files                                                                                                                 *
+*********************************************************************************************************************************/
+#include <bs3kit.h>
+#include <iprt/asm-amd64-x86.h>
+
+
+/*********************************************************************************************************************************
+*   Internal Functions                                                                                                           *
+*********************************************************************************************************************************/
+FNBS3TESTDOMODE             bs3CpuBasic2_RaiseXcpt0e_c32;
+
+
+/*********************************************************************************************************************************
+*   Global Variables                                                                                                             *
+*********************************************************************************************************************************/
+static const BS3TESTMODEBYONEENTRY g_aModeByOne32Tests[] =
+{
+    { "#PF",  bs3CpuBasic2_RaiseXcpt0e_c32, BS3TESTMODEBYONEENTRY_F_ONLY_PAGING },
+};
+
+
+BS3_DECL(void) bs3CpuBasic2_Do32BitTests_pe32(void)
+{
+    Bs3TestPrintf("bs3CpuBasic2_Do32BitTests=%#x\n", g_uBs3CpuDetected);
+
+    Bs3TestDoModesByOne_pe32(g_aModeByOne32Tests, RT_ELEMENTS(g_aModeByOne32Tests), 0);
+}
+
Index: /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-pf.c32
===================================================================
--- /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-pf.c32	(revision 64704)
+++ /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2-pf.c32	(revision 64704)
@@ -0,0 +1,102 @@
+/* $Id$ */
+/** @file
+ * BS3Kit - bs3-cpu-basic-2, 32-bit C code.
+ */
+
+/*
+ * Copyright (C) 2007-2016 Oracle Corporation
+ *
+ * This file is part of VirtualBox Open Source Edition (OSE), as
+ * available from http://www.virtualbox.org. This file is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License (GPL) as published by the Free Software
+ * Foundation, in version 2 as it comes in the "COPYING" file of the
+ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+ *
+ * The contents of this file may alternatively be used under the terms
+ * of the Common Development and Distribution License Version 1.0
+ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
+ * VirtualBox OSE distribution, in which case the provisions of the
+ * CDDL are applicable instead of those of the GPL.
+ *
+ * You may elect to license modified versions of this file under the
+ * terms and conditions of either the GPL or the CDDL or both.
+ */
+
+
+/*********************************************************************************************************************************
+*   Header Files                                                                                                                 *
+*********************************************************************************************************************************/
+#include <bs3kit.h>
+#include <iprt/asm-amd64-x86.h>
+
+
+/*********************************************************************************************************************************
+*   Internal Functions                                                                                                           *
+*********************************************************************************************************************************/
+FNBS3TESTDOMODE bs3CpuBasic2_RaiseXcpt0e_c32;
+
+
+
+
+BS3_DECL_CALLBACK(uint8_t)  bs3CpuBasic2_RaiseXcpt0e_c32(uint8_t bMode)
+{
+    void       *pvTestUnaligned;
+    uint32_t    cbTestUnaligned = _8M;
+    uint32_t    cbTest;
+    uint8_t    *pbTest;
+    uint8_t    *pbAlias;
+    int         rc;
+
+    /*
+     * Allocate a some memory we can play around with, then carve a size aligned
+     * chunk out of it so we might be able to maybe play with 2/4MB pages too.
+     */
+    cbTestUnaligned = _8M * 2;
+    while ((pvTestUnaligned = Bs3MemAlloc(BS3MEMKIND_FLAT32, cbTestUnaligned)) == NULL)
+    {
+        cbTestUnaligned >>= 1;
+        if (cbTestUnaligned < _8K)
+        {
+            Bs3TestFailed("Failed to allocate memory to play around with\n");
+            return 1;
+        }
+    }
+
+    if ((uintptr_t)pvTestUnaligned & (cbTestUnaligned - 1))
+    {
+        cbTest = cbTestUnaligned >> 1;
+        pbTest = (uint8_t *)(((uintptr_t)pvTestUnaligned + cbTest - 1) & ~(cbTest - 1));
+    }
+    else
+    {
+        pbTest = pvTestUnaligned;
+        cbTest = cbTestUnaligned;
+    }
+
+    /*
+     * Alias this memory far away from where our code and data lives.
+     */
+    pbAlias = (uint8_t *)UINT32_C(0xa0000000);
+    rc = Bs3PagingAlias((uintptr_t)pbAlias, (uintptr_t)pbTest, cbTest, X86_PTE_P | X86_PTE_RW | X86_PTE_US);
+    if (RT_SUCCESS(rc))
+    {
+        void *pvPte = Bs3PagingGetPte((uintptr_t)pbAlias, NULL);
+        if (pvPte)
+        {
+            Bs3TestPrintf("RaiseXcpt0e_c32:  bMode=%#x/%#x cbTest=%#x pbTest=%p pbAlias=%p pvPte=%p\n",
+                          bMode, g_bBs3CurrentMode, cbTest, pbTest, pbAlias, pvPte);
+
+        }
+        else
+            Bs3TestFailed("Bs3PagingGetPte failed!\n");
+        Bs3PagingUnalias((uintptr_t)pbAlias, cbTest);
+    }
+    else
+        Bs3TestFailedF("Bs3PagingAlias failed! rc=%d\n", rc);
+    Bs3MemFree(pvTestUnaligned, cbTestUnaligned);
+    return 0;
+}
+
+
Index: /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2.c
===================================================================
--- /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2.c	(revision 64703)
+++ /trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-basic-2.c	(revision 64704)
@@ -45,4 +45,6 @@
 FNBS3TESTDOMODE             bs3CpuBasic2_iret_f16;
 
+BS3_DECL_CALLBACK(void)     bs3CpuBasic2_Do32BitTests_pe32();
+
 
 /*********************************************************************************************************************************
@@ -52,5 +54,5 @@
 {
     BS3TESTMODEENTRY_MODE("tss / gate / esp", bs3CpuBasic2_TssGateEsp),
-    BS3TESTMODEENTRY_MODE("raise xcpt #1", bs3CpuBasic2_RaiseXcpt1),
+    //BS3TESTMODEENTRY_MODE("raise xcpt #1", bs3CpuBasic2_RaiseXcpt1), // !long mode is broken!
 };
 
@@ -58,10 +60,8 @@
 {
     { "iret", bs3CpuBasic2_iret_f16, 0 },
-#if 0
     { "sidt", bs3CpuBasic2_sidt_f16, 0 },
     { "sgdt", bs3CpuBasic2_sgdt_f16, 0 },
     { "lidt", bs3CpuBasic2_lidt_f16, 0 },
     { "lgdt", bs3CpuBasic2_lgdt_f16, 0 },
-#endif
 };
 
@@ -73,7 +73,15 @@
     Bs3TestPrintf("g_uBs3CpuDetected=%#x\n", g_uBs3CpuDetected);
 
+    /*
+     * Do tests driven from 16-bit code.
+     */
     NOREF(g_aModeTest); NOREF(g_aModeByOneTests); /* for when commenting out bits */
-    //Bs3TestDoModes_rm(g_aModeTest, RT_ELEMENTS(g_aModeTest));
+    Bs3TestDoModes_rm(g_aModeTest, RT_ELEMENTS(g_aModeTest));
     Bs3TestDoModesByOne_rm(g_aModeByOneTests, RT_ELEMENTS(g_aModeByOneTests), 0);
+
+    /*
+     * Do tests driven from 32-bit code (bs3-cpu-basic-2-32.c32 via assembly).
+     */
+    Bs3SwitchTo32BitAndCallC_rm(bs3CpuBasic2_Do32BitTests_pe32, 0);
 
     Bs3TestTerm();
