| H A D | sd.c | 41 #include "hw/sd/sd.h" 104 sd_io_state = 15 /* sd */ 109 typedef sd_rsp_type_t (*sd_cmd_handler)(SDState *sd, SDRequest req); 214 static bool sd_is_spi(SDState *sd) in sd_mode_name() 216 return sd->proto == &sd_proto_spi; in sd_mode_name() 219 static bool sd_is_emmc(SDState *sd) in sd_state_name() 221 return sd->proto == &sd_proto_emmc; in sd_state_name() 295 static const char *sd_cmd_name(SDState *sd, uint8_t cmd) in sd_get_dat_lines() 301 const SDProto *sdp = sd in sd_get_cmd_line() 185 sd_is_spi(SDState * sd) sd_is_spi() argument 190 sd_is_emmc(SDState * sd) sd_is_emmc() argument 267 sd_cmd_name(SDState * sd,uint8_t cmd) sd_cmd_name() argument 282 sd_acmd_name(SDState * sd,uint8_t cmd) sd_acmd_name() argument 293 sd_get_dat_lines(SDState * sd) sd_get_dat_lines() argument 298 sd_get_cmd_line(SDState * sd) sd_get_cmd_line() argument 303 sd_set_voltage(SDState * sd,uint16_t millivolts) sd_set_voltage() argument 317 sd_mode(SDState * sd) sd_mode() argument 376 SDState *sd = opaque; sd_ocr_powerup() local 389 sd_set_ocr(SDState * sd) sd_set_ocr() argument 407 sd_set_scr(SDState * sd) sd_set_scr() argument 438 sd_set_cid(SDState * sd) sd_set_cid() argument 456 emmc_set_cid(SDState * sd) emmc_set_cid() argument 486 emmc_set_ext_csd(SDState * sd,uint64_t size) emmc_set_ext_csd() argument 520 emmc_set_csd(SDState * sd,uint64_t size) emmc_set_csd() argument 559 sd_set_csd(SDState * sd,uint64_t size) sd_set_csd() argument 619 sd_set_rca(SDState * sd,uint16_t value) sd_set_rca() argument 696 sd_set_cardstatus(SDState * sd) sd_set_cardstatus() argument 701 sd_set_sdstatus(SDState * sd) sd_set_sdstatus() argument 730 sd_response_size(SDState * sd,sd_rsp_type_t rtype) sd_response_size() argument 763 sd_response_r1_make(SDState * sd,uint8_t * response) sd_response_r1_make() argument 783 spi_response_r2_make(SDState * sd,uint8_t * resp) spi_response_r2_make() argument 799 sd_response_r3_make(SDState * sd,uint8_t * response) sd_response_r3_make() argument 809 sd_response_r6_make(SDState * sd,uint8_t * response) sd_response_r6_make() argument 821 sd_response_r7_make(SDState * sd,uint8_t * response) sd_response_r7_make() argument 831 sd_blk_len(SDState * sd) sd_blk_len() argument 844 sd_bootpart_offset(SDState * sd) sd_bootpart_offset() argument 866 sd_req_get_address(SDState * sd,SDRequest req) sd_req_get_address() argument 886 SDState *sd = SDMMC_COMMON(dev); sd_reset() local 931 sd_get_inserted(SDState * sd) sd_get_inserted() argument 936 sd_get_readonly(SDState * sd) sd_get_readonly() argument 943 SDState *sd = opaque; sd_cardchange() local 969 SDState *sd = opaque; sd_ocr_vmstate_needed() local 989 SDState *sd = opaque; vmstate_needed_for_emmc() local 1007 SDState *sd = opaque; sd_vmstate_pre_load() local 1057 sd_blk_read(SDState * sd,uint64_t addr,uint32_t len) sd_blk_read() argument 1066 sd_blk_write(SDState * sd,uint64_t addr,uint32_t len) sd_blk_write() argument 1075 sd_erase(SDState * sd) sd_erase() argument 1127 sd_wpbits(SDState * sd,uint64_t addr) sd_wpbits() argument 1158 emmc_function_switch(SDState * sd,uint32_t arg) emmc_function_switch() argument 1192 sd_function_switch(SDState * sd,uint32_t arg) sd_function_switch() argument 1222 sd_wp_addr(SDState * sd,uint64_t addr) sd_wp_addr() argument 1227 sd_lock_command(SDState * sd) sd_lock_command() argument 1299 address_in_range(SDState * sd,const char * desc,uint64_t addr,uint32_t length) address_in_range() argument 1312 sd_invalid_state_for_cmd(SDState * sd,SDRequest req) sd_invalid_state_for_cmd() argument 1321 sd_invalid_mode_for_cmd(SDState * sd,SDRequest req) sd_invalid_mode_for_cmd() argument 1330 sd_cmd_illegal(SDState * sd,SDRequest req) sd_cmd_illegal() argument 1340 sd_cmd_unimplemented(SDState * sd,SDRequest req) sd_cmd_unimplemented() argument 1348 sd_cmd_optional(SDState * sd,SDRequest req) sd_cmd_optional() argument 1357 sd_cmd_to_receivingdata(SDState * sd,SDRequest req,uint64_t start,size_t size) sd_cmd_to_receivingdata() argument 1372 sd_cmd_to_sendingdata(SDState * sd,SDRequest req,uint64_t start,const void * data,size_t size) sd_cmd_to_sendingdata() argument 1394 sd_cmd_GO_IDLE_STATE(SDState * sd,SDRequest req) sd_cmd_GO_IDLE_STATE() argument 1414 sd_cmd_ALL_SEND_CID(SDState * sd,SDRequest req) sd_cmd_ALL_SEND_CID() argument 1426 sd_cmd_SEND_RELATIVE_ADDR(SDState * sd,SDRequest req) sd_cmd_SEND_RELATIVE_ADDR() argument 1443 emmc_cmd_SET_RELATIVE_ADDR(SDState * sd,SDRequest req) emmc_cmd_SET_RELATIVE_ADDR() argument 1458 emmc_cmd_sleep_awake(SDState * sd,SDRequest req) emmc_cmd_sleep_awake() argument 1482 sd_cmd_SWITCH_FUNCTION(SDState * sd,SDRequest req) sd_cmd_SWITCH_FUNCTION() argument 1501 emmc_cmd_SWITCH(SDState * sd,SDRequest req) emmc_cmd_SWITCH() argument 1515 sd_cmd_DE_SELECT_CARD(SDState * sd,SDRequest req) sd_cmd_DE_SELECT_CARD() argument 1556 sd_cmd_SEND_IF_COND(SDState * sd,SDRequest req) sd_cmd_SEND_IF_COND() argument 1577 emmc_cmd_SEND_EXT_CSD(SDState * sd,SDRequest req) emmc_cmd_SEND_EXT_CSD() argument 1587 spi_cmd_SEND_CxD(SDState * sd,SDRequest req,const void * data,size_t size) spi_cmd_SEND_CxD() argument 1608 spi_cmd_SEND_CSD(SDState * sd,SDRequest req) spi_cmd_SEND_CSD() argument 1613 sd_cmd_SEND_CSD(SDState * sd,SDRequest req) sd_cmd_SEND_CSD() argument 1623 spi_cmd_SEND_CID(SDState * sd,SDRequest req) spi_cmd_SEND_CID() argument 1628 sd_cmd_SEND_CID(SDState * sd,SDRequest req) sd_cmd_SEND_CID() argument 1638 sd_cmd_STOP_TRANSMISSION(SDState * sd,SDRequest req) sd_cmd_STOP_TRANSMISSION() argument 1655 sd_cmd_SEND_STATUS(SDState * sd,SDRequest req) sd_cmd_SEND_STATUS() argument 1681 sd_cmd_GO_INACTIVE_STATE(SDState * sd,SDRequest req) sd_cmd_GO_INACTIVE_STATE() argument 1705 sd_cmd_SET_BLOCKLEN(SDState * sd,SDRequest req) sd_cmd_SET_BLOCKLEN() argument 1721 sd_cmd_READ_SINGLE_BLOCK(SDState * sd,SDRequest req) sd_cmd_READ_SINGLE_BLOCK() argument 1739 sd_cmd_SEND_TUNING_BLOCK(SDState * sd,SDRequest req) sd_cmd_SEND_TUNING_BLOCK() argument 1751 sd_cmd_SET_BLOCK_COUNT(SDState * sd,SDRequest req) sd_cmd_SET_BLOCK_COUNT() argument 1771 sd_cmd_WRITE_SINGLE_BLOCK(SDState * sd,SDRequest req) sd_cmd_WRITE_SINGLE_BLOCK() argument 1798 emmc_cmd_PROGRAM_CID(SDState * sd,SDRequest req) emmc_cmd_PROGRAM_CID() argument 1804 sd_cmd_PROGRAM_CSD(SDState * sd,SDRequest req) sd_cmd_PROGRAM_CSD() argument 1809 sd_cmd_SET_CLR_WRITE_PROT(SDState * sd,SDRequest req,bool is_write) sd_cmd_SET_CLR_WRITE_PROT() argument 1840 sd_cmd_SET_WRITE_PROT(SDState * sd,SDRequest req) sd_cmd_SET_WRITE_PROT() argument 1846 sd_cmd_CLR_WRITE_PROT(SDState * sd,SDRequest req) sd_cmd_CLR_WRITE_PROT() argument 1852 sd_cmd_SEND_WRITE_PROT(SDState * sd,SDRequest req) sd_cmd_SEND_WRITE_PROT() argument 1875 sd_cmd_ERASE_WR_BLK_START(SDState * sd,SDRequest req) sd_cmd_ERASE_WR_BLK_START() argument 1885 sd_cmd_ERASE_WR_BLK_END(SDState * sd,SDRequest req) sd_cmd_ERASE_WR_BLK_END() argument 1895 sd_cmd_ERASE(SDState * sd,SDRequest req) sd_cmd_ERASE() argument 1913 sd_cmd_LOCK_UNLOCK(SDState * sd,SDRequest req) sd_cmd_LOCK_UNLOCK() argument 1919 sd_cmd_APP_CMD(SDState * sd,SDRequest req) sd_cmd_APP_CMD() argument 1946 sd_cmd_GEN_CMD(SDState * sd,SDRequest req) sd_cmd_GEN_CMD() argument 1962 spi_cmd_READ_OCR(SDState * sd,SDRequest req) spi_cmd_READ_OCR() argument 1968 spi_cmd_CRC_ON_OFF(SDState * sd,SDRequest req) spi_cmd_CRC_ON_OFF() argument 1974 sd_acmd_SET_BUS_WIDTH(SDState * sd,SDRequest req) sd_acmd_SET_BUS_WIDTH() argument 1986 sd_acmd_SD_STATUS(SDState * sd,SDRequest req) sd_acmd_SD_STATUS() argument 1999 sd_acmd_SEND_NUM_WR_BLOCKS(SDState * sd,SDRequest req) sd_acmd_SEND_NUM_WR_BLOCKS() argument 2006 sd_acmd_SET_WR_BLK_ERASE_COUNT(SDState * sd,SDRequest req) sd_acmd_SET_WR_BLK_ERASE_COUNT() argument 2015 sd_cmd_SEND_OP_COND(SDState * sd,SDRequest req) sd_cmd_SEND_OP_COND() argument 2062 sd_acmd_SET_CLR_CARD_DETECT(SDState * sd,SDRequest req) sd_acmd_SET_CLR_CARD_DETECT() argument 2073 sd_acmd_SEND_SCR(SDState * sd,SDRequest req) sd_acmd_SEND_SCR() argument 2078 sd_normal_command(SDState * sd,SDRequest req) sd_normal_command() argument 2172 sd_app_command(SDState * sd,SDRequest req) sd_app_command() argument 2208 cmd_valid_while_locked(SDState * sd,unsigned cmd) cmd_valid_while_locked() argument 2234 sd_do_command(SDState * sd,SDRequest * req,uint8_t * response,size_t respsz) sd_do_command() argument 2363 sd_generic_write_byte(SDState * sd,uint8_t value) sd_generic_write_byte() argument 2375 sd_generic_read_byte(SDState * sd,uint8_t * value) sd_generic_read_byte() argument 2387 sd_write_byte(SDState * sd,uint8_t value) sd_write_byte() argument 2517 sd_read_byte(SDState * sd) sd_read_byte() argument 2591 sd_receive_ready(SDState * sd) sd_receive_ready() argument 2596 sd_data_ready(SDState * sd) sd_data_ready() argument 2755 SDState *sd = SDMMC_COMMON(obj); sd_instance_init() local 2765 SDState *sd = SDMMC_COMMON(obj); sd_instance_finalize() local 2772 SDState *sd = SDMMC_COMMON(dev); sd_realize() local 2825 SDState *sd = SDMMC_COMMON(dev); emmc_realize() local [all...] |