minosproject / minos

Flexible Virtualization Solution for Embedded System
http://minosproject.org
GNU General Public License v2.0
245 stars 93 forks source link

Can Minos support running multiple VMs? Can Minos boot from BL1? #51

Open sustcstar opened 3 years ago

sustcstar commented 3 years ago

Hi, lemin.

Your project is very cool!

I have already successfully run the demo Documents/004-Test_Minos_on_ARM_FVP.md..

I want to run multiple VMs(two or three) VMs on Minos. Is it possible to do that?

And I find that Minos is booted from ATF BL31, but I want to boot Minos from ATF BL1. Becasue I want to combine Minos with another ARM-based software. For that software, ATF BL2 stage is necessary. Is there anyway to do that?

lemin9538 commented 3 years ago

Sure, Minos can support multiple VMs. If you follow the guide oF FVP, it will run 3 VMs.

minos needed run in el2, If BL1 can boot minos to EL2,i think it is ok.

sustcstar commented 3 years ago

Could you tell me what are the three VMs? How can I configure them?

I guess there is a .dts file to configure them, but the fvp_linux.dtb file's source file seems not to be provided.

lemin9538 commented 3 years ago

Hi

The three VMs are: two linux + one zephyr.

you can modify the file https://github.com/minosproject/minos/blob/master/dtbs/foundation-v8-gicv3-zephyr.dts to configure the VMs. and you can refer to RPI4 example https://github.com/minosproject/minos/blob/master/dtbs/bcm2838-rpi-4-b-32bit.dts. all the file mentioned in the document can be found at https://github.com/minosproject/minos-misc.

sustcstar commented 3 years ago

It seems that Minos doesn't support booting from BL1.

I try to boot ATF from BL1 by changing the ATF-compiling command in your document Documents/004-Test_Minos_on_ARM_FVP.md from "make CROSS_COMPILE=aarch64-linux-gnu- PLAT=fvp RESET_TO_BL31=1 ARM_LINUX_KERNEL_AS_BL33=1 PRELOADED_BL33_BASE=0xc0008000 ARM_PRELOADED_DTB_BASE=0xc3e00000" to "make CROSS_COMPILE=aarch64-linux-gnu- PLAT=fvp RESET_TO_BL31=0 ARM_LINUX_KERNEL_AS_BL33=1 PRELOADED_BL33_BASE=0xc0008000 ARM_PRELOADED_DTB_BASE=0xc3e00000". (Just change RESET_TO_BL1=1 to RESET_TO_BL1=0).

The result is a panic, as shown in the attached figure. minos-failure

I guess it needs much system-developing effort to make Minos be able to boot from "reset_to_bl1 ATF".

Anyway, Lemin, thanks for your reply! Minos is really a cool opensource project, I guess I would reference to Minos to learn Hypervisor in the future.

lemin9538 commented 3 years ago

Yes, booting from BL1 need some work. The build command is for BL3.