Connecting MSI using IoConnectInterruptEx. [How to debug??]

Hi All,
I have a new controller which supports MSI mode of interrupts. I am
trying to use the IoConnectInterruptEx in order to use the interrupt
capabilities. This API just connects the line based interrupt always. I
checked the capabilities pointer in the config space and it says that
the hardware is MSI capable.

Question :

  1. What else can I verify from the hardware side to make sure that the
    combination of my PCIE card and the chipset [which has PCIE slots and
    hence should support MSI] is capable of using the MSI. I suppose any
    chipset supporting the PCIE should be capable of using MSI.

  2. If 1. is OK what are the common problems that can cause MSI not to
    connect.?

Any directions to debug this issue are highly appriciated.

  • Thanx,
  • Aj

Ajitabh,

Before you can connect msi interrupt, you need to declare msi caps in
your inf file. Here is an example. Also see answers inline.

[BCM5750_LHinst.NTx86.6.0.hw]

AddReg = MsiSupportStd

[MsiSupportStd]

HKR, “Interrupt Management”, 0x00000010

HKR, “Interrupt Management\MessageSignaledInterruptProperties”,
0x00000010

HKR, “Interrupt Management\MessageSignaledInterruptProperties”,
MSISupported, 0x00010001, 1

Calvin Guan

NetXtreme NTX Miniport

Broadcom Corporation @ Irvine Calfiornia

Tel: (949) 926-7556

Connecting Everything(r)


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ajitabh Saxena
Sent: Tuesday, January 16, 2007 1:58 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

Hi All,

I have a new controller which supports MSI mode of interrupts. I am
trying to use the IoConnectInterruptEx in order to use the interrupt
capabilities. This API just connects the line based interrupt always. I
checked the capabilities pointer in the config space and it says that
the hardware is MSI capable.

Question :

  1. What else can I verify from the hardware side to make sure that the
    combination of my PCIE card and the chipset [which has PCIE slots and
    hence should support MSI] is capable of using the MSI. I suppose any
    chipset supporting the PCIE should be capable of using MSI.

[CG] Check the MSI caps structure in the config space to make sure:

a) MSI is enabled.

b) Number of messages being advertised and enabled.

c) Message Address is properly initialized.

d) Setup a bus trace to verify the chip correctly DMA to the message
address instead of sending an ASSERT_INTA TLP towards the root complex.

  1. If 1. is OK what are the common problems that can cause MSI not to
    connect.?

[CG] forget to declare in the inf or MSI caps can’t be initialized for
some reason, or the chipset doesn’t support MSI correctly.

Any directions to debug this issue are highly appriciated.

  • Thanx,

  • Aj


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Already done that.


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Calvin (Hao)
Guan
Sent: Tuesday, January 16, 2007 2:32 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

Ajitabh,

Before you can connect msi interrupt, you need to declare msi caps in
your inf file. Here is an example. Also see answers inline.

[BCM5750_LHinst.NTx86.6.0.hw]

AddReg = MsiSupportStd

[MsiSupportStd]

HKR, “Interrupt Management”, 0x00000010

HKR, “Interrupt Management\MessageSignaledInterruptProperties”,
0x00000010

HKR, “Interrupt Management\MessageSignaledInterruptProperties”,
MSISupported, 0x00010001, 1

Calvin Guan

NetXtreme NTX Miniport

Broadcom Corporation @ Irvine Calfiornia

Tel: (949) 926-7556

Connecting Everything(r)


From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ajitabh Saxena
Sent: Tuesday, January 16, 2007 1:58 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

Hi All,

I have a new controller which supports MSI mode of interrupts. I am
trying to use the IoConnectInterruptEx in order to use the interrupt
capabilities. This API just connects the line based interrupt always. I
checked the capabilities pointer in the config space and it says that
the hardware is MSI capable.

Question :

  1. What else can I verify from the hardware side to make sure that the
    combination of my PCIE card and the chipset [which has PCIE slots and
    hence should support MSI] is capable of using the MSI. I suppose any
    chipset supporting the PCIE should be capable of using MSI.

