[PATCH v4 00/26] E500 Cleanup

Bernhard Beschow posted 26 patches 2 weeks, 6 days ago
MAINTAINERS                            |   3 +-
hw/ppc/e500.h                          |   9 +-
hw/ppc/{e500-ccsr.h => ppce500_ccsr.h} |   8 +-
hw/block/pflash_cfi01.c                |  21 ++---
hw/gpio/mpc8xxx.c                      |  22 ++---
hw/i2c/mpc_i2c.c                       |  29 +++---
hw/i2c/smbus_eeprom.c                  |  19 ++--
hw/net/fsl_etsec/etsec.c               |  22 ++---
hw/net/fsl_etsec/miim.c                |  19 ++--
hw/pci-host/ppce500.c                  |  54 +++++------
hw/ppc/e500.c                          |  81 +++++------------
hw/ppc/mpc8544_guts.c                  |  32 ++++---
hw/ppc/ppce500_ccsr.c                  |  57 ++++++++++++
hw/rtc/ds1338.c                        |  20 ++---
hw/sd/sdhci.c                          |  62 ++++++-------
hw/usb/hcd-ehci-sysbus.c               | 118 +++++++++++--------------
hw/vfio/platform.c                     |   7 +-
hw/i2c/trace-events                    |   5 ++
hw/intc/Kconfig                        |   4 +
hw/intc/meson.build                    |   3 +-
hw/ppc/Kconfig                         |   1 +
hw/ppc/meson.build                     |   1 +
hw/ppc/trace-events                    |   3 +
23 files changed, 290 insertions(+), 310 deletions(-)
rename hw/ppc/{e500-ccsr.h => ppce500_ccsr.h} (71%)
create mode 100644 hw/ppc/ppce500_ccsr.c
[PATCH v4 00/26] E500 Cleanup
Posted by Bernhard Beschow 2 weeks, 6 days ago
This series is part of a bigger series exploring data-driven machine creation
using device tree blobs on top of the e500 machines [1]. It contains patches to
make this exploration easier which are also expected to provide value in
themselves.

The cleanup starts with the e500 machine class itself, then proceeds with
machine-specific device models and concludes with more or less loosely related
devices. Device cleanup mostly consists of using the DEFINE_TYPES() macro.

Patches still missing R-b tags: 1,2,6,8,9,15,23,26

v4:
* Pick up R-b tags (thanks, Corey!)
* Keep descriptive names for TypeInfo arrays (Corey)

v3:
* Pick up R-B tags (Kevin, Zoltan -- thanks!)
* Rely on trace events only and drop unimp logging in CCSR space after
  discussion
* Merge https://patchew.org/QEMU/20241005100228.28094-1-shentey@gmail.com/ since
  ARM now mostly unaffected
* Add patch to reuse MII constants in etsec device

Testing done:
* Build qemu_ppc64_e5500_defconfig in Buildroot, run it in the ppce500 machine
  and issue the `poweroff` command. Observe that QEMU is shut down cleanly.

v2:
* Add R-b tags (Cedric, Zoltan -- thanks!)
* Add missing S-o-b tag to ds1338 patch (Cedric)
* Populate POR PLL ratio status register with real-world values (Zoltan)
* Rephrase one commit message (Zoltan)
* Also rename header of ppce500_ccsr to match struct name
* Don't mention ppc440_bamboo in license since unrelated (Zoltan)
* Various style changes (Zoltan)

Supersedes: 20241005100228.28094-1-shentey@gmail.com

