Hi,

Default vexpress_defconfig does not boot on qemu vexpress-a9 target. In kernel,
vexpress uart detection for DEBUG_LL is done using Coretex-A9 id. Only r0p1 is
mapped to legacy map. All other variants are mapped to RS1/aseries map.

As qemu vexpress-a9 target reports Cortex-A9 version as r0p0, kernel maps uart0
at address 0x1c090000 instead of 0x10009000. This result in kernel indefinitely
waiting for uart during boot. A kernel patch to fix this was discussed
in the following link
http://comments.gmane.org/gmane.linux.ports.arm.kernel/269657 .
In this discussion Pawel Moll mentioned that V2P-CA9 has Cortex-A9 r0p1 and not
r0p0. If this is correct, to fix this and similar future problems, shouldn't
qemu Cortex-A9 be updated to version r0p1?

So what will it take to update the id of Cortex-A9 in qemu from r0p0 to r0p1?

I started looking at differences between r0p0 and r0p1, which can be found at
the following link
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388e/CACDGEDG.html

The increase in micro TLB entries should not make a difference as qemu is not
cycle accurate and with a quick search in ARM documentation I couldn't find
any register showing number of micro TLB entries. Note that the change is in
micro TLB and not in unified TLB.

However, I am not sure if the engineering errata implemented in r0p1 will
require any change in qemu. Anyone have more information about this?

Any other IPs that will need to be updated along with the ARM core?

Sincerely,

Yousaf

Reply via email to