[CG] Check the MSI caps structure in the config space to make sure:

a) MSI is enabled.

b) Number of messages being advertised and enabled.

c) Message Address is properly initialized.

d) Setup a bus trace to verify the chip correctly DMA to the message
address instead of sending an ASSERT_INTA TLP towards the root complex.

  1. If 1. is OK what are the common problems that can cause MSI not to
    connect.?

[CG] forget to declare in the inf or MSI caps can’t be initialized for
some reason, or the chipset doesn’t support MSI correctly.

Any directions to debug this issue are highly appriciated.

  • Thanx,

  • Aj


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

What arguments are you supplying to IoConnectInterruptEx and which OS
are you running on?

Beverly

On 1/16/07, Ajitabh Saxena wrote:
>
> Already done that.
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of
> Calvin (Hao) Guan
> Sent: Tuesday, January 16, 2007 2:32 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
> debug??]
>
>
>
>
> Ajitabh,
>
>
>
> Before you can connect msi interrupt, you need to declare msi caps in your
> inf file. Here is an example. Also see answers inline.
>
>
>
> [BCM5750_LHinst.NTx86.6.0.hw]
>
> AddReg = MsiSupportStd
>
>
>
> [MsiSupportStd]
>
> HKR, “Interrupt Management”, 0x00000010
>
> HKR, “Interrupt
> Management\MessageSignaledInterruptProperties”, 0x00000010
>
> HKR, “Interrupt
> Management\MessageSignaledInterruptProperties”,
> MSISupported, 0x00010001, 1
>
>
>
>
>
>
> Calvin Guan
>
> NetXtreme NTX Miniport
>
> Broadcom Corporation @ Irvine Calfiornia
>
> Tel: (949) 926-7556
>
> Connecting Everything(r)
>
>

>
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of
> Ajitabh Saxena
> Sent: Tuesday, January 16, 2007 1:58 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to debug??]
>
>
>
>
> Hi All,
>
>
> I have a new controller which supports MSI mode of interrupts. I am
> trying to use the IoConnectInterruptEx in order to use the interrupt
> capabilities. This API just connects the line based interrupt always. I
> checked the capabilities pointer in the config space and it says that the
> hardware is MSI capable.
>
>
>
>
>
>
>
>
> Question :
>
>
>
>
>
> 1. What else can I verify from the hardware side to make sure that the
> combination of my PCIE card and the chipset [which has PCIE slots and hence
> should support MSI] is capable of using the MSI. I suppose any chipset
> supporting the PCIE should be capable of using MSI.
>
>
>
>
> [CG] Check the MSI caps structure in the config space to make sure:
>
> a) MSI is enabled.
>
> b) Number of messages being advertised and enabled.
>
> c) Message Address is properly initialized.
>
> d) Setup a bus trace to verify the chip correctly DMA to the message
> address instead of sending an ASSERT_INTA TLP towards the root complex.
>
>
>
>
> 2. If 1. is OK what are the common problems that can cause MSI not to
> connect.?
>
> [CG] forget to declare in the inf or MSI caps can’t be initialized for some
> reason, or the chipset doesn’t support MSI correctly.
>
>
>
>
>
>
>
>
>
> Any directions to debug this issue are highly appriciated.
>
>
> - Thanx,
>
>
> - Aj
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer

Here are the parameters that I am providing for MSI connection.

========================================================================

