X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C7AF7B.EAF31EBD@onstor-exch02.onstor.net>; Fri, 15 Jun 2007 10:35:16 -0800
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C7AF7B.EAF31EBD"
References: <20070614135529.5763fdb0@ripper.onstor.net><BB375AF679D4A34E9CA8DFA650E2B04E042A4FC1@onstor-exch02.onstor.net> <20070615083704.0dd37be1@ripper.onstor.net>
Content-class: urn:content-classes:message
Subject: RE: from IRQs to INTs and back
Date: Fri, 15 Jun 2007 10:35:16 -0800
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E52341D@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: from IRQs to INTs and back
Thread-Index: AcevYwcMa6ZkKF2lTyu04qHpZNkwSAAGBc80
From: "Brian Stark" <brian.stark@onstor.com>
To: "Andy Sharp" <andy.sharp@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C7AF7B.EAF31EBD
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Andy,
=20
Cool, let me know what you find.  And good luck with the HVAC -- you =
definitely need it right now!
=20
I visited Renesas in San Jose yesterday.  The bad news is that they've =
had multiple ECC errors on both Bobcats over the last several months, =
and as much as I like to blame software, I can't really do that in the =
case.  The good news is the IT guy there is very cooperative and =
surprisingly not upset about the crashes.  We're going to try some =
things that focuses on their environment and see what we can come up =
with.
=20
=20
Brian
=20

________________________________

From: Andy Sharp
Sent: Fri 6/15/2007 8:37 AM
To: Brian Stark
Subject: Re: from IRQs to INTs and back



Thanks extra mucho, this looks like exactly what I need.  I'll check
all the software to make sure it is "right" and if I'm still not
getting interrupted I'll let you know.  I'd like to get past at least
this sometime today.  I have an HVAC problem at home so I will probably
be working from home in the afternoon but that's not all the different
than working from Campbell as far as your concerned ~:^)

Tanks,

a

PS What customer?  What's the dileo?

On Thu, 14 Jun 2007 21:56:33 -0700 "Brian Stark"
<brian.stark@onstor.com> wrote:

> Andy,
>
> I was at a customer for most of the afternoon, so today wasn't good.
> I could do some work on this tomorrow, but I'll have to balance it
> around a doc appt that my wife has at 11am.  I could also do it on
> Monday, which would probably be better for me so that I can finish up
> some stuff on Cougar tomorrow.  Let me know what you think.  =20
>
> Here's how the interrupts are wired:
>
> Cirrus
>
> Socket        PCI Interrupt   Signal name             RM9K
> interrupt
>
> A             INTB_L          SPD_INTB_L
> INT8_L (IM10) B               INTA_L
> SPD_INTA_L            INT9_L (IM11)
>
> TI
>
> Socket        PCI Interrupt   Signal name             RM9K
> interrupt
>
> A             INTA_L          SPD_INTA_L
> INT9_L (IM11) B               INTB_L
> SPD_INTB_L            INT8_L (IM10)
>
>
> I know that functional interrupts are being used on both parts.  The
> functional interrupt fires whenever there's a status change on the INT
> signal on the PC Card side, but I don't know exactly which events the
> OS is looking for and then what it does after it sees an interrupt
> (maybe this is when it polls the Status register to see if the card
> is ready?). If interrupts are disabled, the OS isn't happy and will
> hang when you access the CF.
>
> For the Cirrus part, interrupts are enabled in the ExCA Interrupt and
> General Control Register (offset 3).  Here's how the register looks:
>
> RCON-FC0:5 > mm -b b8000000 3; dm -b b8000001 1
>
> 0xb8000001:  64
>
> The '4' means that socket A is hooked to INTB_L.  The register for
> socket B will have a '3' in the lower nibble, which corresponds to
> INTA_L.  By the way, there's no reason the Cirrus part can't be
> programmed to reverse the interrupt routing and match the TI part.
> Unfortunately, the TI part doesn't have the flexibility to match the
> routing programmed into the Cirrus.  Socket A -> INTB_L with the
> Cirrus -- what was Max thinking!
>
> There is also another class of interrupts called management interrupts
> that are triggered by changes in card status -- these events are all
> disabled in ExCA Mgmt Interrupt Config (offset 5).  Maybe these are
> the events that are being polled, e.g. card plugged in or pulled out?
>
> Unless you want to just rely on what the PROM has already done, the TI
> part is a bit different in terms of setting up interrupts, but we can
> get to that after the Cirrus part is working.  At a minimum, the OS
> has to take into account the reversal shown above and write the
> appropriate values into the ExCA Interrupt and General Control
> Register for each socket.
>
>
>
> Brian
>
>=20
>
> > -----Original Message-----
> > From: Andy Sharp
> > Sent: Thursday, June 14, 2007 1:55 PM
> > To: Brian Stark
> > Subject: from IRQs to INTs and back
> >
> > Hey Brian,
> >
> > So, I need to get a definitive statement about how the
> > interrupts are set up on both the Cirrus and the TI parts.  I
> > seem to be making some progress with the pd6729, but I'm not
> > getting any interrupts.  It looks like Dan never did either
> > -- he apparently hacked the driver to operate in some kind of
> > polled mode.  Which shouldn't have been necessary, but for
> > some reason he did so anyway.
> >
> > I'm thinking that maybe the best thing to do is run the thing
> > on the analyzer again and this time look for interrupts
> > generated by the part, to make sure that they are being
> > generated, and then set about trying to get them set up right
> > in the software.
> >
> > Any chance we can do some analyzer runs today or tomorrow?
> >
> > Thanks mucho,
> >
> > a
> >



