On 27.08.12 23:51, Alexander Graf wrote:
On 27.08.2012, at 13:43, Segher Boessenkool <segher(a)kernel.crashing.org> wrote:
> How do I flush the TLB?
tlbie, and perhaps tlbsync.
The QEMU TLB only caches existing translations, never misses.
I'm not sure what you mean here? No PowerPC hardware that I know of
stores a "this address doesn't go anywhere" tag in the TLB, either
(I don't think the architecture allows that even).
I also don't see what it has to do with the problem. The scenario
what we think is happening: the CPU has translations for the OF code
space in its TLB, because it has run it before. The kernel removes
the translations but doesn't do TLBIE on those. On real hardware,
the TLB entries are still used. What does QEMU do?
Ah, I see. It depends. QEMU doesn't provide any guarantees that the TLB survives
basically. We don't flush it often for book3s, but it can still happen. Maybe try to
put a printf into the tlb flush handler function?
Sorry for the delay, was sick for the past days :(
You suggest to add some printf's, am I right to do that in the cputlb.c
tlb_flush()? If not, where did you mean to do that?
And on a side note, are/were there successful boot results from other
OS's than linux with qemu and OpenBIOS on powerpc?
I didn't find a successful report.