Fan speed control responsive to power status
Systems and methods include a fan and a fan controller configured to set a default speed of the fan. An initialization controller is configured to determine that the fan is powered on and to issue a control signal to the fan controller, responsive to the determination that the fan is powered on. The control signal overrides the default speed of the fan.
1 . A system, comprising:
a fan;
a fan controller configured to control a speed of the fan;
a baseboard management controller (BMC); and
an initialization controller configured to:
determine whether the fan is being initialized or is fully powered on;
prevent the fan controller from sending control signals to the fan that override a default speed of the fan while the fan is being initialized;
issue a first control signal to the fan controller, responsive to a determination that the fan is fully powered on, that enables the fan controller to send a first set of control signals to the fan that override the default speed of the fan, wherein the first control signal causes the fan controller to override a second control signal issued by the BMC; and
responsive to receiving a readiness signal from the BMC, halt the first control signal to the fan controller to enable the fan controller to send a second set of control signals to the fan based on the second control signal issued by the BMC.
2 . The system of claim 1 , wherein the fan controller includes a first input that specifies the default speed of the fan and a second input that receives the first control signal and that specifies a second speed of the fan.
3 . The system of claim 2 , wherein the default speed of the fan is zero and the second speed of the fan is a maximum fan speed.
4 . The system of claim 1 , further comprising a power controller configured to send a fan powered signal to the initialization controller that indicates that the fan is powered on, wherein the initialization controller is further configured to determine that the fan is powered on responsive to the fan powered signal.
5 . The system of claim 1 , wherein the BMC is configured to issue a fan programming signal to the fan controller that overrides the default speed of the fan.
6 . The system of claim 5 , wherein the BMC is further configured to issue the readiness signal to the initialization controller.
7 . The system of claim 5 , wherein the BMC is further configured to issue the fan programming signal using a serial bus that stores a fan speed value in a register of the fan controller.
8 . The system of claim 7 , wherein the first control signal further overrides the fan speed value of the fan controller.
9 . The system of claim 1 , further comprising a power supply that supplies power to the fan controller and to the fan, wherein the fan takes longer to power up than does the fan controller.
10 . The system of claim 1 , wherein the system includes at least one additional fan that is controlled by the fan controller, wherein the fan controller is further configured to set a default speed of the at least one additional fan, and wherein the first control signal of the initialization controller further overrides the default speed of the at least one additional fan.
11 . A method, comprising:
determining whether a fan is being initialized or is fully powered on;
preventing a fan controller from sending control signals to the fan that override a default speed of the fan while the fan is being initialized;
issuing a first control signal to the fan controller, responsive to a determination that the fan is fully powered on, that enables the fan controller to send a first set of control signals to the fan that override a default fan speed setting of the fan controller, wherein the first control signal causes the fan controller to override a second control signal issued by a baseboard management controller (BMC); and
responsive to receiving a readiness signal from the BMC, halting the first control signal to the fan controller to enable the fan controller to send a second set of control signals to the fan based on the second control signal issued by the BMC.
12 . The method of claim 11 , wherein the default fan speed setting of the fan controller is zero and wherein the first control signal sets a maximum fan speed.
13 . The method of claim 11 , further comprising:
determining that the BMC is ready to take control of the fan.
14 . The method of claim 13 , further comprising communicating a fan programming signal to the fan controller with the BMC, using a serial bus that stores a fan speed value in a register of the fan controller.
15 . The method of claim 11 , further comprising providing power to the fan and to the fan controller, wherein the fan takes longer to power up than does the fan controller.
16 . A controller, comprising:
a fan controller interface configured to:
prevent a fan controller from sending control signals to a fan that override a default speed of the fan and send a first control signal to the fan controller that enables the fan controller to send a first set of control signals to the fan that override the default speed of the fan, wherein the first control signal causes the fan controller to override a second control signal issued by a baseboard management controller (BMC);
a power controller interface configured to receive a fan powered signal that indicates the fan is powered on; and
initialization logic configured to:
determine whether the fan is being initialized or is fully powered on;
trigger the fan controller interface to send the first control signal responsive to the fan powered signal; and
responsive to receiving a readiness signal from the BMC, halt the first control signal to the fan controller to enable the fan controller to send a second set of control signals to the fan based on the second control signal issued by the BMC.
17 . The controller of claim 16 , further comprising a BMC interface configured to receive a readiness signal that indicates the BMC is ready to control the fan.
18 . The controller of claim 17 , wherein the initialization logic is further configured to trigger the BMC interface to communicate with the BMC after receiving the readiness signal and to determine that the BMC has become non-responsive to communications on the BMC interface.
19 . The controller of claim 18 , wherein the initialization logic is further configured to trigger the fan controller interface to resume the first control signal responsive to the determination that the BMC is not responsive.