[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 08/25] hw/sd: ssi-sd: Add a state representing Nac
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH v2 08/25] hw/sd: ssi-sd: Add a state representing Nac |
Date: |
Sun, 24 Jan 2021 18:26:05 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 |
On 1/23/21 11:39 AM, Bin Meng wrote:
> From: Bin Meng <bin.meng@windriver.com>
>
> Per the "Physical Layer Specification Version 8.00" chapter 7.5.2,
> "Data Read", there is a minimum 8 clock cycles (Nac) after the card
> response and before data block shows up on the data out line. This
> applies to both single and multiple block read operations.
>
> Current implementation of single block read already satisfies the
> timing requirement as in the RESPONSE state after all responses are
> transferred the state remains unchanged. In the next 8 clock cycles
> it jumps to DATA_START state if data is ready.
>
> However we need an explicit state when expanding our support to
> multiple block read in the future. Let's add a new state PREP_DATA
> explicitly in the ssi-sd state machine to represent Nac.
>
> Note we don't change the single block read state machine to let it
> jump from RESPONSE state to DATA_START state as that effectively
> generates a 16 clock cycles Nac, which might not be safe. As the
> spec says the maximum Nac shall be calculated from several fields
> encoded in the CSD register, we don't want to bother updating CSD
> to ensure our Nac is within range to complicate things.
As I don't have access to that part of the spec, I'm going to trust you.
Acked-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
> Signed-off-by: Bin Meng <bin.meng@windriver.com>
>
> ---
>
> Changes in v2:
> - new patch: add a state representing Nac
>
> hw/sd/ssi-sd.c | 5 +++++
> 1 file changed, 5 insertions(+)
- Re: [PATCH v2 06/25] util: Add CRC16 (CCITT) calculation routines, (continued)
[PATCH v2 12/25] hw/sd: sd: Remove duplicated codes in single/multiple block read/write, Bin Meng, 2021/01/23
[PATCH v2 09/25] hw/sd: ssi-sd: Fix the wrong command index for STOP_TRANSMISSION, Bin Meng, 2021/01/23
[PATCH v2 08/25] hw/sd: ssi-sd: Add a state representing Nac, Bin Meng, 2021/01/23
[PATCH v2 10/25] hw/sd: ssi-sd: Support multiple block read, Bin Meng, 2021/01/23
[PATCH v2 18/25] hw/sd: ssi-sd: Bump up version ids of VMStateDescription, Bin Meng, 2021/01/23
[PATCH v2 17/25] hw/sd: ssi-sd: Support multiple block write, Bin Meng, 2021/01/23
[PATCH v2 11/25] hw/sd: ssi-sd: Use macros for the dummy value and tokens in the transfer, Bin Meng, 2021/01/23