DebugPrint(BRCM_COMP_ID,BCM_ERR_LEVEL,"Trying to
connect MSI interrupt...\n");
IntrParameters.Version = CONNECT_MESSAGE_BASED;

IntrParameters.MessageBased.MessageServiceRoutine =
BRCMServiceInterruptMSG;

IntrParameters.MessageBased.FallBackServiceRoutine =
BRCMLineBaseIntrRoutine;

IntrParameters.MessageBased.ConnectionContext.InterruptMessageTable
= &pDevExt->ConnContext.u.IntrMsgTab;
IntrParameters.MessageBased.SynchronizeIrql
= PASSIVE_LEVEL;

IntrParameters.MessageBased.PhysicalDeviceObject
= pDevExt->pMyPDO;
IntrParameters.MessageBased.ServiceContext
= pDevExt;
IntrParameters.MessageBased.SpinLock
= NULL; // Let the system manage the isr spin lock.
IntrParameters.MessageBased.FloatingSave
= FALSE;

========================================================================

Thanks

  • Aj
    -----Original Message-----
    From: xxxxx@lists.osr.com
    [mailto:xxxxx@lists.osr.com] On Behalf Of Beverly Brown
    Sent: Tuesday, January 16, 2007 2:53 PM
    To: Windows System Software Devs Interest List
    Subject: Re: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
    debug??]

What arguments are you supplying to IoConnectInterruptEx and which OS
are you running on?

Beverly

On 1/16/07, Ajitabh Saxena wrote:
>
> Already done that.
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Calvin (Hao)
> Guan
> Sent: Tuesday, January 16, 2007 2:32 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] Connecting MSI using IoConnectInterruptEx. [How
> to debug??]
>
>
>
>
> Ajitabh,
>
>
>
> Before you can connect msi interrupt, you need to declare msi caps in
> your inf file. Here is an example. Also see answers inline.
>
>
>
> [BCM5750_LHinst.NTx86.6.0.hw]
>
> AddReg = MsiSupportStd
>
>
>
> [MsiSupportStd]
>
> HKR, "Interrupt Management", 0x00000010
>
> HKR, "Interrupt
> Management\MessageSignaledInterruptProperties", 0x00000010
>
> HKR, "Interrupt
> Management\MessageSignaledInterruptProperties",
> MSISupported, 0x00010001, 1
>
>
>
>
>
>
> Calvin Guan
>
> NetXtreme NTX Miniport
>
> Broadcom Corporation @ Irvine Calfiornia
>
> Tel: (949) 926-7556
>
> Connecting Everything(r)
>
>

>
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Ajitabh Saxena
> Sent: Tuesday, January 16, 2007 1:58 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
> debug??]
>
>
>
>
> Hi All,
>
>
> I have a new controller which supports MSI mode of interrupts. I
> am trying to use the IoConnectInterruptEx in order to use the
> interrupt capabilities. This API just connects the line based
> interrupt always. I checked the capabilities pointer in the config
> space and it says that the hardware is MSI capable.
>
>
>
>
>
>
>
>
> Question :
>
>
>
>
>
> 1. What else can I verify from the hardware side to make sure that the

> combination of my PCIE card and the chipset [which has PCIE slots and
> hence should support MSI] is capable of using the MSI. I suppose any
> chipset supporting the PCIE should be capable of using MSI.
>
>
>
>
> [CG] Check the MSI caps structure in the config space to make sure:
>
> a) MSI is enabled.
>
> b) Number of messages being advertised and enabled.
>
> c) Message Address is properly initialized.
>
> d) Setup a bus trace to verify the chip correctly DMA to the message
> address instead of sending an ASSERT_INTA TLP towards the root
complex.
>
>
>
>
> 2. If 1. is OK what are the common problems that can cause MSI not to
> connect.?
>
> [CG] forget to declare in the inf or MSI caps can't be initialized for

> some reason, or the chipset doesn't support MSI correctly.
>
>
>
>
>
>
>
>
>
> Any directions to debug this issue are highly appriciated.
>
>
> - Thanx,
>
>
> - Aj
>
>
> ---
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> ListServer/Forum
> ---
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> ListServer/Forum
> ---
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> ListServer/Forum

---
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
ListServer/Forum

Yes, but which OS, since MSI is not really supported before Vista?


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
http://www.windrvr.com
Remove StopSpam from the email to reply

“Ajitabh Saxena” wrote in message
news:xxxxx@ntdev…
Here are the parameters that I am providing for MSI connection.

