qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v1] Add dummy Aspeed AST2600 Display Port MCU (DPMCU)


From: Cédric Le Goater
Subject: Re: [PATCH v1] Add dummy Aspeed AST2600 Display Port MCU (DPMCU)
Date: Fri, 10 Dec 2021 15:05:39 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.0

On 12/10/21 09:30, Troy Lee wrote:
AST2600 Display Port MCU introduces 0x18000000~0x1803FFFF as it's memory
and io address. If guest machine try to access DPMCU memory, it will
cause a fatal error.

The Aspeed SoCs have an "aspeed_soc.io" region for unimplemented devices
but it's too small. Anyhow, it is better to have per logic unit. We should
change that one day.

For my information, which FW image are you using ?

Signed-off-by: Troy Lee <troy_lee@aspeedtech.com>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

---
  hw/arm/aspeed_ast2600.c     | 8 ++++++++
  include/hw/arm/aspeed_soc.h | 2 ++
  2 files changed, 10 insertions(+)

diff --git a/hw/arm/aspeed_ast2600.c b/hw/arm/aspeed_ast2600.c
index 0384357a95..e33483fb5d 100644
--- a/hw/arm/aspeed_ast2600.c
+++ b/hw/arm/aspeed_ast2600.c
@@ -19,9 +19,11 @@
  #include "sysemu/sysemu.h"
#define ASPEED_SOC_IOMEM_SIZE 0x00200000
+#define ASPEED_SOC_DPMCU_SIZE       0x00040000
static const hwaddr aspeed_soc_ast2600_memmap[] = {
      [ASPEED_DEV_SRAM]      = 0x10000000,
+    [ASPEED_DEV_DPMCU]     = 0x18000000,
      /* 0x16000000     0x17FFFFFF : AHB BUS do LPC Bus bridge */
      [ASPEED_DEV_IOMEM]     = 0x1E600000,
      [ASPEED_DEV_PWM]       = 0x1E610000,
@@ -44,6 +46,7 @@ static const hwaddr aspeed_soc_ast2600_memmap[] = {
      [ASPEED_DEV_SCU]       = 0x1E6E2000,
      [ASPEED_DEV_XDMA]      = 0x1E6E7000,
      [ASPEED_DEV_ADC]       = 0x1E6E9000,
+    [ASPEED_DEV_DP]        = 0x1E6EB000,
      [ASPEED_DEV_VIDEO]     = 0x1E700000,
      [ASPEED_DEV_SDHCI]     = 0x1E740000,
      [ASPEED_DEV_EMMC]      = 0x1E750000,
@@ -104,6 +107,7 @@ static const int aspeed_soc_ast2600_irqmap[] = {
      [ASPEED_DEV_ETH3]      = 32,
      [ASPEED_DEV_ETH4]      = 33,
      [ASPEED_DEV_KCS]       = 138,   /* 138 -> 142 */
+    [ASPEED_DEV_DP]        = 62,
  };
static qemu_irq aspeed_soc_get_irq(AspeedSoCState *s, int ctrl)
@@ -298,6 +302,10 @@ static void aspeed_soc_ast2600_realize(DeviceState *dev, 
Error **errp)
      memory_region_add_subregion(get_system_memory(),
                                  sc->memmap[ASPEED_DEV_SRAM], &s->sram);
+ /* DPMCU */
+    create_unimplemented_device("aspeed.dpmcu", sc->memmap[ASPEED_DEV_DPMCU],
+                                ASPEED_SOC_DPMCU_SIZE);
+
      /* SCU */
      if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) {
          return;
diff --git a/include/hw/arm/aspeed_soc.h b/include/hw/arm/aspeed_soc.h
index 8139358549..18fb7eed46 100644
--- a/include/hw/arm/aspeed_soc.h
+++ b/include/hw/arm/aspeed_soc.h
@@ -139,6 +139,8 @@ enum {
      ASPEED_DEV_EMMC,
      ASPEED_DEV_KCS,
      ASPEED_DEV_HACE,
+    ASPEED_DEV_DPMCU,
+    ASPEED_DEV_DP,
  };
#endif /* ASPEED_SOC_H */





reply via email to

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