From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Jason Wang" <jasowang@redhat.com>,
qemu-ppc@nongnu.org, "Cédric Le Goater" <clg@redhat.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"Hanna Reitz" <hreitz@redhat.com>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Corey Minyard" <cminyard@mvista.com>,
"Kevin Wolf" <kwolf@redhat.com>, "Bin Meng" <bmeng.cn@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Bernhard Beschow" <shentey@gmail.com>,
qemu-block@nongnu.org,
"Alex Williamson" <alex.williamson@redhat.com>,
"Daniel Henrique Barboza" <danielhb413@gmail.com>
Subject: [PATCH v4 08/26] hw/ppc/e500: Extract ppce500_ccsr.c
Date: Sun, 3 Nov 2024 14:33:54 +0100 [thread overview]
Message-ID: <20241103133412.73536-9-shentey@gmail.com> (raw)
In-Reply-To: <20241103133412.73536-1-shentey@gmail.com>
The device model already has a header file, so extract its implementation into
an accompanying source file like other e500 devices. While at it rename the
header file to reflect the name of the structure defined there.
This commit is also a preparation for the next commit.
Signed-off-by: Bernhard Beschow <shentey@gmail.com>
---
MAINTAINERS | 2 +-
hw/ppc/{e500-ccsr.h => ppce500_ccsr.h} | 8 +++---
hw/ppc/e500.c | 21 ++--------------
hw/ppc/ppce500_ccsr.c | 34 ++++++++++++++++++++++++++
hw/ppc/meson.build | 1 +
5 files changed, 42 insertions(+), 24 deletions(-)
rename hw/ppc/{e500-ccsr.h => ppce500_ccsr.h} (71%)
create mode 100644 hw/ppc/ppce500_ccsr.c
diff --git a/MAINTAINERS b/MAINTAINERS
index 1e88b5738c..a8f39aeb6f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1391,7 +1391,7 @@ M: Bernhard Beschow <shentey@gmail.com>
L: qemu-ppc@nongnu.org
S: Odd Fixes
F: hw/ppc/e500*
-F: hw/ppc/ppce500_spin.c
+F: hw/ppc/ppce500_*
F: hw/gpio/mpc8xxx.c
F: hw/i2c/mpc_i2c.c
F: hw/net/fsl_etsec/
diff --git a/hw/ppc/e500-ccsr.h b/hw/ppc/ppce500_ccsr.h
similarity index 71%
rename from hw/ppc/e500-ccsr.h
rename to hw/ppc/ppce500_ccsr.h
index 249c17be3b..36cbb811ca 100644
--- a/hw/ppc/e500-ccsr.h
+++ b/hw/ppc/ppce500_ccsr.h
@@ -1,13 +1,13 @@
-#ifndef E500_CCSR_H
-#define E500_CCSR_H
+#ifndef PPCE500_CCSR_H
+#define PPCE500_CCSR_H
#include "hw/sysbus.h"
#include "qom/object.h"
+#define MPC85XX_CCSRBAR_SIZE 0x00100000ULL
+
struct PPCE500CCSRState {
- /*< private >*/
SysBusDevice parent;
- /*< public >*/
MemoryRegion ccsr_space;
};
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index 2849fba524..f640195e62 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -20,7 +20,7 @@
#include "qemu/guest-random.h"
#include "qapi/error.h"
#include "e500.h"
-#include "e500-ccsr.h"
+#include "ppce500_ccsr.h"
#include "net/net.h"
#include "qemu/config-file.h"
#include "hw/block/flash.h"
@@ -59,7 +59,6 @@
#define RAM_SIZES_ALIGN (64 * MiB)
/* TODO: parameterize */
-#define MPC8544_CCSRBAR_SIZE 0x00100000ULL
#define MPC8544_MPIC_REGS_OFFSET 0x40000ULL
#define MPC8544_MSI_REGS_OFFSET 0x41600ULL
#define MPC8544_SERIAL0_REGS_OFFSET 0x4500ULL
@@ -530,7 +529,7 @@ static int ppce500_load_device_tree(PPCE500MachineState *pms,
qemu_fdt_setprop_cell(fdt, soc, "#size-cells", 1);
qemu_fdt_setprop_cells(fdt, soc, "ranges", 0x0,
pmc->ccsrbar_base >> 32, pmc->ccsrbar_base,
- MPC8544_CCSRBAR_SIZE);
+ MPC85XX_CCSRBAR_SIZE);
/* XXX should contain a reasonable value */
qemu_fdt_setprop_cell(fdt, soc, "bus-frequency", 0);
@@ -1256,21 +1255,6 @@ void ppce500_init(MachineState *machine)
pms->boot_info.dt_size = dt_size;
}
-static void e500_ccsr_initfn(Object *obj)
-{
- PPCE500CCSRState *ccsr = CCSR(obj);
- memory_region_init(&ccsr->ccsr_space, obj, "e500-ccsr",
- MPC8544_CCSRBAR_SIZE);
- sysbus_init_mmio(SYS_BUS_DEVICE(ccsr), &ccsr->ccsr_space);
-}
-
-static const TypeInfo e500_ccsr_info = {
- .name = TYPE_CCSR,
- .parent = TYPE_SYS_BUS_DEVICE,
- .instance_size = sizeof(PPCE500CCSRState),
- .instance_init = e500_ccsr_initfn,
-};
-
static const TypeInfo ppce500_info = {
.name = TYPE_PPCE500_MACHINE,
.parent = TYPE_MACHINE,
@@ -1281,7 +1265,6 @@ static const TypeInfo ppce500_info = {
static void e500_register_types(void)
{
- type_register_static(&e500_ccsr_info);
type_register_static(&ppce500_info);
}
diff --git a/hw/ppc/ppce500_ccsr.c b/hw/ppc/ppce500_ccsr.c
new file mode 100644
index 0000000000..b1fb4090c0
--- /dev/null
+++ b/hw/ppc/ppce500_ccsr.c
@@ -0,0 +1,34 @@
+/*
+ * QEMU PowerPC E500 embedded processors CCSR space emulation
+ *
+ * Copyright (C) 2009 Freescale Semiconductor, Inc. All rights reserved.
+ *
+ * Author: Yu Liu, <yu.liu@freescale.com>
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include "qemu/osdep.h"
+#include "ppce500_ccsr.h"
+
+static void ppce500_ccsr_init(Object *obj)
+{
+ PPCE500CCSRState *s = CCSR(obj);
+
+ memory_region_init(&s->ccsr_space, obj, "e500-ccsr", MPC85XX_CCSRBAR_SIZE);
+ sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->ccsr_space);
+}
+
+static const TypeInfo ppce500_ccsr_types[] = {
+ {
+ .name = TYPE_CCSR,
+ .parent = TYPE_SYS_BUS_DEVICE,
+ .instance_size = sizeof(PPCE500CCSRState),
+ .instance_init = ppce500_ccsr_init,
+ },
+};
+
+DEFINE_TYPES(ppce500_ccsr_types)
diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build
index 7cd9189869..43c746795a 100644
--- a/hw/ppc/meson.build
+++ b/hw/ppc/meson.build
@@ -81,6 +81,7 @@ ppc_ss.add(when: 'CONFIG_MPC8544DS', if_true: files('mpc8544ds.c'))
ppc_ss.add(when: 'CONFIG_E500', if_true: files(
'e500.c',
'mpc8544_guts.c',
+ 'ppce500_ccsr.c',
'ppce500_spin.c'
))
# PowerPC 440 Xilinx ML507 reference board.
--
2.47.0
next prev parent reply other threads:[~2024-11-03 13:40 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-03 13:33 [PATCH v4 00/26] E500 Cleanup Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 01/26] hw/ppc/e500: Do not leak struct boot_info Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 02/26] hw/ppc/e500: Remove firstenv variable Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 03/26] hw/ppc/e500: Prefer QOM cast Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 04/26] hw/ppc/e500: Remove unused "irqs" parameter Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 05/26] hw/ppc/e500: Add missing device tree properties to i2c controller node Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 06/26] hw/ppc/e500: Reuse TYPE_GPIO_PWR Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 07/26] hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal resources Bernhard Beschow
2024-11-03 13:33 ` Bernhard Beschow [this message]
2024-11-03 13:33 ` [PATCH v4 09/26] hw/ppc/ppce500_ccsr: Trace access to CCSR region Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 10/26] hw/ppc/mpc8544_guts: Populate POR PLL ratio status register Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 11/26] hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access Bernhard Beschow
2024-11-03 13:33 ` [PATCH v4 12/26] hw/i2c/mpc_i2c: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-11-04 12:13 ` Corey Minyard
2024-11-03 13:33 ` [PATCH v4 13/26] hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 14/26] hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 15/26] hw/net/fsl_etsec/miim: Reuse MII constants Bernhard Beschow
2024-11-05 7:42 ` Akihiko Odaki
2024-11-03 13:34 ` [PATCH v4 16/26] hw/net/fsl_etsec/etsec: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 17/26] hw/gpio/mpc8xxx: " Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 18/26] hw/ppc/mpc8544_guts: " Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 19/26] hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 20/26] hw/sd/sdhci: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 21/26] hw/block/pflash_cfi01: " Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 22/26] hw/i2c/smbus_eeprom: " Bernhard Beschow
2024-11-04 12:13 ` Corey Minyard
2024-11-03 13:34 ` [PATCH v4 23/26] hw/rtc/ds1338: " Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 24/26] hw/usb/hcd-ehci-sysbus: " Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 25/26] hw/vfio/platform: Let vfio_start_eventfd_injection() take VFIOPlatformDevice pointer Bernhard Beschow
2024-11-03 13:34 ` [PATCH v4 26/26] MAINTAINERS: Add hw/gpio/gpio_pwr.c Bernhard Beschow
2024-11-05 22:55 ` [PATCH v4 00/26] E500 Cleanup Philippe Mathieu-Daudé
2024-11-06 18:34 ` Bernhard Beschow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241103133412.73536-9-shentey@gmail.com \
--to=shentey@gmail.com \
--cc=alex.williamson@redhat.com \
--cc=bmeng.cn@gmail.com \
--cc=clg@redhat.com \
--cc=cminyard@mvista.com \
--cc=danielhb413@gmail.com \
--cc=hreitz@redhat.com \
--cc=jasowang@redhat.com \
--cc=kwolf@redhat.com \
--cc=npiggin@gmail.com \
--cc=pbonzini@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).