From patchwork Fri Nov 19 17:11:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1557326 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=dKD/gw3a; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hwk306PZ0z9sR4 for ; Sat, 20 Nov 2021 04:21:00 +1100 (AEDT) Received: from localhost ([::1]:45888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mo7ZK-0000jo-Mx for incoming@patchwork.ozlabs.org; Fri, 19 Nov 2021 12:20:58 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46330) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo7Qv-0006wU-NX for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:17 -0500 Received: from [2a00:1450:4864:20::329] (port=39553 helo=mail-wm1-x329.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mo7Qq-0006OL-Bg for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:14 -0500 Received: by mail-wm1-x329.google.com with SMTP id n33-20020a05600c502100b0032fb900951eso11013417wmr.4 for ; Fri, 19 Nov 2021 09:12:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LxzL38s3i1AAXjqxVDHxZy+6zklNakdLnL3NVaE6p/A=; b=dKD/gw3acY/L6H5ff2pP4SXTZYt+iBDRZKdbp/vM6eH4q0C1j5ozCwVZHt91tKmAtO 9RNsx+H30ipOej82snAKXNWLHQTdQLsvE5eMnHzcc/c33txs/kq7bNrJrtWU2IyW9mAy 6RtcpbnesluBNwI6fnUdnjFn8ZA0erFUKhIcQDgketlR10xFkVBb7REhsTyhOe5Aekcb mGQlrdhuX+CbTHscribuZOkMr+0N9x/M2qfD4sIlkhiUIPJn/WZ3corHc7JNoYYLC0Ya dAc0UXoBcjwUgNWOpwv5sbDr3I7HnfiQ5VMHSsJdHnpwcEhpJD+9rSiJzpaLCXjG+XsH PyBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=LxzL38s3i1AAXjqxVDHxZy+6zklNakdLnL3NVaE6p/A=; b=I6huU80dawWUrbCze9dOTi6KjcZus/1xutXPZRDeaJsq4o2yaRZHad/o6mHuH0/L7b 1BfHPzU11BsFvy4B2j6esHiQs7UlugpfxvWux1aMhvtq07OLhr/CsUye/Df5e31TbCqh cBKy6tW8gX7yFjbyvWxhqOgq5u7RreDQfvm++Ul0k9oIWXcpxo5Tpl22azP6wKN2o3mY PKQCqDhK9CyfbZX3oj0rgEO5MKVX6wwa2uvgYyifKOVpAjQ7aGzCuFYxVl/oMMRLBH+O HPd2NHIs2M+QKIC4Tr+HlItvlKqC6XWloQyGF/SNnuUmEI0pt+mxTR+Cfd1C/htlkmN1 7G5A== X-Gm-Message-State: AOAM5321YH3kQLajvrHv8ZyBJ1QqlbLKPSHsNVYAbpYdyzZyfXKf1b28 cDQ0Cv7+Q/bShrCUuTY2mKIWRnE7RmA= X-Google-Smtp-Source: ABdhPJyxj1X7BOACa/4u2AFR+B6rHjlLtrS1sK5KF/DiXeb2HH1ekBJ2g5XoUC8PDrCF034On6gm1Q== X-Received: by 2002:a05:600c:34c2:: with SMTP id d2mr1531250wmq.102.1637341929644; Fri, 19 Nov 2021 09:12:09 -0800 (PST) Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id a141sm12107817wme.37.2021.11.19.09.12.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 09:12:09 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH-for-7.0 1/5] hw/display: Rename VGA_ISA_MM -> VGA_MMIO Date: Fri, 19 Nov 2021 18:11:58 +0100 Message-Id: <20211119171202.458919-2-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211119171202.458919-1-f4bug@amsat.org> References: <20211119171202.458919-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::329 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , =?utf-8?q?Herv=C3=A9_Poussineau?= , Gerd Hoffmann , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" There is no ISA bus part in the MMIO VGA device, so rename: * hw/display/vga-isa-mm.c -> hw/display/vga-mmio.c * CONFIG_VGA_ISA_MM -> CONFIG_VGA_MMIO * ISAVGAMMState -> VGAMmioState * isa_vga_mm_init() -> vga_mmio_init() Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: BALATON Zoltan Reviewed-by: Thomas Huth --- configs/devices/mips-softmmu/common.mak | 2 +- include/hw/display/vga.h | 2 +- hw/display/{vga-isa-mm.c => vga-mmio.c} | 16 ++++++++-------- hw/mips/jazz.c | 2 +- hw/display/Kconfig | 2 +- hw/display/meson.build | 2 +- hw/mips/Kconfig | 2 +- 7 files changed, 14 insertions(+), 14 deletions(-) rename hw/display/{vga-isa-mm.c => vga-mmio.c} (93%) diff --git a/configs/devices/mips-softmmu/common.mak b/configs/devices/mips-softmmu/common.mak index 752b62b1e63..d2202c839e0 100644 --- a/configs/devices/mips-softmmu/common.mak +++ b/configs/devices/mips-softmmu/common.mak @@ -7,7 +7,7 @@ CONFIG_ISA_BUS=y CONFIG_PCI=y CONFIG_PCI_DEVICES=y CONFIG_VGA_ISA=y -CONFIG_VGA_ISA_MM=y +CONFIG_VGA_MMIO=y CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_SERIAL=y diff --git a/include/hw/display/vga.h b/include/hw/display/vga.h index 5f7825e0e36..03c65a14218 100644 --- a/include/hw/display/vga.h +++ b/include/hw/display/vga.h @@ -24,7 +24,7 @@ enum vga_retrace_method { extern enum vga_retrace_method vga_retrace_method; -int isa_vga_mm_init(hwaddr vram_base, +int vga_mmio_init(hwaddr vram_base, hwaddr ctrl_base, int it_shift, MemoryRegion *address_space); diff --git a/hw/display/vga-isa-mm.c b/hw/display/vga-mmio.c similarity index 93% rename from hw/display/vga-isa-mm.c rename to hw/display/vga-mmio.c index 7321b7a06d5..8aaf44e7b1d 100644 --- a/hw/display/vga-isa-mm.c +++ b/hw/display/vga-mmio.c @@ -1,5 +1,5 @@ /* - * QEMU ISA MM VGA Emulator. + * QEMU MMIO VGA Emulator. * * Copyright (c) 2003 Fabrice Bellard * @@ -32,15 +32,15 @@ #define VGA_RAM_SIZE (8 * MiB) -typedef struct ISAVGAMMState { +typedef struct VGAMmioState { VGACommonState vga; int it_shift; -} ISAVGAMMState; +} VGAMmioState; /* Memory mapped interface */ static uint64_t vga_mm_read(void *opaque, hwaddr addr, unsigned size) { - ISAVGAMMState *s = opaque; + VGAMmioState *s = opaque; return vga_ioport_read(&s->vga, addr >> s->it_shift) & MAKE_64BIT_MASK(0, size * 8); @@ -49,7 +49,7 @@ static uint64_t vga_mm_read(void *opaque, hwaddr addr, unsigned size) static void vga_mm_write(void *opaque, hwaddr addr, uint64_t value, unsigned size) { - ISAVGAMMState *s = opaque; + VGAMmioState *s = opaque; vga_ioport_write(&s->vga, addr >> s->it_shift, value & MAKE_64BIT_MASK(0, size * 8)); @@ -65,7 +65,7 @@ static const MemoryRegionOps vga_mm_ctrl_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static void vga_mm_init(ISAVGAMMState *s, hwaddr vram_base, +static void vga_mm_init(VGAMmioState *s, hwaddr vram_base, hwaddr ctrl_base, int it_shift, MemoryRegion *address_space) { @@ -91,11 +91,11 @@ static void vga_mm_init(ISAVGAMMState *s, hwaddr vram_base, memory_region_set_coalescing(vga_io_memory); } -int isa_vga_mm_init(hwaddr vram_base, +int vga_mmio_init(hwaddr vram_base, hwaddr ctrl_base, int it_shift, MemoryRegion *address_space) { - ISAVGAMMState *s; + VGAMmioState *s; s = g_malloc0(sizeof(*s)); diff --git a/hw/mips/jazz.c b/hw/mips/jazz.c index f5a26e174d5..8f345afd137 100644 --- a/hw/mips/jazz.c +++ b/hw/mips/jazz.c @@ -274,7 +274,7 @@ static void mips_jazz_init(MachineState *machine, } break; case JAZZ_PICA61: - isa_vga_mm_init(0x40000000, 0x60000000, 0, get_system_memory()); + vga_mmio_init(0x40000000, 0x60000000, 0, get_system_memory()); break; default: break; diff --git a/hw/display/Kconfig b/hw/display/Kconfig index a2306b67d87..a1b159becd7 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -49,7 +49,7 @@ config VGA_ISA depends on ISA_BUS select VGA -config VGA_ISA_MM +config VGA_MMIO bool select VGA diff --git a/hw/display/meson.build b/hw/display/meson.build index 861c43ff984..adc53dd8b6c 100644 --- a/hw/display/meson.build +++ b/hw/display/meson.build @@ -18,7 +18,7 @@ softmmu_ss.add(when: 'CONFIG_VGA_PCI', if_true: files('vga-pci.c')) softmmu_ss.add(when: 'CONFIG_VGA_ISA', if_true: files('vga-isa.c')) -softmmu_ss.add(when: 'CONFIG_VGA_ISA_MM', if_true: files('vga-isa-mm.c')) +softmmu_ss.add(when: 'CONFIG_VGA_MMIO', if_true: files('vga-mmio.c')) softmmu_ss.add(when: 'CONFIG_VMWARE_VGA', if_true: files('vmware_vga.c')) softmmu_ss.add(when: 'CONFIG_BOCHS_DISPLAY', if_true: files('bochs-display.c')) diff --git a/hw/mips/Kconfig b/hw/mips/Kconfig index b4c5549ce84..725525358d9 100644 --- a/hw/mips/Kconfig +++ b/hw/mips/Kconfig @@ -16,7 +16,7 @@ config JAZZ select I8254 select I8257 select PCSPK - select VGA_ISA_MM + select VGA_MMIO select G364FB select DP8393X select ESP From patchwork Fri Nov 19 17:11:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1557328 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=A9ZmrFMR; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hwk786wDmz9sVc for ; Sat, 20 Nov 2021 04:24:36 +1100 (AEDT) Received: from localhost ([::1]:52146 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mo7co-0005I4-Q1 for incoming@patchwork.ozlabs.org; Fri, 19 Nov 2021 12:24:34 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46348) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo7Qx-0006x8-0K for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:19 -0500 Received: from [2a00:1450:4864:20::330] (port=41891 helo=mail-wm1-x330.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mo7Qv-0006Om-GD for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:18 -0500 Received: by mail-wm1-x330.google.com with SMTP id f7-20020a1c1f07000000b0032ee11917ceso8074974wmf.0 for ; Fri, 19 Nov 2021 09:12:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ZHCEhn6PI0jEPNaBscG3od0nMbxmuG7wPeTVim4TAJw=; b=A9ZmrFMRh665OwWuOKxRRDyIsLEpA8Zj7qbknL9H8g8+X9fP1DadhI3ZNcOLeTxSOj NZ8dvn/brifUrUl6TIA5RRP7ofRzepO2IBa3fbl8mirNxZ2T7WetfP47cxFc1KgJK/Q/ 2v8akLpW4RCUMzeHHDYSLQwj1E6zL0QUN2vk15m4vWDikAlg8RkOrUaUuokg9fNY1Rr0 YQDJd1wZQS7JKZO8ksCKVCI5/8ujwbVleste2O8UsHUc55j0iCQ9SOGrs0Oz5Hv6P0oq bGW6OajDLDTNBF/ue8YG9qm+ZP9GGohG2hhrvVTPrcYLyfeAQkQoES1TYRECHfo+i5mx vM7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=ZHCEhn6PI0jEPNaBscG3od0nMbxmuG7wPeTVim4TAJw=; b=6azLy2nEXBmXSDnAbMPLlov8+o02jA+ThycPNLuDMOnEBYCmoYkUmJIguFfVNQF2GY mK5zDlsiWj3XfA5QKPLNPSDvXgs6SQS9hlqP2sFHGmLT4qLRAYwdh7L7S69+BPzgNmuQ MLo0/tWdYN1Rnew/ULJT7dXlH2GeVgVZUUb/H0d0tpYD5WicN8DeDShaIRyKa8Ejc4jD NjiZO2CMSzz2fKoViCnfKg8BnWX6GBasUW7RKs/Co1ELPTojdUDcES+XpNTRb10PPoLl s+1xp1pteShMj5TpTqFjNFxaDRXxqDiyAhEmgZPvFmDnCZZOXWcO7EKHu+vGTtgp89T/ qBsA== X-Gm-Message-State: AOAM532tbEEcxUJhKyCfHxXekbVqPZ+bDi5AnHkMh7EhcW55wHJ7ZDqN 3S3TTvyrUKY8x+mSJFbKoth65YF/YWA= X-Google-Smtp-Source: ABdhPJxciEIeb/JWdRbjE8tRo5Y2MEwumyIAE4hxP+NVwrtwzAY6Ve7Y3pnhOMPuzZmfLsIIqK+eqQ== X-Received: by 2002:a1c:8002:: with SMTP id b2mr1560819wmd.2.1637341934483; Fri, 19 Nov 2021 09:12:14 -0800 (PST) Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id be3sm12384948wmb.1.2021.11.19.09.12.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 09:12:14 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH-for-7.0 2/5] hw/display/vga-mmio: Inline vga_mm_init() Date: Fri, 19 Nov 2021 18:11:59 +0100 Message-Id: <20211119171202.458919-3-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211119171202.458919-1-f4bug@amsat.org> References: <20211119171202.458919-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::330 (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , =?utf-8?q?Herv=C3=A9_Poussineau?= , Gerd Hoffmann , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Inline vga_mm_init() in vga_mmio_init() to simplify the next patch review. Kind of. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: BALATON Zoltan Reviewed-by: Thomas Huth --- hw/display/vga-mmio.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c index 8aaf44e7b1d..0aefbcf53a0 100644 --- a/hw/display/vga-mmio.c +++ b/hw/display/vga-mmio.c @@ -65,12 +65,19 @@ static const MemoryRegionOps vga_mm_ctrl_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; -static void vga_mm_init(VGAMmioState *s, hwaddr vram_base, - hwaddr ctrl_base, int it_shift, - MemoryRegion *address_space) +int vga_mmio_init(hwaddr vram_base, + hwaddr ctrl_base, int it_shift, + MemoryRegion *address_space) { + VGAMmioState *s; MemoryRegion *s_ioport_ctrl, *vga_io_memory; + s = g_malloc0(sizeof(*s)); + + s->vga.vram_size_mb = VGA_RAM_SIZE / MiB; + s->vga.global_vmstate = true; + vga_common_init(&s->vga, NULL); + s->it_shift = it_shift; s_ioport_ctrl = g_malloc(sizeof(*s_ioport_ctrl)); memory_region_init_io(s_ioport_ctrl, NULL, &vga_mm_ctrl_ops, s, @@ -89,20 +96,6 @@ static void vga_mm_init(VGAMmioState *s, hwaddr vram_base, memory_region_add_subregion(address_space, vram_base + 0x000a0000, vga_io_memory); memory_region_set_coalescing(vga_io_memory); -} - -int vga_mmio_init(hwaddr vram_base, - hwaddr ctrl_base, int it_shift, - MemoryRegion *address_space) -{ - VGAMmioState *s; - - s = g_malloc0(sizeof(*s)); - - s->vga.vram_size_mb = VGA_RAM_SIZE / MiB; - s->vga.global_vmstate = true; - vga_common_init(&s->vga, NULL); - vga_mm_init(s, vram_base, ctrl_base, it_shift, address_space); s->vga.con = graphic_console_init(NULL, 0, s->vga.hw_ops, s); From patchwork Fri Nov 19 17:12:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1557330 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=QvKRb7k4; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HwkBb6V71z9sVc for ; Sat, 20 Nov 2021 04:27:35 +1100 (AEDT) Received: from localhost ([::1]:57290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mo7fh-0000Q9-EM for incoming@patchwork.ozlabs.org; Fri, 19 Nov 2021 12:27:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46394) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo7R1-00072J-4P for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:27 -0500 Received: from [2a00:1450:4864:20::32e] (port=54824 helo=mail-wm1-x32e.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mo7Qz-0006PF-6p for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:22 -0500 Received: by mail-wm1-x32e.google.com with SMTP id i12so9144150wmq.4 for ; Fri, 19 Nov 2021 09:12:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Mt9b+5cqbBIgzp6O9dytn7/9Xl0Ujk3opErV/gQqZLs=; b=QvKRb7k4cg3krRjLg5rfJHieJhIouk97Bd0HMqBWG8+AMfSynuHdKM3kCu3V4RvII8 32ZhWMtegJj4z1G6m5LCQUWGyxlXmjwC22I1h1nliHT8AFWl3fQqgHPUOoNjEOM+8YM9 nnqWSfgzRRj3wd/Dig5cJRJHQYexuI8QzNp+IIiq2zkl2wi2fWDkyE7nmU6KeMYf0fcJ ZpobR4u4Cxh2Q4pgGQpJt7nCDncUNQG01vTtEPyvh7ipEB5ve7lV5JpWy4qSkl1sXVMR AOX0v/AG6KXFK7bJGvSF6XTbfTI5b/htEprJ5+9ogx3VWwlsQRiDceO7VtkO4S3snZXB QsEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Mt9b+5cqbBIgzp6O9dytn7/9Xl0Ujk3opErV/gQqZLs=; b=4AEsfd5EeBNKbPQjAWMMABWEoTPSuEVRQ9O1t1sXdbkkFpaQALc6kSbwMGidX8LkHr IpPohTqLl/VxhpXvBsYicVV/iCG2pZVEyq8ZDTu07FkgRfjm/pQWsZ5CsGopG7D0QzI4 VHErG0jcg9rjSZ3bzgv6xiZ2b3ta6OYYv5G2YNcFVMXRUJQoFbuKSBAk6CgfsvHwozXn 3/OGjcytrazmG+C67aHLZ9JjkOJMoRfbHZaruEMx5RvobeQKgru0FnO8e9i84OEVrlcg SZIXto2h/cGSBAlQ8xlm50LLgxi4aRrZr2m24bkSq3ZIy2SN3DTBXUo79PyV3EfTX80w +SgQ== X-Gm-Message-State: AOAM532+z53tJA1fzMZyna+/tQmLq9yjPt+IDRdAbXLFASnzne99oxY5 8hgiBO9CBdz8kIXdEt5fTKLhMyvQF1g= X-Google-Smtp-Source: ABdhPJxSYvg82L4HMFpad2FMKqLnfaD1/mG9Bv+O7ymoAbs19NX9KZtZx4qRWoUrDcEcNrpe5rX3DA== X-Received: by 2002:a1c:6a13:: with SMTP id f19mr1430453wmc.89.1637341939121; Fri, 19 Nov 2021 09:12:19 -0800 (PST) Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id s13sm13170110wmc.47.2021.11.19.09.12.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 09:12:18 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH-for-7.0 3/5] hw/display/vga-mmio: QOM'ify vga_mmio_init() as TYPE_VGA_MMIO Date: Fri, 19 Nov 2021 18:12:00 +0100 Message-Id: <20211119171202.458919-4-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211119171202.458919-1-f4bug@amsat.org> References: <20211119171202.458919-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32e (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32e.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , =?utf-8?q?Herv=C3=A9_Poussineau?= , Gerd Hoffmann , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Introduce TYPE_VGA_MMIO, a sysbus device. While there is no change in the vga_mmio_init() interface, this is a migration compatibility break of the MIPS Acer Pica 61 Jazz machine (pica61). Suggested-by: Thomas Huth Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: BALATON Zoltan --- hw/display/vga-mmio.c | 134 +++++++++++++++++++++++++++++------------- 1 file changed, 94 insertions(+), 40 deletions(-) diff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c index 0aefbcf53a0..d1c5f31c134 100644 --- a/hw/display/vga-mmio.c +++ b/hw/display/vga-mmio.c @@ -2,6 +2,7 @@ * QEMU MMIO VGA Emulator. * * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2021 Philippe Mathieu-Daudé * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -23,21 +24,34 @@ */ #include "qemu/osdep.h" -#include "qemu/bitops.h" -#include "qemu/units.h" -#include "migration/vmstate.h" +#include "qapi/error.h" #include "hw/display/vga.h" +#include "hw/sysbus.h" +#include "hw/qdev-properties.h" #include "vga_int.h" -#include "ui/pixel_ops.h" -#define VGA_RAM_SIZE (8 * MiB) +/* + * QEMU interface: + * + sysbus MMIO region 0: VGA I/O registers + * + sysbus MMIO region 1: VGA MMIO registers + * + sysbus MMIO region 2: VGA memory + */ -typedef struct VGAMmioState { +#define TYPE_VGA_MMIO "vga-mmio" +OBJECT_DECLARE_SIMPLE_TYPE(VGAMmioState, VGA_MMIO) + +struct VGAMmioState { + /*< private >*/ + SysBusDevice parent_obj; + + /*< public >*/ VGACommonState vga; - int it_shift; -} VGAMmioState; + MemoryRegion iomem; + MemoryRegion lowmem; + + uint8_t it_shift; +}; -/* Memory mapped interface */ static uint64_t vga_mm_read(void *opaque, hwaddr addr, unsigned size) { VGAMmioState *s = opaque; @@ -65,43 +79,83 @@ static const MemoryRegionOps vga_mm_ctrl_ops = { .endianness = DEVICE_NATIVE_ENDIAN, }; +static void vga_mmio_reset(DeviceState *dev) +{ + VGAMmioState *d = VGA_MMIO(dev); + VGACommonState *s = &d->vga; + + vga_common_reset(s); +} + int vga_mmio_init(hwaddr vram_base, hwaddr ctrl_base, int it_shift, MemoryRegion *address_space) { - VGAMmioState *s; - MemoryRegion *s_ioport_ctrl, *vga_io_memory; + DeviceState *dev; + SysBusDevice *s; - s = g_malloc0(sizeof(*s)); + dev = qdev_new(TYPE_VGA_MMIO); + qdev_prop_set_uint8(dev, "it_shift", it_shift); + s = SYS_BUS_DEVICE(dev); + sysbus_realize_and_unref(s, &error_fatal); - s->vga.vram_size_mb = VGA_RAM_SIZE / MiB; - s->vga.global_vmstate = true; - vga_common_init(&s->vga, NULL); - - s->it_shift = it_shift; - s_ioport_ctrl = g_malloc(sizeof(*s_ioport_ctrl)); - memory_region_init_io(s_ioport_ctrl, NULL, &vga_mm_ctrl_ops, s, - "vga-mm-ctrl", 0x100000); - memory_region_set_flush_coalesced(s_ioport_ctrl); - - vga_io_memory = g_malloc(sizeof(*vga_io_memory)); - /* XXX: endianness? */ - memory_region_init_io(vga_io_memory, NULL, &vga_mem_ops, &s->vga, - "vga-mem", 0x20000); - - vmstate_register(NULL, 0, &vmstate_vga_common, s); - - memory_region_add_subregion(address_space, ctrl_base, s_ioport_ctrl); - s->vga.bank_offset = 0; - memory_region_add_subregion(address_space, - vram_base + 0x000a0000, vga_io_memory); - memory_region_set_coalescing(vga_io_memory); - - s->vga.con = graphic_console_init(NULL, 0, s->vga.hw_ops, s); - - memory_region_add_subregion(address_space, - VBE_DISPI_LFB_PHYSICAL_ADDRESS, - &s->vga.vram); + sysbus_mmio_map(s, 0, ctrl_base); + sysbus_mmio_map(s, 1, vram_base + 0x000a0000); + sysbus_mmio_map(s, 2, VBE_DISPI_LFB_PHYSICAL_ADDRESS); return 0; } + +static void vga_mmio_realizefn(DeviceState *dev, Error **errp) +{ + VGAMmioState *s = VGA_MMIO(dev); + SysBusDevice *sbd = SYS_BUS_DEVICE(dev); + + memory_region_init_io(&s->iomem, OBJECT(dev), &vga_mm_ctrl_ops, s, + "vga-mmio", 0x100000); + memory_region_set_flush_coalesced(&s->iomem); + sysbus_init_mmio(sbd, &s->iomem); + + /* XXX: endianness? */ + memory_region_init_io(&s->lowmem, OBJECT(dev), &vga_mem_ops, &s->vga, + "vga-lowmem", 0x20000); + memory_region_set_coalescing(&s->lowmem); + sysbus_init_mmio(sbd, &s->lowmem); + + s->vga.bank_offset = 0; + s->vga.global_vmstate = true; + vga_common_init(&s->vga, OBJECT(dev)); + sysbus_init_mmio(sbd, &s->vga.vram); + s->vga.con = graphic_console_init(dev, 0, s->vga.hw_ops, &s->vga); +} + +static Property vga_mmio_properties[] = { + DEFINE_PROP_UINT8("it_shift", VGAMmioState, it_shift, 0), + DEFINE_PROP_UINT32("vgamem_mb", VGAMmioState, vga.vram_size_mb, 8), + DEFINE_PROP_END_OF_LIST(), +}; + +static void vga_mmio_class_initfn(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + + dc->realize = vga_mmio_realizefn; + dc->reset = vga_mmio_reset; + dc->vmsd = &vmstate_vga_common; + device_class_set_props(dc, vga_mmio_properties); + set_bit(DEVICE_CATEGORY_DISPLAY, dc->categories); +} + +static const TypeInfo vga_mmio_info = { + .name = TYPE_VGA_MMIO, + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof(VGAMmioState), + .class_init = vga_mmio_class_initfn, +}; + +static void vga_mmio_register_types(void) +{ + type_register_static(&vga_mmio_info); +} + +type_init(vga_mmio_register_types) From patchwork Fri Nov 19 17:12:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1557325 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=XJJoc84R; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Hwjyg58q4z9sR4 for ; Sat, 20 Nov 2021 04:17:15 +1100 (AEDT) Received: from localhost ([::1]:37494 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mo7Vg-0003IQ-TZ for incoming@patchwork.ozlabs.org; Fri, 19 Nov 2021 12:17:12 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46420) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo7R4-00072U-TM for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:27 -0500 Received: from [2a00:1450:4864:20::42c] (port=37637 helo=mail-wr1-x42c.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mo7R3-0006Pe-G7 for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:26 -0500 Received: by mail-wr1-x42c.google.com with SMTP id b12so19294223wrh.4 for ; Fri, 19 Nov 2021 09:12:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=L/CC3I2TBV/ZdA0Br80pFCsNnb1lQ9G4hQuRebB0TTw=; b=XJJoc84RDmhstokLaNYqA67+k1GSj04TrY4fvspn6lIgT6KFo4RfuxePUi9PvpN/Og ShtLiMcvHHFxkLemM6Ig6ik+//qZhM1bXvD2KFsdwOGYJTfFYJWoEKhqsEAdcvQMLhaz 135mdpNoeW+3AnR0RZ6ol8Q/P8yMllzx9hejlWh9zbz6Te8QjdHN7nR4jacMJhSAcqRz PqbiFVWiaeKZAkdK1ywGz/J44ZpMlIGI/4Kson1sgUbKYQkFdNLijE6FANTdSZ6Z2cVT sF0Kl6fjoadjkwn5FqWkJChhf+YiN8MsCioTq3tskQYfuWQj/VuMOVTq4Mh88c1kSmfW ZfXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=L/CC3I2TBV/ZdA0Br80pFCsNnb1lQ9G4hQuRebB0TTw=; b=d6/m9AcZj0JeJQtKzErFwZ2I1ZZ4wwJ5FXDEn4vvs7FQNb8MsD1XI6b/gYgEMFWsO8 7/3/6eVRRbT19y5vbqVWIbwL0ZD3ASt3kk9WTA9uvQPGsgjfopiSIYdvizlWnkSai5Xm I2tAgF+LqLyn38oTyFlDJZp7lAvxYL73C2dtVnkLMQv9rGCg6Ofl85/l78G9advfJ8kE bIr9FtyDWAVIITBjU9Idzy3hqxPW9UeIn7ESGUZWOyiDf7gF0k1ox0haIxkCMbXyvmo4 vNf+jSQ8LpCfQhBHoM5eKbnoZJSyTlDP8Q+TjsA4I3ay7XtPWPMI4lSP7yv+dzS4YVFI HYCA== X-Gm-Message-State: AOAM530/7Kr/iyX20iu8EZeSqQltCAXXgO/wFi2bI3opM9zx6tan0zhp 1XKKXTzNhYUfs1JnThfESfrcz1LT3h4= X-Google-Smtp-Source: ABdhPJyAZRYVkHItd/wIhSdc35V3BXNTEYUIUBLuAlp00W6042VtGY69SkjmJRUo5G7Hs1oaZbbK5Q== X-Received: by 2002:a5d:47c7:: with SMTP id o7mr9662363wrc.204.1637341943937; Fri, 19 Nov 2021 09:12:23 -0800 (PST) Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id o12sm510061wrc.85.2021.11.19.09.12.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 09:12:23 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH-for-7.0 4/5] hw/mips/jazz: Inline vga_mmio_init() and remove it Date: Fri, 19 Nov 2021 18:12:01 +0100 Message-Id: <20211119171202.458919-5-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211119171202.458919-1-f4bug@amsat.org> References: <20211119171202.458919-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::42c (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-x42c.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , =?utf-8?q?Herv=C3=A9_Poussineau?= , Gerd Hoffmann , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" vga_mmio_init() is used only one time and not very helpful, inline and remove it. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: BALATON Zoltan --- include/hw/display/vga.h | 6 ------ hw/display/vga-mmio.c | 20 -------------------- hw/mips/jazz.c | 9 ++++++++- 3 files changed, 8 insertions(+), 27 deletions(-) diff --git a/include/hw/display/vga.h b/include/hw/display/vga.h index 03c65a14218..451e4c9898c 100644 --- a/include/hw/display/vga.h +++ b/include/hw/display/vga.h @@ -9,8 +9,6 @@ #ifndef QEMU_HW_DISPLAY_VGA_H #define QEMU_HW_DISPLAY_VGA_H -#include "exec/hwaddr.h" - /* * modules can reference this symbol to avoid being loaded * into system emulators without vga support @@ -24,8 +22,4 @@ enum vga_retrace_method { extern enum vga_retrace_method vga_retrace_method; -int vga_mmio_init(hwaddr vram_base, - hwaddr ctrl_base, int it_shift, - MemoryRegion *address_space); - #endif diff --git a/hw/display/vga-mmio.c b/hw/display/vga-mmio.c index d1c5f31c134..af9229794c9 100644 --- a/hw/display/vga-mmio.c +++ b/hw/display/vga-mmio.c @@ -25,7 +25,6 @@ #include "qemu/osdep.h" #include "qapi/error.h" -#include "hw/display/vga.h" #include "hw/sysbus.h" #include "hw/qdev-properties.h" #include "vga_int.h" @@ -87,25 +86,6 @@ static void vga_mmio_reset(DeviceState *dev) vga_common_reset(s); } -int vga_mmio_init(hwaddr vram_base, - hwaddr ctrl_base, int it_shift, - MemoryRegion *address_space) -{ - DeviceState *dev; - SysBusDevice *s; - - dev = qdev_new(TYPE_VGA_MMIO); - qdev_prop_set_uint8(dev, "it_shift", it_shift); - s = SYS_BUS_DEVICE(dev); - sysbus_realize_and_unref(s, &error_fatal); - - sysbus_mmio_map(s, 0, ctrl_base); - sysbus_mmio_map(s, 1, vram_base + 0x000a0000); - sysbus_mmio_map(s, 2, VBE_DISPI_LFB_PHYSICAL_ADDRESS); - - return 0; -} - static void vga_mmio_realizefn(DeviceState *dev, Error **errp) { VGAMmioState *s = VGA_MMIO(dev); diff --git a/hw/mips/jazz.c b/hw/mips/jazz.c index 8f345afd137..bd9815c773e 100644 --- a/hw/mips/jazz.c +++ b/hw/mips/jazz.c @@ -43,6 +43,7 @@ #include "hw/rtc/mc146818rtc.h" #include "hw/timer/i8254.h" #include "hw/display/vga.h" +#include "hw/display/bochs-vbe.h" #include "hw/audio/pcspk.h" #include "hw/input/i8042.h" #include "hw/sysbus.h" @@ -274,7 +275,13 @@ static void mips_jazz_init(MachineState *machine, } break; case JAZZ_PICA61: - vga_mmio_init(0x40000000, 0x60000000, 0, get_system_memory()); + dev = qdev_new("vga-mmio"); + qdev_prop_set_uint8(dev, "it_shift", 0); + sysbus = SYS_BUS_DEVICE(dev); + sysbus_realize_and_unref(sysbus, &error_fatal); + sysbus_mmio_map(sysbus, 0, 0x60000000); + sysbus_mmio_map(sysbus, 1, 0x400a0000); + sysbus_mmio_map(sysbus, 2, VBE_DISPI_LFB_PHYSICAL_ADDRESS); break; default: break; From patchwork Fri Nov 19 17:12:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 1557331 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20210112 header.b=PetEfr7D; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HwkCD5TL5z9sVc for ; Sat, 20 Nov 2021 04:28:08 +1100 (AEDT) Received: from localhost ([::1]:58830 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mo7gD-0001Rb-V0 for incoming@patchwork.ozlabs.org; Fri, 19 Nov 2021 12:28:05 -0500 Received: from eggs.gnu.org ([209.51.188.92]:46468) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mo7RA-0007IK-Qi for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:32 -0500 Received: from [2a00:1450:4864:20::32f] (port=33681 helo=mail-wm1-x32f.google.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mo7R8-0006QO-Ki for qemu-devel@nongnu.org; Fri, 19 Nov 2021 12:12:32 -0500 Received: by mail-wm1-x32f.google.com with SMTP id r9-20020a7bc089000000b00332f4abf43fso8139709wmh.0 for ; Fri, 19 Nov 2021 09:12:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yKHiWsNR0W++K0Ck4B1IBleMBkNdeLmDWfP2xP1p/hE=; b=PetEfr7DyTFftf2v4UA+fEQWvLKUzirQcNZ+TehjAomflof6vQIRsEQfqohrHwLmYd rrt/jvC8FfABvv4X5l3/XqmcSvcyWjVD+Fqm3idPNjqGE7vFi0nvQ6j8tjzL65csfAEi SoUyZmD+xRI5tAEVfVPaXvHb9aW71pnbzwaHKon1PLQmsv/2ZmxrBXj8vwtXyykhMQhF Y4tc/0FQteeVI4CqSfoKuT0djSbTCM1sVDJKerHiJ3JwxMG9G4649sh18iNBjoA64jUi FhJJzmYwlZf8x7ahsKfqRWlF3P7ZzjXl/IqlNFogLsZF6Bukdo6mZBp5MtmxtVCxKfuD j3dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=yKHiWsNR0W++K0Ck4B1IBleMBkNdeLmDWfP2xP1p/hE=; b=5l5mMARBGoS9fSsSi7c0vgsBZtw1XeQGJFemt3Yf/SHlVWYEqQK9nB+99UzFVeO91p CofwnOSdItcDKO5JqDQ9o9Nd32EywCosJ0kwst0wn+8Wjr9dYgNfDcMu6n1fqoxPZ3PS Aig364JLT0mtv+O8YPW8qiA+FaYoLrnGfXB18r54IFo63VSFpedE8rge3DgQEZubQx9t Ep8ezhQVu81OONsYY7ciOPE7LDMVc7cBo93xDjl4R/T4bebdWxNyxt++t15vSVT/nJpt 5eMYJmRgC7O8PTefowaFY22Rm5uM4M9eSWjeoJKRFmzPVIwdT2CG/xcEHzgPMSRYjSTi T0yg== X-Gm-Message-State: AOAM532bMVJ/OkyoD2qJr9jI2rw1Lb7dSbYJK05dWQtc7nik0h7/zAio uFjaMWUQCYGdkzuSzCDNW75ek7gtKtY= X-Google-Smtp-Source: ABdhPJx7ak6zBMYzt3QvOzUzjRs1kRST8o1Kt33RKaZVKSLnPNzyDIaGdTyGdJrE5pUKeJkxnp0rXw== X-Received: by 2002:a1c:7910:: with SMTP id l16mr1588737wme.36.1637341948803; Fri, 19 Nov 2021 09:12:28 -0800 (PST) Received: from x1w.. (62.red-83-57-168.dynamicip.rima-tde.net. [83.57.168.62]) by smtp.gmail.com with ESMTPSA id a12sm303368wrm.62.2021.11.19.09.12.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Nov 2021 09:12:28 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Subject: [NOTFORMERGE PATCH 5/5] tests/avocado: Test NetBSD 9.2 on the Jazz Magnum machine Date: Fri, 19 Nov 2021 18:12:02 +0100 Message-Id: <20211119171202.458919-6-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20211119171202.458919-1-f4bug@amsat.org> References: <20211119171202.458919-1-f4bug@amsat.org> MIME-Version: 1.0 X-Host-Lookup-Failed: Reverse DNS lookup failed for 2a00:1450:4864:20::32f (failed) Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -6 X-Spam_score: -0.7 X-Spam_bar: / X-Spam_report: (-0.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, PDS_HP_HELO_NORDNS=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Thomas Huth , Finn Thain , Mark Cave-Ayland , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= , =?utf-8?q?Herv=C3=A9_Poussineau?= , Gerd Hoffmann Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Test NetBSD 9.2 on the Jazz Magnum machine. As the firmware is not redistributable, it has to be extracted from the floppy configuration disk coming with a Mips Magnum 4000 system, then the NTPROM_BIN_PATH environment variable has to be set. For convenience a NVRAM pre- initialized to boot NetBSD is included. The test can be run as: $ NTPROM_BIN_PATH=/path/to/ntprom.bin \ avocado --show=app,console \ run -t machine:magnum tests/avocado/ Fetching asset from tests/avocado/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_9_2 (1/1) tests/avocado/machine_mips_jazz.py:MipsJazz.test_magnum_netbsd_9_2: console: EISA Bus 0 Initialization In Progress... Direct Memory Access (DMA) System Control Port B Timer 1 OK. console: ARC Multiboot Version 174 (SGI Version 2.6) console: Copyright (c) 1991,1992 Microsoft Corporation console: Actions: console: Start Windows NT console: Run a program console: Run setup console: Use the arrow keys to select. console: Press Enter to choose. console: Program to run: console: scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd console: NetBSD/arc Bootstrap, Revision 1.1 (Wed May 12 13:15:55 UTC 2021) console: devopen: scsi(0)cdrom(2)fdisk(0) type disk file netbsd console: NetBSD 9.2 (RAMDISK) #0: Wed May 12 13:15:55 UTC 2021 console: MIPS Magnum console: total memory = 128 MB console: avail memory = 117 MB console: mainbus0 (root) console: cpu0 at mainbus0: MIPS R4000 CPU (0x400) Rev. 0.0 with MIPS R4010 FPC Rev. 0.0 console: cpu0: 8KB/16B direct-mapped L1 Instruction cache, 48 TLB entries console: cpu0: 8KB/16B direct-mapped write-back L1 Data cache console: jazzio0 at mainbus0 console: timer0 at jazzio0 addr 0xe0000228 console: mcclock0 at jazzio0 addr 0xe0004000: mc146818 compatible time-of-day clock console: LPT1 at jazzio0 addr 0xe0008000 intr 0 not configured console: fdc0 at jazzio0 addr 0xe0003000 intr 1 console: fd0 at fdc0 drive 1: 1.44MB, 80 cyl, 2 head, 18 sec console: MAGNUM at jazzio0 addr 0xe000c000 intr 2 not configured console: VXL at jazzio0 addr 0xe0800000 intr 3 not configured console: sn0 at jazzio0 addr 0xe0001000 intr 4: SONIC Ethernet console: sn0: Ethernet address 00:00:00:00:00:00 console: asc0 at jazzio0 addr 0xe0002000 intr 5: NCR53C94, 25MHz, SCSI ID 7 console: scsibus0 at asc0: 8 targets, 8 luns per target console: pckbc0 at jazzio0 addr 0xe0005000 intr 6 console: pckbd0 at pckbc0 (kbd slot) console: wskbd0 at pckbd0 (mux ignored) console: pms at jazzio0 addr 0xe0005000 intr 7 not configured console: com0 at jazzio0 addr 0xe0006000 intr 8: ns16550a, working fifo console: com0: txfifo disabled console: com0: console console: com1 at jazzio0 addr 0xe0007000 intr 9: ns16550a, working fifo console: com1: txfifo disabled console: jazzisabr0 at mainbus0 console: isa0 at jazzisabr0 console: isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support console: scsibus0: waiting 2 seconds for devices to settle... console: cd0 at scsibus0 target 2 lun 0: cdrom removable console: boot device: console: root on md0a dumps on md0b console: root file system type: ffs console: WARNING: preposterous TOD clock time console: WARNING: using filesystem time console: WARNING: CHECK AND RESET THE DATE! console: erase ^H, werase ^W, kill ^U, intr ^C, status ^T console: Terminal type? [vt100] console: Erase is backspace. console: S console: (I)nstall, (S)hell or (H)alt ? console: # console: # ifconfig console: sn0: flags=0x8802 mtu 1500 console: ec_capabilities=1 console: ec_enabled=0 console: address: 00:00:00:02:03:04 console: lo0: flags=0x8048 mtu 33160 console: # console: # ifconfig sn0 10.0.2.3/24 console: # console: # ping -c 3 10.0.2.2 console: PING 10.0.2.2 (10.0.2.2): 56 data bytes console: 64 bytes from 10.0.2.2: icmp_seq=0 ttl=255 time=12.526 ms console: 64 bytes from 10.0.2.2: icmp_seq=1 ttl=255 time=2.324 ms console: 64 bytes from 10.0.2.2: icmp_seq=2 ttl=255 time=0.608 ms console: ----10.0.2.2 PING Statistics---- console: 3 packets transmitted, 3 packets received, 0.0% packet loss console: # shutdown -r now console: round-trip min/avg/max/stddev = 0.608/5.153/12.526/6.443 ms console: # Shutdown NOW! console: shutdown: [pid 14] console: # sh: /usr/bin/wall: not found console: reboot by root: console: System shutdown time has arrived console: About to run shutdown hooks... console: .: Can't open /etc/rc.shutdown console: Done running shutdown hooks. console: syncing disks... done console: unmounting file systems... done console: rebooting... PASS (49.27 s) RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0 JOB TIME : 49.70 s Inspired-by: Hervé Poussineau Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Willian Rampazzo --- v2: - Test NetBSD 9.2 (Finn, Mark) - Drop '-global ds1225y.size=8200' (Mark) - Mention "Run a program" option (Mark) - Check ARP (Finn) Not for merge until nvram.bin is generated. Cc: Finn Thain Cc: Mark Cave-Ayland --- .../avocado/machine_mips_jazz.d/nvram.bin.xz | Bin 0 -> 700 bytes tests/avocado/machine_mips_jazz.py | 99 ++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 tests/avocado/machine_mips_jazz.d/nvram.bin.xz create mode 100644 tests/avocado/machine_mips_jazz.py diff --git a/tests/avocado/machine_mips_jazz.d/nvram.bin.xz b/tests/avocado/machine_mips_jazz.d/nvram.bin.xz new file mode 100644 index 0000000000000000000000000000000000000000..4648bb31a75bd1a6ee06818a1bf0f2109203ced3 GIT binary patch literal 700 zcmV;t0z>`%H+ooF000E$*0e?f03iV!0000G&sfah5B~ysT>t=TewJhU2JbgNgw@93 z9ne@Of$dv11>H(&qfaP~{?QVNDD*)y9o<}llIpWo;zi4K%|O3oZX7;e0I%^w=#ho% zm*3>5KcVeDb)hM{s=^@xl3*6CLiEr>=o;i$-UTTwy=`4vF_aQ@AM-}hS_gfV?dXL~ zr6}Ck7jr0Pd6X49Gycxm@5wylC8aWC%NAZ^DQmjk9v0R)a7u1hsY5)le9~S_G;wnI zNEhT-#4+m{FhwCCTK#>itkJ+zGLq(>iH&;ourQ75=5X0GCmKgT34hXv`!lNS@Vv~9 z#dTZb1?DkCrj z^?l-ksd=`Q%7w&-3CkM)A-1nkM@y=-6N=HiA4b +# +# This work is licensed under the terms of the GNU GPL, version 2 or later. +# See the COPYING file in the top-level directory. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +import os +import lzma +import shutil + +from avocado import skipUnless +from avocado_qemu import QemuSystemTest +from avocado_qemu import exec_command +from avocado_qemu import exec_command_and_wait_for_pattern +from avocado_qemu import interrupt_interactive_console_until_pattern +from avocado_qemu import wait_for_console_pattern + +from tesseract_utils import tesseract_available, tesseract_ocr + +class MipsJazz(QemuSystemTest): + + timeout = 60 + + @skipUnless(os.getenv('NTPROM_BIN_PATH'), 'NTPROM_BIN_PATH not available') + def test_magnum_netbsd_9_2(self): + """ + :avocado: tags=arch:mips64el + :avocado: tags=machine:magnum + :avocado: tags=os:netbsd + :avocado: tags=device:sonic + :avocado: tags=device:esp + """ + drive_url = ('http://cdn.netbsd.org/pub/NetBSD/' + 'NetBSD-9.2/images/NetBSD-9.2-arc.iso') + drive_hash = '409c61aee5459e762cdb120d2591ed2e' + drive_path = self.fetch_asset(drive_url, asset_hash=drive_hash, + algorithm='md5') + ntprom_hash = '316de17820192c89b8ee6d9936ab8364a739ca53' + ntprom_path = self.fetch_asset('file://' + os.getenv('NTPROM_BIN_PATH'), + asset_hash=ntprom_hash, algorithm='sha1') + nvram_size = 8200 + nvram_path = 'nvram.bin' + nvram_xz_hash = '3d4565124ff2369706b97e1d0ef127a68c23d418' + nvram_xz_path = os.path.dirname(os.path.abspath(__file__)) \ + + '/machine_mips_jazz.d/nvram.bin.xz' + nvram_xz_path = self.fetch_asset('file://' + nvram_xz_path, + asset_hash=nvram_xz_hash, + algorithm='sha1') + mac = '00:00:00:02:03:04' + + with lzma.open(nvram_xz_path, 'rb') as f_in: + with open(nvram_path, 'wb') as f_out: + shutil.copyfileobj(f_in, f_out) + f_out.seek(nvram_size) + f_out.write(b'\0') + + self.vm.set_console() + self.vm.add_args('-bios', ntprom_path, + '-drive', 'if=scsi,unit=2,media=cdrom,format=raw,file=' + + drive_path, + '-global', 'ds1225y.filename=' + nvram_path, + '-nic', 'user,model=dp83932,mac=' + mac) + self.vm.launch() + + console_pattern = 'ARC Multiboot Version 174 (SGI Version 2.6)' + wait_for_console_pattern(self, console_pattern) + + wait_for_console_pattern(self, 'Use the arrow keys to select.') + + # Press cursor control 'Down' to select the "Run a program" menu + exec_command(self, '\x1b[B') + + program = 'scsi(0)cdrom(2)fdisk(0)boot scsi(0)cdrom(2)fdisk(0)netbsd' + exec_command(self, program) + wait_for_console_pattern(self, 'NetBSD/arc Bootstrap, Revision 1.1') + + # Terminal type? [vt100] + console_pattern = 'erase ^H, werase ^W, kill ^U, intr ^C, status ^T' + wait_for_console_pattern(self, console_pattern) + + # (I)nstall, (S)hell or (H)alt + exec_command_and_wait_for_pattern(self, '', 'Erase is backspace.') + exec_command(self, 'S') + interrupt_interactive_console_until_pattern(self, '#') + + exec_command_and_wait_for_pattern(self, 'ifconfig', 'address: ' + mac) + interrupt_interactive_console_until_pattern(self, '#') + + exec_command(self, 'ifconfig sn0 10.0.2.3/24') + interrupt_interactive_console_until_pattern(self, '#') + + exec_command_and_wait_for_pattern(self, 'ping -c 3 10.0.2.2', + '3 packets transmitted, 3 packets received, 0.0% packet loss') + + exec_command_and_wait_for_pattern(self, 'shutdown -r now', + 'rebooting...')