On Monday 02 November 2009, Øyvind Harboe wrote: > While the attached patch tightens things up, I don't think we've > solved it just yet...
Looking more closely, this patch intoduced *TWO* bugs: - The one causing the big regression, swapping physical and virtual addresses for the work area: if (mmu active) use physical address else use virtual address - Changing the behavior of "-work-area-virt 0" from the previous "re-specify the default" to "actually use a mapping that's set up at address zero". Now, the first bug got fixed with a cleanup patch. (Leaving aside issues like *which* MMU context has that mapping...) But fixing the second bug requires changing *EVERY* config file which blindly specified "-work-area-virt 0", trusting that it was a safe default. Not yet fixed... I can't quite see reverting that change; it's the right idea, just the timing was bad. Config files for no-mmu targets, easy: they're obviously wrong to specify any virtual address whatever. But that's another symptom of flaky MMU handling ... on no-mmu targets, specifying such addresses should at least trigger warnings! But for targets with MMUs ... it's remotely possible that some configurations really *did* map memory at zero. Mostly that's kept invalid, so dereferencing NULL triggers a hardware error of some flavor. I'm going to just remove all "-work-area-virt 0" stuff, and folk working with oddball MMU configurations can submit patches for them -- later. - Dave _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development