2022-08-06 09:16:07

by Vadym Kochan

[permalink] [raw]
Subject: [PATCH 0/3] mmc: xenon-sdhci: Try to fix 2G address limitation on AC5 SoC

There is a limitation on AC5 SoC that Xenon SDHC can address only
first 2GB of memory. Turning to the SDMA mode to use the bounce_buffer
causes ext_csd recognition to fail on init.

Using of swiotlb=force also does not help as it is allocated at the
end of the memory.

So it was decided to use reserved-memory as a bounce buffer in case
if the board has more than 2G of memory, or turn on the PIO
mode if such memory region does not exist in the device-tree.
There is a custom property which is used to attach bounce memory region
to the device on demand (only if more 2G memory is used). This is a software
property only so it was not described in the dt-bindings.

Separate DTSI is added to reserve memory only for boards with eMMC cards.

It was tested that this approach is 1.5 times faster than PIO.

Vadym Kochan (3):
dt-bindings: mmc: xenon: Add compatible string for Xenon SDHCI on AC5
SoC
mmc: sdhci-xenon: Try to fix 2G address limitation on AC5 SoC
arm64: dts: marvell: Add DTSI to fix Xenon SDHCI 2G limitation on AC5
SoC

.../bindings/mmc/marvell,xenon-sdhci.yaml | 3 ++
.../boot/dts/marvell/ac5-98dx25xx-sdhci.dtsi | 40 +++++++++++++++++++
drivers/mmc/host/sdhci-xenon.c | 36 +++++++++++++++++
3 files changed, 79 insertions(+)
create mode 100644 arch/arm64/boot/dts/marvell/ac5-98dx25xx-sdhci.dtsi

--
2.17.1