public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Samer El-Haj-Mahmoud" <samer.el-haj-mahmoud@arm.com>
To: "Andrei Warkentin (awarkentin@vmware.com)"
	<awarkentin@vmware.com>, Jeremy Linton <Jeremy.Linton@arm.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com>,
	"leif@nuviainc.com" <leif@nuviainc.com>,
	"pete@akeo.ie" <pete@akeo.ie>,
	Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: Re: [PATCH 3/3] Platform/RaspberryPi/AcpiTables: Correct _DMA consumer
Date: Tue, 13 Apr 2021 16:44:41 +0000	[thread overview]
Message-ID: <DB7PR08MB3260A561B9170928EABC1F55904F9@DB7PR08MB3260.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <SN7PR05MB75823D7838BA61C71D10C8BBB9749@SN7PR05MB7582.namprd05.prod.outlook.com>

[-- Attachment #1: Type: text/plain, Size: 5159 bytes --]

I just got to this thread. Apologies for the delay.

I went through the ACPI spec. Here is what I see:

https://uefi.org/specs/ACPI/6.4/19_ASL_Reference/ACPI_Source_Language_Reference.html#qwordmemory-qword-memory-resource-descriptor-macro


"ResourceUsage specifies whether the Memory range is consumed by this device (ResourceConsumer) or passed on to child devices (ResourceProducer). If nothing is specified, then ResourceConsumer is assumed."



https://uefi.org/specs/ACPI/6.4/06_Device_Configuration/Device_Configuration.html#dma-direct-memory-access



" It specifies the ranges the bus controller (bridge) decodes on the child-side of its interface. (This is analogous to the _CRS object, which describes the resources that the bus controller decodes on the parent-side of its interface.) Any ranges described in the resources of a _DMA object can be used by child devices for DMA or bus master transactions.."



The way I read the spec, this wording in the _DMA definition "Any ranges described in the resources of a _DMA object can be used by child devices.." suggests that this should be a ResourceProducer, per the QWordMemory resource descriptor definition above


The _DMA example in section 6.2.4 uses a "ResourceConsumer", when it should really be "ResourceProducer" according to these definitions: It describes , the child devices view of the address range, so the "translation" added is the CPU's view of the same range.



I submitted a "code first" ECR to correct the ACPI spec example (here : https://bugzilla.tianocore.org/show_bug.cgi?id=3335). Please provide feedback on the BZ (or this thread) whether you agree or not, so we can take this to ASWG/UEFI Forum for discussion and approval



Thanks,

--Samer





From: Andrei Warkentin <awarkentin@vmware.com>
Sent: Thursday, April 8, 2021 10:24 AM
To: Jeremy Linton <Jeremy.Linton@arm.com>; devel@edk2.groups.io
Cc: Ard Biesheuvel <Ard.Biesheuvel@arm.com>; leif@nuviainc.com; pete@akeo.ie; Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: Re: [PATCH 3/3] Platform/RaspberryPi/AcpiTables: Correct _DMA consumer

I don't know... the ACPI spec is weird.

https://uefi.org/specs/ACPI/6.4/06_Device_Configuration/Device_Configuration.html#dma-direct-memory-access

...lists ResourceConsumer for _DMA.

A

________________________________
From: Jeremy Linton <jeremy.linton@arm.com<mailto:jeremy.linton@arm.com>>
Sent: Thursday, April 8, 2021 12:58 AM
To: devel@edk2.groups.io<mailto:devel@edk2.groups.io> <devel@edk2.groups.io<mailto:devel@edk2.groups.io>>
Cc: ard.biesheuvel@arm.com<mailto:ard.biesheuvel@arm.com> <ard.biesheuvel@arm.com<mailto:ard.biesheuvel@arm.com>>; leif@nuviainc.com<mailto:leif@nuviainc.com> <leif@nuviainc.com<mailto:leif@nuviainc.com>>; pete@akeo.ie<mailto:pete@akeo.ie> <pete@akeo.ie<mailto:pete@akeo.ie>>; samer.el-haj-mahmoud@arm.com<mailto:samer.el-haj-mahmoud@arm.com> <samer.el-haj-mahmoud@arm.com<mailto:samer.el-haj-mahmoud@arm.com>>; Andrei Warkentin <awarkentin@vmware.com<mailto:awarkentin@vmware.com>>; Jeremy Linton <jeremy.linton@arm.com<mailto:jeremy.linton@arm.com>>
Subject: [PATCH 3/3] Platform/RaspberryPi/AcpiTables: Correct _DMA consumer

Bridge devices should be marked as producers so that their
children can consume the resources. In linux if this isn't
true then the translation gets ignored and the DMA values
are incorrect. This fixes DMA on all the devices that
need a translation.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com<mailto:jeremy.linton@arm.com>>
---
 Platform/RaspberryPi/AcpiTables/Dsdt.asl | 2 +-
 Platform/RaspberryPi/AcpiTables/Emmc.asl | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Platform/RaspberryPi/AcpiTables/Dsdt.asl b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
index d116f965e1..32cd5fc9f9 100644
--- a/Platform/RaspberryPi/AcpiTables/Dsdt.asl
+++ b/Platform/RaspberryPi/AcpiTables/Dsdt.asl
@@ -205,7 +205,7 @@ DefinitionBlock ("Dsdt.aml", "DSDT", 5, "RPIFDN", "RPI", 2)
         // Only the first GB is available.

         // Bus 0xC0000000 -> CPU 0x00000000.

         //

-        QWordMemory (ResourceConsumer,

+        QWordMemory (ResourceProducer,

           ,

           MinFixed,

           MaxFixed,

diff --git a/Platform/RaspberryPi/AcpiTables/Emmc.asl b/Platform/RaspberryPi/AcpiTables/Emmc.asl
index 179dd3ecdb..0fbc2a79ea 100644
--- a/Platform/RaspberryPi/AcpiTables/Emmc.asl
+++ b/Platform/RaspberryPi/AcpiTables/Emmc.asl
@@ -32,7 +32,7 @@ DefinitionBlock (__FILE__, "SSDT", 5, "RPIFDN", "RPI4EMMC", 2)
       }



       Name (_DMA, ResourceTemplate() {

-        QWordMemory (ResourceConsumer,

+        QWordMemory (ResourceProducer,

           ,

           MinFixed,

           MaxFixed,

--
2.13.7
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

[-- Attachment #2: Type: text/html, Size: 13834 bytes --]

  reply	other threads:[~2021-04-13 16:44 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-08  5:58 [PATCH 0/3] SD+USB perf/DMA fixes Jeremy Linton
2021-04-08  5:58 ` [PATCH 1/3] Platform/RaspberryPi/Acpitables: Enable Arasan hispeed mode Jeremy Linton
2021-04-08  9:48   ` Pete Batard
2021-04-08 14:17     ` Andrei Warkentin
2021-05-10 16:41       ` Samer El-Haj-Mahmoud
2021-05-10 16:41     ` Samer El-Haj-Mahmoud
2021-05-10 16:41   ` Samer El-Haj-Mahmoud
2021-04-08  5:58 ` [PATCH 2/3] Platform/RaspberryPi/AcpiTables: Add further named components Jeremy Linton
2021-04-08  9:48   ` Pete Batard
2021-05-10 16:41     ` Samer El-Haj-Mahmoud
2021-04-08 14:17   ` Andrei Warkentin
2021-05-10 16:42     ` Samer El-Haj-Mahmoud
2021-05-10 16:41   ` Samer El-Haj-Mahmoud
2021-04-08  5:58 ` [PATCH 3/3] Platform/RaspberryPi/AcpiTables: Correct _DMA consumer Jeremy Linton
2021-04-08  9:48   ` Pete Batard
2021-05-10 16:43     ` Samer El-Haj-Mahmoud
2021-04-08 14:23   ` Andrei Warkentin
2021-04-13 16:44     ` Samer El-Haj-Mahmoud [this message]
     [not found]     ` <167578A6C978A75F.9301@groups.io>
2021-04-29 14:02       ` [edk2-devel] " Samer El-Haj-Mahmoud
     [not found]       ` <167A591C4A42BD1B.6294@groups.io>
2021-04-30 18:05         ` Samer El-Haj-Mahmoud
2021-05-10 16:42           ` Samer El-Haj-Mahmoud
2021-05-10 16:43   ` Samer El-Haj-Mahmoud
2021-04-08 14:24 ` [PATCH 0/3] SD+USB perf/DMA fixes Andrei Warkentin
2021-04-30 18:28   ` Samer El-Haj-Mahmoud
     [not found]   ` <167AB62D787B8F90.7155@groups.io>
2021-05-10 16:40     ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-04-30 20:30 ` Andrei Warkentin
2021-05-10 16:39   ` [edk2-devel] " Samer El-Haj-Mahmoud

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-list 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=DB7PR08MB3260A561B9170928EABC1F55904F9@DB7PR08MB3260.eurprd08.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /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