xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Julien Grall <julien@xen.org>
To: Elliott Mitchell <ehem+xen@m5p.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
	roman@zededa.com, xen-devel@lists.xenproject.org
Subject: Re: Xen on RP4
Date: Mon, 26 Oct 2020 18:44:27 +0000	[thread overview]
Message-ID: <7a904044-8206-b45d-8ec2-d4e48b07ea83@xen.org> (raw)
In-Reply-To: <20201026160316.GA20589@mattapan.m5p.com>

Hi Elliott,

On 26/10/2020 16:03, Elliott Mitchell wrote:
> On Mon, Oct 26, 2020 at 01:31:42PM +0000, Julien Grall wrote:
>> On 24/10/2020 06:35, Elliott Mitchell wrote:
>>> ACPI has a distinct
>>> means of specifying a limited DMA-width; the above fails, because it
>>> assumes a *device-tree*.
>>
>> Do you know if it would be possible to infer from the ACPI static table
>> the DMA-width?
> 
> Yes, and it is.  Due to not knowing much about ACPI tables I don't know
> what the C code would look like though (problem is which documentation
> should I be looking at first?).

What you provided below is an excerpt of the DSDT. AFAIK, DSDT content 
is written in AML. So far the shortest implementation I have seen for 
the AML parser is around 5000 lines (see [1]). It might be possible to 
strip some the code, although I think this will still probably too big 
for a single workaround.

What I meant by "static table" is a table that looks like a structure 
and can be parsed in a few lines. If we can't find on contain the DMA 
window, then the next best solution is to find a way to identity the 
platform.

I don't know enough ACPI to know if this solution is possible. A good 
starter would probably be the ACPI spec [2].

> 
> Handy bit of information is in the RP4 Tianocore table source:
> https://github.com/tianocore/edk2-platforms/blob/d492639638eee331ac3389e6cf53ea266c3c84b3/Platform/RaspberryPi/AcpiTables/Dsdt.asl
> 
>        Name (_DMA, ResourceTemplate() {
>          //
>          // Only the first GB is available.
>          // Bus 0xC0000000 -> CPU 0x00000000.
>          //
>          QWordMemory (ResourceConsumer,
>            ,
>            MinFixed,
>            MaxFixed,
>            NonCacheable,
>            ReadWrite,
>            0x0,
>            0x00000000C0000000, // MIN
>            0x00000000FFFFFFFF, // MAX
>            0xFFFFFFFF40000000, // TRA
>            0x0000000040000000, // LEN
>            ,
>            ,
>            )
>        })
> 
> There should be some corresponding code in the Linux 5.9 kernels.  From
> the look of that, it might even be possible to specify a memory range
> which didn't start at address 0.
> 
> 

Cheers,

[1] https://github.com/openbsd/src/blob/master/sys/dev/acpi/dsdt.c
[2] https://www.uefi.org/sites/default/files/resources/ACPI_6.0.pdf

-- 
Julien Grall


  reply	other threads:[~2020-10-26 18:44 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20201011051933.GA77136@mattapan.m5p.com>
     [not found] ` <alpine.DEB.2.21.2010121138480.10386@sstabellini-ThinkPad-T480s>
     [not found]   ` <20201012215751.GB89158@mattapan.m5p.com>
     [not found]     ` <c38d78bd-c011-404b-5f59-d10cd7d7f006@xen.org>
     [not found]       ` <20201016003024.GA13290@mattapan.m5p.com>
     [not found]         ` <23885c28-dee5-4e9a-dc43-6ccf19a94df6@xen.org>
     [not found]           ` <20201022021655.GA74011@mattapan.m5p.com>
     [not found]             ` <alpine.DEB.2.21.2010221620230.12247@sstabellini-ThinkPad-T480s>
     [not found]               ` <20201023005629.GA83870@mattapan.m5p.com>
     [not found]                 ` <alpine.DEB.2.21.2010221801490.12247@sstabellini-ThinkPad-T480s>
     [not found]                   ` <20201023211941.GA90171@mattapan.m5p.com>
2020-10-23 23:59                     ` Xen on RP4 Stefano Stabellini
2020-10-24  1:56                       ` Elliott Mitchell
2020-10-24  3:13                       ` Elliott Mitchell
2020-10-24  4:34                       ` Elliott Mitchell
2020-10-24  5:35                       ` Elliott Mitchell
2020-10-26 13:31                         ` Julien Grall
2020-10-26 16:03                           ` Elliott Mitchell
2020-10-26 18:44                             ` Julien Grall [this message]
2020-10-26 21:32                               ` Elliott Mitchell
2020-10-28  1:54                               ` Elliott Mitchell
2020-10-29  0:37                                 ` Stefano Stabellini
2020-10-29  5:20                                   ` Jürgen Groß
2020-10-29 19:57                                     ` Stefano Stabellini
2020-11-10 23:25                                       ` Elliott Mitchell
2020-11-11  2:59                                       ` Christopher Clark
2020-10-29 21:29                                   ` Elliott Mitchell
2020-10-30 20:10                                     ` Stefano Stabellini
2020-11-01 17:26                                       ` Ash Wilding
2020-11-02 21:22                                         ` Stefano Stabellini
2020-11-25  3:37 Elliott Mitchell
2020-11-25  4:01 ` Roman Shaposhnik
2020-11-25  4:41   ` Elliott Mitchell
2020-11-25  4:45     ` Roman Shaposhnik
2020-11-25  5:16       ` Elliott Mitchell
2020-11-25 18:57         ` Stefano Stabellini
2020-11-26  3:36           ` Elliott Mitchell
2020-11-28  7:59             ` Roman Shaposhnik
2020-11-28 18:15               ` Elliott Mitchell
2020-11-28  4:56           ` Elliott Mitchell
2020-11-25 19:45         ` Roman Shaposhnik

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=7a904044-8206-b45d-8ec2-d4e48b07ea83@xen.org \
    --to=julien@xen.org \
    --cc=ehem+xen@m5p.com \
    --cc=roman@zededa.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.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).