[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V4 04/12] hw/sd.c: favour SD card type (SDSC or
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH V4 04/12] hw/sd.c: favour SD card type (SDSC or SDHC) when performing erase |
Date: |
Tue, 31 Jul 2012 15:34:30 +0100 |
On 27 July 2012 20:29, Igor Mitsyanko <address@hidden> wrote:
> Standard capacity cards SDSC use byte unit address while SDHC and SDXC Cards
> use
> block unit address (512 bytes) when setting ERASE_START and ERASE_END with
> CMD32
> and CMD33, we have to account for this.
>
> Signed-off-by: Igor Mitsyanko <address@hidden>
> ---
> hw/sd.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/hw/sd.c b/hw/sd.c
> index d0674d5..f7aa580 100644
> --- a/hw/sd.c
> +++ b/hw/sd.c
> @@ -482,8 +482,10 @@ static void sd_erase(SDState *sd)
> return;
> }
>
> - start = sd_addr_to_wpnum(sd->erase_start);
> - end = sd_addr_to_wpnum(sd->erase_end);
> + start = sd_addr_to_wpnum(sd->ocr & (1 << 30) ?
> + (uint64_t)sd->erase_start * 512 : sd->erase_start);
> + end = sd_addr_to_wpnum(sd->ocr & (1 << 30) ?
> + (uint64_t)sd->erase_end * 512 : sd->erase_end);
I think this would be a little clearer phrased as:
uint64_t erase_start = sd->erase_start;
uint64_t erase_end = sd->erase_end;
[...]
if (extract32(sd->ocr, 30, 1)) {
/* High capacity memory card: erase units are 512 byte blocks */
erase_start *= 512;
erase_end *= 512;
}
start = sd_addr_to_wpnum(erase_start);
end = sd_addr_to_wpnum(erase_end);
(I don't insist on the extract32() if you don't like it, but I
would like to avoid the repeated inline ?: ops.)
-- PMM
- [Qemu-devel] [PATCH V4 00/12] SD save/load support, SD qomification and bug fixes, Igor Mitsyanko, 2012/07/27
- [Qemu-devel] [PATCH V4 01/12] hw/sd.c: convert wp_groups in SDState to bitfield, Igor Mitsyanko, 2012/07/27
- [Qemu-devel] [PATCH V4 02/12] hw/sd.c: make sd_wp_addr() accept 64 bit address argument, Igor Mitsyanko, 2012/07/27
- [Qemu-devel] [PATCH V4 03/12] hw/sd.c: introduce wrapper for conversion address to wp group, Igor Mitsyanko, 2012/07/27
- [Qemu-devel] [PATCH V4 04/12] hw/sd.c: favour SD card type (SDSC or SDHC) when performing erase, Igor Mitsyanko, 2012/07/27
- [Qemu-devel] [PATCH V4 05/12] hw/sd.c: convert binary variables to bool, Igor Mitsyanko, 2012/07/27
- [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Igor Mitsyanko, 2012/07/27
- Re: [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Markus Armbruster, 2012/07/31
- Re: [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Peter Maydell, 2012/07/31
- Re: [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Igor Mitsyanko, 2012/07/31
- Re: [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Markus Armbruster, 2012/07/31
- Re: [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Peter Maydell, 2012/07/31
- Re: [Qemu-devel] [PATCH V4 09/12] hw/sd.c: convert SD state to QOM object, Igor Mitsyanko, 2012/07/31
[Qemu-devel] [PATCH V4 06/12] hw/sd.c: make sd_dataready() return bool, Igor Mitsyanko, 2012/07/27