All of lore.kernel.org
 help / color / mirror / Atom feed
From: Drew Fustini <dfustini@baylibre.com>
To: Xi Ruoyao <xry111@xry111.site>
Cc: Jisheng Zhang <jszhang@kernel.org>, Guo Ren <guoren@kernel.org>,
	Fu Wei <wefu@redhat.com>, Conor Dooley <conor@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] riscv: dts: thead: set dma-noncoherent to soc bus
Date: Mon, 4 Sep 2023 12:27:46 -0700	[thread overview]
Message-ID: <ZPYvsvCYWibrKXOz@x1> (raw)
In-Reply-To: <ZPYZZ4blDwaM8/ru@x1>

On Mon, Sep 04, 2023 at 10:52:39AM -0700, Drew Fustini wrote:
> On Tue, Sep 05, 2023 at 12:28:41AM +0800, Xi Ruoyao wrote:
> > On Mon, 2023-09-04 at 22:45 +0800, Jisheng Zhang wrote:
> > > On Sun, Sep 03, 2023 at 04:32:21PM -0700, Drew Fustini wrote:
> > > > On Sun, Aug 20, 2023 at 07:53:53PM +0800, Jisheng Zhang wrote:
> > > > > riscv select ARCH_DMA_DEFAULT_COHERENT by default, and th1520 isn't
> > > > > dma coherent, so set dma-noncoherent to reflect this fact.
> > > > > 
> > > > > Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> > > > > ---
> > > > >  arch/riscv/boot/dts/thead/th1520.dtsi | 1 +
> > > > >  1 file changed, 1 insertion(+)
> > > > > 
> > > > > diff --git a/arch/riscv/boot/dts/thead/th1520.dtsi b/arch/riscv/boot/dts/thead/th1520.dtsi
> > > > > index 56a73134b49e..58108f0eb3fd 100644
> > > > > --- a/arch/riscv/boot/dts/thead/th1520.dtsi
> > > > > +++ b/arch/riscv/boot/dts/thead/th1520.dtsi
> > > > > @@ -139,6 +139,7 @@ soc {
> > > > >                 interrupt-parent = <&plic>;
> > > > >                 #address-cells = <2>;
> > > > >                 #size-cells = <2>;
> > > > > +               dma-noncoherent;
> > > > >                 ranges;
> > > > >  
> > > > >                 plic: interrupt-controller@ffd8000000 {
> > > > > -- 
> > > > > 2.40.1
> > > > > 
> > > > 
> > > > Tested-by: Drew Fustini <dfustini@baylibre.com>
> > > > 
> > > > I tried this on the BeagleV Ahead. They system booted as expected and I
> > > > did not notice any problems in the boot log.
> > > > 
> > > > Are there other patches such as the dwmac series that I should test this
> > > > with?
> > > 
> > > Hmm, this patch is necessary to test dwmac, emmc ;)
> > 
> > Drew: does this fix the "broken DMA" issue you've mentioned in the EMMC
> > support patch?
> 
> After I sent my reply yesterday, I then tried applying this patch on top
> of my eMMC series. I removed SDHCI_QUIRK_BROKEN_DMA and I discovered
> that SDMA did not immediately break and the mmcblk0 partitions appeared
> in /dev [1]. Note - I am using CONFIG_INITRAMFS_SOURCE set to my
> buidlroot rootfs.cpio so that the system will boot okay regardless of
> the emmc.
> 
> I was able to mount the emmc boot partition /dev/mmcblk0p2. However,
> after unmounting it, I noticed that I could not mount it again:
> 
>   # mount /dev/mmcblk0p2 /mnt/p2 
>   [   41.684899] EXT4-fs (mmcblk0p2): mounted filesystem 6ea98ccf-2178-48a9-a1ad-0eb454f57268 r/w with ordered data mode
>   # ls -la /mnt/p2
>   total 22696
>   drwxr-xr-x    5 root     root          4096 Sep  4  2023 .
>   drwxr-xr-x    4 root     root             0 Jan  1 00:00 ..
>   -rw-rw-r--    1 1000     1000      26455552 Sep  4  2023 Image
>   drwxr-xr-x    2 root     root          4096 Jul 29  2023 extlinux
>   <snip>
>   # umount /mnt/p2
>   [   52.101003] EXT4-fs (mmcblk0p2): unmounting filesystem 6ea98ccf-2178-48a9-a1ad-0eb454f57268.
>   # mount /dev/mmcblk0p2 /mnt/p2
>   [   58.826078] JBD2: no valid journal superblock found
>   [   58.831041] EXT4-fs (mmcblk0p2): Could not load journal inode
>   mount: mounting /dev/mmcblk0p2 on /mnt/p2 failed: Invalid argument
> 
> I was completely unable to mount the root fs partition /dev/mmcblk0p3:
> 
>   # mount /dev/mmcblk0p2 /mnt/p2
>   [   58.826078] JBD2: no valid journal superblock found
>   [   58.831041] EXT4-fs (mmcblk0p2): Could not load journal inode
>   mount: mounting /dev/mmcblk0p2 on /mnt/p2 failed: Invalid argument
>   # umount /mnt/p2
>   umount: can't unmount /mnt/p2: Invalid argument
> 
> I suspect there is some corruption of the buffers happening. I see there
> are also these patch series from Jisheng so I will try applying them and
> see if there is any difference:
> 
>   [PATCH v2 0/2] riscv: errata: improve T-Head CMO
>   [PATCH] riscv: mm: update T-Head memory type definitions

Good news, I applied "riscv: errata: improve T-Head CMO" [1] and SDMA is
now working correctly. I can mount both boot and rootfs paritions and
then is no problem umounting and then remounting [2].

Note - I didn't 'riscv: mm: update T-Head memory type definitions' yet
but I will do that next and make sure everything is still working.

I'll post an update to my eMMC series.

-Drew

[1] https://lore.kernel.org/all/20230827090813.1353-1-jszhang@kernel.org/
[2] https://gist.github.com/pdp7/c72c91530c46ef560f4d1940ea1964c9


WARNING: multiple messages have this Message-ID (diff)
From: Drew Fustini <dfustini@baylibre.com>
To: Xi Ruoyao <xry111@xry111.site>
Cc: Jisheng Zhang <jszhang@kernel.org>, Guo Ren <guoren@kernel.org>,
	Fu Wei <wefu@redhat.com>, Conor Dooley <conor@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] riscv: dts: thead: set dma-noncoherent to soc bus
