Re: Getting ACRN to work

Dubravko Moravski | Exor Embedded S.r.l. <dubravko.moravski@...>

Hi Zide,

Thank you very much, you were right. I've had RELOC already enabled, but apparently one also need to have CONFIG_HV_RAM_START 2MB aligned. I've set it to 0x1400 0000 and now my hypervisor manages to execute entire init_paging() function.

... but now it crashes in cpu.c, init_percpu_lapic_id(). A block of code from init_pcpu_pre():


if (!init_percpu_lapic_id()) {
panic("failed to init_percpu_lapic_id!");

"7" gets printed out, neither "8" nor panic does.

I guess something is wrong with the interrupts? If it means anything, I've made no particular modifications related to interrupts, and our board generally works well with Linux.

Best regards,

Dubravko Moravski
SW engineering
Exor Embedded S.r.l.
p: +38 512455659  m: +38 5915402413
a: Slavonska avenija, 50, Zagreb, Croatia, 10000

 Prima di stampare pensa ai costi ambientali. Please consider the environment before printing this email.

From: acrn-users@... <acrn-users@...> on behalf of Chen, Zide via Lists.Projectacrn.Org <>
Sent: Saturday, February 8, 2020 6:33 AM
To: acrn-users@... <acrn-users@...>
Subject: Re: [acrn-users] Getting ACRN to work

Hi Dubravko,


Host MMU page size is 2MB in ACRN hypervisor. It seems to me that the direct cause for crash could be CONFIG_HV_RAM_START(0x13151000) is not 2MB aligned. 

Did you disable relocation (RELOC in Kconfig)? By default RELOC is enabled and it allocates memory from EFI and overwrites the user defined CONFIG_HV_RAM_START, which is supposed to be able to avoid the 2MB alignment issue. 

In case of you prefer to disable hypervisor relocation, you may need to make sure that CONFIG_HV_RAM_START is configured to the memory that is of EfiConventionalMemory(7) type. You may find out the available memory by calling dump_e820() in misc/efi-stub/boot.c, before emalloc_reserved_aligned().


Best Regards,


Join { to automatically receive all group messages.