========================================================================
================================
DebugPrint(BRCM_COMP_ID,BCM_ERR_LEVEL,“Trying to
connect MSI interrupt…\n”);
IntrParameters.Version = CONNECT_MESSAGE_BASED;

IntrParameters.MessageBased.MessageServiceRoutine =
BRCMServiceInterruptMSG;

IntrParameters.MessageBased.FallBackServiceRoutine =
BRCMLineBaseIntrRoutine;

IntrParameters.MessageBased.ConnectionContext.InterruptMessageTable
= &pDevExt->ConnContext.u.IntrMsgTab;
IntrParameters.MessageBased.SynchronizeIrql
= PASSIVE_LEVEL;

IntrParameters.MessageBased.PhysicalDeviceObject
= pDevExt->pMyPDO;
IntrParameters.MessageBased.ServiceContext
= pDevExt;
IntrParameters.MessageBased.SpinLock
= NULL; // Let the system manage the isr spin lock.
IntrParameters.MessageBased.FloatingSave
= FALSE;

========================================================================
================================

Thanks
- Aj
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Beverly Brown
Sent: Tuesday, January 16, 2007 2:53 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

What arguments are you supplying to IoConnectInterruptEx and which OS
are you running on?

Beverly

On 1/16/07, Ajitabh Saxena wrote:
>
> Already done that.
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Calvin (Hao)
> Guan
> Sent: Tuesday, January 16, 2007 2:32 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] Connecting MSI using IoConnectInterruptEx. [How
> to debug??]
>
>
>
>
> Ajitabh,
>
>
>
> Before you can connect msi interrupt, you need to declare msi caps in
> your inf file. Here is an example. Also see answers inline.
>
>
>
> [BCM5750_LHinst.NTx86.6.0.hw]
>
> AddReg = MsiSupportStd
>
>
>
> [MsiSupportStd]
>
> HKR, “Interrupt Management”, 0x00000010
>
> HKR, “Interrupt
> Management\MessageSignaledInterruptProperties”, 0x00000010
>
> HKR, “Interrupt
> Management\MessageSignaledInterruptProperties”,
> MSISupported, 0x00010001, 1
>
>
>
>
>
>
> Calvin Guan
>
> NetXtreme NTX Miniport
>
> Broadcom Corporation @ Irvine Calfiornia
>
> Tel: (949) 926-7556
>
> Connecting Everything(r)
>
>

>
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Ajitabh Saxena
> Sent: Tuesday, January 16, 2007 1:58 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
> debug??]
>
>
>
>
> Hi All,
>
>
> I have a new controller which supports MSI mode of interrupts. I
> am trying to use the IoConnectInterruptEx in order to use the
> interrupt capabilities. This API just connects the line based
> interrupt always. I checked the capabilities pointer in the config
> space and it says that the hardware is MSI capable.
>
>
>
>
>
>
>
>
> Question :
>
>
>
>
>
> 1. What else can I verify from the hardware side to make sure that the

> combination of my PCIE card and the chipset [which has PCIE slots and
> hence should support MSI] is capable of using the MSI. I suppose any
> chipset supporting the PCIE should be capable of using MSI.
>
>
>
>
> [CG] Check the MSI caps structure in the config space to make sure:
>
> a) MSI is enabled.
>
> b) Number of messages being advertised and enabled.
>
> c) Message Address is properly initialized.
>
> d) Setup a bus trace to verify the chip correctly DMA to the message
> address instead of sending an ASSERT_INTA TLP towards the root
complex.
>
>
>
>
> 2. If 1. is OK what are the common problems that can cause MSI not to
> connect.?
>
> [CG] forget to declare in the inf or MSI caps can’t be initialized for

> some reason, or the chipset doesn’t support MSI correctly.
>
>
>
>
>
>
>
>
>
> Any directions to debug this issue are highly appriciated.
>
>
> - Thanx,
>
>
> - Aj
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Vista 32-bit RTM.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Don Burn
Sent: Tuesday, January 16, 2007 4:10 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

