openbmc / entity-manager

Run-time JSON driven system configuration manager
Other
26 stars 48 forks source link

Not support FAN dual rotator to one present pin #17

Open alice-jabil opened 2 years ago

alice-jabil commented 2 years ago

Hi All,

I am working on to add dual-rotor fans in my BMC. I added the below code. But the Fan_#_b does not have present property(cause of the present pin could use only one) , it will trigger the under threshold event due to no present judgment.

How do support dual-rotor in same present pin?


{
    "Exposes": [
        {
            "Name": "Node Manager Sensor",
            "Type": "NMSensor"
        },
        {
            "Class": "AST2600-SRAM",
            "Name": "Chassis Intrusion Sensor",
            "Type": "ChassisIntrusionSensor"
        },
        {
            "BindConnector": "System Fan connector 1",
            "Index": 0,
            "MaxReading": 28000,
            "Name": "Fan 1 a",
            "Bus": 3,
            "Address": "0x20",
            "Presence": {
                "PinName": "FAN1_PRSNT_N",
                "Polarity": "Low"
            },
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 1",
            "Index": 1,
            "MaxReading": 28000,
            "Name": "Fan 1 b",
            "Bus": 3,
            "Address": "0x20",
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 2",
            "Index": 2,
            "MaxReading": 28000,
            "Name": "Fan 2 a",
            "Bus": 3,
            "Address": "0x20",
            "Presence": {
                "PinName": "FAN2_PRSNT_N",
                "Polarity": "Low"
            },
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 2",
            "Index": 3,
            "MaxReading": 28000,
            "Name": "Fan 2 b",
            "Bus": 3,
            "Address": "0x20",
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 3",
            "Index": 4,
            "MaxReading": 28000,
            "Name": "Fan 3 a",
            "Bus": 3,
            "Address": "0x20", 
            "Presence": {
                "PinName": "FAN3_PRSNT_N",
                "Polarity": "Low"
            },
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 3",
            "Index": 5,
            "MaxReading": 28000,
            "Name": "Fan 3 b",
            "Bus": 3,
            "Address": "0x20", 
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 4",
            "Index": 0,
            "MaxReading": 28000,
            "Name": "Fan 4 a",
            "Bus": 3,
            "Address": "0x23", 
            "Presence": {
                "PinName": "FAN4_PRSNT_N",
                "Polarity": "Low"
            },
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 4",
            "Index": 1,
            "MaxReading": 28000,
            "Name": "Fan 4 b",
            "Bus": 3,
            "Address": "0x23", 
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 5",
            "Index": 2,
            "MaxReading": 28000,
            "Name": "Fan 5 a",
            "Bus": 3,
            "Address": "0x23", 
            "Presence": {
                "PinName": "FAN5_PRSNT_N",
                "Polarity": "Low"
            },
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 5",
            "Index": 3,
            "MaxReading": 28000,
            "Name": "Fan 5 b",
            "Bus": 3,
            "Address": "0x23", 
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 6",
            "Index": 4,
            "MaxReading": 28000,
            "Name": "Fan 6 a",
            "Bus": 3,
            "Address": "0x23",
            "Presence": {
                "PinName": "FAN6_PRSNT_N",
                "Polarity": "Low"
            },
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "BindConnector": "System Fan connector 6",
            "Index": 5,
            "MaxReading": 28000,
            "Name": "Fan 6 b",
            "Bus": 3,
            "Address": "0x23", 
            "Thresholds": [
                {
                    "Direction": "less than",
                    "Name": "lower critical",
                    "Severity": 1,
                    "Value": 1000
                },
                {
                    "Direction": "less than",
                    "Name": "lower non critical",
                    "Severity": 0,
                    "Value": 2000
                }
            ],
            "Type": "I2CFan"
        },
        {
            "Name": "System Fan connector 1",
            "PwmName": "Pwm1",
            "Pwm": 0,
            "Tachs": [
                0,1
            ],
            "Type": "IntelFanConnector"
        },
        {
            "Name": "System Fan connector 2",
            "PwmName": "Pwm2",
            "Pwm": 2,
            "Tachs": [
                2,3
            ],
            "Type": "IntelFanConnector"
        },
        {
            "Name": "System Fan connector 3",
            "PwmName": "Pwm3",
            "Pwm": 4,
            "Tachs": [
                4,5
            ],
            "Type": "IntelFanConnector"
        },
        {
            "Name": "System Fan connector 4",
            "PwmName": "Pwm4",
            "Pwm": 0,
            "Tachs": [
                0,1
            ],
            "Type": "IntelFanConnector"
        },
        {
            "Name": "System Fan connector 5",
            "PwmName": "Pwm5",
            "Pwm": 2,
            "Tachs": [
                2,3
            ],
            "Type": "IntelFanConnector"
        },
        {
            "Name": "System Fan connector 6",
            "PwmName": "Pwm6",
            "Pwm": 4,
            "Tachs": [
                4,5
            ],
            "Type": "IntelFanConnector"
        },
        {
            "Class": "fan",
            "FFGainCoefficient": 5.0,
            "FFOffCoefficient": 0.0,
            "ICoefficient": 0.0,
            "ILimitMax": 0.0,
            "ILimitMin": 0.0,
            "Inputs": [
                "Fan_1_a",
                "Fan_2_a",
                "Fan_3_a",
                "Fan_4_a",
                "Fan_5_a",
                "Fan_6_a"
            ],
            "Name": "System_Fan",
            "NegativeHysteresis": 0.0,
            "OutLimitMax": 60.0,
            "OutLimitMin": 30.0,
            "Outputs": [
                "Pwm1",
                "Pwm2",
                "Pwm3",
                "Pwm4",
                "Pwm5",
                "Pwm6"
            ],
            "PCoefficient": 0.0,
            "PositiveHysteresis": 0.0,
            "SlewNeg": 0.0,
            "SlewPos": 0.0,
            "Type": "Pid",
            "Zones": [
                "Zone1"
            ]
        },
        {
            "Class": "Floor",
            "Inputs": [
                "PCIe2_Inlet"
            ],
            "Name": "PCIe2_Inlet",
            "NegativeHysteresis": 1,
            "Output": [
                60.0,
                80.0
            ],
            "PositiveHysteresis": 0,
            "Reading": [
                60,
                70
            ],
            "Type": "Stepwise",
            "Zones": [
                "Zone1"
            ]
        },
        {
            "FailSafePercent": 60,
            "MinThermalOutput": 60,
            "Name": "Zone1",
            "Type": "Pid.Zone"
        }

    ],
    "Name": "chassis",
    "Probe": [
        "TRUE"
    ],
    "Type": "Chassis",
    "xyz.openbmc_project.Inventory.Decorator.Asset": {
        "Manufacturer": "$PRODUCT_MANUFACTURER",
        "Model": "$PRODUCT_PRODUCT_NAME",
        "PartNumber": "$PRODUCT_PART_NUMBER",
        "SerialNumber": "$PRODUCT_SERIAL_NUMBER"
    },
    "xyz.openbmc_project.Inventory.Decorator.AssetTag": {
        "AssetTag": "$PRODUCT_ASSET_TAG"
    },
    "xyz.openbmc_project.Inventory.Item.System": {}
}