From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Design doc of adding ACPI support for arm64 on Xen - version 5 Date: Wed, 2 Sep 2015 13:18:31 +0100 Message-ID: <1441196311.26292.155.camel@citrix.com> References: <55E02DC5.4090202@huawei.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <55E02DC5.4090202@huawei.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Shannon Zhao , xen-devel , Christoffer Dall , Stefano Stabellini , Julien Grall , Stefano Stabellini , Jan Beulich , Parth Dixit , andrew@fubar.geek.nz, Boris Ostrovsky , David Vrabel , Roger Pau Monne Cc: Hangaohuai , "Huangpeng (Peter)" , Shannon Zhao List-Id: xen-devel@lists.xenproject.org On Fri, 2015-08-28 at 17:45 +0800, Shannon Zhao wrote: > > 1. Create minimal DT to pass required information to Dom0 > ---------------------------------------------------------- > The UEFI stub is a feature that extends the Image/zImage into a valid > UEFI PE/COFF executable, including a loader application that makes it > possible to load the kernel directly from the UEFI shell, boot menu, or > one of the lightweight bootloaders like Gummiboot or rEFInd. > The kernel image built with stub support remains a valid kernel image > for booting in non-UEFI environments and the UEFI stub will be jumped > over for non-UEFI environments. > > When booting in UEFI mode, the UEFI stub will create a minimal DT in > order to pass the command line and other informations (such as the EFI > memory table) to the kernel. And when booting with ACPI, kernel will get > command line, ACPI root table address and memory map information from > the minimal DT. Also, it will check if the DT contains only the /chosen > node to know whether it boots with DT or ACPI. > > In addition, the current names of these properties with a "linux," > prefix in the minimal DT are Linux specified. It needs to standardize > them so that other OS(such as FreeBSD) could reuse them in the future. I mentioned this just now in a reply to an older revision while I was catching up on my mail backlog but I think it is important enough to reiterate here on the currently latest version: We need to discuss this possible standardisation of (some derivative of) this Linux internal interfaces in the appropriate forums ASAP and come to a wider agreement that it is acceptable than just here amongst us Xen people. A large part of this design is predicated on this and we don't want to get too far down this path only to discover the rest of the world says "No, thanks". See my earlier reply at http://lists.xen.org/archives/html/xen-devel/2015-09/msg00189.html for some thoughts as to who we should be talking to. > So we drop the "linux," prefix of UEFI parameters and change the names > in Linux kernel as well. > > An example of the minimal DT: > / { > #address-cells = <2>; > #size-cells = <1>; > chosen { > bootargs = "kernel=Image console=hvc0 earlycon=pl011,0x1c090000 > root=/dev/vda2 rw rootfstype=ext4 init=/bin/sh acpi=force"; > linux,initrd-start = <0xXXXXXXXX>; > linux,initrd-end = <0xXXXXXXXX>; > uefi-system-table = <0xXXXXXXXX>; > uefi-mmap-start = <0xXXXXXXXX>; > uefi-mmap-size = <0xXXXXXXXX>; > uefi-mmap-desc-size = <0xXXXXXXXX>; > uefi-mmap-desc-ver = <0xXXXXXXXX>; > }; > }; > > For details loook at > > https://github.com/torvalds/linux/blob/master/Documentation/arm/uefi.txt