summaryrefslogtreecommitdiffstats
path: root/hw/misc/aspeed_sdmc.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/misc/aspeed_sdmc.c')
-rw-r--r--hw/misc/aspeed_sdmc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/misc/aspeed_sdmc.c b/hw/misc/aspeed_sdmc.c
index 9ece545c4f..522e01ef8c 100644
--- a/hw/misc/aspeed_sdmc.c
+++ b/hw/misc/aspeed_sdmc.c
@@ -23,6 +23,10 @@
/* Configuration Register */
#define R_CONF (0x04 / 4)
+/* Control/Status Register #1 (ast2500) */
+#define R_STATUS1 (0x60 / 4)
+#define PHY_BUSY_STATE BIT(0)
+
/*
* Configuration register Ox4 (for Aspeed AST2400 SOC)
*
@@ -137,6 +141,17 @@ static void aspeed_sdmc_write(void *opaque, hwaddr addr, uint64_t data,
g_assert_not_reached();
}
}
+ if (s->silicon_rev == AST2500_A0_SILICON_REV ||
+ s->silicon_rev == AST2500_A1_SILICON_REV) {
+ switch (addr) {
+ case R_STATUS1:
+ /* Will never return 'busy' */
+ data &= ~PHY_BUSY_STATE;
+ break;
+ default:
+ break;
+ }
+ }
s->regs[addr] = data;
}