Thread (31 messages) flat view 31 messages, 7 authors, 2013-06-26

RE: [RFC] [PATCH] powerpc: Add MSR_DE to MSR_KERNEL

From: Joakim Tjernlund <hidden>
Date: 2012-07-20 08:37:21

Zang Roy-R61911 [off-list ref] wrote on 2012/07/20 10:27:52:

quoted
-----Original Message-----
From: linuxppc-dev-bounces+tie-fei.zang=freescale.com@lists.ozlabs.org
[mailto:linuxppc-dev-bounces+tie-fei.zang=freescale.com@lists.ozlabs.org]
On Behalf Of Joakim Tjernlund
Sent: Friday, June 01, 2012 6:36 AM
To: Wood Scott-B07421
Cc: linuxppc-dev@ozlabs.org; Dan Malek; Bob Cochran; Support
Subject: Re: [RFC] [PATCH] powerpc: Add MSR_DE to MSR_KERNEL

Scott Wood [off-list ref] wrote on 2012/06/01 00:16:53:
quoted
On 05/31/2012 05:14 PM, Joakim Tjernlund wrote:
quoted
Scott Wood [off-list ref] wrote on 2012/05/31 23:43:34:
quoted
On 05/31/2012 04:38 PM, Joakim Tjernlund wrote:
quoted
Scott Wood [off-list ref] wrote on 2012/05/31 19:47:53:
quoted
On 05/31/2012 04:56 AM, Joakim Tjernlund wrote:
quoted
Abatron Support [off-list ref] wrote on 2012/05/31 11:30:57:
quoted
quoted
Abatron Support [off-list ref] wrote on 2012/05/30 14:08:26:
quoted
quoted
quoted
I have tested this briefly with BDI2000 on P2010(e500) and
it works for me. I don't know if there are any bad side
effects,
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
therfore
this RFC.
quoted
We used to have MSR_DE surrounded by CONFIG_something
to ensure it wasn't set under normal operation.  IIRC, if
MSR_DE
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
is set, you will have problems with software debuggers that
utilize the the debugging registers in the chip itself.  You
only want
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
to force this to be set when using the BDI, not at other times.
This MSR_DE is also of interest and used for software debuggers
that
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
make use of the debug registers. Only if MSR_DE is set then
debug
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
interrupts are generated. If a debug event leads to a debug
interrupt
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
handled by a software debugger or if it leads to a debug halt
handled
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
by a JTAG tool is selected with DBCR0_EDM / DBCR0_IDM.

The "e500 Core Family Reference Manual" chapter "Chapter 8
Debug Support" explains in detail the effect of MSR_DE.
quoted
So what is the verdict on this? I don't buy into Dan argument
without some
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
hard data.
What I tried to mention is that handling the MSR_DE correct is not
only
quoted
quoted
quoted
quoted
quoted
quoted
quoted
an emulator (JTAG debugger) requirement. Also a software debugger
may
quoted
quoted
quoted
quoted
quoted
quoted
quoted
depend on a correct handled MSR_DE bit.
Yes, that made sense to me too. How would SW debuggers work if the
kernel keeps
quoted
quoted
quoted
quoted
quoted
quoted
turning off MSR_DE first chance it gets?
The kernel selectively enables MSR_DE when it wants to debug.  I'm
not
quoted
quoted
quoted
quoted
quoted
sure if anything will be bothered by leaving it on all the time.
This
quoted
quoted
quoted
quoted
quoted
is something we need for virtualization as well, so a hypervisor can
debug the guest.
hmm, I read that as you as in favour of the patch?
I'd want some confirmation that it doesn't break anything, and that
there aren't any other places that need MSR_DE that this doesn't cover,
but in general yes.
Then you need to test drive the patch :)
I was thinking more along the lines of someone who's more familiar with
the relevant parts of the code confirming that it's really OK, not just
testing that it doesn't blow up in my face.
It just occurred to me that you guys have this already in your Linux SDK so
it can't be that bad.
No. MSR_DE is ONLY added when using CW debug in SDK.
Roy
Yes, and I later found that user space debugging is busted if you turn on MSR_DE in
kernel.

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