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@xxxxxxxxxx> > > > > --- > > > > 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@xxxxxxxxxxxx> > > > > > > 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 As for ADMA, when I removed SDHCI_QUIRK_BROKEN_ADMA, something fails silently [2] during boot and the mmcblk0 partitions do not appear under /dev. -Drew [1] https://gist.github.com/pdp7/6d27c57f8280fe1ae35e585d66e73f61 [2] https://gist.github.com/pdp7/23e2bcc2aba09b5c88eb579b61ea45ce