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
next prev parent 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).