+ /*
+ * debug support for > 4G systems
+ */
+ if (!PE_parse_boot_arg("himemory_mode", &vm_himemory_mode))
+ vm_himemory_mode = 0;
+
+ /*
+ * At this point we check whether we are a 64-bit processor
+ * and that we're not restricted to legacy mode, 32-bit operation.
+ */
+ boolean_t IA32e = FALSE;
+ if (cpuid_extfeatures() & CPUID_EXTFEATURE_EM64T) {
+ kprintf("EM64T supported");
+ if (PE_parse_boot_arg("-legacy", &legacy_mode)) {
+ kprintf(" but legacy mode forced\n");
+ } else {
+ IA32e = TRUE;
+ kprintf(" and will be enabled\n");
+ }
+ }
+ if (!(cpuid_extfeatures() & CPUID_EXTFEATURE_XD))
+ nx_enabled = 0;
+
+ i386_vm_init(maxmemtouse, IA32e, kernelBootArgs);
+
+ if ( ! PE_parse_boot_arg("novmx", &noVMX))
+ noVMX = 0; /* OK to support Altivec in rosetta? */
+
+ tsc_init();
+ hpet_init();
+ power_management_init();