[XEN] Re: I'm looking for the source code of a specific u-boot version.

Heinrich Schuchardt xypron.glpk at gmx.de
Wed Dec 27 22:37:22 CET 2023



Am 27. Dezember 2023 19:54:06 MEZ schrieb Mario Marietto <marietto2008 at gmail.com>:
>Hello.
>
>I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM Chromebook
>SNOW with xen. Basically there are two ways to accomplish this task :
>
>
>1) to write a patch that allows the FreeBSD kernel to boot as a zImage
>file. This could be accomplished applying this patch to a specific
>file that's on the source code of FreeBSD :
>
>
>https://xenbits.xen.org/gitweb/?p=p...8;hb=0782e25d98cc1391472717035f986c979edef0c9
>
>
>
>This patch was written by Julien Grall a lot of time ago and now it
>does not work anymore. This is the reason explain by the xen
>developers :
>
>
>
>It appears FreeBSD-CURRENT removed the last step converting the kernel
>file to kernel.bin.The patch can be readily rebased, but without
>kernel.bin that doesn't do too much.
>
>
>
>So,without a rebase of that patch the first option is not applicable.
>And I'm not able to fix it.
>
>
>2) booting FreeBSD using U-Boot,as explained to me by a xen developer :
>
>
>I was trying to explain why and how Julien's patch works so that you
>could be the one to re-do something similar or fix the patch on the
>FreeBSD kernel that you are working with. I am happy to help review
>and write patches but I don't work with the FreeBSD kernel so I
>wouldn't be able to help you quickly. However, I might have a
>suggestion. Do you know if FreeBSD can be booted by U-Boot ? Because
>U-Boot definitely boots as Xen on ARM guest firmware/bootloader. You
>should be able to build U-Boot and use the U-Boot binary as Xen guest
>kernel, then U-Boot could load FreeBSD from disk or network and start
>it. For instance as domU config file:
>
>kernel="/home/petalinux/u-boot.bin"
>disk = [ '/home/petalinux/test.img,raw,xvda' ]
>
>
>Actually I'm working on the idea n. 2. Basically I need to find the
>proper u-boot file that's able to boot the image of FreeBSD that I
>have installed (13.2 for arm32 bit). Maybe I found it here :
>
>
>http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/nv_uboot-snow-simplefb.kpart.bz2
>
>
>I found that link inside this tutorial :
>
>
>https://wiki.freebsd.org/arm/Chromebook
>
>
>the version of u-boot that has been embedded in that file is the following one :
>
>
># strings nv_uboot-snow-simplefb.kpart | grep U-Boot
>U-Boot 2011.12-gc1f6280 (May 27 2013 - 15:06:59) for SMDK5250
>
>
>So the question is easy : I need to find the source code of that old
>version of u-boot,because once compiled,it will give me the proper
>u-boot.bin kernel / bootloader file that maybe will be able to boot
>FreeBSD.
>
>

Hello Mario,

U-Boot supports booting EFI binaries since 2016. I don't know if some arm32 bits are still missing in FreeBSD (see https://wiki.freebsd.org/UEFI). But looking at https://cgit.freebsd.org/src/plain/stand/efi/loader/Makefile.depend.arm and https://cgit.freebsd.org/src/plain/stand/efi/loader/arch/arm/start.S arm32 should be  supported. I guess the wiki needs an update.

The U-Boot documentation only describes arm64 Xen support: https://docs.u-boot.org/en/latest/board/xen/xenguest_arm64.html .

I have CCed the U-Boot Xen maintainers hoping they can indicate the missing pieces for arm32.

Best regards

Heinrich


More information about the U-Boot mailing list