Bernhard Beschow (26):
  hw/ppc/e500: Do not leak struct boot_info
  hw/ppc/e500: Remove firstenv variable
  hw/ppc/e500: Prefer QOM cast
  hw/ppc/e500: Remove unused "irqs" parameter
  hw/ppc/e500: Add missing device tree properties to i2c controller node
  hw/ppc/e500: Reuse TYPE_GPIO_PWR
  hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal
    resources
  hw/ppc/e500: Extract ppce500_ccsr.c
  hw/ppc/ppce500_ccsr: Trace access to CCSR region
  hw/ppc/mpc8544_guts: Populate POR PLL ratio status register
  hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access
  hw/i2c/mpc_i2c: Prefer DEFINE_TYPES() macro
  hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define
  hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro
  hw/net/fsl_etsec/miim: Reuse MII constants
  hw/net/fsl_etsec/etsec: Prefer DEFINE_TYPES() macro
  hw/gpio/mpc8xxx: Prefer DEFINE_TYPES() macro
  hw/ppc/mpc8544_guts: Prefer DEFINE_TYPES() macro
  hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch
  hw/sd/sdhci: Prefer DEFINE_TYPES() macro
  hw/block/pflash_cfi01: Prefer DEFINE_TYPES() macro
  hw/i2c/smbus_eeprom: Prefer DEFINE_TYPES() macro
  hw/rtc/ds1338: Prefer DEFINE_TYPES() macro
  hw/usb/hcd-ehci-sysbus: Prefer DEFINE_TYPES() macro
  hw/vfio/platform: Let vfio_start_eventfd_injection() take
    VFIOPlatformDevice pointer
  MAINTAINERS: Add hw/gpio/gpio_pwr.c

 MAINTAINERS                            |   3 +-
 hw/ppc/e500.h                          |   9 +-
 hw/ppc/{e500-ccsr.h => ppce500_ccsr.h} |   8 +-
 hw/block/pflash_cfi01.c                |  21 ++---
 hw/gpio/mpc8xxx.c                      |  22 ++---
 hw/i2c/mpc_i2c.c                       |  29 +++---
 hw/i2c/smbus_eeprom.c                  |  19 ++--
 hw/net/fsl_etsec/etsec.c               |  22 ++---
 hw/net/fsl_etsec/miim.c                |  19 ++--
 hw/pci-host/ppce500.c                  |  54 +++++------
 hw/ppc/e500.c                          |  81 +++++------------
 hw/ppc/mpc8544_guts.c                  |  32 ++++---
 hw/ppc/ppce500_ccsr.c                  |  57 ++++++++++++
 hw/rtc/ds1338.c                        |  20 ++---
 hw/sd/sdhci.c                          |  62 ++++++-------
 hw/usb/hcd-ehci-sysbus.c               | 118 +++++++++++--------------
 hw/vfio/platform.c                     |   7 +-
 hw/i2c/trace-events                    |   5 ++
 hw/intc/Kconfig                        |   4 +
 hw/intc/meson.build                    |   3 +-
 hw/ppc/Kconfig                         |   1 +
 hw/ppc/meson.build                     |   1 +
 hw/ppc/trace-events                    |   3 +
 23 files changed, 290 insertions(+), 310 deletions(-)
 rename hw/ppc/{e500-ccsr.h => ppce500_ccsr.h} (71%)
 create mode 100644 hw/ppc/ppce500_ccsr.c

-- 
2.47.0

Re: [PATCH v4 00/26] E500 Cleanup
Posted by Philippe Mathieu-Daudé 2 weeks, 3 days ago
Hi Bernhard,

On 3/11/24 14:33, Bernhard Beschow wrote:
> This series is part of a bigger series exploring data-driven machine creation
> using device tree blobs on top of the e500 machines [1]. It contains patches to
> make this exploration easier which are also expected to provide value in
> themselves.
> 
> The cleanup starts with the e500 machine class itself, then proceeds with
> machine-specific device models and concludes with more or less loosely related
> devices. Device cleanup mostly consists of using the DEFINE_TYPES() macro.
> 
> Patches still missing R-b tags: 1,2,6,8,9,15,23,26

I queued most of the reviewed patches.

