2003-01-29 08:00:00

by Stanley Wang

[permalink] [raw]
Subject: Questions about CPCI Hot Swap driver.

Hi, Scott
I have some questions about your CPCI Hot Swap driver.
Would you mind helping me to clarify them ?
1. Why need we clear the EXT bit in the HS_CSR in "disable_slot()"?
I think the EXT bit has not been set at this point.
2. I wonder why we could not receive the #ENUM interrupt when we unpluged
the board after disabling the corresponding slot("echo 0 > power")? It
seems that the cpci_led_on has some mysterious side effect, but I could
not find any hints in the spec.
Could you help me?
Thanks in advance.

Best Regards,
-Stan
--
Opinions expressed are those of the author and do not represent Intel
Corporation



2003-01-29 16:33:55

by Rusty Lynch

[permalink] [raw]
Subject: Re: [Pcihpd-discuss] Questions about CPCI Hot Swap driver.

On Wed, 2003-01-29 at 00:06, Stanley Wang wrote:
> Hi, Scott
> I have some questions about your CPCI Hot Swap driver.
> Would you mind helping me to clarify them ?
> 1. Why need we clear the EXT bit in the HS_CSR in "disable_slot()"?
> I think the EXT bit has not been set at this point.

Wouldn't the EXT bit be set if the operator flips the ejector, and is
waiting for the system to respond?

> 2. I wonder why we could not receive the #ENUM interrupt when we unpluged
> the board after disabling the corresponding slot("echo 0 > power")? It
> seems that the cpci_led_on has some mysterious side effect, but I could
> not find any hints in the spec.
> Could you help me?
> Thanks in advance.
>
> Best Regards,
> -Stan
>

2003-01-29 21:45:41

by Scott Murray

[permalink] [raw]
Subject: Re: [Pcihpd-discuss] Questions about CPCI Hot Swap driver.

On 28 Jan 2003, Rusty Lynch wrote:

> On Wed, 2003-01-29 at 00:06, Stanley Wang wrote:
> > Hi, Scott
> > I have some questions about your CPCI Hot Swap driver.
> > Would you mind helping me to clarify them ?
> > 1. Why need we clear the EXT bit in the HS_CSR in "disable_slot()"?
> > I think the EXT bit has not been set at this point.
>
> Wouldn't the EXT bit be set if the operator flips the ejector, and is
> waiting for the system to respond?

Yes, that's the case.

> > 2. I wonder why we could not receive the #ENUM interrupt when we unpluged
> > the board after disabling the corresponding slot("echo 0 > power")? It
> > seems that the cpci_led_on has some mysterious side effect, but I could
> > not find any hints in the spec.
> > Could you help me?

With most hardware and the current driver, you will still receive an ENUM#
signal if you flip a card's toggle open after echoing 0 into its power
file. Since the write to the slot's power file triggers unconfiguration
of the driver for the attached device and removal of the kernel's PCI
representation, pulling the card out then triggers the improper removal
detection logic. I should probably only honor the write of 0 to the
power file for devices that are in extracting state via a toggle flip,
I'll experiment a bit to see if that model works.

However, if the peripheral card in question is a ZT5541, all bets are off,
since in my experiments here it seems to completely shut down when its
hotswap LED is toggled. I'm pretty sure this makes it non-compliant with
PICMG 2.1, but have not decided yet if disabling the attention file is
worthwhile. We could probably live without the attention file to toggle
the LED, and theoretically disable_slot should not need to call cpci_led_on
since clearing EXT is supposed to turn on the LED, but I've not seen
enough peripheral hardware yet to have a feel for how safe it would be to
rely on things working correctly on all boards.

Scott


--
Scott Murray
SOMA Networks, Inc.
Toronto, Ontario
e-mail: [email protected]



2003-01-30 00:45:52

by Stanley Wang

[permalink] [raw]
Subject: Re: [Pcihpd-discuss] Questions about CPCI Hot Swap driver.

On 28 Jan 2003, Rusty Lynch wrote:

> On Wed, 2003-01-29 at 00:06, Stanley Wang wrote:
> > Hi, Scott
> > I have some questions about your CPCI Hot Swap driver.
> > Would you mind helping me to clarify them ?
> > 1. Why need we clear the EXT bit in the HS_CSR in "disable_slot()"?
> > I think the EXT bit has not been set at this point.
>
> Wouldn't the EXT bit be set if the operator flips the ejector, and is
> waiting for the system to respond?
Thanks for your explanation.
I did not really know how to extract a board before reading your mail.
I always disable the slot (echo 0 > power) and yank the board, it is ok
to the damn zt5541 but not the proper way.

Best Regards,
-Stan

--
Opinions expressed are those of the author and do not represent Intel
Corporation


2003-01-30 00:50:37

by Stanley Wang

[permalink] [raw]
Subject: Re: [Pcihpd-discuss] Questions about CPCI Hot Swap driver.

On Wed, 29 Jan 2003, Scott Murray wrote:

[snip]
> > > 2. I wonder why we could not receive the #ENUM interrupt when we unpluged
> > > the board after disabling the corresponding slot("echo 0 > power")? It
> > > seems that the cpci_led_on has some mysterious side effect, but I could
> > > not find any hints in the spec.
> > > Could you help me?
>
> With most hardware and the current driver, you will still receive an ENUM#
> signal if you flip a card's toggle open after echoing 0 into its power
> file. Since the write to the slot's power file triggers unconfiguration
> of the driver for the attached device and removal of the kernel's PCI
> representation, pulling the card out then triggers the improper removal
> detection logic. I should probably only honor the write of 0 to the
> power file for devices that are in extracting state via a toggle flip,
> I'll experiment a bit to see if that model works.
>
> However, if the peripheral card in question is a ZT5541, all bets are off,
> since in my experiments here it seems to completely shut down when its
> hotswap LED is toggled. I'm pretty sure this makes it non-compliant with
> PICMG 2.1, but have not decided yet if disabling the attention file is
> worthwhile. We could probably live without the attention file to toggle
> the LED, and theoretically disable_slot should not need to call cpci_led_on
> since clearing EXT is supposed to turn on the LED, but I've not seen
> enough peripheral hardware yet to have a feel for how safe it would be to
> rely on things working correctly on all boards.
The only peripheral board I use is zt5541. And I found the all pci_config_read
return 0xffff after I illuminated the LED.
Thanks for your explanation, it helps me a lot.

Best Regards,
-Stan
--
Opinions expressed are those of the author and do not represent Intel
Corporation