Initial commit

This commit is contained in:
Your Name
2026-04-23 17:07:55 +08:00
commit b7e39e063b
16725 changed files with 1625565 additions and 0 deletions
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:fp5280g2 := "${THISDIR}/${BPN}:"
@@ -0,0 +1,464 @@
groups:
- name: air_cooled_zone0_fans
description: Group of fan inventory objects for air cooled zone 0
type: /xyz/openbmc_project/inventory
members:
- /system/chassis/motherboard/fan0
- /system/chassis/motherboard/fan1
- /system/chassis/motherboard/fan2
- /system/chassis/motherboard/fan3
- name: zone0_ambient
description: Group of ambient temperature sensors for zone 0
type: /xyz/openbmc_project/sensors
members:
- /temperature/inlet
- name: occ0_object
description: Dbus object containing OCC0 properties
type: /org/open_power/control
members:
- /occ0
- name: occ1_object
description: Dbus object containing OCC1 properties
type: /org/open_power/control
members:
- /occ1
- name: zone0_cores
description: Group of core temperature sensors for zone 0
type: /xyz/openbmc_project/sensors
members:
- /temperature/p0_core0_temp
- /temperature/p0_core1_temp
- /temperature/p0_core2_temp
- /temperature/p0_core3_temp
- /temperature/p0_core4_temp
- /temperature/p0_core5_temp
- /temperature/p0_core6_temp
- /temperature/p0_core7_temp
- /temperature/p0_core8_temp
- /temperature/p0_core9_temp
- /temperature/p0_core10_temp
- /temperature/p0_core11_temp
- /temperature/p0_core12_temp
- /temperature/p0_core13_temp
- /temperature/p0_core14_temp
- /temperature/p0_core15_temp
- /temperature/p0_core16_temp
- /temperature/p0_core17_temp
- /temperature/p0_core18_temp
- /temperature/p0_core19_temp
- /temperature/p0_core20_temp
- /temperature/p0_core21_temp
- /temperature/p0_core22_temp
- /temperature/p0_core23_temp
- /temperature/p1_core0_temp
- /temperature/p1_core1_temp
- /temperature/p1_core2_temp
- /temperature/p1_core3_temp
- /temperature/p1_core4_temp
- /temperature/p1_core5_temp
- /temperature/p1_core6_temp
- /temperature/p1_core7_temp
- /temperature/p1_core8_temp
- /temperature/p1_core9_temp
- /temperature/p1_core10_temp
- /temperature/p1_core11_temp
- /temperature/p1_core12_temp
- /temperature/p1_core13_temp
- /temperature/p1_core14_temp
- /temperature/p1_core15_temp
- /temperature/p1_core16_temp
- /temperature/p1_core17_temp
- /temperature/p1_core18_temp
- /temperature/p1_core19_temp
- /temperature/p1_core20_temp
- /temperature/p1_core21_temp
- /temperature/p1_core22_temp
- /temperature/p1_core23_temp
- name: zone0_dimms
description: Group of dimm temperature sensors for zone 0
type: /xyz/openbmc_project/sensors
members:
- /temperature/dimm0_temp
- /temperature/dimm1_temp
- /temperature/dimm2_temp
- /temperature/dimm3_temp
- /temperature/dimm4_temp
- /temperature/dimm5_temp
- /temperature/dimm6_temp
- /temperature/dimm7_temp
- /temperature/dimm8_temp
- /temperature/dimm9_temp
- /temperature/dimm10_temp
- /temperature/dimm11_temp
- /temperature/dimm12_temp
- /temperature/dimm13_temp
- /temperature/dimm14_temp
- /temperature/dimm15_temp
matches:
- name: propertiesChanged
parameters:
- object
- interface
- name: interfacesAdded
parameters:
- object
- name: nameOwnerChanged
parameters:
- object
- interface
signals:
- name: propertiesChanged
description: >
A property changed match
parameters:
- type
- object
- interface
- property
match: propertiesChanged
- name: interfacesAdded
description: >
An interfaces added match
parameters:
- type
- object
- interface
- property
match: interfacesAdded
- name: nameOwnerChanged
description: >
A name owner changed match
parameters:
match: nameOwnerChanged
methods:
- name: getProperties
description: >
Get the property values of the given group members
by performing a `GetProperty` method call on each
parameters:
- type
- name: nameHasOwner
description: >
A NameHasOwner method call to be performed on all event group members
parameters:
handlers:
- name: setProperty
description: >
Sets a value for the given object/interface/property
parameters:
- type
- name: setService
description: >
Sets the service name and ownership status for the given group
parameters:
- group
preconditions:
- name: property_states_match
description: >
All defined properties must match the values given to
enable a set speed event otherwise fan speeds are set to full
parameters:
- groups
- name: services_missing_owner
description: >
Any services missing an owner enable the events given otherwise
the events are removed/disabled
parameters:
actions:
- name: call_actions_based_on_timer
description: >
Sets up a list of actions to be invoked when the defined timer
expires (or for each expiration of a repeating timer)
parameters:
- timer
- actions
- name: default_floor_on_missing_owner
description: >
Set the fan floor to the default floor
- name: set_speed_on_missing_owner
description: >
Set fans to the given speed when any service within the group
no longer exists
parameters:
- speed
- name: set_request_speed_base_with_max
description: >
Set the base request speed of a zone to the max value of a group for
calculating a new target speed
- name: count_state_before_speed
description: Set the speed when a number of properties at a state
parameters:
- count
- property
- speed
- name: set_floor_from_average_sensor_value
description: Set floor speed from first entry with average less than key
parameters:
- map
- name: set_ceiling_from_average_sensor_value
description: Set ceiling speed based on key transition values with average
parameters:
- map
- name: set_net_increase_speed
description: >
Set the speed increase delta based on a factor applied to
the delta increase size times the given value and property's
value difference
parameters:
- property
- factor
- delta
- name: set_net_decrease_speed
description: >
Set the speed decrease delta based on a factor applied to
the delta decrease size times the given value and property's
value difference
parameters:
- property
- factor
- delta
events:
- name: default_fan_floor_on_service_fail
precondition:
name: services_missing_owner
groups:
- name: zone0_ambient
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
triggers:
- name: init
method: nameHasOwner
handler: setService
- name: signal
signal: nameOwnerChanged
handler: setService
events:
- name: default_fan_floor
groups:
- name: zone0_ambient
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
triggers:
- name: timer
interval: 5000000
type: oneshot
actions:
- name: default_floor_on_missing_owner
- name: high_speed_on_occ_service_fail
groups:
- name: occ0_object
interface: org.open_power.OCC.Status
property:
name: OccActive
type: bool
- name: occ1_object
interface: org.open_power.OCC.Status
property:
name: OccActive
type: bool
triggers:
- name: init
method: nameHasOwner
handler: setService
- name: signal
signal: nameOwnerChanged
handler: setService
actions:
- name: call_actions_based_on_timer
timer:
interval: 5000000
type: oneshot
actions:
- name: set_speed_on_missing_owner
speed:
value: 255
type: uint64_t
- name: missing_or_fails_before_high_speed_air
groups:
- name: air_cooled_zone0_fans
interface: xyz.openbmc_project.Inventory.Item
property:
name: Present
type: bool
- name: air_cooled_zone0_fans
interface: xyz.openbmc_project.State.Decorator.OperationalStatus
property:
name: Functional
type: bool
triggers:
- name: init
method: getProperties
handler: setProperty
- name: signal
signal: propertiesChanged
handler: setProperty
actions:
- name: count_state_before_speed
count: 1
property:
value: false
type: bool
speed:
value: 255
type: uint64_t
- name: set_air_cooled_speed_boundaries_based_on_ambient
groups:
- name: zone0_ambient
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
triggers:
- name: init
method: getProperties
handler: setProperty
- name: signal
signal: propertiesChanged
handler: setProperty
actions:
- name: set_floor_from_average_sensor_value
map:
value:
- 27000: 85
- 32000: 112
- 37000: 126
- 40000: 141
type: std::map<int64_t, uint64_t>
- name: set_ceiling_from_average_sensor_value
map:
value:
- 25000: 175
- 27000: 255
type: std::map<int64_t, uint64_t>
- name: occ_active_speed_changes
precondition:
name: property_states_match
groups:
- name: occ0_object
interface: org.open_power.OCC.Status
property:
name: OccActive
type: bool
value: true
- name: occ1_object
interface: org.open_power.OCC.Status
property:
name: OccActive
type: bool
value: true
triggers:
- name: init
method: getProperties
handler: setProperty
- name: signal
signal: interfacesAdded
handler: setProperty
- name: signal
signal: propertiesChanged
handler: setProperty
events:
- name: speed_control_sensors
groups:
- name: zone0_cores
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
- name: zone0_dimms
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
triggers:
- name: init
method: getProperties
handler: setProperty
- name: signal
signal: interfacesAdded
handler: setProperty
- name: signal
signal: propertiesChanged
handler: setProperty
- name: 1sec_speed_change_request_sampling
triggers:
- name: timer
interval: 1000000
type: repeating
actions:
# Speed changes based on core temps
- name: set_net_increase_speed
groups:
- name: zone0_cores
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
property:
value: 73000
type: int64_t
factor:
value: 1000
type: int64_t
delta:
value: 11
type: uint64_t
- name: set_net_decrease_speed
groups:
- name: zone0_cores
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
property:
value: 70000
type: int64_t
factor:
value: 1000
type: int64_t
delta:
value: 11
type: uint64_t
# Speed changes based on dimm temps
- name: set_net_increase_speed
groups:
- name: zone0_dimms
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
property:
value: 64000
type: int64_t
factor:
value: 1000
type: int64_t
delta:
value: 6
type: uint64_t
- name: set_net_decrease_speed
groups:
- name: zone0_dimms
interface: xyz.openbmc_project.Sensor.Value
property:
name: Value
type: int64_t
property:
value: 61000
type: int64_t
factor:
value: 1000
type: int64_t
delta:
value: 6
type: uint64_t
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:fp5280g2 := "${THISDIR}/${BPN}:"
@@ -0,0 +1,21 @@
fans:
- inventory: /system/chassis/motherboard/fan0
cooling_zone: 0
sensors:
- fan0_0
target_interface: xyz.openbmc_project.Control.FanPwm
- inventory: /system/chassis/motherboard/fan1
cooling_zone: 0
sensors:
- fan1_0
target_interface: xyz.openbmc_project.Control.FanPwm
- inventory: /system/chassis/motherboard/fan2
cooling_zone: 0
sensors:
- fan2_0
target_interface: xyz.openbmc_project.Control.FanPwm
- inventory: /system/chassis/motherboard/fan3
cooling_zone: 0
sensors:
- fan3_0
target_interface: xyz.openbmc_project.Control.FanPwm
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:fp5280g2 := "${THISDIR}/${BPN}:"
@@ -0,0 +1,9 @@
conditions:
- name: air_cooled_chassis
type: getProperty
properties:
- property: WaterCooled
interface: xyz.openbmc_project.Inventory.Decorator.CoolingType
path: /xyz/openbmc_project/inventory/system/chassis
type: bool
value: false
@@ -0,0 +1,2 @@
FILESEXTRAPATHS:prepend:fp5280g2 := "${THISDIR}/${BPN}:"
@@ -0,0 +1,15 @@
manager_configuration:
power_on_delay: 20
zone_configuration:
#Air cooled zones
- zone_conditions:
- name: air_cooled_chassis
zones:
- zone: 0
full_speed: 255
default_floor: 195
increase_delay: 5
decrease_interval: 30
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:fp5280g2 := "${THISDIR}/${BPN}:"
@@ -0,0 +1,87 @@
fans:
- inventory: /system/chassis/motherboard/fan0
functional_delay: 5
allowed_out_of_range_time: 30
deviation: 35
num_sensors_nonfunc_for_fan_nonfunc: 1
sensors:
- name: fan0_0
has_target: true
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 60
offset: 0
- name: fan0_1
has_target: false
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 55
offset: 0
- inventory: /system/chassis/motherboard/fan1
functional_delay: 5
allowed_out_of_range_time: 30
deviation: 15
num_sensors_nonfunc_for_fan_nonfunc: 1
sensors:
- name: fan1_0
has_target: true
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 60
offset: 0
- name: fan1_1
has_target: false
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 55
offset: 0
- inventory: /system/chassis/motherboard/fan2
functional_delay: 5
allowed_out_of_range_time: 30
deviation: 15
num_sensors_nonfunc_for_fan_nonfunc: 1
sensors:
- name: fan2_0
has_target: true
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 60
offset: 0
- name: fan2_1
has_target: false
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 55
offset: 0
- inventory: /system/chassis/motherboard/fan3
functional_delay: 5
allowed_out_of_range_time: 30
deviation: 15
num_sensors_nonfunc_for_fan_nonfunc: 1
sensors:
- name: fan3_0
has_target: true
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 60
offset: 0
- name: fan3_1
has_target: false
target_interface: xyz.openbmc_project.Control.FanPwm
factor: 55
offset: 0
sensor_trust_groups:
- class: NonzeroSpeed
group:
# Include all _1 fans to determine trust
- name: fan0_1
- name: fan1_1
- name: fan2_1
- name: fan3_1
# Add all _0 fans to be included in trust result effects,
# but not in determining trust
- name: fan0_0
in_trust: false
- name: fan1_0
in_trust: false
- name: fan2_0
in_trust: false
- name: fan3_0
in_trust: false
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:fp5280g2 := "${THISDIR}/${BPN}:"
@@ -0,0 +1,31 @@
- name: fan0
path: /system/chassis/motherboard/fan0
methods:
- type: gpio
key: 1
physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0021
devpath: /dev/input/by-path/platform-gpio-keys-polled-event
- name: fan1
path: /system/chassis/motherboard/fan1
methods:
- type: gpio
key: 2
physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0021
devpath: /dev/input/by-path/platform-gpio-keys-polled-event
- name: fan2
path: /system/chassis/motherboard/fan2
methods:
- type: gpio
key: 3
physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0021
devpath: /dev/input/by-path/platform-gpio-keys-polled-event
- name: fan3
path: /system/chassis/motherboard/fan3
methods:
- type: gpio
key: 4
physpath: /sys/devices/platform/ahb/ahb:apb/ahb:apb:bus@1e78a000/1e78a340.i2c-bus/i2c-8/8-0021
devpath: /dev/input/by-path/platform-gpio-keys-polled-event
@@ -0,0 +1,2 @@
OBJPATH="--path=/system/chassis"
AIR="--air"
@@ -0,0 +1,15 @@
[Unit]
Description=Phosphor Cooling Type
Wants=mapper-wait@-xyz-openbmc_project-inventory.service
After=mapper-wait@-xyz-openbmc_project-inventory.service
ConditionPathExists={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile={envfiledir}/obmc/phosphor-fan/phosphor-cooling-type-%i.conf
ExecStart=/usr/bin/env phosphor-cooling-type ${{OBJPATH}} ${{AIR}}
SyslogIdentifier=phosphor-cooling-type
[Install]
RequiredBy=multi-user.target
@@ -0,0 +1,21 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
# Package configuration
FAN_PACKAGES += " \
phosphor-cooling-type \
"
PACKAGECONFIG:append:fp5280g2 = " cooling-type"
TMPL_COOLING = "phosphor-cooling-type@.service"
INSTFMT_COOLING = "phosphor-cooling-type@{0}.service"
COOLING_TGT = "multi-user.target"
FMT_COOLING = "../${TMPL_COOLING}:${COOLING_TGT}.requires/${INSTFMT_COOLING}"
FILES:phosphor-cooling-type = "${bindir}/phosphor-cooling-type"
SYSTEMD_SERVICE:phosphor-cooling-type += "${TMPL_COOLING}"
SYSTEMD_LINK:phosphor-cooling-type += "${@compose_list(d, 'FMT_COOLING', 'OBMC_CHASSIS_INSTANCES')}"
COOLING_ENV_FMT = "obmc/phosphor-fan/phosphor-cooling-type-{0}.conf"
SYSTEMD_ENVIRONMENT_FILE:phosphor-cooling-type:append:fp5280g2 = " ${@compose_list(d, 'COOLING_ENV_FMT', 'OBMC_CHASSIS_INSTANCES')}"