qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 0/3] Introduce a new Write Protected pin inverted property


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v3 0/3] Introduce a new Write Protected pin inverted property
Date: Wed, 27 Nov 2024 12:23:35 +0100
User-agent: Mozilla Thunderbird

On 27/11/24 10:44, Cédric Le Goater wrote:
On 11/14/24 10:48, Jamin Lin wrote:
change from v1:
1. Support RTC for AST2700.
2. Support SDHCI write protected pin inverted for AST2500 and AST2600.
3. Introduce Capabilities Register 2 for SD slot 0 and 1.
4. Support create flash devices via command line for AST1030.

change from v2:
replace wp-invert with wp-inverted and fix review issues.

change from v3:
1. add reviewer suggestion about wp_inverted comment
2. AST2500 EVB does not need to set wp-inverted property of sdhci model
https://github.com/AspeedTech-BMC/linux/blob/aspeed-master-v6.6/arch/arm/boot/dts/aspeed/aspeed-ast2500-evb.dts#L110

Jamin Lin (3):
   hw/sd/sdhci: Fix coding style
   hw/sd/sdhci: Introduce a new Write Protected pin inverted property
   hw/arm/aspeed: Invert sdhci write protected pin for AST2600 EVB

  hw/arm/aspeed.c         |  7 +++++
  hw/sd/sdhci.c           | 70 ++++++++++++++++++++++++++++-------------
  include/hw/arm/aspeed.h |  1 +
  include/hw/sd/sdhci.h   |  5 +++
  4 files changed, 61 insertions(+), 22 deletions(-)


Philippe,

I plan to queue patch 2-3 for QEMU 10.0. Is that ok for you ?

Having to modify sdhci.c internals is dubious, since inversion
occurs out of this block. If this is the soc/board layer, isn't
better to model at this level? Smth like:

-- >8 --
diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c
index be3eb70cdd7..aad9be66b75 100644
--- a/hw/arm/aspeed_ast2600.c
+++ b/hw/arm/aspeed_ast2600.c
@@ -559,8 +559,9 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, Error **errp)
     }
     aspeed_mmio_map(s, SYS_BUS_DEVICE(&s->sdhci), 0,
                     sc->memmap[ASPEED_DEV_SDHCI]);
+    irq = aspeed_soc_get_irq(s, ASPEED_DEV_SDHCI);
     sysbus_connect_irq(SYS_BUS_DEVICE(&s->sdhci), 0,
-                       aspeed_soc_get_irq(s, ASPEED_DEV_SDHCI));
+                       sc->sdhci_wp_inverted ? qemu_irq_invert(irq) : irq);

     /* eMMC */
     if (!sysbus_realize(SYS_BUS_DEVICE(&s->emmc), errp)) {
---



reply via email to

[Prev in Thread] Current Thread [Next in Thread]