On 10/14/2016 02:38 PM, Andrew Cooper wrote:
>> + jmp *%rax
>> +#else /* CONFIG_X86_64 */
>> + call setup_pgtable_32
>> + mov $_pa(initial_page_table), %eax
>> + movl %eax, %cr3
>> + movl %cr0, %eax
>> + orl $(X86_CR0_PG | X86_CR0_PE), %eax
>> + movl %eax, %cr0
>> + ljmp $__BOOT_CS,$1f
>> + call xen_prepare_pvh
> Why does xen_prepare_pvh need paging? I can't spot anything which
> should need it, and it feels conceptually wrong.
xen_prepare_pvh() deals with virtual addresses. How can we run without paging?
(Also, startup_64, which is where we jump from here in 64-bit mode expects
paging to be on).