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

Re: [microblaze-uclinux] petalinux-v0.40-final released, and other news



On Mon, Sep 14, 2009 at 08:44:28AM -0700, Bruce Karsten wrote:
>    Hi John,
> 
>                Virtual Platform had a limitation of supporting only a
>    short list of peripherals. If the software attempted to access a
>    non-supported peripheral it would error out the model. Is there a
>    specific list of supported peripherals for the QEMU based simulation?
>    What is the response if a non-supported peripheral is accessed?

Hello Bruce,

It depends on the configuration. Essentially IO areas that QEMU cannot
implement are left unmapped. If you configure your hardware to raise
CPU exceptions on bus transaction errors, you will get an exception
on accesses to those areas. Otherwise the access will just go to void.

Sometimes software doesn't really care, other times software expects
certain behaviour from the IO area and may hang or freak out. That's
why there is a list of missing sensitive devices that get removed
from the device tree when booting, so Linux simply never starts the
drivers.

At the moment QEMU is an excellent platform for developing Linux and
user-space applications. Probably also to debug and test just about any
OS. It is not as good in the amount of boards it supports.

Right now the MicroBlaze port has:

CPU:
* The basic instruction-set
* Barrel
* Multiplication (including the 64bit multiplier)
* Division
* Pattern
* MSR
* Full MMU support.
* Cache controller with tag memories.
  No data memories emulated.

The CPU does not support the FPU nor any FSL insns.

A device tree driven dynamic board with any of these devices:
* RAM and LMB memory
* Flash memories
* Interrupt controller (intc)
* Timer block
* Emaclite
* UARTlite
* UART-16550

The true IO devices bind to host devices in one way or another.
For example, the ethernet device can talk to the external world
and vice-versa. You can send emails from your emulated microblaze :)

For debugging there is:
* A builtin GDB stub. Emulated Microblaze software doesn't
  need to be aware of it.
* Instruction traces.
* Exception and interrupt traces.

For profiling there is:
* Estimate of executed cycles.
  Total and per symbol (if debug info is provided with the kernel).
* Detailed cache statistics, also per symbol.

Most of the port is already committed into QEMU's official git
repository.

Best regards,
Edgar E. Iglesias
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/