[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v8 16/17] hw/arm/exynos4210: implement SDHCI Spec v2
From: |
Philippe Mathieu-Daudé |
Subject: |
[Qemu-devel] [PATCH v8 16/17] hw/arm/exynos4210: implement SDHCI Spec v2 |
Date: |
Thu, 18 Jan 2018 15:31:07 -0300 |
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
Acked-by: Alistair Francis <address@hidden>
---
Krzysztof kindly checked those values with Manaul, the Samsung datasheet :)
hw/arm/exynos4210.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/hw/arm/exynos4210.c b/hw/arm/exynos4210.c
index e8e1d81e62..e70e234f58 100644
--- a/hw/arm/exynos4210.c
+++ b/hw/arm/exynos4210.c
@@ -75,7 +75,6 @@
#define EXYNOS4210_INT_COMBINER_BASE_ADDR 0x10448000
/* SD/MMC host controllers */
-#define EXYNOS4210_SDHCI_CAPABILITIES 0x05E80080
#define EXYNOS4210_SDHCI_BASE_ADDR 0x12510000
#define EXYNOS4210_SDHCI_ADDR(n) (EXYNOS4210_SDHCI_BASE_ADDR + \
0x00010000 * (n))
@@ -377,8 +376,26 @@ Exynos4210State *exynos4210_init(MemoryRegion *system_mem)
BlockBackend *blk;
DriveInfo *di;
+ /* Compatible with:
+ * - SD Host Controller Specification Version 2.0
+ * - SDIO Specification Version 2.0
+ * - MMC Specification Version 4.3
+ * - SDMA
+ * - ADMA2
+ *
+ * As this part of the Exynos4210 is not publically available,
+ * we used the "HS-MMC Controller S3C2416X RISC Microprocessor"
+ * public datasheet which is very similar (implementing
+ * MMC Specification Version 4.0 being the only difference noted)
+ */
dev = qdev_create(NULL, TYPE_SYSBUS_SDHCI);
- qdev_prop_set_uint32(dev, "capareg", EXYNOS4210_SDHCI_CAPABILITIES);
+ qdev_prop_set_uint8(dev, "sd-spec-version", 2);
+ qdev_prop_set_uint8(dev, "timeout-freq", 0);
+ qdev_prop_set_uint8(dev, "max-frequency", 0);
+ qdev_prop_set_bit(dev, "suspend", true);
+ qdev_prop_set_bit(dev, "sdma", true);
+ qdev_prop_set_bit(dev, "adma1", false);
+ qdev_prop_set_bit(dev, "adma2", true);
qdev_init_nofail(dev);
busdev = SYS_BUS_DEVICE(dev);
--
2.15.1
- [Qemu-devel] [PATCH v8 05/17] sdhci: add a check_capab_sdma() qtest, (continued)
- [Qemu-devel] [PATCH v8 05/17] sdhci: add a check_capab_sdma() qtest, Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 06/17] sdhci: add qtest to check the SD Spec version, Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 07/17] sdhci: add init_readonly_registers() to initialize the CAPAB register, Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 08/17] sdhci: add a 'spec_version property' (default to v2), Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 09/17] sdhci: add basic Spec v1 capabilities, Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 10/17] sdhci: add max-block-length capability (Spec v1), Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 13/17] sdhci: Fix 64-bit ADMA2, Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 15/17] hw/arm/xilinx_zynq: implement SDHCI Spec v2, Philippe Mathieu-Daudé, 2018/01/18
- [Qemu-devel] [PATCH v8 16/17] hw/arm/exynos4210: implement SDHCI Spec v2,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH v8 17/17] sdhci: throw an error if capabilities are incorrectly configured, Philippe Mathieu-Daudé, 2018/01/18