On Tuesday 13 October 2009, Michael Schwingen wrote:
> David Brownell wrote:
> > How stable do you find the XScale support, by the way?
>   
> Looks quite stable to me. I use it regularly at home on IXP42x 

I got that impression ("stable for you"); but it's really
not worked well at all on my old PXA board.


> > I've observed two reset-related problems.  One is that
> > the initial "reset" (from TCL command line) will not
> > often work.  I've got a workaround I'm not yet ready
> > to send around.  My theory is that the original work
> > on this code was on a second generation core (PXA270,
> > like your IXP425 -- 7 bit IR length) while this first
> > generation core (PXA255) is a bit more finickey.
> 
> I have not had any reset problems or instabilities on IXP42x for quite
> some time now (longer back than 0.2.0 release). I have used both Rev.
> 2.0 and Rev. 2.1 IXP42x CPUs, although I think there is no real
> difference in the core.

So your experience is compatible with my theory:  that
the XScale code is a bit "on the edge" for older parts.
(Which is what I have, and want to see work again so I
can periodically see if code still works...)


> > The second is that the *second* reset won't work at all.
> > AND ... this seems like something any XScale should
> > be seeing.  The root cause being that it won't reload
> > the debug handler after it's purged from the mini-icache.
> > (TRST clears DCSR.H ... and SRST purges the mini-icache
> > unless that bit is set.  QED.)
> >
> > Have you observed that problem with the second reset?
> >   
> 
> What kind of "second"?

"reset" followed by "reset".  Of course, until I provided
a custom "init_reset" script -- and the ability to even
provide such a thing! -- I couldn't even start OpenOCD...

I'm suspecting the icache invalidation on your hardware is
not working quite like the spec says it should, if you've
not come across problems there... have a look at the patch
I'll send in a few minutes.  (Or maybe you don't use TRST?)


> Using "reset halt" or "reset run" multiple times without re-starting
> OpenOCD works fine for me.

I'm now at that point ... but that's after reworking the
reset logic in OpenOCD at the generic level ("init_reset"
overrides allowed) and at the XScale-specific one.

I've got patches for both the issues above.  I think the
second one is probably worth merging for 0.3.0, if we can
confirm it doesn't break on newer cores.  It's not very
invasive, and per the arch (and PXA255, IXP425, ...) docs
it's the Right Thing To Do.

- Dave

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to