Re: [PATCH v4 03/10] mmc: enable CMD23 for multi-block transfers

"Kathpalia, Tanmay" <[email protected]> Mon, 20 Jul 2026 17:24:08 +0530
Newsgroups de.denx.lists.u-boot
Message-ID <[email protected]>
Hi Eric,

On 7/20/2026 4:14 PM, Eric Chung wrote:
> On Mon, Jul 20, 2026 at 6:42 PM Eric Chung <[email protected]> wrote:
>> On Mon, Jul 20, 2026 at 1:13 AM Yao Zi <[email protected]> wrote:
>>> On Tue, Jul 07, 2026 at 11:21:44PM +0800, Eric Chung wrote:
>>>> Enable the support for the CMD23 (SET_BLOCK_COUNT) command to
>>>> manage multi-block read/write operations. This allows the MMC
>>>> core to use CMD23 in preference to the legacy CMD18/CMD25 plus
>>>> CMD12 sequence, reducing command overhead and improving I/O
>>>> performance on multi-block transfers.
>>>  From the description, it seems CMD23 support isn't essential for MMC
>>> support on SpacemiT K1? If so, it might be helpful to separate MMC
>>> core changes into another series, and focus on basic support only. A
>>> smaller series is easier to track and review.
>>>
>> Actually CMD23 is necessary for Spacemit K1. So I can't split it from
>> this series.
>>
> If I use ADMA mode, CMD23 is required. If I'm using PIO mode, CMD23 isn't
> required. So I prefer it go through this series.
>
> If the reason isn't solid, I can split it into another patch set.
>
Both CMD23 and CMD12 are valid mechanisms to terminate a
multi-block transfer: CMD23 (SET_BLOCK_COUNT) is issued before
the transfer so the card auto-terminates, while CMD12
(STOP_TRANSMISSION) is issued after the last block. The u-boot
MMC core already has CMD12 support in place, so multi-block
transfers work today without CMD23.

Given that, I agree with Yao Zi's suggestion - splitting the CMD23
changes into a separate series would make both series easier to review
and merge.

That said, Is there a specific hardware issue on the K1 board where
CMD12 does not work correctly?