Hi Peter, On 18 December 2011 21:37, Peter Maydell <peter.mayd...@linaro.org> wrote: > This patchset fixes a number of bugs in our SD card emulation, mostly > in the status bit handling. In particular, it fixes the issues raised > in https://bugs.launchpad.net/qemu/+bug/597641 . The others are things > I noticed while I was poking around in the code. > > Patches 01-04, 07 are pretty straightforward. 05, 06 are refactoring for > the benefit of later patches. 08 and 09 are more interesting. 10 makes > sense to me although the spec is rather vague on the point. >
Thanks, I pushed the series. Some good catches here. Also thanks to bug reporter. > Peter Maydell (10): > hw/sd.c: Fix the set of commands which are failed when card is locked I replaced "card" with "command" in the commit message. > hw/sd.c: Add comment regarding CARD_STATUS_* defines > hw/sd.c: On CRC error, set CRC error status bit rather than clearing it > hw/sd.c: When setting ADDRESS_ERROR bit, don't clear everything else > hw/sd.c: Handle illegal commands in sd_do_command > hw/sd.c: Handle CRC and locked-card errors in normal code path > hw/sd.c: Set ILLEGAL_COMMAND for ACMDs in invalid state > hw/sd.c: Correct handling of type B SD status bits > hw/sd.c: Correct handling of APP_CMD status bit I added resetting of .expecting_acmd in a separate patch. > hw/sd.c: Clear status bits when read via response r6 I thought it might be possible to test what bits real cards reset in those cases, but then it would be problematic getting the card to set each error bit. Cheers