Date: Mon, 4 Sep 2023 12:27:46 -0700	[thread overview]
Message-ID: <ZPYvsvCYWibrKXOz@x1> (raw)
In-Reply-To: <ZPYZZ4blDwaM8/ru@x1>

On Mon, Sep 04, 2023 at 10:52:39AM -0700, Drew Fustini wrote:
> On Tue, Sep 05, 2023 at 12:28:41AM +0800, Xi Ruoyao wrote:
> > On Mon, 2023-09-04 at 22:45 +0800, Jisheng Zhang wrote:
> > > On Sun, Sep 03, 2023 at 04:32:21PM -0700, Drew Fustini wrote:
> > > > On Sun, Aug 20, 2023 at 07:53:53PM +0800, Jisheng Zhang wrote:
> > > > > riscv select ARCH_DMA_DEFAULT_COHERENT by default, and th1520 isn't
> > > > > dma coherent, so set dma-noncoherent to reflect this fact.
> > > > > 
> > > > > Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> > > > > ---
> > > > >  arch/riscv/boot/dts/thead/th1520.dtsi | 1 +
> > > > >  1 file changed, 1 insertion(+)
> > > > > 
> > > > > diff --git a/arch/riscv/boot/dts/thead/th1520.dtsi b/arch/riscv/boot/dts/thead/th1520.dtsi
> > > > > index 56a73134b49e..58108f0eb3fd 100644
> > > > > --- a/arch/riscv/boot/dts/thead/th1520.dtsi
> > > > > +++ b/arch/riscv/boot/dts/thead/th1520.dtsi
> > > > > @@ -139,6 +139,7 @@ soc {
> > > > >                 interrupt-parent = <&plic>;
> > > > >                 #address-cells = <2>;
> > > > >                 #size-cells = <2>;
> > > > > +               dma-noncoherent;
> > > > >                 ranges;
> > > > >  
> > > > >                 plic: interrupt-controller@ffd8000000 {
> > > > > -- 
> > > > > 2.40.1
> > > > > 
> > > > 
> > > > Tested-by: Drew Fustini <dfustini@baylibre.com>
> > > > 
> > > > I tried this on the BeagleV Ahead. They system booted as expected and I
> > > > did not notice any problems in the boot log.
> > > > 
> > > > Are there other patches such as the dwmac series that I should test this
> > > > with?
> > > 
> > > Hmm, this patch is necessary to test dwmac, emmc ;)
> > 
> > Drew: does this fix the "broken DMA" issue you've mentioned in the EMMC
> > support patch?
> 
> After I sent my reply yesterday, I then tried applying this patch on top
> of my eMMC series. I removed SDHCI_QUIRK_BROKEN_DMA and I discovered
> that SDMA did not immediately break and the mmcblk0 partitions appeared
> in /dev [1]. Note - I am using CONFIG_INITRAMFS_SOURCE set to my
> buidlroot rootfs.cpio so that the system will boot okay regardless of
> the emmc.
> 
> I was able to mount the emmc boot partition /dev/mmcblk0p2. However,
> after unmounting it, I noticed that I could not mount it again:
> 
>   # mount /dev/mmcblk0p2 /mnt/p2 
>   [   41.684899] EXT4-fs (mmcblk0p2): mounted filesystem 6ea98ccf-2178-48a9-a1ad-0eb454f57268 r/w with ordered data mode
>   # ls -la /mnt/p2
>   total 22696
>   drwxr-xr-x    5 root     root          4096 Sep  4  2023 .
>   drwxr-xr-x    4 root     root             0 Jan  1 00:00 ..
>   -rw-rw-r--    1 1000     1000      26455552 Sep  4  2023 Image
>   drwxr-xr-x    2 root     root          4096 Jul 29  2023 extlinux
>   <snip>
>   # umount /mnt/p2
>   [   52.101003] EXT4-fs (mmcblk0p2): unmounting filesystem 6ea98ccf-2178-48a9-a1ad-0eb454f57268.
>   # mount /dev/mmcblk0p2 /mnt/p2
>   [   58.826078] JBD2: no valid journal superblock found
>   [   58.831041] EXT4-fs (mmcblk0p2): Could not load journal inode
>   mount: mounting /dev/mmcblk0p2 on /mnt/p2 failed: Invalid argument
> 
> I was completely unable to mount the root fs partition /dev/mmcblk0p3:
> 
>   # mount /dev/mmcblk0p2 /mnt/p2
>   [   58.826078] JBD2: no valid journal superblock found
>   [   58.831041] EXT4-fs (mmcblk0p2): Could not load journal inode
>   mount: mounting /dev/mmcblk0p2 on /mnt/p2 failed: Invalid argument
>   # umount /mnt/p2
>   umount: can't unmount /mnt/p2: Invalid argument
> 
> I suspect there is some corruption of the buffers happening. I see there
> are also these patch series from Jisheng so I will try applying them and
> see if there is any difference:
> 
>   [PATCH v2 0/2] riscv: errata: improve T-Head CMO
>   [PATCH] riscv: mm: update T-Head memory type definitions

Good news, I applied "riscv: errata: improve T-Head CMO" [1] and SDMA is
now working correctly. I can mount both boot and rootfs paritions and
then is no problem umounting and then remounting [2].

Note - I didn't 'riscv: mm: update T-Head memory type definitions' yet
but I will do that next and make sure everything is still working.

I'll post an update to my eMMC series.

-Drew

[1] https://lore.kernel.org/all/20230827090813.1353-1-jszhang@kernel.org/
[2] https://gist.github.com/pdp7/c72c91530c46ef560f4d1940ea1964c9


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2023-09-04 19:27 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-08-20 11:53 [PATCH] riscv: dts: thead: set dma-noncoherent to soc bus Jisheng Zhang
2023-08-20 12:04 ` Jisheng Zhang
2023-08-20 12:04   ` Jisheng Zhang
2023-09-03 23:32 ` Drew Fustini
2023-09-04 14:45   ` Jisheng Zhang
2023-09-04 16:28     ` Xi Ruoyao
2023-09-04 17:52       ` Drew Fustini
2023-09-04 17:52         ` Drew Fustini
2023-09-04 19:27         ` Drew Fustini [this message]
2023-09-04 19:27           ` Drew Fustini
2023-09-04 18:50     ` Drew Fustini
2023-09-04 18:50       ` Drew Fustini

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=ZPYvsvCYWibrKXOz@x1 \
    --to=dfustini@baylibre.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=conor@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=guoren@kernel.org \
    --cc=jszhang@kernel.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh+dt@kernel.org \
    --cc=wefu@redhat.com \
    --cc=xry111@xry111.site \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.