Hi,

Thanks for your inputs. As you have mentioned, I tried to boot Xen directly
from EFI, thereby skipping GRUB. I made sure that kernel, xen.cfg and
ramdisk are on the first FAT partition. I still get "All 128 bootinfo
membanks exhausted error". The following link has my grub.cfg config. file
and also the snapshot of the error.

Link:
https://drive.google.com/drive/folders/1o7WT5oB7UsaZBeY5m4mWSidT5NalzvvJ?usp=sharing

I feel that even with EFI bootloader, there's some issue with bootinfo mem
banks and it maynot be a bug in GRUB. Let me know your thoughts on this.

Thanks in advance,

Regards,
Sai Kiran.

On Fri, Oct 15, 2021 at 4:19 AM Stefano Stabellini <[email protected]>
wrote:

> On Thu, 14 Oct 2021, Sai Kiran Kumar Reddy Y wrote:
> > On Thu, Oct 14, 2021 at 5:45 AM Stefano Stabellini <
> [email protected]> wrote:
> >       On Wed, 13 Oct 2021, Sai Kiran Kumar Reddy Y wrote:
> >       > On Fri, Oct 1, 2021 at 8:17 AM Stefano Stabellini <
> [email protected]> wrote:
> >       >       Yes there are other ways but without serial is going to be
> difficult
> >       >       because you are not going to see anything until everything
> works.
> >       >
> >       >       How do you boot Xen and Dom0 exactly from EDK2? Are you
> using GRUB or
> >       >       loading Xen directly from the EDK2 prompt? Please provide
> as many
> >       >       details as possible so that I might be able to spot any
> errors.
> >       >
> >       > I am using GRUB to load Xen. In the GRUB menu, I see two
> options.
> >       > Option 1: Debian 11 with latest Linux Kernel
> >       > Option 2: Debian 11(with Xen hypervisor) with latest Kernel
> >       >
> >       >       Can you provide the Device Tree you are using? If you are
> not passing
> >       >       any Device Tree  binary explicitely, then it might be
> passed
> >       >       automatically from EDK2 to Linux/Xen. In that case, just
> boot from Linux
> >       >       then do the following to retrieve the Device Tree:
> >       >
> >       >       dtc -I fs -O dts /proc/device-tree > host.dts
> >       >
> >       >       Then please attach host.dts to this email thread.
> >       >
> >       > Yeah, you are right. It looks like LInux is booting from ACPI.
> In the bootloader menu, "Automatic ACPI configuration" is
> >       disabled. So, I
> >       > thought that Linux may be booting from Device Tree. I have tried
> the "dtc" command you mentioned. But it looks like there's
> >       no device-tree
> >       > under "/proc". I also tried to get DT info, from
> "/sys/firmware/devicetree/base" . But, there's no info. under devicetree
> >       folder. I am not
> >       > quite sure how to get the DT info, if the Linux is booting from
> ACPI. I am attaching .dsl files, that contain the acpi info.
> >
> >       OK, so it is pretty clear that even if "Automatic ACPI
> configuration" is
> >       disabled, it is still booting with ACPI.
> >
> >
> >       >       Also for your information it looks like Linux actually
> booted from ACPI,
> >       >       not from Device Tree, as you can see from all the "ACPI"
> messages in the
> >       >       kernel logs.
> >       >
> >       >       If you need to boot from ACPI, then you need to enable
> ACPI support in
> >       >       Xen, which is disabled by default. You can do that using
> make
> >       >       menuconfig.
> >       >
> >       > In the make menuconfig of Xen, I do not see any option to enable
> ACPI.
> >
> >       You definitely need to enable ACPI support in Xen, if you are
> booting
> >       from ACPI, otherwise nothing is going to work.
> >
> >       On the latest staging (https://gitlab.com/xen-project/xen) you can
> >       enable ACPI as follows:
> >
> >
> >       # export CROSS_COMPILE=/path/to/cross-compiler
> >       # export XEN_TARGET_ARCH=arm64
> >       # cd xen.git/xen
> >       # make menuconfig
> >       #   --> Configure UNSUPPORTED features
> >       #   --> Architecture Features --> ACPI
> >       # make
> >
> >
> > Hi
> >
> > I got the code from Gitlab and installed it, enabling ACPI support in
> Xen. As I reboot the system, I am able to see 2 options like before.
> > Option 1: Debian with latest kernel
> > Option 2 : Debian with Xen
> >
> > I have selected Option 2. I did not see any bootinfo membanks error.
> However, there is the following error in GRUB(just for a fraction of a
> > second).
> >
> > "Using modules provided by boot loader in FDT
> >   Xen 4.16-unstable (c/s Wed Oct 13 13 13:28:43 2021 -0700
> git:4cfab4425d) EFI Loader
> >   Couldn't obtain the File System Protocol Interface: ErrCode:
> 0x8000000000000002"
> >
> > I have enabled earlyprintk. I do not see any messages in the Serial.
> There seems to be some problem with the gitlab version of Xen.
>
> The error comes from xen/common/efi/boot.c:get_parent_handle
>
> Xen is booted as EFI binary and it is trying to load other binaries
> using the EFI File System Protocol Interface which is one of the EFI
> Boot Services.
>
> A wild guess is that somehow Grub is calling ExitBootServices, which
> closes all Boot Services interfaces, before executing Xen. It should not
> happen if Grub is executing Xen as EFI binary. I cannot explain how it
> is possible. It looks like a bug in Grub.
>
> Can you post the Grub config file that you are using?
>
>
> Usually before Grub there is the proper EFI bootloader, tipically EDK2.
> You should be able to boot Xen directly from the EFI bootloader too,
> from its prompt, just by executing "xen". You need to place the xen
> binary in the first FAT partition together with a xen.cfg config file as
> follows:
>
> ---
> options=console=com1 com1=115200 loglvl=all noreboot
> kernel=vmlinuz-3.0.31-0.4-xen [domain 0 command line options]
> ramdisk=initrd-3.0.31-0.4-xen
> ---
>
> options is to specify the Xen command line.
> kernel is to specify the Linux kernel to use and its command line.
> ramdisk is to specify the Linux ramdisk.
>
> Both kernel and ramdisk needs to be on the FAT partition too.
>
>
> That way you skip Grub and you might be able to skip any related
> problems with ExitBootServices.

Reply via email to