------_=_NextPart_001_01C7AF7B.EAF31EBD
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<HTML dir=3Dltr><HEAD><TITLE>Re: from IRQs to INTs and back</TITLE>=0A=
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dunicode">=0A=
<META content=3D"MSHTML 6.00.2900.3086" name=3DGENERATOR></HEAD>=0A=
<BODY>=0A=
<DIV id=3DidOWAReplyText97618 dir=3Dltr>=0A=
<DIV dir=3Dltr><FONT face=3DArial color=3D#000000 =
size=3D2>Andy,</FONT></DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2>Cool, let me know what you =
find.&nbsp; And good luck with the HVAC -- you definitely need it right =
now!</FONT></DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2>I visited Renesas in San Jose =
yesterday.&nbsp; The bad news is that they've had multiple ECC errors on =
both Bobcats over the last several months, and as much as I like to =
blame software, I can't really do that in the case.&nbsp; The good news =
is the IT guy there is very cooperative and surprisingly not upset about =
the crashes.&nbsp; We're going to try some things that focuses on their =
environment and see what we can come up with.</FONT></DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2>Brian</FONT></DIV>=0A=
<DIV dir=3Dltr><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV></DIV>=0A=
<DIV dir=3Dltr><BR>=0A=
<HR tabIndex=3D-1>=0A=
<FONT face=3DTahoma size=3D2><B>From:</B> Andy Sharp<BR><B>Sent:</B> Fri =
6/15/2007 8:37 AM<BR><B>To:</B> Brian Stark<BR><B>Subject:</B> Re: from =
IRQs to INTs and back<BR></FONT><BR></DIV>=0A=
<DIV>=0A=
<P><FONT size=3D2>Thanks extra mucho, this looks like exactly what I =
need.&nbsp; I'll check<BR>all the software to make sure it is "right" =
and if I'm still not<BR>getting interrupted I'll let you know.&nbsp; I'd =
like to get past at least<BR>this sometime today.&nbsp; I have an HVAC =
problem at home so I will probably<BR>be working from home in the =
afternoon but that's not all the different<BR>than working from Campbell =
as far as your concerned ~:^)<BR><BR>Tanks,<BR><BR>a<BR><BR>PS What =
customer?&nbsp; What's the dileo?<BR><BR>On Thu, 14 Jun 2007 21:56:33 =
-0700 "Brian Stark"<BR>&lt;brian.stark@onstor.com&gt; wrote:<BR><BR>&gt; =
Andy,<BR>&gt;<BR>&gt; I was at a customer for most of the afternoon, so =
today wasn't good.<BR>&gt; I could do some work on this tomorrow, but =
I'll have to balance it<BR>&gt; around a doc appt that my wife has at =
11am.&nbsp; I could also do it on<BR>&gt; Monday, which would probably =
be better for me so that I can finish up<BR>&gt; some stuff on Cougar =
tomorrow.&nbsp; Let me know what you =
think.&nbsp;&nbsp;&nbsp;<BR>&gt;<BR>&gt; Here's how the interrupts are =
wired:<BR>&gt;<BR>&gt; Cirrus<BR>&gt;<BR>&gt; =
Socket&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PCI =
Interrupt&nbsp;&nbsp; Signal name&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RM9K<BR>&gt; =
interrupt<BR>&gt;<BR>&gt; A&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTB_L&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPD_INTB_L<BR>&gt; INT8_L =
(IM10) B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTA_L<BR>&gt; =
SPD_INTA_L&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
INT9_L (IM11)<BR>&gt;<BR>&gt; TI<BR>&gt;<BR>&gt; =
Socket&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PCI =
Interrupt&nbsp;&nbsp; Signal name&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RM9K<BR>&gt; =
interrupt<BR>&gt;<BR>&gt; A&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTA_L&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SPD_INTA_L<BR>&gt; INT9_L =
(IM11) B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; INTB_L<BR>&gt; =
SPD_INTB_L&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
INT8_L (IM10)<BR>&gt;<BR>&gt;<BR>&gt; I know that functional interrupts =
are being used on both parts.&nbsp; The<BR>&gt; functional interrupt =
fires whenever there's a status change on the INT<BR>&gt; signal on the =
PC Card side, but I don't know exactly which events the<BR>&gt; OS is =
looking for and then what it does after it sees an interrupt<BR>&gt; =
(maybe this is when it polls the Status register to see if the =
card<BR>&gt; is ready?). If interrupts are disabled, the OS isn't happy =
and will<BR>&gt; hang when you access the CF.<BR>&gt;<BR>&gt; For the =
Cirrus part, interrupts are enabled in the ExCA Interrupt and<BR>&gt; =
General Control Register (offset 3).&nbsp; Here's how the register =
looks:<BR>&gt;<BR>&gt; RCON-FC0:5 &gt; mm -b b8000000 3; dm -b b8000001 =
1<BR>&gt;<BR>&gt; 0xb8000001:&nbsp; 64<BR>&gt;<BR>&gt; The '4' means =
that socket A is hooked to INTB_L.&nbsp; The register for<BR>&gt; socket =
B will have a '3' in the lower nibble, which corresponds to<BR>&gt; =
INTA_L.&nbsp; By the way, there's no reason the Cirrus part can't =
be<BR>&gt; programmed to reverse the interrupt routing and match the TI =
part.<BR>&gt; Unfortunately, the TI part doesn't have the flexibility to =
match the<BR>&gt; routing programmed into the Cirrus.&nbsp; Socket A =
-&gt; INTB_L with the<BR>&gt; Cirrus -- what was Max =
thinking!<BR>&gt;<BR>&gt; There is also another class of interrupts =
called management interrupts<BR>&gt; that are triggered by changes in =
card status -- these events are all<BR>&gt; disabled in ExCA Mgmt =
Interrupt Config (offset 5).&nbsp; Maybe these are<BR>&gt; the events =
that are being polled, e.g. card plugged in or pulled =
out?<BR>&gt;<BR>&gt; Unless you want to just rely on what the PROM has =
already done, the TI<BR>&gt; part is a bit different in terms of setting =
up interrupts, but we can<BR>&gt; get to that after the Cirrus part is =
working.&nbsp; At a minimum, the OS<BR>&gt; has to take into account the =
reversal shown above and write the<BR>&gt; appropriate values into the =
ExCA Interrupt and General Control<BR>&gt; Register for each =
socket.<BR>&gt;<BR>&gt;<BR>&gt;<BR>&gt; =
Brian<BR>&gt;<BR>&gt;&nbsp;<BR>&gt;<BR>&gt; &gt; -----Original =
Message-----<BR>&gt; &gt; From: Andy Sharp<BR>&gt; &gt; Sent: Thursday, =
June 14, 2007 1:55 PM<BR>&gt; &gt; To: Brian Stark<BR>&gt; &gt; Subject: =
from IRQs to INTs and back<BR>&gt; &gt;<BR>&gt; &gt; Hey Brian,<BR>&gt; =
&gt;<BR>&gt; &gt; So, I need to get a definitive statement about how =
the<BR>&gt; &gt; interrupts are set up on both the Cirrus and the TI =
parts.&nbsp; I<BR>&gt; &gt; seem to be making some progress with the =
pd6729, but I'm not<BR>&gt; &gt; getting any interrupts.&nbsp; It looks =
like Dan never did either<BR>&gt; &gt; -- he apparently hacked the =
driver to operate in some kind of<BR>&gt; &gt; polled mode.&nbsp; Which =
shouldn't have been necessary, but for<BR>&gt; &gt; some reason he did =
so anyway.<BR>&gt; &gt;<BR>&gt; &gt; I'm thinking that maybe the best =
thing to do is run the thing<BR>&gt; &gt; on the analyzer again and this =
time look for interrupts<BR>&gt; &gt; generated by the part, to make =
sure that they are being<BR>&gt; &gt; generated, and then set about =
trying to get them set up right<BR>&gt; &gt; in the software.<BR>&gt; =
&gt;<BR>&gt; &gt; Any chance we can do some analyzer runs today or =
tomorrow?<BR>&gt; &gt;<BR>&gt; &gt; Thanks mucho,<BR>&gt; &gt;<BR>&gt; =
&gt; a<BR>&gt; &gt;<BR></FONT></P></DIV></BODY></HTML>
------_=_NextPart_001_01C7AF7B.EAF31EBD--