Yes, but which OS, since MSI is not really supported before Vista?


Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
http://www.windrvr.com Remove StopSpam from the email to reply

“Ajitabh Saxena” wrote in message
news:xxxxx@ntdev…
Here are the parameters that I am providing for MSI connection.

========================================================================
================================
DebugPrint(BRCM_COMP_ID,BCM_ERR_LEVEL,“Trying to
connect MSI interrupt…\n”);
IntrParameters.Version = CONNECT_MESSAGE_BASED;

IntrParameters.MessageBased.MessageServiceRoutine =
BRCMServiceInterruptMSG;

IntrParameters.MessageBased.FallBackServiceRoutine =
BRCMLineBaseIntrRoutine;

IntrParameters.MessageBased.ConnectionContext.InterruptMessageTable
= &pDevExt->ConnContext.u.IntrMsgTab;
IntrParameters.MessageBased.SynchronizeIrql
= PASSIVE_LEVEL;

IntrParameters.MessageBased.PhysicalDeviceObject
= pDevExt->pMyPDO;
IntrParameters.MessageBased.ServiceContext
= pDevExt;
IntrParameters.MessageBased.SpinLock
= NULL; // Let the system manage the isr spin lock.
IntrParameters.MessageBased.FloatingSave
= FALSE;

========================================================================
================================

Thanks
- Aj
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Beverly Brown
Sent: Tuesday, January 16, 2007 2:53 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

What arguments are you supplying to IoConnectInterruptEx and which OS
are you running on?

Beverly

On 1/16/07, Ajitabh Saxena wrote:
>
> Already done that.
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Calvin (Hao)
> Guan
> Sent: Tuesday, January 16, 2007 2:32 PM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] Connecting MSI using IoConnectInterruptEx. [How
> to debug??]
>
>
>
>
> Ajitabh,
>
>
>
> Before you can connect msi interrupt, you need to declare msi caps in
> your inf file. Here is an example. Also see answers inline.
>
>
>
> [BCM5750_LHinst.NTx86.6.0.hw]
>
> AddReg = MsiSupportStd
>
>
>
> [MsiSupportStd]
>
> HKR, “Interrupt Management”, 0x00000010
>
> HKR, “Interrupt
> Management\MessageSignaledInterruptProperties”, 0x00000010
>
> HKR, “Interrupt
> Management\MessageSignaledInterruptProperties”,
> MSISupported, 0x00010001, 1
>
>
>
>
>
>
> Calvin Guan
>
> NetXtreme NTX Miniport
>
> Broadcom Corporation @ Irvine Calfiornia
>
> Tel: (949) 926-7556
>
> Connecting Everything(r)
>
>

>
>
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Ajitabh Saxena
> Sent: Tuesday, January 16, 2007 1:58 PM
> To: Windows System Software Devs Interest List
> Subject: [ntdev] Connecting MSI using IoConnectInterruptEx. [How to
> debug??]
>
>
>
>
> Hi All,
>
>
> I have a new controller which supports MSI mode of interrupts. I
> am trying to use the IoConnectInterruptEx in order to use the
> interrupt capabilities. This API just connects the line based
> interrupt always. I checked the capabilities pointer in the config
> space and it says that the hardware is MSI capable.
>
>
>
>
>
>
>
>
> Question :
>
>
>
>
>
> 1. What else can I verify from the hardware side to make sure that the

> combination of my PCIE card and the chipset [which has PCIE slots and
> hence should support MSI] is capable of using the MSI. I suppose any
> chipset supporting the PCIE should be capable of using MSI.
>
>
>
>
> [CG] Check the MSI caps structure in the config space to make sure:
>
> a) MSI is enabled.
>
> b) Number of messages being advertised and enabled.
>
> c) Message Address is properly initialized.
>
> d) Setup a bus trace to verify the chip correctly DMA to the message
> address instead of sending an ASSERT_INTA TLP towards the root
complex.
>
>
>
>
> 2. If 1. is OK what are the common problems that can cause MSI not to
> connect.?
>
> [CG] forget to declare in the inf or MSI caps can’t be initialized for

