On 13 November 2014 16:26, Tim Sander <t...@krieglstein.org> wrote: > This is the gcc inline assembly syntax from my kernel module written in c: > asm("mrc p15, 0, %0, c12, c0, 0" : "=r"(vbar) : : "cc"); > asm("mrc p15, 0, %0, c12, c0, 1" : "=r"(mvbar) : : "cc"); <- not implemented? > asm("mrc p15, 4, %0, c12, c0, 0" : "=r"(hvbar) : : "cc"); <- not implemented? > > It seems as if neither mvbar nor hvbar are implemented and that vbar returns > zero !? I also have a problem with the addresses: > The fiq handler lies at 0xffff1240 but the vectors_page in Linux points to > 0xbfffe000? You where talking about the fact that the security extensions > where not implemented. I was not aware that the different vbar's where > already part of the security stuff?
MVBAR is part of the Security extensions. HVBAR is part of the Virtualization extensions. In mainline QEMU we implement neither of those extensions, and so don't implement the associated registers. (Strictly speaking, VBAR is also only in the Security extensions, but we provide it as a workaround for guests that assume our CPUs should implement it.) -- PMM