CMD7 failing on ATP & Transcend MMC cards

From: Jarkko Lavinen (jarkko.lavinen_at_nokia.com)
Date: 10/03/05

  • Next message: Luben Tuikov: "Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel"
    Date:	Mon, 3 Oct 2005 16:54:45 +0300
    To: linux-kernel@vger.kernel.org
    
    

    Some MMC cards were failing repeatedly on Omap1710 in the card
    select command CMD7. Doing an extra status inquiry when leaving the card
    identification mode removed the problem. This is possibly Omap1710 mmc
    controller only problem, but might also also appear on other mmc
    controllers.

    So far, the problem occured only on ATP and Transcend cards when the card
    have already been detected and then mmc_detect_change() is called to
    check if any new cards have been inserted. After CMD2 the next card
    select command CMD7 fails due to illegal command error.

    I don't know why only ATP and Transcend have this problem and why
    doing status inquiry CMD13 helps. Status inquiry command is neutral
    and is claimed to not change the card state in the MMC spec. :-)

    The order of commands must be CMD13 first, then CMD7. CMD13 fails
    also due to illegal instruction error after CMD2 but after this the
    card is back to its senses.

    If CMD7 is run first, and CMD13 once CMD7 is seen failing, this fails
    to bring the card back to its senses. Then the CMD7 fails repeatedly
    due to command timeout before and after CMD13.

    I got rid of the problem by simply adding call to mmc_check_cards()
    at and of mmc_setup() function, which is perhaps an overkill. One could do
    it also in mmc_rescan() after switching back to higher clock.

    Jarkko Lavinen
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Luben Tuikov: "Re: I request inclusion of SAS Transport Layer and AIC-94xx into the kernel"

    Relevant Pages

    • Re: Help with PRI/DTI on Option11c
      ... STAT [insert loop (card) number here]. ... DIS DCH This command will disable the ... But not the Clock controller daughterboard. ... SSCK [insert cabinet number here] Status for the Clock Controller ...
      (comp.dcom.sys.nortel)
    • Touch screen ET&T on Clevo tn120r
      ... vendor = 'Intel Corporation' ... CardVendor 0x1558 card 0x0122 ... STATUS 0x2090 COMMAND 0x0106 ...
      (freebsd-questions)
    • Re: [PATCH 5/5] omap mmc: Add new omap hsmmc controller for 2430 and 34xx
      ... problems caused by trying to init a card that is still bouncing. ... like the controller may fail to detect the next card after unplugging ... Subject: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, ... * Notify the core about command completion ...
      (Linux-Kernel)
    • Sound Driver for 82801FB
      ... Audio Controller CardVendor 0x1734 card 0x107c (Fujitsu Siemens ... Card unknown) STATUS 0x2010 COMMAND 0x0006 ... BASE4 0x0000e481 addr 0x0000e480 I/O ...
      (freebsd-current)
    • Re: [PATCH 5/5] omap mmc: Add new omap hsmmc controller for 2430 and 34xx
      ... problems caused by trying to init a card that is still bouncing. ... like the controller may fail to detect the next card after unplugging ... Subject: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, ... * Notify the core about command completion ...
      (Linux-Kernel)