From: Heiko Stuebner <heiko@sntech.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/3] bouncebuf: Add DMA validation check to addr_aligned().【请注意,邮件由u-boot-bounces@lists.denx.de代发】 addr_aligned().
Date: Sat, 06 Jul 2019 20:04:52 +0200 [thread overview]
Message-ID: <9652847.KtFbExOVNQ@phil> (raw)
In-Reply-To: <CAPnjgZ37zBCS0E99VRL7cVJrP-LKd9R0pem0OP87k+tn=NeYyw@mail.gmail.com>
Hi Simon,
Am Samstag, 6. Juli 2019, 19:16:29 CEST schrieb Simon Glass:
> On Thu, 4 Jul 2019 at 14:43, Heiko Stübner <heiko@sntech.de> wrote:
> > Am Dienstag, 4. Juni 2019, 05:23:14 CEST schrieb Kever Yang:
> > > On 05/19/2019 12:08 AM, Simon Glass wrote:
> > > > On Tue, 7 May 2019 at 03:05, Christoph Muellner
> > > > <christoph.muellner@theobroma-systems.com> wrote:
> > > >> Currently addr_aligned() performs an alignment and a length check
> > > >> to validate the DMA address. However, some machines have stricter
> > > >> restrictions of DMA-able addresses.
> > > >>
> > > >> This patch adds a call to mach_addr_is_dmaable() to honor this
> > > >> machine specific restrictions.
> > > >>
> > > >> Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
> > > >> ---
> > > >>
> > > >> common/bouncebuf.c | 6 ++++++
> > > >> 1 file changed, 6 insertions(+)
> > > > I feel like this should be handled with DM. Can we add a new method to
> > > > the DMA uclass to check an address? If not provided by the DMA driver,
> > > > we can assume the address is OK.
> > >
> > > The DMA in MMC controller which is not stand alone, do not using the
> > > driver of DMA uclass, so I'm afraid this is not able to using DMA uclass
> > > for this address check.
> >
> > were you able to consider Kever's response?
> >
> > The issue bites us for example when the mmc-driver with its internal dma
> > does transfer atf loadables to the socs sram. There is no system dma
> > controller involved but so far we're experiencing this on _all_ Rockchip
> > socs that need multiple parts of the ATF be written to different memory
> > locations. (the sram code is obviously needed for suspend/resume).
>
> I don't really understand the thing about the internal MMC DMA controller.
The dw_mmc IP block can either be connected to a system-level
dma controller (like a pl330 on for example the rk3188)
or have its own completely separate dma-controller _inside_ the
dw-mmc ip-block itself (I think all newer Rockchip socs for example).
> Is it not possible to call a DMA driver to validate an address, or to
> allocate an address? It isn't necessary to use the driver for a
> transfer.
For the internal-dma case, there really is no separate dma-driver
involved, all is contained in dw-mmc.
On rk3288 on the kernel-side we also "just" blocked off the offending
memory area due to all other approaches being cumbersome,
with multiple IP blocks all bringing their own dma-controllers
circumventing the system-level ones.
> But if this is related to DMA, then it seems to me that the DMA uclass
> should support the functionality, perhaps with a new method?
So something like
int dma_address_is_allowed(void *address);
which then calls into a system-specific function (or valus from Kconfig)?
Or do you have something different in mind?
Thanks
Heiko
next prev parent reply other threads:[~2019-07-06 18:04 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-07 9:05 [U-Boot] [PATCH 1/3] board_f: Add mach specific DMA address check function Christoph Muellner
2019-05-07 9:05 ` [U-Boot] [PATCH 2/3] bouncebuf: Add DMA validation check to addr_aligned() Christoph Muellner
2019-05-07 13:05 ` Marek Vasut
2019-05-07 13:48 ` Christoph Müllner
2019-05-07 13:52 ` Christoph Müllner
2019-05-07 13:53 ` Marek Vasut
2019-05-07 14:01 ` Christoph Müllner
2019-05-07 15:04 ` Marek Vasut
2019-05-07 15:22 ` Christoph Müllner
2019-05-07 15:56 ` Marek Vasut
2019-05-07 16:02 ` Christoph Müllner
2019-05-18 16:08 ` Simon Glass
2019-06-04 3:23 ` [U-Boot] [PATCH 2/3] bouncebuf: Add DMA validation check to addr_aligned().【请注意,邮件由u-boot-bounces@lists.denx.de代发】 addr_aligned() Kever Yang
2019-07-04 20:43 ` Heiko Stübner
2019-07-06 17:16 ` Simon Glass
2019-07-06 18:04 ` Heiko Stuebner [this message]
2019-08-22 23:12 ` Heiko Stuebner
2019-05-07 9:05 ` [U-Boot] [PATCH 3/3] rk3399: Add restriction for DMA-able addresses Christoph Muellner
2019-06-04 3:07 ` Kever Yang
2019-06-04 3:09 ` [U-Boot] [PATCH 1/3] board_f: Add mach specific DMA address check function Kever Yang
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=9652847.KtFbExOVNQ@phil \
--to=heiko@sntech.de \
--cc=u-boot@lists.denx.de \
/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