On Fri, 30 Oct 2020 10:50:01 +0800 Ying Fang <fangyi...@huawei.com> wrote:
> Hi, > > I have a question on UEFI/ACPI tables setup and probing on arm64 platform. CCing Laszlo, who might know how it's implemented. > Currently on arm64 platform guest can be booted with both fdt and ACPI > supported. If ACPI is enabled, [1] says the only defined method for > passing ACPI tables to the kernel is via the UEFI system configuration > table. So AFAIK, ACPI Should be dependent on UEFI. > > What's more [2] says UEFI kernel support on the ARM architectures > is only available through a *stub*. The stub populates the FDT /chosen > node with some UEFI parameters describing the UEFI location info. > > So i dump /sys/firmware/fdt from the guest, it does have something like: > > /dts-v1/; > > / { > #size-cells = <0x02>; > #address-cells = <0x02>; > > chosen { > linux,uefi-mmap-desc-ver = <0x01>; > linux,uefi-mmap-desc-size = <0x30>; > linux,uefi-mmap-size = <0x810>; > linux,uefi-mmap-start = <0x04 0x3c0ce018>; > linux,uefi-system-table = <0x04 0x3f8b0018>; > bootargs = > "BOOT_IMAGE=/vmlinuz-4.19.90-2003.4.0.0036.oe1.aarch64 > root=/dev/mapper/openeuler-root ro rd.lvm.lv=openeuler/root > rd.lvm.lv=openeuler/swap video=VGA-1:640x480-32@60me > smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 > crashkernel=1024M,high video=efifb:off video=VGA-1:640x480-32@60me"; > linux,initrd-end = <0x04 0x3a85a5da>; > linux,initrd-start = <0x04 0x392f2000>; > }; > }; > > But the question is that I did not see any code adding the uefi > in fdt chosen node in *arm_load_dtb* or anywhere else. > Qemu only maps the OVMF binary file into a pflash device. > So I'm really confused on how UEFI information is provided to > guest by qemu. Does anybody know of the details about it ? > > [1] https://www.kernel.org/doc/html/latest/arm64/arm-acpi.html > [2] https://www.kernel.org/doc/Documentation/arm/uefi.rst > > Thanks. > Ying >