xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Shannon Zhao <shannon.zhao@linaro.org>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: peter.huangpeng@huawei.com, xen-devel@lists.xen.org,
	stefano.stabellini@citrix.com, ian.campbell@citrix.com,
	Shannon Zhao <zhaoshenglong@huawei.com>
Subject: Re: [PATCH v4 13/24] arm/acpi: Map all other tables for Dom0
Date: Wed, 02 Mar 2016 20:43:45 +0800	[thread overview]
Message-ID: <56D6E001.1060908@linaro.org> (raw)
In-Reply-To: <alpine.DEB.2.02.1603011655400.17938@kaball.uk.xensource.com>

On 2016年03月02日 01:01, Stefano Stabellini wrote:
> On Tue, 1 Mar 2016, Stefano Stabellini wrote:
>> > On Tue, 1 Mar 2016, Shannon Zhao wrote:
>>> > > On 2016/2/29 22:15, Stefano Stabellini wrote:
>>>> > > > On Sun, 28 Feb 2016, Shannon Zhao wrote:
>>>>>> > > >> > From: Shannon Zhao <shannon.zhao@linaro.org>
>>>>>> > > >> > 
>>>>>> > > >> > Map all other tables to Dom0 using 1:1 mappings.
>>>>>> > > >> > 
>>>>>> > > >> > Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
>>>>>> > > >> > ---
>>>>>> > > >> > v4: fix commit message
>>>>>> > > >> > ---
>>>>>> > > >> >  xen/arch/arm/domain_build.c | 26 ++++++++++++++++++++++++++
>>>>>> > > >> >  1 file changed, 26 insertions(+)
>>>>>> > > >> > 
>>>>>> > > >> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>>>>> > > >> > index 64e48ae..6ad420c 100644
>>>>>> > > >> > --- a/xen/arch/arm/domain_build.c
>>>>>> > > >> > +++ b/xen/arch/arm/domain_build.c
>>>>>> > > >> > @@ -1357,6 +1357,30 @@ static int prepare_dtb(struct domain *d, struct kernel_info *kinfo)
>>>>>> > > >> >  }
>>>>>> > > >> >  
>>>>>> > > >> >  #ifdef CONFIG_ACPI
>>>>>> > > >> > +static void acpi_map_other_tables(struct domain *d)
>>>>>> > > >> > +{
>>>>>> > > >> > +    int i;
>>>>>> > > >> > +    unsigned long res;
>>>>>> > > >> > +    u64 addr, size;
>>>>>> > > >> > +
>>>>>> > > >> > +    /* Map all other tables to Dom0 using 1:1 mappings. */
>>>>>> > > >> > +    for( i = 0; i < acpi_gbl_root_table_list.count; i++ )
>>>>>> > > >> > +    {
>>>>>> > > >> > +        addr = acpi_gbl_root_table_list.tables[i].address;
>>>>>> > > >> > +        size = acpi_gbl_root_table_list.tables[i].length;
>>>>>> > > >> > +        res = map_regions(d,
>>>>>> > > >> > +                          paddr_to_pfn(addr & PAGE_MASK),
>>>>>> > > >> > +                          DIV_ROUND_UP(size, PAGE_SIZE),
>>>>>> > > >> > +                          paddr_to_pfn(addr & PAGE_MASK));
>>>>>> > > >> > +        if ( res )
>>>>>> > > >> > +        {
>>>>>> > > >> > +             panic(XENLOG_ERR "Unable to map 0x%"PRIx64
>>>>>> > > >> > +                   " - 0x%"PRIx64" in domain \n",
>>>>>> > > >> > +                   addr & PAGE_MASK, PAGE_ALIGN(addr + size) - 1);
>>>>>> > > >> > +        }
>>>>>> > > >> > +    }
>>>>>> > > >> > +}
>>>> > > > The problem with this function is that it is mapping all other tables to
>>>> > > > the guest, including the unmodified FADT and MADT. This way dom0 is
>>>> > > > going to find two different versions of the FADT and MADT, isn't that
>>>> > > > right?
>>>> > > >  
>>> > > We've replaced the entries of XSDT table with new value. That means XSDT
>>> > > points to new table. Guest will not see the old ones.
>> > 
>> > All right. Of course it would be best to avoid mapping the original FADT
>> > and MADT at all, but given that they are not likely to be page aligned,
>> > it wouldn't be easy to do.
>> > 
>> > Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
> However I have one more question: given that map_regions maps the memory
> read-only to Dom0, isn't it possible that one or more of the DSDT
> functions could not work as expected? I would imagine that the ACPI
> bytecode is allowed to change its own memory, right?
> 
I'm not sure about this. But it seems that Xen or Linux always map these
tables to its memory.

