From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: Design doc of adding ACPI support for arm64 on Xen - version 2 Date: Wed, 12 Aug 2015 10:21:55 +0100 Message-ID: <55CB1033.4040509@citrix.com> References: <55C413D5.7000709@huawei.com> <55CA2077.2000706@citrix.com> <55CAB7D3.5050504@huawei.com> <1439369520.9747.311.camel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1439369520.9747.311.camel@citrix.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: Ian Campbell , Shannon Zhao , xen-devel , Jan Beulich , Stefano Stabellini , Parth Dixit , Christoffer Dall , Shannon Zhao Cc: andrew@FreeBSD.org, Hangaohuai , "Huangpeng (Peter)" List-Id: xen-devel@lists.xenproject.org Hi, (Cc Andrew Turner who worked on the ACPI port for FreeBSD ARM64) On 12/08/2015 09:52, Ian Campbell wrote: > On Wed, 2015-08-12 at 11:04 +0800, Shannon Zhao wrote: >> Hi Julien, >> >> On 2015/8/12 0:19, Julien Grall wrote: >>> Hi Shannon, >>> >>> On 07/08/15 03:11, Shannon Zhao wrote: >>>> 2. Create minimal DT to pass required information to Dom0 >>>> ---------------------------------------------------------- >>>> The minimal DT mainly passes Dom0 bootargs, address and size of >>>> initrd >>>> (if available), address and size of uefi system table, address and >>>> size >>>> of uefi memory table, uefi-mmap-desc-size and uefi-mmap-desc-ver. >>>> >>>> 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>; >>>> linux,uefi-system-table = <0xXXXXXXXX>; >>>> linux,uefi-mmap-start = <0xXXXXXXXX>; >>>> linux,uefi-mmap-size = <0xXXXXXXXX>; >>>> linux,uefi-mmap-desc-size = <0xXXXXXXXX>; >>>> linux,uefi-mmap-desc-ver = <0xXXXXXXXX>; >>>> }; >>>> }; >>>> >>>> For details loook at >>>> https://github.com/torvalds/linux/blob/master/Documentation/arm/uefi. >>>> txt >>> >>> AFAICT, the device tree properties in this documentation are only used >>> in order to communicate between the UEFI stub and Linux. >>> >>> This means that those properties are not standardize and can change at >>> any time by Linux folks. They don't even live in >>> Documentation/devicetree/ >>> >>> I would also expect to see the same needs for FreeBSD running as DOM0 >>> with ACPI. >>> >> I'm not very clear about how FreeBSD communicates with UEFI. And when >> booting with DT, how does FreeBSD communicate with UEFI? Not through >> these properties? > > These properties are in effect a Linux internal interface defined between > the "Linux UEFI stub" and the "Linux kernel proper". The stub and the > kernel are notionally separate entities, although they are in the same tree > etc there is a well defined transition/entry point between the two. Since > they are in the same tree even though they are in theory "separate" I > expect they will tend to co-evolve. > > IIRC we discussed with some of the maintainers (at Connect?) making this a > more formal interface, i.e. exposing the entry point to "Linux kernel > proper" which understands these properties to other than just the "Linux > UEFI stub" specifically to external entities such as Xen. > > Probably part of this work needs to formalise that, such as by moving this > binding into the proper external bindings dir. > > At which point BSD can (hopefully!) choose to support the same interface. I haven't yet figure out how to exactly boot FreeBSD ARM64 as DOM0 (with both ACPI and DT). But given that the only way to get the memory map on DOM0 with ACPI will be via those properties, we will surely needs them at some point in FreeBSD. Regards, -- Julien Grall