On Thu, Jan 07, 2021 at 11:34:44PM -0800, Vagrant Cascadian wrote:
> On 2021-01-07, Elliott Mitchell wrote:
> > Might it be possible to get a u-boot-xen-arm64 package built?  While
> > "PyGRUB" is great for Linux, it isn't so good for booting other OSes.
> 
> Do you mean:
> 
>   
> https://gitlab.denx.de/u-boot/u-boot/-/blob/master/doc/board/xen/xenguest_arm64.rst
> 
> This doesn't describe how to use it or, importantly, what files we would
> need to ship in the package. If you could help clarify that (possibly
> provide a patch), and ideally get it clarified in the upstream
> documentation, then I would think we would be able to ship such a
> package.

Appears the build issue wasn't libfdt-dev, but instead `dwz` and
`debhelper`.  I suspect libfdt-dev:any or libfdt-dev may now be
sufficient for building (I'm not 100% sure since I have a workaround in
place).

Anyway I now have something which looks like a first pass at having
U-Boot/ARM boot a Xen VM.  Some progress has been made, but it I haven't
confirmed full operation yet.

The build was achieved by copying configs/xenguest_arm64_defconfig over
qemu_arm64_defconfig and then cross-building for arm64.  This suggests
extra steps for "qemu" are also appropriate for "xenguest".

Once complete, the file ./usr/lib/u-boot/qemu_arm64/u-boot.bin was
copied to the host machine.  A configuration file was created for xl,
the value for "kernel" was pointed at the u-boot.bin file, both
"bootloader" and "ramdisk" options were left unset.

Upon attempt to boot this VM (`xl create -c u-boot.cfg`) I ended up at a
prompt "xenguest# ".  The command-line appeared to act how I would expect
U-Boot to act, so I conclude U-Boot had successfully loaded.

The next task is to get the OS I wish to run in the VM loaded by U-Boot.

As of 2020.10+dfsg-2, appears the "xenguest" defconfig disables all
EFI/GPT support.  I must recommend the U-Boot maintainers advise upstream
to set CONFIG_EFI_LOADER=y and CONFIG_CMD_PART=y in the Xen defconfig.

While some smaller VMs may not need EFI support, it appears to be gaining
traction everywhere with ARM64.  I note SuSE uses it as an intermediate
stage between U-Boot and GRUB.  FreeBSD's ARM64 VM images appear to
*assume* EFI is in use.

I haven't gotten U-Boot/Xen to successfully load FreeBSD's bootloader
yet, but progress is being made.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         [email protected]  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445

Reply via email to