![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <commonlib/sd_mmc_ctrlr.h>
Go to the source code of this file.
Data Structures | |
struct | storage_media |
Macros | |
#define | EXT_CSD_GP_SIZE_MULT_GP0 143 /* RO */ |
#define | EXT_CSD_GP_SIZE_MULT_GP1 146 /* RO */ |
#define | EXT_CSD_GP_SIZE_MULT_GP2 149 /* RO */ |
#define | EXT_CSD_GP_SIZE_MULT_GP3 152 /* RO */ |
#define | EXT_CSD_PARTITIONING_SUPPORT 160 /* RO */ |
#define | EXT_CSD_RPMB_SIZE_MULT 168 /* RO */ |
#define | EXT_CSD_ERASE_GROUP_DEF 175 /* R/W */ |
#define | EXT_CSD_PART_CONF 179 /* R/W */ |
#define | EXT_CSD_BUS_WIDTH 183 /* R/W */ |
#define | EXT_CSD_STROBE_SUPPORT 184 /* RO */ |
#define | EXT_CSD_HS_TIMING 185 /* R/W */ |
#define | EXT_CSD_REV 192 /* RO */ |
#define | EXT_CSD_CARD_TYPE 196 /* RO */ |
#define | EXT_CSD_SEC_CNT 212 /* RO, 4 bytes */ |
#define | EXT_CSD_HC_WP_GRP_SIZE 221 /* RO */ |
#define | EXT_CSD_HC_ERASE_GRP_SIZE 224 /* RO */ |
#define | EXT_CSD_BOOT_SIZE_MULT 226 /* RO */ |
#define | EXT_CSD_TRIM_MULT 232 /* RO */ |
#define | EXT_CSD_CMD_SET_NORMAL (1 << 0) |
#define | EXT_CSD_CMD_SET_SECURE (1 << 1) |
#define | EXT_CSD_CMD_SET_CPSECURE (1 << 2) |
#define | EXT_CSD_CARD_TYPE_26 (1 << 0) /* Card can run at 26MHz */ |
#define | EXT_CSD_CARD_TYPE_52 (1 << 1) /* Card can run at 52MHz */ |
#define | EXT_CSD_BUS_WIDTH_1 0 /* Card is in 1 bit mode */ |
#define | EXT_CSD_BUS_WIDTH_4 1 /* Card is in 4 bit mode */ |
#define | EXT_CSD_BUS_WIDTH_8 2 /* Card is in 8 bit mode */ |
#define | EXT_CSD_DDR_BUS_WIDTH_4 5 /* Card is in 4 bit DDR mode */ |
#define | EXT_CSD_DDR_BUS_WIDTH_8 6 /* Card is in 8 bit DDR mode */ |
#define | EXT_CSD_BUS_WIDTH_STROBE (1<<7) /* Enhanced strobe mode */ |
#define | EXT_CSD_TIMING_BC 0 /* Backwards compatibility */ |
#define | EXT_CSD_TIMING_HS 1 /* High speed */ |
#define | EXT_CSD_TIMING_HS200 2 /* HS200 */ |
#define | EXT_CSD_TIMING_HS400 3 /* HS400 */ |
#define | EXT_CSD_SIZE 512 |
#define | EXT_CSD_PART_ACCESS_MASK 7 /* Partition access mask */ |
#define | EXT_CSD_PARTITION_ENABLE 1 /* Enable partition access */ |
#define | MMC_PARTITION_USER 0 |
#define | MMC_PARTITION_BOOT_1 1 |
#define | MMC_PARTITION_BOOT_2 2 |
#define | MMC_PARTITION_RPMB 3 |
#define | MMC_PARTITION_GP1 4 |
#define | MMC_PARTITION_GP2 5 |
#define | MMC_PARTITION_GP3 6 |
#define | MMC_PARTITION_GP4 7 |
#define | SD_VERSION_SD 0x20000 |
#define | SD_VERSION_2 (SD_VERSION_SD | 0x20) |
#define | SD_VERSION_1_0 (SD_VERSION_SD | 0x10) |
#define | SD_VERSION_1_10 (SD_VERSION_SD | 0x1a) |
#define | MMC_VERSION_MMC 0x10000 |
#define | MMC_VERSION_UNKNOWN (MMC_VERSION_MMC) |
#define | MMC_VERSION_1_2 (MMC_VERSION_MMC | 0x12) |
#define | MMC_VERSION_1_4 (MMC_VERSION_MMC | 0x14) |
#define | MMC_VERSION_2_2 (MMC_VERSION_MMC | 0x22) |
#define | MMC_VERSION_3 (MMC_VERSION_MMC | 0x30) |
#define | MMC_VERSION_4 (MMC_VERSION_MMC | 0x40) |
#define | OCR_BUSY 0x80000000 |
#define | OCR_HCS 0x40000000 |
#define | OCR_VOLTAGE_MASK 0x00FFFF80 |
#define | OCR_ACCESS_MODE 0x60000000 |
Functions | |
uint64_t | storage_block_erase (struct storage_media *media, uint64_t start, uint64_t count) |
uint64_t | storage_block_fill_write (struct storage_media *media, uint64_t start, uint64_t count, uint32_t fill_pattern) |
uint64_t | storage_block_read (struct storage_media *media, uint64_t start, uint64_t count, void *buffer) |
uint64_t | storage_block_write (struct storage_media *media, uint64_t start, uint64_t count, const void *buffer) |
unsigned int | storage_get_current_partition (struct storage_media *media) |
const char * | storage_partition_name (struct storage_media *media, unsigned int partition_number) |
int | storage_setup_media (struct storage_media *media, struct sd_mmc_ctrlr *ctrlr) |
int | storage_set_partition (struct storage_media *media, unsigned int partition_number) |
void | storage_display_setup (struct storage_media *media) |
#define EXT_CSD_BUS_WIDTH_STROBE (1<<7) /* Enhanced strobe mode */ |
#define EXT_CSD_DDR_BUS_WIDTH_4 5 /* Card is in 4 bit DDR mode */ |
#define EXT_CSD_DDR_BUS_WIDTH_8 6 /* Card is in 8 bit DDR mode */ |
#define EXT_CSD_PART_ACCESS_MASK 7 /* Partition access mask */ |
#define EXT_CSD_PARTITION_ENABLE 1 /* Enable partition access */ |
#define MMC_VERSION_1_2 (MMC_VERSION_MMC | 0x12) |
#define MMC_VERSION_1_4 (MMC_VERSION_MMC | 0x14) |
#define MMC_VERSION_2_2 (MMC_VERSION_MMC | 0x22) |
#define MMC_VERSION_3 (MMC_VERSION_MMC | 0x30) |
#define MMC_VERSION_4 (MMC_VERSION_MMC | 0x40) |
#define MMC_VERSION_UNKNOWN (MMC_VERSION_MMC) |
#define SD_VERSION_1_0 (SD_VERSION_SD | 0x10) |
#define SD_VERSION_1_10 (SD_VERSION_SD | 0x1a) |
#define SD_VERSION_2 (SD_VERSION_SD | 0x20) |
uint64_t storage_block_erase | ( | struct storage_media * | media, |
uint64_t | start, | ||
uint64_t | count | ||
) |
Definition at line 10 of file storage_erase.c.
References ALIGN_UP, CARD_RSP_R1, mmc_command::cmdarg, mmc_command::cmdidx, count, storage_media::ctrlr, storage_media::erase_blocks, mmc_command::flags, media, MMC_CMD_ERASE, MMC_CMD_ERASE_GROUP_END, MMC_CMD_ERASE_GROUP_START, MMC_TRIM_ARG, NULL, mmc_command::resp_type, sd_mmc_error, sd_mmc_send_status(), sd_mmc_ctrlr::send_cmd, storage_block_setup(), and storage_media::trim_mult.
uint64_t storage_block_fill_write | ( | struct storage_media * | media, |
uint64_t | start, | ||
uint64_t | count, | ||
uint32_t | fill_pattern | ||
) |
Definition at line 84 of file storage_write.c.
References sd_mmc_ctrlr::b_max, buffer, count, storage_media::ctrlr, free(), malloc(), media, MiB, MIN, storage_block_setup(), storage_write(), and storage_media::write_bl_len.
uint64_t storage_block_read | ( | struct storage_media * | media, |
uint64_t | start, | ||
uint64_t | count, | ||
void * | buffer | ||
) |
Definition at line 286 of file storage.c.
References sd_mmc_ctrlr::b_max, buffer, count, storage_media::ctrlr, media, MIN, storage_media::read_bl_len, sd_mmc_trace, storage_block_setup(), and storage_read().
Referenced by partial_block_read(), and storage_test().
uint64_t storage_block_write | ( | struct storage_media * | media, |
uint64_t | start, | ||
uint64_t | count, | ||
const void * | buffer | ||
) |
Definition at line 63 of file storage_write.c.
References sd_mmc_ctrlr::b_max, buffer, count, storage_media::ctrlr, media, MIN, mmc_data::src, storage_block_setup(), storage_write(), and storage_media::write_bl_len.
void storage_display_setup | ( | struct storage_media * | media | ) |
Definition at line 88 of file storage.c.
References ARRAY_SIZE, storage_media::capacity, storage_media::cid, CONFIG, display_capacity(), storage_media::erase_blocks, IS_SD, media, sd_mmc_debug, sdhc_debug, and storage_media::write_bl_len.
Referenced by boot_device_init(), storage_startup(), and storage_test().
unsigned int storage_get_current_partition | ( | struct storage_media * | media | ) |
Definition at line 339 of file storage.c.
References EXT_CSD_PART_ACCESS_MASK, media, and storage_media::partition_config.
Referenced by storage_test().
const char* storage_partition_name | ( | struct storage_media * | media, |
unsigned int | partition_number | ||
) |
Definition at line 325 of file storage.c.
References CONFIG, IS_SD, media, mmc_partition_name(), name, NULL, and sd_partition_name().
Referenced by display_capacity(), and storage_test().
int storage_set_partition | ( | struct storage_media * | media, |
unsigned int | partition_number | ||
) |
Definition at line 309 of file storage.c.
References CONFIG, IS_SD, media, mmc_set_partition(), sd_mmc_error, and sd_set_partition().
Referenced by storage_test().
int storage_setup_media | ( | struct storage_media * | media, |
struct sd_mmc_ctrlr * | ctrlr | ||
) |
Definition at line 188 of file storage.c.
References storage_media::ctrlr, media, memset(), sd_mmc_enter_standby(), and storage_startup().
Referenced by boot_device_init(), and storage_test().