On Mon, Jan 19, 2015 at 9:03 PM, Andreas Färber <afaer...@suse.de> wrote: > Am 19.01.2015 um 16:22 schrieb Artyom Tarasenko: >> On Mon, Jan 19, 2015 at 4:01 PM, Andreas Färber <afaer...@suse.de> wrote: >>> Am 19.01.2015 um 13:57 schrieb Artyom Tarasenko: >>>> On Mon, Jan 19, 2015 at 1:45 PM, Paolo Bonzini <pbonz...@redhat.com> wrote: >>>>> On 19/01/2015 12:35, Mark Cave-Ayland wrote: >>>>>> Similar to m48t59_init(), add a mem_base value so that NVRAM can be >>>>>> mapped via >>>>>> MMIO rather than ioport if required. >>>>>> >>>>>> Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> >>>>>> --- >>>>> >>>>> Is it really ISA if it's MMIO? In other words, why can't this be a >>>>> sysbus device? >>>> >>>> On physical machines it's EBus, which is pretty much like 8-bit ISA. >>>> So, I think modelling it as ISA is closer to to the reality. >>>> But out of curiosity, would it be possible to have a sysbus device >>>> somewhere in a middle of PCI space? [...] >>> >>> Why would you want to use a SysBusDevice in the first place? >> >> Ask Paolo. :-) For me it's only important to have a MMIO device in the >> proper address range. >> >>> I previously discussed with Mark that it should be an EBusDevice, not an >>> ISADevice or SysBusDevice. >> >> Interesting. I can't find this discussion in the list archive. > > Hm, am I mixing that up with SBus then? There were some helper functions > related to ROM loading being added as context to my suggestion that I > thought could become class fields.
Yes, for SBus it totally makes sense. >> Do you suggest to >> create EBusDevices for all ISA devices (serial, parallel, keyboard, >> floppy) used in sun4u, or only for m48t59? >> What would be the advantage of using EBusDevice over ISADevice? > > For all devices that are in fact EBus devices. The general idea is > encapsulation and abstraction - hiding the implementation detail of > whether it is internally an ISADevice or something else. Such a patch > should be quite trivial. Similarly it gives helper functions and > potential class methods a natural place to live. Yes, the patch is trivial. But EBus is nothing else but an ISA bus with 8 data lines. To me it looks like the bus width is an implementation detail we can hide. (It's not documented what should happen if an EBus device is accessed with a non 8-bit width. I tried 16 bit access on a physical machine and it seemed to work). Currently we can just use all the ISA devices unmodified if we like. With EBus we would only be able to use a subset of ISA devices, no? Artyom -- Regards, Artyom Tarasenko SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu