mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 12:09:58 +00:00
82e4838249
The Allwinner System on Chip families sun4i and above contain an integrated storage controller for Secure Digital (SD) and Multi Media Card (MMC) interfaces. This commit adds support for the Allwinner SD/MMC storage controller with the following emulated features: * DMA transfers * Direct FIFO I/O * Short/Long format command responses * Auto-Stop command (CMD12) * Insert & remove card detection The following boards are extended with the SD host controller: * Cubieboard (hw/arm/cubieboard.c) * Orange Pi PC (hw/arm/orangepi.c) Signed-off-by: Niek Linnenbank <nieklinnenbank@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 20200311221854.30370-9-nieklinnenbank@gmail.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
65 lines
4.0 KiB
Plaintext
65 lines
4.0 KiB
Plaintext
# See docs/devel/tracing.txt for syntax documentation.
|
|
|
|
# allwinner-sdhost.c
|
|
allwinner_sdhost_set_inserted(bool inserted) "inserted %u"
|
|
allwinner_sdhost_process_desc(uint64_t desc_addr, uint32_t desc_size, bool is_write, uint32_t max_bytes) "desc_addr 0x%" PRIx64 " desc_size %" PRIu32 " is_write %u max_bytes %" PRIu32
|
|
allwinner_sdhost_read(uint64_t offset, uint64_t data, unsigned size) "offset 0x%" PRIx64 " data 0x%" PRIx64 " size %" PRIu32
|
|
allwinner_sdhost_write(uint64_t offset, uint64_t data, unsigned size) "offset 0x%" PRIx64 " data 0x%" PRIx64 " size %" PRIu32
|
|
allwinner_sdhost_update_irq(uint32_t irq) "IRQ bits 0x%" PRIx32
|
|
|
|
# bcm2835_sdhost.c
|
|
bcm2835_sdhost_read(uint64_t offset, uint64_t data, unsigned size) "offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u"
|
|
bcm2835_sdhost_write(uint64_t offset, uint64_t data, unsigned size) "offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u"
|
|
bcm2835_sdhost_edm_change(const char *why, uint32_t edm) "(%s) EDM now 0x%x"
|
|
bcm2835_sdhost_update_irq(uint32_t irq) "IRQ bits 0x%x"
|
|
|
|
# core.c
|
|
sdbus_command(const char *bus_name, uint8_t cmd, uint32_t arg) "@%s CMD%02d arg 0x%08x"
|
|
sdbus_read(const char *bus_name, uint8_t value) "@%s value 0x%02x"
|
|
sdbus_write(const char *bus_name, uint8_t value) "@%s value 0x%02x"
|
|
sdbus_set_voltage(const char *bus_name, uint16_t millivolts) "@%s %u (mV)"
|
|
sdbus_get_dat_lines(const char *bus_name, uint8_t dat_lines) "@%s dat_lines: %u"
|
|
sdbus_get_cmd_line(const char *bus_name, bool cmd_line) "@%s cmd_line: %u"
|
|
|
|
# sdhci.c
|
|
sdhci_set_inserted(const char *level) "card state changed: %s"
|
|
sdhci_send_command(uint8_t cmd, uint32_t arg) "CMD%02u ARG[0x%08x]"
|
|
sdhci_error(const char *msg) "%s"
|
|
sdhci_response4(uint32_t r0) "RSPREG[31..0]=0x%08x"
|
|
sdhci_response16(uint32_t r3, uint32_t r2, uint32_t r1, uint32_t r0) "RSPREG[127..96]=0x%08x, RSPREG[95..64]=0x%08x, RSPREG[63..32]=0x%08x, RSPREG[31..0]=0x%08x"
|
|
sdhci_end_transfer(uint8_t cmd, uint32_t arg) "Automatically issue CMD%02u 0x%08x"
|
|
sdhci_adma(const char *desc, uint32_t sysad) "%s: admasysaddr=0x%" PRIx32
|
|
sdhci_adma_loop(uint64_t addr, uint16_t length, uint8_t attr) "addr=0x%08" PRIx64 ", len=%d, attr=0x%x"
|
|
sdhci_adma_transfer_completed(void) ""
|
|
sdhci_access(const char *access, unsigned int size, uint64_t offset, const char *dir, uint64_t val, uint64_t val2) "%s%u: addr[0x%04" PRIx64 "] %s 0x%08" PRIx64 " (%" PRIu64 ")"
|
|
sdhci_read_dataport(uint16_t data_count) "all %u bytes of data have been read from input buffer"
|
|
sdhci_write_dataport(uint16_t data_count) "write buffer filled with %u bytes of data"
|
|
sdhci_capareg(const char *desc, uint16_t val) "%s: %u"
|
|
|
|
# sd.c
|
|
sdcard_normal_command(const char *proto, const char *cmd_desc, uint8_t cmd, uint32_t arg, const char *state) "%s %20s/ CMD%02d arg 0x%08x (state %s)"
|
|
sdcard_app_command(const char *proto, const char *acmd_desc, uint8_t acmd, uint32_t arg, const char *state) "%s %23s/ACMD%02d arg 0x%08x (state %s)"
|
|
sdcard_response(const char *rspdesc, int rsplen) "%s (sz:%d)"
|
|
sdcard_powerup(void) ""
|
|
sdcard_inquiry_cmd41(void) ""
|
|
sdcard_reset(void) ""
|
|
sdcard_set_blocklen(uint16_t length) "0x%03x"
|
|
sdcard_inserted(bool readonly) "read_only: %u"
|
|
sdcard_ejected(void) ""
|
|
sdcard_erase(void) ""
|
|
sdcard_lock(void) ""
|
|
sdcard_unlock(void) ""
|
|
sdcard_read_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0x%x"
|
|
sdcard_write_block(uint64_t addr, uint32_t len) "addr 0x%" PRIx64 " size 0x%x"
|
|
sdcard_write_data(const char *proto, const char *cmd_desc, uint8_t cmd, uint8_t value) "%s %20s/ CMD%02d value 0x%02x"
|
|
sdcard_read_data(const char *proto, const char *cmd_desc, uint8_t cmd, int length) "%s %20s/ CMD%02d len %d"
|
|
sdcard_set_voltage(uint16_t millivolts) "%u mV"
|
|
|
|
# milkymist-memcard.c
|
|
milkymist_memcard_memory_read(uint32_t addr, uint32_t value) "addr 0x%08x value 0x%08x"
|
|
milkymist_memcard_memory_write(uint32_t addr, uint32_t value) "addr 0x%08x value 0x%08x"
|
|
|
|
# pxa2xx_mmci.c
|
|
pxa2xx_mmci_read(uint8_t size, uint32_t addr, uint32_t value) "size %d addr 0x%02x value 0x%08x"
|
|
pxa2xx_mmci_write(uint8_t size, uint32_t addr, uint32_t value) "size %d addr 0x%02x value 0x%08x"
|