On 27.08.12 23:51, Alexander Graf wrote:
On 27.08.2012, at 13:43, Segher Boessenkool segher@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.
Thanks, Andreas