> some reason, or the chipset doesn’t support MSI correctly.
>
>
>
>
>
>
>
>
>
> Any directions to debug this issue are highly appriciated.
>
>
> - Thanx,
>
>
> - Aj
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Question :

  1. What else can I verify from the hardware side to make sure that the
    combination of my PCIE card and the chipset [which has PCIE slots and
    hence should support MSI] is capable of using the MSI. I suppose any
    chipset supporting the PCIE should be capable of using MSI.

Ans::To check if MSI is supported or not you need to check the Capability list for MSI in your Device’s PCI Config Space

  1. If 1. is OK what are the common problems that can cause MSI not to
    connect.?

Ans:: 1. Invalid or No Inf based MSI support indication to OS.
2. You are requesting more Messages than actually supported by hardware.
3. Not running on Vista.

There is one very good article on this from Microsoft about MSI. that what needs to be done to indicate MSI support.
check this link www.microsoft.com/whdc/system/bus/PCI/MSI.mspx
If link diesnt show up google out “Message Signalled Interrupts”. you’ll get MSFT link i am talking about.
When i faced similar issue i use to check PCI Config space for my device in Message Address Register and Message Data register if they have some valid data otherwise they’ll be zeroed. use !pci from you debugger to view config space.
But if there is no drastic mistake specifying MSI suport in INF should solve your purpose.

One quick question the driver for your device is a Miniport Driver or standalone WDM Driver?
-Dhiren.

Standalone WDM. I verified all this already. I have the doc that you
mentioned.

Thanks,

  • Ajitabh

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of
xxxxx@yahoo.co.in
Sent: Wednesday, January 17, 2007 11:29 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] Connecting MSI using IoConnectInterruptEx. [How to
debug??]

Question :

  1. What else can I verify from the hardware side to make sure that the
    combination of my PCIE card and the chipset [which has PCIE slots and
    hence should support MSI] is capable of using the MSI. I suppose any
    chipset supporting the PCIE should be capable of using MSI.

Ans::To check if MSI is supported or not you need to check the
Capability list for MSI in your Device’s PCI Config Space

  1. If 1. is OK what are the common problems that can cause MSI not to
    connect.?

Ans:: 1. Invalid or No Inf based MSI support indication to OS.
2. You are requesting more Messages than actually supported by
hardware.
3. Not running on Vista.

There is one very good article on this from Microsoft about MSI. that
what needs to be done to indicate MSI support.
check this link www.microsoft.com/whdc/system/bus/PCI/MSI.mspx
If link diesnt show up google out “Message Signalled Interrupts”. you’ll
get MSFT link i am talking about.
When i faced similar issue i use to check PCI Config space for my device
in Message Address Register and Message Data register if they have some
valid data otherwise they’ll be zeroed. use !pci from you debugger
to view config space.
But if there is no drastic mistake specifying MSI suport in INF should
solve your purpose.

One quick question the driver for your device is a Miniport Driver or
standalone WDM Driver?
-Dhiren.


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Hi Ajitabh,

Were you able to enable MSI?
I compared the parameters you are giving to connect to MSI with parameters in mine driver.
The only difference i see in your and mine is of SynchronizeIrql. i am specifying the IRQL level passed for Interrupt resource.

Also there was one very basic mistake i did due to things were not working for me for sometime.
I hope you are correct.
In INF i was giving my device ID instead of correct device name.

so correct inf syntax should be:

[DeviceName.HW]
AddReg = igfx_My_HardwareDeviceSettings

[igfx_My_HardwareDeviceSettings]
; MSI Support
HKR, “Interrupt Management”, 0x00000010
HKR, “Interrupt Management\MessageSignaledInterruptProperties”, 0x00000010
HKR, “Interrupt Management\MessageSignaledInterruptProperties”, MSISupported, 0x00010001, 1

Please let me know what helped if any.
Thanks
Dhiren