Verify the Cortex A9 Versatile PBX support

Registered by Michael Hope

QEMU currently claims to support A8 and A9, and is believed to work with A9MP. However we haven't tested it and there may be bugs or missing pieces. Verify support of the Versatile PBX.

Blueprint information

Michael Hope
Peter Maydell
Needs approval
Dr. David Alan Gilbert
Series goal:
Accepted for 11.05
Milestone target:
milestone icon 11.05-final
Started by
Michael Hope
Completed by
Michael Hope

Related branches



Effort: 1-2M

The report is here:

and is based off this whiteboard. The report supersedes the whiteboard.

NB: this report is now slightly out of date because we've added support for the SD card. It should also probably mention that we do now have Versatile Express support -- PMM.

Dave has looked into this. He took the current upstream qemu, built a kernel for it, and
used this to boot the current Linaro test head. The model does have Cortex-A9, SMP, and
basic Realview PBX support but is lacking in other areas.

PENDING: Add versions and locations.

Source used:
  QEmu from git git:// rev 1b5f56b134dc2d338911242424795de70c7475fd
  Linux kernel from git git:// rev 94561a97770c2bcda803da7726feb7f83cfac925
  Filesystem based on Linaro headless (linaro-m-headless-tar-20101108-2.tar.gz) and vexpress hwpack (hwpack_linaro-vexpress_20101109-1_armel_supported.tar.gz)

According to the source, the model includes:
 * A PL050 keyboard/mouse controller
 * Four PL011 UARTs
 * A PL081 DMA controller
 * Two SP804 dual timers
 * A PL110 LDC display
 * A PL181 MMC interface
 * A PL031 RTC
 * A LAN9118 Ethernet interface

In practice though, he found:
 * There's no block device (such as a SD card or hard disk)
 * There's no display

making the current model unusable for an end developer. Both are probably fixable, but Dave noted that he'd rather emulating something more mainstream than fix up the PBX emulation.

A fundamental issue with QEMU is that all emulated cores run in one host thread, so a dual
core emulation will run twice as slow as a single core. Dave also noted that QEMU is an
application emulator, and isn't suitable for validating low level applications due to how
the memory systems and timings are different from the target.


Work Items

Work items:
Investigate current state: DONE
Build an SMP kernel for PBX A9: DONE
Run the kernel with the current Linaro test head: DONE
[michaelh1] Report: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.