Thanks,
--
Shannon

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-03-02 12:43 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-28 11:18 [PATCH v4 00/24] Prepare UEFI and ACPI tables for Dom0 on ARM64 Shannon Zhao
2016-02-28 11:18 ` [PATCH v4 01/24] arm/acpi: Define a enum for reserved tables Shannon Zhao
2016-02-29 14:02   ` Stefano Stabellini
2016-02-29 15:16   ` Jan Beulich
2016-02-28 11:18 ` [PATCH v4 02/24] arm/acpi: Add placeholder for efi and acpi load address Shannon Zhao
2016-02-29 14:01   ` Stefano Stabellini
2016-02-28 11:18 ` [PATCH v4 03/24] arm/acpi: Read acpi memory info from uefi Shannon Zhao
2016-02-29 14:57   ` Jan Beulich
2016-02-29 15:07     ` Stefano Stabellini
2016-02-29 15:20       ` Jan Beulich
2016-02-28 11:19 ` [PATCH v4 04/24] arm/acpi: Estimate memory required for acpi/efi tables Shannon Zhao
2016-02-29 11:11   ` Jan Beulich
2016-02-29 12:13   ` Stefano Stabellini
2016-03-01  2:09     ` Shannon Zhao
2016-03-01 14:41       ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 05/24] arm/acpi: Add a helper function to get the acpi table offset Shannon Zhao
2016-02-29 12:17   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 06/24] arm/acpi: Prepare FADT table for Dom0 Shannon Zhao
2016-02-29 12:22   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 07/24] arm/gic: Add a new callback for creating MADT " Shannon Zhao
2016-02-29 12:50   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 08/24] arm/acpi: Prepare " Shannon Zhao
2016-02-29 12:52   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 09/24] arm/acpi: Prepare STAO " Shannon Zhao
2016-02-29 14:07   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 10/24] arm/acpi: Prepare XSDT " Shannon Zhao
2016-02-28 11:19 ` [PATCH v4 11/24] arm/acpi: Prepare RSDP " Shannon Zhao
2016-02-28 11:19 ` [PATCH v4 12/24] arm/p2m: Add helper functions to map memory regions Shannon Zhao
2016-02-29 14:11   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 13/24] arm/acpi: Map all other tables for Dom0 Shannon Zhao
2016-02-29 14:15   ` Stefano Stabellini
2016-02-29 19:06     ` Shannon Zhao
2016-03-01 15:28       ` Stefano Stabellini
2016-03-01 17:01         ` Stefano Stabellini
2016-03-02 12:43           ` Shannon Zhao [this message]
2016-03-02 15:00             ` Stefano Stabellini
2016-03-02 16:00               ` Jan Beulich
2016-02-28 11:19 ` [PATCH v4 14/24] arm/acpi: Prepare EFI system table " Shannon Zhao
2016-02-29 11:19   ` Jan Beulich
2016-02-29 14:25     ` Stefano Stabellini
2016-02-29 14:36       ` Jan Beulich
2016-02-29 14:39         ` Stefano Stabellini
2016-03-01  2:35         ` Shannon Zhao
2016-03-01  9:27           ` Jan Beulich
2016-03-01 12:49             ` Stefano Stabellini
2016-03-04  3:55               ` Shannon Zhao
2016-03-04 10:46                 ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 15/24] arm/acpi: Prepare EFI memory descriptor " Shannon Zhao
2016-02-29 14:37   ` Stefano Stabellini
2016-03-01  3:00     ` Shannon Zhao
2016-03-01 14:57       ` Stefano Stabellini
2016-03-01 15:07         ` Jan Beulich
2016-02-28 11:19 ` [PATCH v4 16/24] arm/acpi: Map the new created EFI and ACPI tables to Dom0 Shannon Zhao
2016-02-29 14:42   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 17/24] arm/acpi: Create min DT stub for Dom0 Shannon Zhao
2016-02-29 15:05   ` Stefano Stabellini
2016-03-03 12:31     ` Shannon Zhao
2016-02-28 11:19 ` [PATCH v4 18/24] arm/acpi: Permit access all Xen unused SPIs " Shannon Zhao
2016-02-29 15:13   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 19/24] arm/acpi: Configure SPI interrupt type and route to Dom0 dynamically Shannon Zhao
2016-02-29 16:58   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 20/24] arm/acpi: Permit MMIO access of Xen unused devices for Dom0 Shannon Zhao
2016-02-29 17:02   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 21/24] hvm/params: Add a new dilivery type for event-channel in HVM_PARAM_CALLBACK_IRQ Shannon Zhao
2016-02-29 11:23   ` Jan Beulich
2016-02-29 17:04   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 22/24] xen/acpi: Fix event-channel interrupt when booting with ACPI Shannon Zhao
2016-02-29 17:08   ` Stefano Stabellini
2016-02-28 11:19 ` [PATCH v4 23/24] xen/arm: Add a hypercall for device mmio mapping Shannon Zhao
2016-02-29 11:32   ` Jan Beulich
2016-02-28 11:19 ` [PATCH v4 24/24] xen/arm64: Add ACPI support Shannon Zhao
2016-02-29 11:34   ` Jan Beulich
2016-02-29 17:15   ` Stefano Stabellini

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=56D6E001.1060908@linaro.org \
    --to=shannon.zhao@linaro.org \
    --cc=ian.campbell@citrix.com \
    --cc=peter.huangpeng@huawei.com \
    --cc=stefano.stabellini@citrix.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xen.org \
    --cc=zhaoshenglong@huawei.com \
    /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).