From owner-freebsd-arm@freebsd.org Fri Sep 11 16:36:20 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 18EAEA02DD6 for ; Fri, 11 Sep 2015 16:36:20 +0000 (UTC) (envelope-from mark.rutland@arm.com) Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by mx1.freebsd.org (Postfix) with ESMTP id EDAEC11B1 for ; Fri, 11 Sep 2015 16:36:19 +0000 (UTC) (envelope-from mark.rutland@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 615CE317; Fri, 11 Sep 2015 09:36:31 -0700 (PDT) Received: from leverpostej (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6E6183F317; Fri, 11 Sep 2015 09:36:16 -0700 (PDT) Date: Fri, 11 Sep 2015 17:36:05 +0100 From: Mark Rutland To: Jan Beulich Cc: "Ian.Campbell@citrix.com" , "julien.grall@citrix.com" , Stefano Stabellini , "freebsd-arm@freebsd.org" , "peter.huangpeng@huawei.com" , Shannon Zhao , "matt.fleming@intel.com" , "ard.biesheuvel@linaro.org" , "christoffer.dall@linaro.org" , "leif.lindholm@linaro.org" , "shannon.zhao@linaro.org" , "linux-arm-kernel@lists.infradead.org" , "xen-devel@lists.xen.org" , "daniel.kiper@oracle.com" , Konrad Rzeszutek Wilk , "devicetree@vger.kernel.org" , "linux-doc@vger.kernel.org" , "linux-efi@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] efi/libstub/fdt: Standardize the names of EFI stub parameters Message-ID: <20150911163605.GC8726@leverpostej> References: <1441874516-11364-1-git-send-email-zhaoshenglong@huawei.com> <20150910095208.GA29293@leverpostej> <20150910112418.GC29293@leverpostej> <55F199DD02000078000A1B1E@prv-mh.provo.novell.com> <20150910145331.GJ29293@leverpostej> <55F1B89802000078000A1C9B@prv-mh.provo.novell.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55F1B89802000078000A1C9B@prv-mh.provo.novell.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Mailman-Approved-At: Fri, 11 Sep 2015 17:44:24 +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: Fri, 11 Sep 2015 16:36:20 -0000 > >> Considering that the EFI support is just for Dom0, and Dom0 (at > >> the time) had to be PV anyway, it was the more natural solution to > >> expose the interface via hypercalls, the more that this allows better > >> control over what is and primarily what is not being exposed to > >> Dom0. With the wrapper approach we'd be back to the same > >> problem (discussed elsewhere) of which EFI version to surface: The > >> host one would impose potentially missing extensions, while the > >> most recent hypervisor known one might imply hiding valuable > >> information from Dom0. Plus there are incompatible changes like > >> the altered meaning of EFI_MEMORY_WP in 2.5. > > > > I'm not sure I follow how hypercalls solve any impedance mismatch here; > > you're still expecting Dom0 to call up to Xen in order to perform calls, > > and all I suggested was a different location for those hypercalls. > > > > If Xen is happy to make such calls blindly, why does it matter if the > > hypercall was in the kernel binary or an external shim? > > Because there could be new entries in SystemTable->RuntimeServices > (expected and blindly but validly called by the kernel). Even worse > (because likely harder to deal with) would be new fields in other > structures. Any of these could cause Xen to blow up, while Xen could always provide a known-safe (but potentially sub-optimal) view to the kernel by default. > > Incompatible changes are a spec problem regardless of how this is > > handled. > > Not necessarily - we don't expose the memory map (we'd have to > if we were to mimic EFI for Dom0), and hence the mentioned issue > doesn't exist in our model. We have to expose _some_ memory map, so I don't follow this point. Mark.