10f10d9aeSAaron Lewis #include "libcflat.h" 20f10d9aeSAaron Lewis #include "processor.h" 30f10d9aeSAaron Lewis #include "x86/vm.h" 40f10d9aeSAaron Lewis #include "access.h" 50f10d9aeSAaron Lewis main(int argc,const char * argv[])6*76ffc801SMathias Krauseint main(int argc, const char *argv[]) 70f10d9aeSAaron Lewis { 8*76ffc801SMathias Krause bool force_emulation = argc >= 2 && !strcmp(argv[1], "force_emulation"); 9*76ffc801SMathias Krause 100f10d9aeSAaron Lewis printf("starting test\n\n"); 11*76ffc801SMathias Krause ac_test_run(PT_LEVEL_PML4, force_emulation); 120f10d9aeSAaron Lewis 13c98ce6e0SAlexandru Elisei #ifndef CONFIG_EFI 1492a6c9b9SPaolo Bonzini /* 1592a6c9b9SPaolo Bonzini * Not supported yet for UEFI, because setting up 5 1692a6c9b9SPaolo Bonzini * level page table requires entering real mode. 1792a6c9b9SPaolo Bonzini */ 180f10d9aeSAaron Lewis if (this_cpu_has(X86_FEATURE_LA57)) { 190f10d9aeSAaron Lewis printf("starting 5-level paging test.\n\n"); 200f10d9aeSAaron Lewis setup_5level_page_table(); 21*76ffc801SMathias Krause ac_test_run(PT_LEVEL_PML5, force_emulation); 220f10d9aeSAaron Lewis } 2392a6c9b9SPaolo Bonzini #endif 240f10d9aeSAaron Lewis 2526a9b17eSSean Christopherson return report_summary(); 260f10d9aeSAaron Lewis } 27