Thread (3 messages) 3 messages, 2 authors, 2008-11-25

RE: 8572E - machine check pin (MCP0)

From: Morrison, Tom <hidden>
Date: 2008-11-25 14:08:56

I wrote:
<snip some things>
quoted
I have an external watchdog timer that is going off - and pulsing
into
quoted
the MCP0 of the 8572E. I get the printk indicating that the MCP0 went
off - the problem is - how do I clear the condition that caused this
because my hardware engineer swears that the pulse is ONLY 250ms -
and
quoted
after resetting several status registers (mcpsumr & rst
(because my hardware engineer swears that the pulse is ONLY 250ms
long
quoted
(and I have a delay after my printk of 250ms)) - so I am pretty sure

I am resetting the conditions mcpsumr (also, extra: the rstsr),
but after writing mcpsumr - and reading back - it still has
the mcp0 bit set?

<snip more>


Trent wrote:

SRESET# also sets MCP0 and MCP1, maybe that is on?
I'd also check the EMCP bit in SPRN_HID0 (on core 0 for MCP0).
I think SRESET is a separate signal - and even if it was ON
(which it shouldn't be) - it should show up in the MCPSUMR=20
Register (and I am clearing that condition)...

I am getting the first machine check (with an indication that=20
the MCP0 is pulled) - I don't think you can get a Machine check without=20
SPRN_HID0's EMCP being set?=20

The only thing that I am thinking is that I have two edges, and
after returning from the machine check (first time) the ME bit is
NOT enabled, so when the falling edge of that pulse occurs, it=20
causes another machine check - which because ME bit is NOT set
it causes a checkstop - and it goes away...

That explains why it hangs for the second machine check - although
it still 'starts' into the machine check handler before dying=20
very early in its execution (before it does a full dump of registers)...

very strange stuff here...

Tom
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help