From: Fabrice Bellard <fabrice@bellard.org>
To: Paul Brook <paul@codesourcery.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] QEMU configuration files
Date: Thu, 19 Jun 2008 11:46:16 +0200 [thread overview]
Message-ID: <485A2AE8.5090008@bellard.org> (raw)
In-Reply-To: <200806190049.37955.paul@codesourcery.com>
Paul Brook wrote:
>> - Machine definitions contain machine parameters and device definitions.
>> Device definitions are used to create new devices not instanciated in
>> the hardcoded machine definition such as PCI and USB devices.
>> ...
>> - Is it worth specifying board specific network controllers as separate
>> devices (I tried to do that for smc91c111 devices) ? A simpler solution
>> would be to add new machine parameters to do that.
>
> IMHO the goal should be for most (maybe all) devices to be explicitly
> instantiated, not just the easy USB/PCI ones. That may require additional
> work to specify things like IRQ routing and memory ranges.
Good. So you suggest that I go on transforming the remaining network
devices into "generic" devices.
In order to keep the compatibility with the current command line
options, it will be necessary to add a default network adapter name in
each machine description [it would be simpler to avoid being compatible
with the current command line options, but I believe most people are
against that].
> For example there's no real reason why qemu needs to know about most of the
> the ARM boards I've added (e.g. integrator, versatile, realview and stellaris
> boards). They all use approximately the same set of modular components, just
> in connected in different combinations. I suspect the same is true of many
> of the pxa boards, and proably many ColdFire devices.
If suitable naming for the buses are defined and if the appropriate
device classes are created, I believe the current system can be used to
describe a complete machine.
>> One issue is whether/how much it's desirable to decouple the emulated hardware
>> configuration from the host interface configuration. e.g. should we always
>> create N serial ports, regardless of how many -serial options are specified.
> This is maybe slightly different between emulating embedded boards and
> workstation/server class machines. For workstation/server emulation it's
> entirely reasonable to arbitrarily add/remove serial and network devices from
> a "PC" machine based on the user config. For embedded SoC devices you tend to
> want to emulate a fixed number of devices (matching those present on real
> hardware) and leave them present but disconnected if the user does not
> specify appropriate net/serial options.
>
> On case where we currently do this is CDROMs. Omitting -cdrom does not remove
> the cdrom from the machine, it just means an "empty" cdrom drive is created.
My current solution is to keep the machine.serialN and machine.parallelN
parameters to avoid changing too much code in the C machine definitions.
The user can still disable these implicit devices and explicitly
instantiate serial or parallel ports, provided there are generic devices
classes for them (which is currently not the case). It could be possible
to do something similar to the network and drives devices:
- the command line interface is still backward compatible (i.e. each C
machine description gives the necessary information to instantiate
default serial or parallel ports) ;
- when using configuration files, no serial or parallel ports are
instantiated by default and the user must explicitly declare them.
Fabrice.
next prev parent reply other threads:[~2008-06-19 9:46 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-18 18:12 [Qemu-devel] QEMU configuration files Fabrice Bellard
2008-06-18 19:16 ` [Qemu-devel] " Sebastian Herbszt
2008-06-18 21:08 ` [Qemu-devel] " Anthony Liguori
2008-06-18 23:49 ` Paul Brook
2008-06-19 0:01 ` Paul Brook
2008-06-19 9:46 ` Fabrice Bellard [this message]
2008-06-19 11:40 ` Daniel P. Berrange
2008-06-19 11:52 ` Fabrice Bellard
2008-06-19 14:36 ` Daniel P. Berrange
2008-06-19 11:56 ` [Qemu-devel] " Sebastian Herbszt
2008-06-20 13:11 ` Fabrice Bellard
2008-06-21 8:43 ` Blue Swirl
2008-06-24 15:50 ` [Qemu-devel] " Ian Jackson
2008-06-24 19:50 ` Jamie Lokier
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=485A2AE8.5090008@bellard.org \
--to=fabrice@bellard.org \
--cc=paul@codesourcery.com \
--cc=qemu-devel@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).