From: Shannon Zhao <zhaoshenglong@huawei.com>
To: Jan Beulich <JBeulich@suse.com>, shannon.zhao@linaro.org
Cc: hangaohuai@huawei.com, ian.campbell@citrix.com,
	stefano.stabellini@eu.citrix.com, andrew@fubar.geek.nz,
	peter.huangpeng@huawei.com, julien.grall@citrix.com,
	stefano.stabellini@citrix.com, david.vrabel@citrix.com,
	boris.ostrovsky@oracle.com, xen-devel@lists.xen.org,
	parth.dixit@linaro.org, christoffer.dall@linaro.org
Subject: Re: Design doc of adding ACPI support for arm64 on Xen - version 3
Date: Tue, 18 Aug 2015 17:34:47 +0800	[thread overview]
Message-ID: <55D2FC37.4000303@huawei.com> (raw)
In-Reply-To: <55D312FE020000780009B9A1@prv-mh.provo.novell.com>
On 2015/8/18 17:11, Jan Beulich wrote:
>>>> On 18.08.15 at 10:21, <zhaoshenglong@huawei.com> wrote:
> 
>>
>> On 2015/8/18 16:15, Jan Beulich wrote:
>>>>>> On 18.08.15 at 09:35, <zhaoshenglong@huawei.com> wrote:
>>>> Hi Jan,
>>>>
>>>> On 2015/8/18 13:14, Jan Beulich wrote:
>>>>>>>> Shannon Zhao <zhaoshenglong@huawei.com> 08/18/15 5:46 AM >>>
>>>>>> On 2015/8/17 23:33, Jan Beulich wrote:
>>>>>>>>>> On 14.08.15 at 16:59, <shannon.zhao@linaro.org> wrote:
>>>>>>>> 1. Copy and change some EFI and ACPI tables
>>>>>>>> -------------------------------------------
>>>>>>>
>>>>>>> While some explanation on the reasons for this was given in the past
>>>>>>> discussion, I'm still missing a word on the "why" for each of these here.
>>>>>>>
>>>>>>>> a) Copy EFI_SYSTEM_TABLE and change the value of FirmwareVendor,
>>>>>>>> VendorGuid, VendorTable, ConfigurationTable. These changes are not very
>>>>>>>> special and it just assign values to these members.
>>>>>>>
>>>>>>> I continue to question the need for fiddling with this table, not the
>>>>>>> least because I don't see how you intend to hand it to the Dom0
>>>>>>> kernel: Are you expecting to call the kernel's ordinary EFI entry
>>>>>>> point, despite it not itself running on EFI firmware?
>>>>>>>
>>>>>> Dom0 gets UEFI info from the minimal DT when booting with UEFI.
>>>>>> And the main purpose to create a EFI_SYSTEM_TABLE is to provide the ACPI
>>>>>> table root (RSDP) address to Dom0, so it could find the ACPI table.
>>>>>
>>>>> For that passing the configuration table would suffice. The more that Julien
>>>>> in his reply said you're not even intending to use the kernel's EFI stub. 
>>>> I.e.
>>>>> the question remains: How would you expect to hand the System Table
>>>>> pointer to Dom0?
>>>>>
>>
>> The System Table pointer will be passed to Dom0 through the minimal DT
>> property "linux,uefi-system-table".
> 
> And this is a requirement for Linux? I.e. it can't do with just the
> Configuration Table (which architecturally would be more clean imo)?
> 
IIUC, this is a requirement for Linux. Because when Linux parses the
minimal DT, it uses below dt_params to match the DT properties. If it
doesn't match any of them, it will fial.
See efi_get_fdt_params in drivers/firmware/efi/efi.c.
static __initdata struct {
	const char name[32];
	const char propname[32];
	int offset;
	int size;
} dt_params[] = {
	UEFI_PARAM("System Table", "linux,uefi-system-table", system_table),
	UEFI_PARAM("MemMap Address", "linux,uefi-mmap-start", mmap),
	UEFI_PARAM("MemMap Size", "linux,uefi-mmap-size", mmap_size),
	UEFI_PARAM("MemMap Desc. Size", "linux,uefi-mmap-desc-size", desc_size),
	UEFI_PARAM("MemMap Desc. Version", "linux,uefi-mmap-desc-ver", desc_ver)
};
Another choice to pass ACPI root table address is to use the kernel
parameter "acpi_rsdp". But it still needs to supply the property
"linux,uefi-system-table" in DT to make the EFI driver works. While the
value of the "linux,uefi-system-table" could be something invalid, so
Dom0 would not use the EFI System table.
-- 
Shannon
next prev parent reply	other threads:[~2015-08-18  9:34 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-14 14:59 Design doc of adding ACPI support for arm64 on Xen - version 3 Shannon Zhao
2015-08-14 15:17 ` Julien Grall
2015-08-17 13:01   ` Shannon Zhao
2015-08-17 16:10     ` Julien Grall
2015-08-18  3:19       ` Shannon Zhao
2015-08-18  6:36         ` Julien Grall
2015-08-18  7:23           ` Shannon Zhao
2015-08-18 16:13             ` Julien Grall
2015-08-14 15:59 ` Konrad Rzeszutek Wilk
2015-08-17 15:33 ` Jan Beulich
2015-08-17 16:19   ` Julien Grall
2015-08-18  5:10     ` Jan Beulich
2015-08-18  6:43       ` Julien Grall
2015-08-18  7:01         ` Jan Beulich
2015-08-18  7:46           ` Shannon Zhao
2015-08-18 19:01           ` Julien Grall
2015-08-18  3:41   ` Shannon Zhao
2015-08-18  5:14     ` Jan Beulich
2015-08-18  7:35       ` Shannon Zhao
2015-08-18  8:15         ` Jan Beulich
2015-08-18  8:21           ` Shannon Zhao
2015-08-18  9:11             ` Jan Beulich
2015-08-18  9:34               ` Shannon Zhao [this message]
2015-08-18 19:00                 ` Julien Grall
2015-09-02 11:43                   ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox
  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):
  git send-email \
    --in-reply-to=55D2FC37.4000303@huawei.com \
    --to=zhaoshenglong@huawei.com \
    --cc=JBeulich@suse.com \
    --cc=andrew@fubar.geek.nz \
    --cc=boris.ostrovsky@oracle.com \
    --cc=christoffer.dall@linaro.org \
    --cc=david.vrabel@citrix.com \
    --cc=hangaohuai@huawei.com \
    --cc=ian.campbell@citrix.com \
    --cc=julien.grall@citrix.com \
    --cc=parth.dixit@linaro.org \
    --cc=peter.huangpeng@huawei.com \
    --cc=shannon.zhao@linaro.org \
    --cc=stefano.stabellini@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY
  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
  Be sure your reply has a Subject: header at the top and a blank line
  before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).