> Bernhard Beschow (26):
>    hw/ppc/e500: Do not leak struct boot_info
>    hw/ppc/e500: Remove firstenv variable
>    hw/ppc/e500: Prefer QOM cast
>    hw/ppc/e500: Remove unused "irqs" parameter
>    hw/ppc/e500: Add missing device tree properties to i2c controller node
>    hw/ppc/e500: Reuse TYPE_GPIO_PWR
>    hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal
>      resources
>    hw/ppc/e500: Extract ppce500_ccsr.c
>    hw/ppc/ppce500_ccsr: Trace access to CCSR region
>    hw/ppc/mpc8544_guts: Populate POR PLL ratio status register
>    hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access
>    hw/i2c/mpc_i2c: Prefer DEFINE_TYPES() macro
>    hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define
>    hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro
>    hw/net/fsl_etsec/miim: Reuse MII constants
>    hw/net/fsl_etsec/etsec: Prefer DEFINE_TYPES() macro
>    hw/gpio/mpc8xxx: Prefer DEFINE_TYPES() macro
>    hw/ppc/mpc8544_guts: Prefer DEFINE_TYPES() macro
>    hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch
>    hw/sd/sdhci: Prefer DEFINE_TYPES() macro
>    hw/block/pflash_cfi01: Prefer DEFINE_TYPES() macro
>    hw/i2c/smbus_eeprom: Prefer DEFINE_TYPES() macro
>    hw/rtc/ds1338: Prefer DEFINE_TYPES() macro
>    hw/usb/hcd-ehci-sysbus: Prefer DEFINE_TYPES() macro
>    hw/vfio/platform: Let vfio_start_eventfd_injection() take
>      VFIOPlatformDevice pointer
>    MAINTAINERS: Add hw/gpio/gpio_pwr.c
Re: [PATCH v4 00/26] E500 Cleanup
Posted by Bernhard Beschow 2 weeks, 2 days ago

Am 5. November 2024 22:55:20 UTC schrieb "Philippe Mathieu-Daudé" <philmd@linaro.org>:
>Hi Bernhard,
>
>On 3/11/24 14:33, Bernhard Beschow wrote:
>> This series is part of a bigger series exploring data-driven machine creation
>> using device tree blobs on top of the e500 machines [1]. It contains patches to
>> make this exploration easier which are also expected to provide value in
>> themselves.
>> 
>> The cleanup starts with the e500 machine class itself, then proceeds with
>> machine-specific device models and concludes with more or less loosely related
>> devices. Device cleanup mostly consists of using the DEFINE_TYPES() macro.
>> 
>> Patches still missing R-b tags: 1,2,6,8,9,15,23,26
>
>I queued most of the reviewed patches.

Thanks, Phil. Much appreciated!

Best regards,
Bernhard

>
>> Bernhard Beschow (26):
>>    hw/ppc/e500: Do not leak struct boot_info
>>    hw/ppc/e500: Remove firstenv variable
>>    hw/ppc/e500: Prefer QOM cast
>>    hw/ppc/e500: Remove unused "irqs" parameter
>>    hw/ppc/e500: Add missing device tree properties to i2c controller node
>>    hw/ppc/e500: Reuse TYPE_GPIO_PWR
>>    hw/ppc/e500: Use SysBusDevice API to access TYPE_CCSR's internal
>>      resources
>>    hw/ppc/e500: Extract ppce500_ccsr.c
>>    hw/ppc/ppce500_ccsr: Trace access to CCSR region
>>    hw/ppc/mpc8544_guts: Populate POR PLL ratio status register
>>    hw/i2c/mpc_i2c: Convert DPRINTF to trace events for register access
>>    hw/i2c/mpc_i2c: Prefer DEFINE_TYPES() macro
>>    hw/pci-host/ppce500: Reuse TYPE_PPC_E500_PCI_BRIDGE define
>>    hw/pci-host/ppce500: Prefer DEFINE_TYPES() macro
>>    hw/net/fsl_etsec/miim: Reuse MII constants
>>    hw/net/fsl_etsec/etsec: Prefer DEFINE_TYPES() macro
>>    hw/gpio/mpc8xxx: Prefer DEFINE_TYPES() macro
>>    hw/ppc/mpc8544_guts: Prefer DEFINE_TYPES() macro
>>    hw/intc: Guard openpic_kvm.c by dedicated OPENPIC_KVM Kconfig switch
>>    hw/sd/sdhci: Prefer DEFINE_TYPES() macro
>>    hw/block/pflash_cfi01: Prefer DEFINE_TYPES() macro
>>    hw/i2c/smbus_eeprom: Prefer DEFINE_TYPES() macro
>>    hw/rtc/ds1338: Prefer DEFINE_TYPES() macro
>>    hw/usb/hcd-ehci-sysbus: Prefer DEFINE_TYPES() macro
>>    hw/vfio/platform: Let vfio_start_eventfd_injection() take
>>      VFIOPlatformDevice pointer
>>    MAINTAINERS: Add hw/gpio/gpio_pwr.c
>