• Yann Gautier's avatar
    Add MMC framework · ad71d45e
    Yann Gautier authored
    
    
    This change is largely based on existing eMMC framework by Haojian Zhuang
    (@hzhuang1).
    
    The MMC framework supports both eMMC and SD card devices. It was
    written as a new framework since breaking few eMMC framework APIs.
    
    At card probe and after the reset to idle command (CMD0), a Send
    Interface Condition Command is sent (CMD8) to distinguish between
    eMMC and SD card devices. eMMC devices go through the same
    sequence as in the former eMMC framework. Else the framework
    uses commands dedicated to SD-cards for init or frequency switch.
    
    A structure is created to share info with the driver. It stores:
    - the MMC type (eMMC, SD or SD HC)
    - the device size
    - the max frequency supported by the device
    - the block size: 512 for eMMC and SD-HC and read from CSD
     structure for older SD-cards
    
    Restriction to align buffers on block size has been removed.
    Cache maintenance was removed and is expected to be done in the platform
    or device driver.
    
    The MMC framework includes some MISRA compliance coding style
    maybe not yet ported in the existing eMMC framework.
    
    Fixes ARM-software/tf-issues#597
    Signed-off-by: default avatarYann Gautier <yann.gautier@st.com>
    ad71d45e
mmc.c 14.4 KB