On 14/10/16 19:55, Boris Ostrovsky wrote:
> 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?
Ah yes - with a high-half kernel, that way around doesn't work. Sorry
for the noise - I have been spending too long working with virtual
addresses down round 0, where that specifically can be solved by setting
%ds with a suitable non-zero base.