qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bernhard Beschow <shentey@gmail.com>
To: BALATON Zoltan <balaton@eik.bme.hu>
Cc: qemu-devel@nongnu.org, "Hanna Reitz" <hreitz@redhat.com>,
	qemu-ppc@nongnu.org, "Kevin Wolf" <kwolf@redhat.com>,
	"Corey Minyard" <cminyard@mvista.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Alex Williamson" <alex.williamson@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Daniel Henrique Barboza" <danielhb413@gmail.com>,
	qemu-block@nongnu.org, "Nicholas Piggin" <npiggin@gmail.com>,
	"Bin Meng" <bmeng.cn@gmail.com>,
	"Cédric Le Goater" <clg@redhat.com>
Subject: Re: [PATCH 07/23] hw/ppc/e500: Extract ppce500_ccsr.c
Date: Tue, 24 Sep 2024 20:02:31 +0000	[thread overview]
Message-ID: <7BA1D025-2B5B-4090-B9DF-A73F43BA6BB9@gmail.com> (raw)
In-Reply-To: <001e172d-4046-66cc-4758-a7a206fda931@eik.bme.hu>



Am 23. September 2024 10:38:46 UTC schrieb BALATON Zoltan <balaton@eik.bme.hu>:
>On Mon, 23 Sep 2024, Bernhard Beschow wrote:
>> The device model already has a header file. Also extract its implementation into
>> an accompanying source file like other e500 devices.
>> 
>> 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    |  2 ++
>> hw/ppc/e500.c         | 17 -----------------
>> hw/ppc/ppce500_ccsr.c | 38 ++++++++++++++++++++++++++++++++++++++
>
>Maybe you could call it e500_ccsr.c and also rename the header to e500_ccsr.h (underscore instead of dash) to match them. Or if you want to match ppce500_spin.c then maybe move contents of e500-ccsr.h to e500.h?

Yeah, naming is hard. I'd actually prefer something like fsl_immr.* (taking inspiration from device tree here) to not confuse the whole SoC with the CPU. With the ppce500 prefix I was sticking to the convention of the PCIE device. Though there is also mpc-i2c and fsl_etsec...

