diff mbox series

[1/2] arm64: dts: imx8mm: specify dma-ranges

Message ID 20210504082052.2084706-1-l.stach@pengutronix.de (mailing list archive)
State New, archived
Headers show
Series [1/2] arm64: dts: imx8mm: specify dma-ranges | expand

Commit Message

Lucas Stach May 4, 2021, 8:20 a.m. UTC
DMA addressing capabilities on i.MX8MM are limited by the interconnect,
same as on i.MX8MQ. Add dma-ranges to the the peripheral bus to let
the kernel know about this.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
---
 arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 +
 1 file changed, 1 insertion(+)

Comments

Frieder Schrempf May 4, 2021, 9:05 a.m. UTC | #1
On 04.05.21 10:20, Lucas Stach wrote:
> DMA addressing capabilities on i.MX8MM are limited by the interconnect,
> same as on i.MX8MQ. Add dma-ranges to the the peripheral bus to let
> the kernel know about this.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>

Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Tested-by: Frieder Schrempf <frieder.schrempf@kontron.de>

With this applied the following errors don't occur anymore when using 
the GPU with a board that has 4GB of RAM.

   etnaviv-gpu 38000000.gpu: AXI bus error
   etnaviv-gpu 38000000.gpu: MMU fault status 0x00000000
   etnaviv-gpu 38000000.gpu: recover hung GPU!

> ---
>   arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> index 6bf1d15ba16a..5bdc730f6132 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> @@ -261,6 +261,7 @@ soc@0 {
>   		#address-cells = <1>;
>   		#size-cells = <1>;
>   		ranges = <0x0 0x0 0x0 0x3e000000>;
> +		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
>   		nvmem-cells = <&imx8mm_uid>;
>   		nvmem-cell-names = "soc_unique_id";
>   
>
Adam Ford May 5, 2021, 11:36 a.m. UTC | #2
On Tue, May 4, 2021 at 3:21 AM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> DMA addressing capabilities on i.MX8MM are limited by the interconnect,
> same as on i.MX8MQ. Add dma-ranges to the the peripheral bus to let
> the kernel know about this.

Can you point me to the section of the reference manual where this is
found?  I'm guessing a similar thing would be applicable to the 8M
Nano as well, but I want to understand first.

thanks

adam
>
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> ---
>  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> index 6bf1d15ba16a..5bdc730f6132 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> @@ -261,6 +261,7 @@ soc@0 {
>                 #address-cells = <1>;
>                 #size-cells = <1>;
>                 ranges = <0x0 0x0 0x0 0x3e000000>;
> +               dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
>                 nvmem-cells = <&imx8mm_uid>;
>                 nvmem-cell-names = "soc_unique_id";
>
> --
> 2.29.2
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Lucas Stach May 5, 2021, 11:54 a.m. UTC | #3
Am Mittwoch, dem 05.05.2021 um 06:36 -0500 schrieb Adam Ford:
> On Tue, May 4, 2021 at 3:21 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > 
> > DMA addressing capabilities on i.MX8MM are limited by the interconnect,
> > same as on i.MX8MQ. Add dma-ranges to the the peripheral bus to let
> > the kernel know about this.
> 
> Can you point me to the section of the reference manual where this is
> found?  I'm guessing a similar thing would be applicable to the 8M
> Nano as well, but I want to understand first.

The second patch in this series already fixes up the 8MN DT.

The relevant part of the RM is section 2.1.2 (Cortex-A53 memory map)
where you can see that the DDR above the 4GB mark is only accessible to
the A53 cluster, other DMA masters only have access to the 3GB located
below the 4GB mark.

Regards,
Lucas

> thanks
> 
> adam
> > 
> > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > ---
> >  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > index 6bf1d15ba16a..5bdc730f6132 100644
> > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > @@ -261,6 +261,7 @@ soc@0 {
> >                 #address-cells = <1>;
> >                 #size-cells = <1>;
> >                 ranges = <0x0 0x0 0x0 0x3e000000>;
> > +               dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
> >                 nvmem-cells = <&imx8mm_uid>;
> >                 nvmem-cell-names = "soc_unique_id";
> > 
> > --
> > 2.29.2
> > 
> > 
> > _______________________________________________
> > linux-arm-kernel mailing list
> > linux-arm-kernel@lists.infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
Adam Ford May 5, 2021, 12:08 p.m. UTC | #4
On Wed, May 5, 2021 at 6:54 AM Lucas Stach <l.stach@pengutronix.de> wrote:
>
> Am Mittwoch, dem 05.05.2021 um 06:36 -0500 schrieb Adam Ford:
> > On Tue, May 4, 2021 at 3:21 AM Lucas Stach <l.stach@pengutronix.de> wrote:
> > >
> > > DMA addressing capabilities on i.MX8MM are limited by the interconnect,
> > > same as on i.MX8MQ. Add dma-ranges to the the peripheral bus to let
> > > the kernel know about this.
> >
> > Can you point me to the section of the reference manual where this is
> > found?  I'm guessing a similar thing would be applicable to the 8M
> > Nano as well, but I want to understand first.
>
> The second patch in this series already fixes up the 8MN DT.

Thanks,  I didn't even notice there was a 2/2 patch. My mistake.
Sorry for the noise.
>
> The relevant part of the RM is section 2.1.2 (Cortex-A53 memory map)
> where you can see that the DDR above the 4GB mark is only accessible to
> the A53 cluster, other DMA masters only have access to the 3GB located
> below the 4GB mark.

Thanks for the clarification.

adam
>
> Regards,
> Lucas
>
> > thanks
> >
> > adam
> > >
> > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
> > > ---
> > >  arch/arm64/boot/dts/freescale/imx8mm.dtsi | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > index 6bf1d15ba16a..5bdc730f6132 100644
> > > --- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > +++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
> > > @@ -261,6 +261,7 @@ soc@0 {
> > >                 #address-cells = <1>;
> > >                 #size-cells = <1>;
> > >                 ranges = <0x0 0x0 0x0 0x3e000000>;
> > > +               dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
> > >                 nvmem-cells = <&imx8mm_uid>;
> > >                 nvmem-cell-names = "soc_unique_id";
> > >
> > > --
> > > 2.29.2
> > >
> > >
> > > _______________________________________________
> > > linux-arm-kernel mailing list
> > > linux-arm-kernel@lists.infradead.org
> > > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> >
>
>
Shawn Guo May 23, 2021, 2:32 a.m. UTC | #5
On Tue, May 04, 2021 at 10:20:51AM +0200, Lucas Stach wrote:
> DMA addressing capabilities on i.MX8MM are limited by the interconnect,
> same as on i.MX8MQ. Add dma-ranges to the the peripheral bus to let
> the kernel know about this.
> 
> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>

Applied both, thanks.
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8mm.dtsi b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
index 6bf1d15ba16a..5bdc730f6132 100644
--- a/arch/arm64/boot/dts/freescale/imx8mm.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mm.dtsi
@@ -261,6 +261,7 @@  soc@0 {
 		#address-cells = <1>;
 		#size-cells = <1>;
 		ranges = <0x0 0x0 0x0 0x3e000000>;
+		dma-ranges = <0x40000000 0x0 0x40000000 0xc0000000>;
 		nvmem-cells = <&imx8mm_uid>;
 		nvmem-cell-names = "soc_unique_id";