All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: qemu-devel@nongnu.org, qemu-ppc@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 07/11] mac_oldworld: use object link to pass heathrow PIC object to macio
Date: Tue, 20 Feb 2018 15:42:08 +1100	[thread overview]
Message-ID: <20180220044208.GP1109@umbus.fritz.box> (raw)
In-Reply-To: <20180219181922.21586-8-mark.cave-ayland@ilande.co.uk>

[-- Attachment #1: Type: text/plain, Size: 4574 bytes --]

On Mon, Feb 19, 2018 at 06:19:18PM +0000, Mark Cave-Ayland wrote:
> Also switch macio_oldworld_realize() over to use it rather than using the pic_mem
> memory region directly.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>

Reviewed-by: David Gibson <david@gibson.dropbear.id.au>

> ---
>  hw/misc/macio/macio.c         | 14 ++++++++++----
>  hw/ppc/mac_oldworld.c         |  8 +++++---
>  include/hw/misc/macio/macio.h |  2 ++
>  3 files changed, 17 insertions(+), 7 deletions(-)
> 
> diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c
> index 4e502ede2e..d4c1d190c4 100644
> --- a/hw/misc/macio/macio.c
> +++ b/hw/misc/macio/macio.c
> @@ -31,6 +31,7 @@
>  #include "hw/ppc/mac_dbdma.h"
>  #include "hw/char/escc.h"
>  #include "hw/misc/macio/macio.h"
> +#include "hw/intc/heathrow_pic.h"
>  
>  /*
>   * The mac-io has two interfaces to the ESCC. One is called "escc-legacy",
> @@ -167,10 +168,10 @@ static void macio_oldworld_realize(PCIDevice *d, Error **errp)
>                                  sysbus_mmio_get_region(sysbus_dev, 0));
>      pmac_format_nvram_partition(&os->nvram, os->nvram.size);
>  
> -    if (s->pic_mem) {
> -        /* Heathrow PIC */
> -        memory_region_add_subregion(&s->bar, 0x00000, s->pic_mem);
> -    }
> +    /* Heathrow PIC */
> +    sysbus_dev = SYS_BUS_DEVICE(os->pic);
> +    memory_region_add_subregion(&s->bar, 0x0,
> +                                sysbus_mmio_get_region(sysbus_dev, 0));
>  
>      /* IDE buses */
>      for (i = 0; i < ARRAY_SIZE(os->ide); i++) {
> @@ -208,6 +209,11 @@ static void macio_oldworld_init(Object *obj)
>  
>      qdev_init_gpio_out(DEVICE(obj), os->irqs, ARRAY_SIZE(os->irqs));
>  
> +    object_property_add_link(obj, "pic", TYPE_HEATHROW,
> +                             (Object **) &os->pic,
> +                             qdev_prop_allow_set_link_before_realize,
> +                             0, NULL);
> +
>      object_initialize(&os->nvram, sizeof(os->nvram), TYPE_MACIO_NVRAM);
>      dev = DEVICE(&os->nvram);
>      qdev_prop_set_uint32(dev, "size", 0x2000);
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index 5903ff47d3..3ac5b19073 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -93,7 +93,7 @@ static void ppc_heathrow_init(MachineState *machine)
>      uint32_t kernel_base, initrd_base, cmdline_base = 0;
>      int32_t kernel_size, initrd_size;
>      PCIBus *pci_bus;
> -    PCIDevice *macio;
> +    OldWorldMacIOState *macio;
>      MACIOIDEState *macio_ide;
>      DeviceState *dev, *pic_dev;
>      SysBusDevice *sbd;
> @@ -271,7 +271,7 @@ static void ppc_heathrow_init(MachineState *machine)
>      ide_drive_get(hd, ARRAY_SIZE(hd));
>  
>      /* MacIO */
> -    macio = pci_create(pci_bus, -1, TYPE_OLDWORLD_MACIO);
> +    macio = OLDWORLD_MACIO(pci_create(pci_bus, -1, TYPE_OLDWORLD_MACIO));
>      dev = DEVICE(macio);
>      qdev_connect_gpio_out(dev, 0, pic[0x12]); /* CUDA */
>      qdev_connect_gpio_out(dev, 1, pic[0x10]); /* ESCC-B */
> @@ -281,8 +281,10 @@ static void ppc_heathrow_init(MachineState *machine)
>      qdev_connect_gpio_out(dev, 5, pic[0x0E]); /* IDE-1 */
>      qdev_connect_gpio_out(dev, 6, pic[0x03]); /* IDE-1 DMA */
>      qdev_prop_set_uint64(dev, "frequency", tbfreq);
> +    object_property_set_link(OBJECT(macio), OBJECT(pic_dev), "pic",
> +                             &error_abort);
>      sbd = SYS_BUS_DEVICE(pic_dev);
> -    macio_init(macio, sysbus_mmio_get_region(sbd, 0));
> +    macio_init(PCI_DEVICE(macio), sysbus_mmio_get_region(sbd, 0));
>  
>      macio_ide = MACIO_IDE(object_resolve_path_component(OBJECT(macio),
>                                                          "ide[0]"));
> diff --git a/include/hw/misc/macio/macio.h b/include/hw/misc/macio/macio.h
> index e1e249f898..843c114c07 100644
> --- a/include/hw/misc/macio/macio.h
> +++ b/include/hw/misc/macio/macio.h
> @@ -26,6 +26,7 @@
>  #ifndef MACIO_H
>  #define MACIO_H
>  
> +#include "hw/intc/heathrow_pic.h"
>  #include "hw/misc/macio/cuda.h"
>  #include "hw/ppc/mac_dbdma.h"
>  
> @@ -54,6 +55,7 @@ typedef struct OldWorldMacIOState {
>      MacIOState parent_obj;
>      /*< public >*/
>  
> +    HeathrowState *pic;
>      qemu_irq irqs[7];
>  
>      MacIONVRAMState nvram;

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2018-02-20  4:46 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-19 18:19 [Qemu-devel] [PATCH 00/11] macio: remove legacy macio_init() function Mark Cave-Ayland
2018-02-19 18:19 ` [Qemu-devel] [PATCH 01/11] macio: embed DBDMA device directly within macio Mark Cave-Ayland
2018-02-20  3:28   ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 02/11] macio: move ESCC device within the macio device Mark Cave-Ayland
2018-02-20  3:28   ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 03/11] heathrow: QOMify heathrow PIC Mark Cave-Ayland
2018-02-20  3:28   ` David Gibson
2018-02-20  4:18     ` Mark Cave-Ayland
2018-02-20  4:39       ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 04/11] heathrow: convert to trace-events Mark Cave-Ayland
2018-02-20  4:20   ` David Gibson
2018-02-20  4:40     ` Mark Cave-Ayland
2018-02-19 18:19 ` [Qemu-devel] [PATCH 05/11] heathrow: change heathrow_pic_init() to return the heathrow device Mark Cave-Ayland
2018-02-20  4:22   ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 06/11] macio: move macio related structures and defines into separate macio.h file Mark Cave-Ayland
2018-02-20  4:40   ` David Gibson
2018-02-27 23:46   ` Philippe Mathieu-Daudé
2018-02-19 18:19 ` [Qemu-devel] [PATCH 07/11] mac_oldworld: use object link to pass heathrow PIC object to macio Mark Cave-Ayland
2018-02-20  4:42   ` David Gibson [this message]
2018-02-19 18:19 ` [Qemu-devel] [PATCH 08/11] openpic: move OpenPIC state and related definitions to openpic.h Mark Cave-Ayland
2018-02-22  2:12   ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 09/11] mac_newworld: use object link to pass OpenPIC object to macio Mark Cave-Ayland
2018-02-22  2:19   ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 10/11] macio: move setting of CUDA timebase frequency to macio_common_realize() Mark Cave-Ayland
2018-02-22  2:24   ` David Gibson
2018-02-19 18:19 ` [Qemu-devel] [PATCH 11/11] macio: remove macio_init() function Mark Cave-Ayland
2018-02-22 14:12 ` [Qemu-devel] [PATCH 00/11] macio: remove legacy " no-reply
2018-02-23 12:11 ` no-reply
2018-02-23 14:51   ` Mark Cave-Ayland
2018-02-28  2:24     ` David Gibson
2018-02-24 17:18 ` no-reply
2018-02-25 15:24 ` no-reply

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=20180220044208.GP1109@umbus.fritz.box \
    --to=david@gibson.dropbear.id.au \
    --cc=mark.cave-ayland@ilande.co.uk \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.