mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Albert Yang <yangzh0906@thundersoft.com>
To: arnd@arndb.de
Cc: adrian.hunter@intel.com, gordon.ge@bst.ai,
	linux-kernel@vger.kernel.org, linux-mmc@vger.kernel.org,
	ulf.hansson@linaro.org, yangzh0906@thundersoft.com
Subject: Re: [PATCH v2 5/8] mmc: sdhci: add Black Sesame Technologies BST C1200 controller driver
Date: Fri,  8 Aug 2025 16:39:16 +0800	[thread overview]
Message-ID: <20250808083916.959079-1-yangzh0906@thundersoft.com> (raw)
In-Reply-To: <05e13ba9-c1fe-450a-a159-9693edce0a23@app.fastmail.com>

Hi Arnd,

Thank you for your detailed review and technical guidance on the dma-ranges
configuration and hardware address mapping solutions.

On Fri, Jul 11, 2025, at 08:55, Arnd Bergmann wrote:

>A more sensible setup would be to have the DMA access
>routed to the memory controller. Since memory on your
>system appears to start at 0x8.00000000, that would look
>like
>
>        dma-ranges = <0x0 0x0  0x08 0x00000000  0x1 0x00000000>;
>
>which means that a DMA to the first 4GB of the bus
>address space gets routed outside of the bus into the
>first 4GB of physical memory. Obviously you cannot just
>change the dts to pretend this is the correct mapping, you
>have to also program the bus controller to use it.
>
>The datasheet for the chip should tell you specifically
>what type of bus this is (AXI, AHB, OPB or something else),
>and what registers are used to program this mapping. It
>is possible that this cannot be reprogrammed, but more likely
>there is a hidden register that is made available to the boot
>loader but is not intended to be reconfigured by the OS.

After investigating the approaches you suggested, I need to clarify the
hardware constraints we face:

The BST C1200 SoC has fundamental hardware limitations:
- System RAM starts at 0x8.00000000 (above 32-bit addressable range)
- The eMMC controller's DMA engine is limited to 32-bit addressing
- The SMMU does not function for address translation in this path due to
  hardware design flaws
- These limitations were finalized during silicon design and cannot be
  modified in software

Regarding your suggestion about programming the bus controller mapping,
we have thoroughly reviewed the BST C1200 datasheet and confirmed:
- No accessible registers exist to reprogram the address mapping
- The 32-bit DMA limitation is a hard constraint of the controller IP

Given these silicon-level constraints, the current bounce buffer approach
represents the only viable solution to provide eMMC functionality on this
platform.

We understand this is not an ideal architectural solution and appreciate
your patience in reviewing this hardware-constrained implementation. I want
to assure you that these design limitations have been addressed in our
subsequent chip generations.

We would appreciate your consideration of this approach given the documented
hardware constraints. Thank you again for your time and expertise in
reviewing this patch.

Best regards,
Albert Yang

  reply	other threads:[~2025-08-08  9:14 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-28  8:54 [PATCH v1 0/9] arm64: Introduce Black Sesame Technologies C1200 SoC and CDCU1.0 board Albert Yang
2025-07-02  9:44 ` [PATCH v2 0/8] " Albert Yang
2025-07-02  9:44   ` [PATCH v2 1/8] dt-bindings: vendor-prefixes: Add Black Sesame Technologies Co., Ltd Albert Yang
2025-07-02 10:24     ` Krzysztof Kozlowski
2025-07-03  5:02       ` Albert Yang
2025-07-02  9:44   ` [PATCH v2 2/8] dt-bindings: arm: add Black Sesame Technologies (bst) SoC Albert Yang
2025-07-02  9:44   ` [PATCH v2 3/8] arm64: Kconfig: add ARCH_BST for bst silicons Albert Yang
2025-07-02 12:21     ` Krzysztof Kozlowski
2025-07-03  9:22       ` Albert Yang
2025-07-02  9:44   ` [PATCH v2 4/8] dt-bindings: mmc: add binding for BST DWCMSHC SDHCI controller Albert Yang
2025-07-02 13:28     ` Rob Herring (Arm)
2025-07-03  4:36       ` Albert Yang
2025-07-02 14:23     ` Rob Herring
2025-07-03  3:27       ` Albert Yang
2025-07-02  9:44   ` [PATCH v2 5/8] mmc: sdhci: add Black Sesame Technologies BST C1200 controller driver Albert Yang
2025-07-02 10:40     ` Arnd Bergmann
2025-07-11  5:55       ` Albert Yang
2025-07-11  6:55         ` Arnd Bergmann
2025-08-08  8:39           ` Albert Yang [this message]
2025-08-08  9:35             ` Arnd Bergmann
2025-07-02 10:47     ` Krzysztof Kozlowski
2025-07-02  9:44   ` [PATCH v2 6/8] arm64: dts: bst: add support for Black Sesame Technologies C1200 CDCU1.0 board and defconfig Albert Yang
2025-07-02 10:30     ` Krzysztof Kozlowski
2025-07-02 12:31       ` [PATCH v2 6/8] arm64: dts: bst: add support for Black Sesame Technologies C1200 CDCU1.0 board Albert Yang
2025-07-02 14:19         ` Rob Herring
2025-08-12  9:47           ` Albert Yang
2025-08-12 11:01           ` [PATCH v2 6/8] arm64: dts: bst: add support for Black Sesame Technologies C1200 CDCU1.0 board and defconfig Albert Yang
2025-07-02 12:15     ` Robin Murphy
2025-07-02  9:44   ` [PATCH v2 7/8] arm64: defconfig: enable BST C1200 DWCMSHC SDHCI controller Albert Yang
2025-07-02 10:25     ` Krzysztof Kozlowski
2025-07-02  9:44   ` [PATCH v2 8/8] MAINTAINERS: add and consolidate Black Sesame Technologies (BST) ARM SoC support Albert 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=20250808083916.959079-1-yangzh0906@thundersoft.com \
    --to=yangzh0906@thundersoft.com \
    --cc=adrian.hunter@intel.com \
    --cc=arnd@arndb.de \
    --cc=gordon.ge@bst.ai \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=ulf.hansson@linaro.org \
    /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

all inboxes | Powered by JetHome®