* Re: [Qemu-devel] [PATCH v1 2/3] memory: Add sysbus memory device
[not found] ` <a944bc1db88e857e9f1440dce228f76e41624f6a.1397527916.git.peter.crosthwaite@xilinx.com>
@ 2014-05-16 15:22 ` Andreas Färber
2014-05-16 17:02 ` Peter Crosthwaite
[not found] ` <534E7672.9010807@suse.de>
1 sibling, 1 reply; 3+ messages in thread
From: Andreas Färber @ 2014-05-16 15:22 UTC (permalink / raw)
To: Peter Crosthwaite, qemu-devel
Cc: peter.maydell, alistair.francis, edgar.iglesias, agraf, armbru
Peter,
Am 15.04.2014 04:21, schrieb Peter Crosthwaite:
> Add a sysbus device consisting of a single ram. This allows for
> instantiation of RAM just like any other device. There are a number
> of good reasons to want to do this this:
>
> 1: Consistency. RAM is not that special where board level files should
> have to instantiate it with a completely different API. This reduces
> complexity of board level development by hiding the memory API
> completely and handling everything via the sysbus API.
>
> 2: Device tree completeness. Ram Now shows up in info-qtree and
> friends. E.g. Info qtree gives meaningful information under the
> root system bus:
>
> dev: sysbus-memory, id "zynq.ocm_ram"
> size = 262144 (0x40000)
> read-only = false
> irq 0
> mmio 00000000fffc0000/0000000000040000
> dev: sysbus-memory, id "zynq.ext_ram"
> size = 134217728 (0x8000000)
> read-only = false
> irq 0
> mmio 0000000000000000/0000000008000000
I had warned that I would nack any patch that justifies changes with
"info qtree", so here's your gentle NAK.
Please help deciding on the following patches, which do show such
devices the QOM way:
http://patchwork.ozlabs.org/patch/317224/
http://patchwork.ozlabs.org/patch/343136/
http://patchwork.ozlabs.org/patch/347064/
Note that this doesn't mean we can't create new SysBusDevices, it means
the commit message should be changed.
Regards,
Andreas
>
> 3: Remove dependence of global state. Board files don't have to
> explicity request the global singleton (and much unloved)
> address_space_memory() and go hacking on it. address_space_memory()
> is still ultimately used, but the ugliness is hidden in one place - the
> sysbus core (we can fix that another day).
>
> 4: Data driven machine creation. There is list discussion on being able
> to create or append-to sysbus machines in a data-driven way (whether
> thats from command-line, monitor or scripts or whatever). This patch
> removes the memory special case from that problem and allows RAM
> instantiation to come via whatever solutions we come up with sysbus
> device instantiation.
>
> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
>
> hw/core/Makefile.objs | 1 +
> hw/core/sysbus-memory.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 64 insertions(+)
> create mode 100644 hw/core/sysbus-memory.c
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH v1 2/3] memory: Add sysbus memory device
2014-05-16 15:22 ` [Qemu-devel] [PATCH v1 2/3] memory: Add sysbus memory device Andreas Färber
@ 2014-05-16 17:02 ` Peter Crosthwaite
0 siblings, 0 replies; 3+ messages in thread
From: Peter Crosthwaite @ 2014-05-16 17:02 UTC (permalink / raw)
To: Andreas Färber
Cc: Peter Maydell, Markus Armbruster, Alexander Graf,
qemu-devel@nongnu.org Developers, Edgar E. Iglesias,
Alistair Francis
On Fri, May 16, 2014 at 3:22 PM, Andreas Färber <afaerber@suse.de> wrote:
> Peter,
>
> Am 15.04.2014 04:21, schrieb Peter Crosthwaite:
>> Add a sysbus device consisting of a single ram. This allows for
>> instantiation of RAM just like any other device. There are a number
>> of good reasons to want to do this this:
>>
>> 1: Consistency. RAM is not that special where board level files should
>> have to instantiate it with a completely different API. This reduces
>> complexity of board level development by hiding the memory API
>> completely and handling everything via the sysbus API.
>>
>> 2: Device tree completeness. Ram Now shows up in info-qtree and
>> friends. E.g. Info qtree gives meaningful information under the
>> root system bus:
>>
>> dev: sysbus-memory, id "zynq.ocm_ram"
>> size = 262144 (0x40000)
>> read-only = false
>> irq 0
>> mmio 00000000fffc0000/0000000000040000
>> dev: sysbus-memory, id "zynq.ext_ram"
>> size = 134217728 (0x8000000)
>> read-only = false
>> irq 0
>> mmio 0000000000000000/0000000008000000
>
> I had warned that I would nack any patch that justifies changes with
> "info qtree", so here's your gentle NAK.
>
> Please help deciding on the following patches, which do show such
> devices the QOM way:
>
So I'm shelving this for the interim anyway. My latests series may
infact obsolete this with full MR qomifcation. You could prehaps just
setup TYPE_MEMORY_REGION_RAM (.parent = TYPE_MEMORY_REGION). Then
object-new and friends can be used to achieve the same set of goals as
stated in this commit message (except #3).
> http://patchwork.ozlabs.org/patch/317224/
> http://patchwork.ozlabs.org/patch/343136/
> http://patchwork.ozlabs.org/patch/347064/
>
Yep, this latest one is already on my "to-review" list.
Regards,
Peter
> Note that this doesn't mean we can't create new SysBusDevices, it means
> the commit message should be changed.
>
> Regards,
> Andreas
>
>>
>> 3: Remove dependence of global state. Board files don't have to
>> explicity request the global singleton (and much unloved)
>> address_space_memory() and go hacking on it. address_space_memory()
>> is still ultimately used, but the ugliness is hidden in one place - the
>> sysbus core (we can fix that another day).
>>
>> 4: Data driven machine creation. There is list discussion on being able
>> to create or append-to sysbus machines in a data-driven way (whether
>> thats from command-line, monitor or scripts or whatever). This patch
>> removes the memory special case from that problem and allows RAM
>> instantiation to come via whatever solutions we come up with sysbus
>> device instantiation.
>>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> ---
>>
>> hw/core/Makefile.objs | 1 +
>> hw/core/sysbus-memory.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++
>> 2 files changed, 64 insertions(+)
>> create mode 100644 hw/core/sysbus-memory.c
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Qemu-devel] [PATCH v1 2/3] memory: Add sysbus memory device
[not found] ` <534E7672.9010807@suse.de>
@ 2014-05-18 10:21 ` Peter Crosthwaite
0 siblings, 0 replies; 3+ messages in thread
From: Peter Crosthwaite @ 2014-05-18 10:21 UTC (permalink / raw)
To: Alexander Graf
Cc: Peter Maydell, Markus Armbruster,
qemu-devel@nongnu.org Developers, Alistair Francis,
Edgar E. Iglesias, Andreas Färber
On Wed, Apr 16, 2014 at 10:24 PM, Alexander Graf <agraf@suse.de> wrote:
>
> On 15.04.14 04:21, Peter Crosthwaite wrote:
>>
>> Add a sysbus device consisting of a single ram. This allows for
>> instantiation of RAM just like any other device. There are a number
>> of good reasons to want to do this this:
>>
>> 1: Consistency. RAM is not that special where board level files should
>> have to instantiate it with a completely different API. This reduces
>> complexity of board level development by hiding the memory API
>> completely and handling everything via the sysbus API.
>>
>> 2: Device tree completeness. Ram Now shows up in info-qtree and
>> friends. E.g. Info qtree gives meaningful information under the
>> root system bus:
>>
>> dev: sysbus-memory, id "zynq.ocm_ram"
>> size = 262144 (0x40000)
>> read-only = false
>> irq 0
>> mmio 00000000fffc0000/0000000000040000
>> dev: sysbus-memory, id "zynq.ext_ram"
>> size = 134217728 (0x8000000)
>> read-only = false
>> irq 0
>> mmio 0000000000000000/0000000008000000
>>
>> 3: Remove dependence of global state. Board files don't have to
>> explicity request the global singleton (and much unloved)
>> address_space_memory() and go hacking on it. address_space_memory()
>> is still ultimately used, but the ugliness is hidden in one place - the
>> sysbus core (we can fix that another day).
>>
>> 4: Data driven machine creation. There is list discussion on being able
>> to create or append-to sysbus machines in a data-driven way (whether
>> thats from command-line, monitor or scripts or whatever). This patch
>> removes the memory special case from that problem and allows RAM
>> instantiation to come via whatever solutions we come up with sysbus
>> device instantiation.
>>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>
>
> Could you please show that this approach works for more complicated
> machines, like x86's pc machine and its PCI holes?
>
Hi Alex,
Do you mean attaching it within a PCI address space? Im not sure
that's valid. That would require some sort of generalisation that
applied to both sysbus and PCI. I actually had a go at something like
this a while back. Basically, the setup was for PCI devices to inherit
from sysbus. This allowed solving the reverse problem. Attaching a PCI
device to sysbus. I guess with a few changes it could be made to work
both ways, but it seems the sysbus and PC world are completely
separate the way the tree stands today.
Regards,
Peter
>
> Alex
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-05-18 10:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <cover.1397527916.git.peter.crosthwaite@xilinx.com>
[not found] ` <a944bc1db88e857e9f1440dce228f76e41624f6a.1397527916.git.peter.crosthwaite@xilinx.com>
2014-05-16 15:22 ` [Qemu-devel] [PATCH v1 2/3] memory: Add sysbus memory device Andreas Färber
2014-05-16 17:02 ` Peter Crosthwaite
[not found] ` <534E7672.9010807@suse.de>
2014-05-18 10:21 ` Peter Crosthwaite
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.