From owner-freebsd-arm@freebsd.org Thu Sep 10 11:40:04 2015 Return-Path: Delivered-To: freebsd-arm@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5D085A012F8 for ; Thu, 10 Sep 2015 11:40:04 +0000 (UTC) (envelope-from prvs=68895f1e6=Stefano.Stabellini@citrix.com) Received: from SMTP.CITRIX.COM (smtp.citrix.com [66.165.176.89]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (Client CN "mail.citrix.com", Issuer "Verizon Public SureServer CA G14-SHA2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 083C51CB8 for ; Thu, 10 Sep 2015 11:40:03 +0000 (UTC) (envelope-from prvs=68895f1e6=Stefano.Stabellini@citrix.com) X-IronPort-AV: E=Sophos;i="5.17,504,1437436800"; d="scan'208";a="299136041" Date: Thu, 10 Sep 2015 12:37:57 +0100 From: Stefano Stabellini X-X-Sender: sstabellini@kaball.uk.xensource.com To: Mark Rutland CC: Stefano Stabellini , Shannon Zhao , "linux-arm-kernel@lists.infradead.org" , "devicetree@vger.kernel.org" , "linux-efi@vger.kernel.org" , "Ian.Campbell@citrix.com" , "linux-doc@vger.kernel.org" , "ard.biesheuvel@linaro.org" , "linux-kernel@vger.kernel.org" , "leif.lindholm@linaro.org" , "xen-devel@lists.xen.org" , "julien.grall@citrix.com" , "freebsd-arm@freebsd.org" , "matt.fleming@intel.com" , "christoffer.dall@linaro.org" , "jbeulich@suse.com" , "peter.huangpeng@huawei.com" , "shannon.zhao@linaro.org" , Konrad Rzeszutek Wilk , Subject: Re: [PATCH] efi/libstub/fdt: Standardize the names of EFI stub parameters In-Reply-To: <20150910112418.GC29293@leverpostej> Message-ID: References: <1441874516-11364-1-git-send-email-zhaoshenglong@huawei.com> <20150910095208.GA29293@leverpostej> <20150910112418.GC29293@leverpostej> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" X-DLP: MIA2 X-Mailman-Approved-At: Thu, 10 Sep 2015 11:46:29 +0000 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Sep 2015 11:40:04 -0000 On Thu, 10 Sep 2015, Mark Rutland wrote: > > > Does Xen not talk to EFI itself and/or give the kernel a virtual EFI > > > interface? > > > > Xen talks to EFI itself but the interface provided to dom0 is somewhat > > different: there are no BootServices (Xen calls ExitBootServices before > > running the kernel), and the RuntimeServices go via hypercalls (see > > drivers/xen/efi.c). > > That's somewhat hideous; a non Xen-aware OS wouild presumably die if > trying to use any runtime services the normal way? I'm not keen on > describing things that the OS cannot use. I agree that is somewhat hideous, but a non-Xen aware OS traditionally has never been able to even boot as Dom0. On ARM it can, but it still wouldn't be very useful (one couldn't use it to start other guests). > Why can't Xen give a virtual EFI interface to Dom0 / guests? e.g. > create pages of RuntimeServicesCode that are trivial assembly shims > doing hypercalls, and plumb these into the virtual EFI memory map and > tables? > > That would keep things sane for any guest, allow for easy addition of > EFI features, and you could even enter the usual EFI entry point, > simulate ExitBootServices(), SetVirtualAddressMap(), and allow the guest > to make things sane for itself... That's the way it was done on x86 and now we have common code both in Linux (drivers/xen/efi.c) and Xen (xen/common/efi) which implement this scheme. Switching to a different solution for ARM, would mean diverging with x86, which is not nice, or reimplementing the x86 solution too, which is expensive. BTW I think that the idea you proposed was actually considered at the time and deemed hard to implement, if I recall correctly. In any case this should be separate from the shim ABI discussion.