* Understanding XIP, XPSR, XFS registers
@ 2005-08-19 7:08 Keith Owens
2005-08-19 9:48 ` Matt Chapman
2005-08-19 18:30 ` david mosberger
0 siblings, 2 replies; 3+ messages in thread
From: Keith Owens @ 2005-08-19 7:08 UTC (permalink / raw)
To: linux-ia64
Resuming after MCA/INIT when psr.ic = 1 is relatively easy and it
appears to work with the new MCA/INIT handlers. Resuming after
MCA/INIT when psr.ic = 0 (i.e. the event occurred in an interrupt
handler) is proving to be a problem.
When MCA/INIT occurs and psr.ic = 0, what is in X{IP,PSR,FS} in PAL
minstate? Is it the original values of I{IP,PSR,FS}, with I{IP,PSR,FS}
replaced by the values when MCA/INIT was delivered? Or is I{IP,PSR,FS}
left alone (i.e. they still contain the values delivered to the
interrupt handler), with X{IP,PSR,FS} set to the values when MCA/INIT
was delivered?
Common sense says that I{IP,PSR,FS} is left alone when psr.ic = 0, with
the new values being stored in X{IP,PSR,FS}. However Intel Itanium
Architecture Software Developer's Manual Volume 2: System Architecture
(24531804.pdf), 11.3.3 Returning to the Interrupted Process, implies
the reverse.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Understanding XIP, XPSR, XFS registers
2005-08-19 7:08 Understanding XIP, XPSR, XFS registers Keith Owens
@ 2005-08-19 9:48 ` Matt Chapman
2005-08-19 18:30 ` david mosberger
1 sibling, 0 replies; 3+ messages in thread
From: Matt Chapman @ 2005-08-19 9:48 UTC (permalink / raw)
To: linux-ia64
My understanding is that X{IP,PSR,FS} contain the old values of
I{IP,PSR,FS}, and I{IP,PSR,FS} contain the real IP,PSR,CFM.
I've always found this counterintuitive too, though it might
simplify the silicon.
Matt
On Fri, Aug 19, 2005 at 05:08:14PM +1000, Keith Owens wrote:
> Resuming after MCA/INIT when psr.ic = 1 is relatively easy and it
> appears to work with the new MCA/INIT handlers. Resuming after
> MCA/INIT when psr.ic = 0 (i.e. the event occurred in an interrupt
> handler) is proving to be a problem.
>
> When MCA/INIT occurs and psr.ic = 0, what is in X{IP,PSR,FS} in PAL
> minstate? Is it the original values of I{IP,PSR,FS}, with I{IP,PSR,FS}
> replaced by the values when MCA/INIT was delivered? Or is I{IP,PSR,FS}
> left alone (i.e. they still contain the values delivered to the
> interrupt handler), with X{IP,PSR,FS} set to the values when MCA/INIT
> was delivered?
>
> Common sense says that I{IP,PSR,FS} is left alone when psr.ic = 0, with
> the new values being stored in X{IP,PSR,FS}. However Intel Itanium
> Architecture Software Developer's Manual Volume 2: System Architecture
> (24531804.pdf), 11.3.3 Returning to the Interrupted Process, implies
> the reverse.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Understanding XIP, XPSR, XFS registers
2005-08-19 7:08 Understanding XIP, XPSR, XFS registers Keith Owens
2005-08-19 9:48 ` Matt Chapman
@ 2005-08-19 18:30 ` david mosberger
1 sibling, 0 replies; 3+ messages in thread
From: david mosberger @ 2005-08-19 18:30 UTC (permalink / raw)
To: linux-ia64
The manual is correct. You can see that in the (old) MCA backtrace
code where we pick up the state from the X registers if PSR.ic=0. I
verified at some point that this works as well as it can.
--david
On 8/19/05, Keith Owens <kaos@sgi.com> wrote:
> Resuming after MCA/INIT when psr.ic = 1 is relatively easy and it
> appears to work with the new MCA/INIT handlers. Resuming after
> MCA/INIT when psr.ic = 0 (i.e. the event occurred in an interrupt
> handler) is proving to be a problem.
>
> When MCA/INIT occurs and psr.ic = 0, what is in X{IP,PSR,FS} in PAL
> minstate? Is it the original values of I{IP,PSR,FS}, with I{IP,PSR,FS}
> replaced by the values when MCA/INIT was delivered? Or is I{IP,PSR,FS}
> left alone (i.e. they still contain the values delivered to the
> interrupt handler), with X{IP,PSR,FS} set to the values when MCA/INIT
> was delivered?
>
> Common sense says that I{IP,PSR,FS} is left alone when psr.ic = 0, with
> the new values being stored in X{IP,PSR,FS}. However Intel Itanium
> Architecture Software Developer's Manual Volume 2: System Architecture
> (24531804.pdf), 11.3.3 Returning to the Interrupted Process, implies
> the reverse.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Mosberger Consulting LLC, voice/fax: 510-744-9372,
http://www.mosberger-consulting.com/
35706 Runckel Lane, Fremont, CA 94536
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-08-19 18:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-19 7:08 Understanding XIP, XPSR, XFS registers Keith Owens
2005-08-19 9:48 ` Matt Chapman
2005-08-19 18:30 ` david mosberger
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox