All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.