summary refs log tree commit diff stats
path: root/include/hw/sd/sdhci.h
diff options
context:
space:
mode:
authorAndrew Baumann <Andrew.Baumann@microsoft.com>2016-02-25 13:35:30 -0800
committerPeter Maydell <peter.maydell@linaro.org>2016-02-26 15:09:42 +0000
commit0a7ac9f9e72246ce41dfb101c77a58de607aef7c (patch)
tree5abfc1da84875c139963df6a3e5d8ed4eec5df52 /include/hw/sd/sdhci.h
parent5c1bc9a234704c3d2001e7751b2d33145202a35f (diff)
downloadfocaccia-qemu-0a7ac9f9e72246ce41dfb101c77a58de607aef7c.tar.gz
focaccia-qemu-0a7ac9f9e72246ce41dfb101c77a58de607aef7c.zip
sdhci: add quirk property for card insert interrupt status on Raspberry Pi
This quirk is a workaround for the following hardware behaviour, on
which UEFI (specifically, the bootloader for Windows on Pi2) depends:

1. at boot with an SD card present, the interrupt status/enable
   registers are initially zero
2. upon enabling it in the interrupt enable register, the card insert
   bit in the interrupt status register is immediately set
3. after a subsequent controller reset, the card insert interrupt does
   not fire, even if enabled in the interrupt enable register

Signed-off-by: Andrew Baumann <Andrew.Baumann@microsoft.com>
Message-id: 1456436130-7048-3-git-send-email-Andrew.Baumann@microsoft.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include/hw/sd/sdhci.h')
-rw-r--r--include/hw/sd/sdhci.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/hw/sd/sdhci.h b/include/hw/sd/sdhci.h
index 4816516a26..0f0c3f1e64 100644
--- a/include/hw/sd/sdhci.h
+++ b/include/hw/sd/sdhci.h
@@ -76,6 +76,8 @@ typedef struct SDHCIState {
     uint32_t buf_maxsz;
     uint16_t data_count;   /* current element in FIFO buffer */
     uint8_t  stopped_state;/* Current SDHC state */
+    bool     pending_insert_quirk;/* Quirk for Raspberry Pi card insert int */
+    bool     pending_insert_state;
     /* Buffer Data Port Register - virtual access point to R and W buffers */
     /* Software Reset Register - always reads as 0 */
     /* Force Event Auto CMD12 Error Interrupt Reg - write only */