From: Hollis Blanchard <hollisb@us.ibm.com>
To: kvm-ppc@vger.kernel.org
Subject: Re: [kvm-ppc-devel] Current e500 kvm guest kernel booting log
Date: Wed, 12 Dec 2007 19:19:21 +0000 [thread overview]
Message-ID: <1197487161.26038.30.camel@basalt> (raw)
In-Reply-To: <ABF87B0B6A38C0458E319AC973ED68AEA21127@zch01exm26.fsl.freescale.net>
On Wed, 2007-12-12 at 19:57 +0800, Zhang Wei wrote:
> >
> > Congratulations! :) Will you send patches? What are your
> > thoughts on the
> > commonality between 440 and e500 code?
>
> Thanks! The MMU and some core registers are different, but almost of the
> other can be reused. So I change 440 TLB functions to core independence
> API and add an exceptions_e500.S file.
Interesting, good to know.
> > We haven't touched the "hack" code recently, since we've been
> > refactoring the upstream tree. That's pretty much done
> > though, and right
> > now I'm just starting to integrate the old 440 support with the new
> > upstream code. That's not in a good state right now, but I could clean
> > it up and send it out if you're interested.
>
> Yes! I think hack codes are only for verifying the idea. Our target is
> for upstream code. I hope I could join you!
Well, unfortunately at the moment I'm just fighting with
asm-offsets.h . :( Since I'm basically already on vacation, I'm not sure
I'll be able to get anything ready until January.
> > Also, I'm messing around with Makefiles now, and have been thinking
> > about how to connect the modules... For example, should there be a
> > kvm-powerpc-guest-440.ko that could link with
> > kvm-powerpc-host-e500.ko?
> > For now, a single kvm-powerpc-e500.ko (e500 guests on e500 host) is
> > probably easiest, but we should think about the long-term goal too.
> >
>
> I will make some studies about this. What's kvm-guest-xxx.ko and
> kvm-host-xxx.ko?
> Why not one kvm-powerpc.ko?
Books 1 and 2 are (more or less) identical across PowerPC. Book 3 is
where the big differences are, but we are emulating all Book 3 stuff in
software. That means we can emulate whatever Book 3 we want; we don't
need to run only e500 guests on e500 hosts.
So, we could in theory have a module that e.g. emulates the e500 Book 3,
which we'd call something like kvm-powerpc-e500-guest.ko. If we emulate
tlbwe with HTAB modifications, we could run e500 guests on an e600. We
would call the module with the HTAB logic something like
kvm-powerpc-e600-host.ko.
The important point for the MMU is that all PPC have the concept of a
virtual address, which is an effective address + some context
identifier. On classic or server PPC, that context comes from
segmentation (SRs, SLB, or STAB), whereas on Book E the context is AS +
PID.
It's just a (maybe crazy) idea, but if we're clever we might actually
get it to work. Of course, since you guys have a few different embedded
cores, that might be of more interest to your company than mine...
> > By the way, we booted with an initrd so we wouldn't need the network,
> > and hacked the device tree not to use interrupts for the UART. If you
> > take shortcuts like that you can really minimize your
> > dependency on qemu for now.
>
> How about the qemu position in our roadmap? If it still be the key role,
> I'll have to add some e500 hw drivers into it.
Yeah, that's a good question. I believe that emulating complex IP blocks
(e.g. IBM EMAC, Freescale TSEC) would take significant effort. Instead
I'm going to be trying alternatives, such as an x86-like "virtual board"
or virtual IO drivers.
In the first case, you pretend you have a bare core (without any SoC
peripherals) on a board with x86 devices. Qemu supports a set of x86
devices, so instead of writing all the TSEC emulation, you would just
tell the guest it has a Realtek NIC. Guests may already have device
drivers for "standard" devices like these.
Qemu will also gain virtual IO support in the future, which is basically
idealized IO devices to increase performance by using a
virtualization-friendly design (e.g. minimize MMIO accesses). The down
side is that guests would need new device drivers for this.
That said, we'd probably want to stick with emulated versions of
simple/critical PPC devices like the interrupt controller, so you might
have a little work to do there.
Personally I don't think writing all the SoC device emulation from
scratch is a realistic goal, at least not for me. You're welcome to
prioritize whatever you want of course. :)
--
Hollis Blanchard
IBM Linux Technology Center
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-ppc-devel mailing list
kvm-ppc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-ppc-devel
next prev parent reply other threads:[~2007-12-12 19:19 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-11 5:01 [kvm-ppc-devel] Current e500 kvm guest kernel booting log Zhang Wei
2007-12-11 15:41 ` Hollis Blanchard
2007-12-12 11:57 ` Zhang Wei
2007-12-12 19:19 ` Hollis Blanchard [this message]
2007-12-13 10:14 ` Zhang Wei
2007-12-14 0:01 ` Hollis Blanchard
2007-12-14 3:47 ` Zhang, Xiantao
2007-12-14 6:15 ` Zhang Wei
2007-12-18 2:33 ` Hollis Blanchard
2007-12-18 2:52 ` Zhang, Xiantao
2007-12-18 2:52 ` Zhang, Xiantao
[not found] ` <42DFA526FC41B1429CE7279EF83C6BDCB131B6-wq7ZOvIWXbMAbVU2wMM1CrfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2007-12-18 10:04 ` [kvm-ppc-devel] [kvm-devel] Current e500 kvm guest kernel Christian Ehrhardt
2007-12-18 10:04 ` [kvm-ppc-devel] Current e500 kvm guest kernel booting log Christian Ehrhardt
[not found] ` <47679B11.8070604-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2007-12-19 8:50 ` [kvm-ppc-devel] [kvm-devel] Current e500 kvm guest kernel Zhang Wei
2007-12-19 8:50 ` [kvm-ppc-devel] Current e500 kvm guest kernel booting log Zhang Wei
2007-12-18 3:40 ` Zhang Wei
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=1197487161.26038.30.camel@basalt \
--to=hollisb@us.ibm.com \
--cc=kvm-ppc@vger.kernel.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.