>(More below...)
>
>> hw/ppc/meson.build    |  1 +
>> 5 files changed, 42 insertions(+), 18 deletions(-)
>> create mode 100644 hw/ppc/ppce500_ccsr.c
>> 
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index ffacd60f40..b7c8b7ae72 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -1433,7 +1433,7 @@ e500
>> L: qemu-ppc@nongnu.org
>> S: Orphan
>> F: hw/ppc/e500*
>> -F: hw/ppc/ppce500_spin.c
>> +F: hw/ppc/ppce500_*.c
>> 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/e500-ccsr.h
>> index 249c17be3b..3ab7e72568 100644
>> --- a/hw/ppc/e500-ccsr.h
>> +++ b/hw/ppc/e500-ccsr.h
>> @@ -4,6 +4,8 @@
>> #include "hw/sysbus.h"
>> #include "qom/object.h"
>> 
>> +#define MPC8544_CCSRBAR_SIZE       0x00100000ULL
>> +
>> struct PPCE500CCSRState {
>>     /*< private >*/
>>     SysBusDevice parent;
>> diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
>> index 2225533e33..4ee4304a8a 100644
>> --- a/hw/ppc/e500.c
>> +++ b/hw/ppc/e500.c
>> @@ -61,7 +61,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
>> @@ -1264,21 +1263,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,
>> @@ -1289,7 +1273,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..191a9ceec3
>> --- /dev/null
>> +++ b/hw/ppc/ppce500_ccsr.c
>> @@ -0,0 +1,38 @@
>> +/*
>> + * 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 file is derived from hw/ppc440_bamboo.c,
>> + * the copyright for that material belongs to the original owners.
>
>I think CCSR is a Freescale thing so likely this has nothing to do with ppc440_bamboo so this sentence was for other parts of e500.c not applicable to this part.

Good point. IANAL so erred on the safe side and copied the whole license text. I'm happy to omit this and would also prefer SPDX license identifiers as long as I get the confirmation that this is legal.

Best regards,
Bernhard

>
>> + *
>> + * 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.
>> + */
>
>SPDX-License-Identifier seems to be preferred by some nowadays, I don't have an opinion on that so just mentioning it for consideration but I'm OK with this one too although it seems a bit long.
>
>Regards,
>BALATON Zoltan
>
>> +
>> +#include "qemu/osdep.h"
>> +#include "e500-ccsr.h"
>> +
>> +static void e500_ccsr_init(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 types[] = {
>> +    {
>> +        .name          = TYPE_CCSR,
>> +        .parent        = TYPE_SYS_BUS_DEVICE,
>> +        .instance_size = sizeof(PPCE500CCSRState),
>> +        .instance_init = e500_ccsr_init,
>> +    },
>> +};
>> +
>> +DEFINE_TYPES(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.
>> 


  reply	other threads:[~2024-09-24 20:03 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-23  9:29 [PATCH 00/23] E500 Cleanup Bernhard Beschow
2024-09-23  9:29 ` [PATCH 01/23] hw/ppc/e500: Do not leak struct boot_info Bernhard Beschow
2024-09-23 10:02   ` BALATON Zoltan
2024-09-25 19:08     ` Bernhard Beschow
2024-09-25 15:35   ` Cédric Le Goater
2024-09-25 19:03     ` Bernhard Beschow
2024-09-26  0:14     ` BALATON Zoltan
2024-10-01 14:26       ` Bernhard Beschow
2024-09-23  9:29 ` [PATCH 02/23] hw/ppc/e500: Reduce scope of env pointer Bernhard Beschow
2024-09-23 10:04   ` BALATON Zoltan
2024-09-25 19:09     ` Bernhard Beschow
2024-09-25 15:37   ` Cédric Le Goater
2024-09-25 19:02     ` Bernhard Beschow
2024-09-23  9:29 ` [PATCH 03/23] hw/ppc/e500: Prefer QOM cast Bernhard Beschow
2024-09-23 10:07   ` BALATON Zoltan
2024-09-23  9:29 ` [PATCH 04/23] hw/ppc/e500: Remove unused "irqs" parameter Bernhard Beschow
2024-09-23 10:18   ` BALATON Zoltan
2024-09-23  9:29 ` [PATCH 05/23] hw/ppc/e500: Add missing device tree properties to i2c controller node Bernhard Beschow
2024-09-25 15:37   ` Cédric Le Goater
2024-09-23  9:29 ` [PATCH 06/23] hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal resources Bernhard Beschow
2024-09-23 10:28   ` BALATON Zoltan
2024-09-27 16:57     ` Bernhard Beschow
2024-09-23  9:30 ` [PATCH 07/23] hw/ppc/e500: Extract ppce500_ccsr.c Bernhard Beschow
2024-09-23 10:38   ` BALATON Zoltan
2024-09-24 20:02     ` Bernhard Beschow [this message]
2024-10-01 19:31       ` Bernhard Beschow
2024-09-23  9:30 ` [PATCH 08/23] hw/ppc/ppce500_ccsr: Log access to unimplemented registers Bernhard Beschow
2024-09-24 10:15   ` BALATON Zoltan
2024-09-24 19:23     ` Bernhard Beschow
2024-09-23  9:30 ` [PATCH 09/23] hw/ppc/mpc8544_guts: Populate POR PLL ratio status register Bernhard Beschow
2024-09-23 10:43   ` BALATON Zoltan
2024-09-23 21:54     ` Bernhard Beschow
2024-09-24  9:59       ` BALATON Zoltan
2024-09-24 19:13         ` Bernhard Beschow
2024-09-24 21:06           ` BALATON Zoltan
2024-09-23  9:30 ` [PATCH 10/23] hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access Bernhard Beschow
2024-09-25 15:40   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 11/23] hw/i2c/mpc_i2c: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-09-23 10:49   ` BALATON Zoltan
2024-09-23 22:01     ` Bernhard Beschow
2024-09-24 10:12       ` BALATON Zoltan
2024-09-25 15:40   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 12/23] hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define Bernhard Beschow
2024-09-23 10:46   ` BALATON Zoltan
2024-09-23  9:30 ` [PATCH 13/23] hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-09-25 15:40   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 14/23] hw/gpio/mpc8xxx: " Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 15/23] hw/ppc/mpc8544_guts: " Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 16/23] hw/net/fsl_etsec/etsec: " Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 17/23] hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 18/23] hw/sd/sdhci: Prefer DEFINE_TYPES() macro Bernhard Beschow
2024-09-25 15:41   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 19/23] hw/block/pflash_cfi01: " Bernhard Beschow
2024-09-25 15:42   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 20/23] hw/i2c/smbus_eeprom: " Bernhard Beschow
2024-09-25 15:42   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 21/23] hw/rtc/ds1338: " Bernhard Beschow
2024-09-25 15:42   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 22/23] hw/usb/hcd-ehci-sysbus: " Bernhard Beschow
2024-09-25 15:43   ` Cédric Le Goater
2024-09-23  9:30 ` [PATCH 23/23] hw/vfio/platform: Let vfio_start_eventfd_injection() take VFIOPlatformDevice pointer Bernhard Beschow
2024-09-24  8:36   ` Cédric Le Goater
2024-09-23 20:23 ` [PATCH 00/23] E500 Cleanup Cédric Le Goater
2024-09-23 21:25   ` Bernhard Beschow
2024-09-24  8:33     ` Cédric Le Goater
2024-09-26  9:15       ` 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=7BA1D025-2B5B-4090-B9DF-A73F43BA6BB9@gmail.com \
    --to=shentey@gmail.com \
    --cc=alex.williamson@redhat.com \
    --cc=balaton@eik.bme.hu \
    --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).