qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sh: Virtual Board or Real board? (was Re: [Qemu-devel] [PATCH 1/3] s


From: Shin-ichiro KAWASAKI
Subject: Re: sh: Virtual Board or Real board? (was Re: [Qemu-devel] [PATCH 1/3] sh: SE7750 board definition)
Date: Sun, 01 Feb 2009 22:50:26 +0900
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

Paul Mundt wrote:
On Sat, Jan 24, 2009 at 02:46:40PM +0900, Shin-ichiro KAWASAKI wrote:
Paul Brook wrote:
Now, I hope that we would reach a consensus about the spec of new standard
board for SH-4A. SH7785LCR is a choice. And, as Iwamatsu-san suggested, a virtual generic board is another choice. I'm not sure SH7785LCR's hardware
spec is available or not. (Does anyone know it?)  If it is, I push
SH7785LCR.  Otherwise, virtual board sounds good.
I recommend against using a virtual board. It means you have to maintain both qemu and a kernel port. The mips virtual board suffered exactly this fate, and IIUC is likely to be removed fairly soon.
Thank you for your comment.  As you pointed out, we need to maintain kernel
config for virtual board.  SH-Linux developpers' help is important.
I guess we can expect Iwamatsu-san's help :)  And once Paul Mundt
supported special kernel configuration for QEMU-SH kindly.


I try to clarify the difference of real board and virtual board, as follows.

* Real board

- We can compare the emulated system with the real board.  The specification
 is not vague, and deffects can be investitated by comaparison.

- No need to maintain kernel, and it can avoid the risk the maintenance
 work would be terminated, as Paul Brook pointed out.


* Virtual board

- It decreases the number of supported boards, and avoid messy many board
 supports.  SuperH series have many CPU sub tyepes, and as number of
 supported CPU types increase, number of suppoted boards will increase.
 (Iwamatsu-san pointed it out.)

This depends roughly on the level of support you are looking for. You can
use the generic machine vector with any CPU you want and simply stick
with the on-chip peripherals without having to make any board
modifications. This should be sufficient for the simple case, especially
if you are interested in testing different CPUs, but will not help you if
you are looking for more complete board support.
Thank you.  Your explanation clarifies the relation between purpose and
target board.  I guess Iwamatsu-san's purpose is not board emulation but
CPU. Then virtual board is suitable for it.

My current purpose is to utilize QEMU to analyze SH system behavior mainly
for debug purpose. (Performance analysis with QEMU is my interest also, but
I do not expect exact analysis result.)  Anyway, I'd like to compare QEMU-SH
system and real SH board to see what QEMU can do, and what QEMU cannot. Then
I wanted to complete R2D+ board emulation.  But R2D+ is obsolete now, and
SH7785LCR will be my next choice.


- It avoids rare peripheral support by QEMU.
 Sometimes embedded boards have rare peripheral on it.
    e.g.) RTL8139B (below Rev.C). on R2D+.
          http://lists.gnu.org/archive/html/qemu-devel/2008-12/msg00961.html
 If we make the virtual board have standard peripheral (e.g. RTL8139C),
 we can reuse peripheral implemenation qualified with other board for other
 CPU arch, and avoid messy many type peripheral support.

I'm not sure if QEMU's policy exists or not for this kind of choice.

We can support both of them in the future.  But I think it is important
to make consensus which should be the default and standard for QEMU-SH,
to decide to which we'll try to contribute.

I'd like to your comments on them.

From the kernel point of view, whether we add a new machine type for
emulated boards or not doesn't really matter, it mostly depends on how
people are going to be using it, and what level of change you are looking
for. I will add as many defconfigs and boards as people want as long as
there are users for them anyways.

Anyways, I think there is value in supporting both. Emulating real
hardware is especially helpful if you want to compare and contrast the
environment between emulation and an existing platform, as well as
allowing people without access to real hardware to develop against the
emulated environment with testing conducted on real hardware as it
becomes available.

I agree.  Board-less software development is very powerful use case of
QEMU.  I thank to QEMU developers, and hope that SH developers would
enjoy it too, in near future.

Real hardware on the other hand is quite restrictive, and there are a lot
of interesting features and capabilities that exist on some boards/CPUs
but not others, limiting the amount of testing that can be performed. If
people want to provide a virtual board that is pretty feature heavy to
try and help with regression testing and so on, that would also be pretty
useful.

I wouldn't worry about it too much anyways. If there is something you are
specifically interested on working on in QEMU, there is no real reason
why we can't accomodate that in the kernel too, it just depends on the
code changes you want. We do want people to experiment with both on a
regular basis anyways, so I have no real interest in setting any sort of
policy on this subject. ;-)

I see.  My current understanding is as follows.

- Both virtual and real boards will provide benefit for SH software developers,
  in different ways.
- There is no restriction to add sh-linux defconfigs for virtual board, because
there exist some sh-linux users those who expect it. : e.g.) Iwamatsu-san - Anyway, we need new board support for QEMU-SH, because R2D+ is obsolete.
  (I do not much about 'shix' board, but I guess it is obsolete too.)

Then I'll begin to consider on SH7785LCR board emulation.  If someone is working
on it, please let me know.  I'll try to help it, or consider on virtual board
to avoid duplicated work.

# Of course, more advices on this issue are welcome.


Regards,
Shin-ichiro KAWASAKI





reply via email to

[Prev in Thread] Current Thread [Next in Thread]