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,10 @@
[Unit]
Description = UART Activation Sequence
Before=host-powerctrl.service
[Service]
ExecStart=/usr/libexec/obmc-console/mori_uart_mux_ctrl.sh
Type=oneshot
[Install]
RequiredBy=multi-user.target
@@ -0,0 +1,8 @@
#!/bin/bash
# Provide source directive to shellcheck.
# shellcheck source=meta-fii/meta-mori/recipes-mori/mori-fw-utility/mori-fw/mori-lib.sh
source /usr/libexec/mori-fw/mori-lib.sh
set_gpio_ctrl S0_UART0_BMC_SEL 1
set_gpio_ctrl S0_UART1_BMC_SEL 1
echo "UART initialization complete"
@@ -0,0 +1,17 @@
[Unit]
Description=Phosphor Console Muxer listening on device /dev/%I
BindsTo=dev-%i.device
After=dev-%i.device
StartLimitBurst=3
StartLimitIntervalSec=300
[Service]
ExecStart=/usr/sbin/obmc-console-server --config /etc/obmc-console/server.%i.conf %i
SyslogIdentifier=obmc-console-server
Restart=always
RestartSec=10
TimeoutStartSec=60
TimeoutStopSec=60
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,3 @@
baud = 115200
logfile = /var/log/obmc-console-cpu.log
logsize = 1M
@@ -0,0 +1,4 @@
baud = 115200
console-id = ttyS3
logfile = /var/log/obmc-console-mpro.log
logsize = 1M
@@ -0,0 +1,34 @@
FILESEXTRAPATHS:prepend:mori := "${THISDIR}/${PN}:"
SRC_URI:append:mori = " \
file://${BPN}@.service \
file://host_console_uart_config.service \
file://mori_uart_mux_ctrl.sh \
file://server.ttyS1.conf \
file://server.ttyS3.conf \
"
SYSTEMD_SERVICE:${PN}:append:mori = " \
${BPN}@.service \
host_console_uart_config.service \
"
do_install:append:mori() {
install -d ${D}${libexecdir}/${PN}
install -m 0755 ${WORKDIR}/mori_uart_mux_ctrl.sh \
${D}${libexecdir}/${PN}/mori_uart_mux_ctrl.sh
install -m 0644 ${WORKDIR}/host_console_uart_config.service \
${D}${systemd_unitdir}/system
# Overwrite base package's obmc-console@.service with our own
install -m 0644 ${WORKDIR}/${BPN}@.service \
${D}${systemd_unitdir}/system/${BPN}@.service
}
RDEPENDS:${PN}:append:mori = " bash"
pkg_postinst:${PN}:append:mori () {
systemctl --root=$D enable obmc-console@ttyS1.service
systemctl --root=$D enable obmc-console@ttyS3.service
}
OBMC_CONSOLE_TTYS:mori = "ttyS1 ttyS3"
@@ -0,0 +1,27 @@
SUMMARY = "Initialize PWM sensors"
DESCRIPTION = "Initialize PWM sensors"
LICENSE = "CLOSED"
DEPENDS:append = " systemd"
PR = "r1"
SRC_URI = " \
file://pwm_init.service \
file://bin/pwm_init.sh \
"
S = "${WORKDIR}"
SYSTEMD_AUTO_ENABLE = "enable"
SYSTEMD_SERVICE:${PN} = " pwm_init.service"
inherit systemd
do_install() {
install -d ${D}${libexecdir}/${PN}
install -m 0755 ${S}/bin/* ${D}${libexecdir}/${PN}/
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/*.service ${D}${systemd_system_unitdir}
}
RDEPENDS:${PN}:append = " bash"
FILES:${PN}:append = " ${bindir}/* ${systemd_system_unitdir}/*"
@@ -0,0 +1,30 @@
#!/bin/bash
#
# Provide source directive to shellcheck.
# shellcheck source=meta-fii/meta-mori/recipes-mori/mori-fw-utility/mori-fw/mori-lib.sh
source /usr/libexec/mori-fw/mori-lib.sh
# Set all pwm to 50%
find /sys/class/hwmon/hwmon*/ -name 'pwm[1-6]' -exec bash -c 'echo "$1" && echo 127 > "$1" && cat "$1"' -- {} \;
# Set all fans to pwm mode.
find /sys/class/hwmon/hwmon*/ -name 'pwm*_enable' -exec bash -c 'echo "$1" && echo 1 > "$1" && cat "$1"' -- {} \;
for i in {0..5}
do
fan_pwm_rate_of_change=0x$(printf '%02x' $((8 + i)) | \
awk '{print $1}')
# Set Fan PWM Rate-of-Change Bits(bits 4:2) to 000b
# Register 08h to 0Dh
oriRegVal=$(i2cget -y -f "${I2C_FANCTRL[0]}" 0x"${I2C_FANCTRL[1]}" \
"$fan_pwm_rate_of_change")
updateVal=$((oriRegVal & 0xe3))
updateVal=0x$(printf "%x" $updateVal)
i2cset -y -f "${I2C_FANCTRL[0]}" 0x"${I2C_FANCTRL[1]}" \
"$fan_pwm_rate_of_change" "$updateVal"
done
@@ -0,0 +1,11 @@
[Unit]
Description=Init PWM sensors
Before=xyz.openbmc_project.fansensor.service
[Service]
Type=oneshot
ExecStart=/usr/libexec/pwm-init/pwm_init.sh
[Install]
WantedBy=multi-user.target
WantedBy=xyz.openbmc_project.fansensor.service
@@ -0,0 +1,58 @@
# Required for IPMI
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-ipmi-blobs"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-ipmi-blobs-binarystore"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-ipmi-ethstats"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-ipmi-net"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-ipmi-host"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " google-ipmi-sys"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " google-ipmi-i2c"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-sel-logger"
# Required tools and utilities
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " loadsvf"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " memtester"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " openssl-bin"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " ipmitool"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " ethtool"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " bash"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " i2c-tools"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " libgpiod-tools"
# Required for obmc-bmcweb
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " bmcweb"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-certificate-manager"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-user-manager"
# Required for the front port. Part of obmc-console
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " obmc-console"
# Required from packagegroup-mori-apps
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " obmc-phosphor-buttons-signals"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " obmc-phosphor-buttons-handler"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-skeleton-control-power"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " ncsid"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " gbmc-mac-config"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " entity-manager"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " fru-device"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " dbus-sensors"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " estoraged"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " pwm-init"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-pid-control"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-logging"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " mori-cmd"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " mori-boot"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " mori-fw"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " virtual/bmc-update"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " virtual/bios-update"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " virtual/cpld-update"
# Required for phosphor-ipmi-ssif
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " virtual-obmc-host-ipmi-hw"
# Required for some services
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-software-manager-download-mgr"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-software-manager-version"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-software-manager-updater"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " mori-boot-status-led"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-led-manager"
OBMC_IMAGE_EXTRA_INSTALL:append:mori = " phosphor-led-sysfs"
@@ -0,0 +1,4 @@
EXTRA_OEMESON:append:mori = " \
-Dredfish-dump-log=enabled \
-Dredfish-bmc-journal=enabled \
"
@@ -0,0 +1,11 @@
[{
"blobBaseId": "/skm/hss/",
"sysFilePath": "/sys/bus/i2c/devices/42-0055/eeprom",
"offsetBytes": 0
},
{
"blobBaseId": "/skm/hss-backup/",
"sysFilePath": "/sys/bus/i2c/devices/4-0050/eeprom",
"offsetBytes": 256,
"maxSizeBytes": 512
}]
@@ -0,0 +1,10 @@
FILESEXTRAPATHS:prepend:mori := "${THISDIR}/${PN}:"
SRC_URI:append:mori = " file://config.json"
do_install:append:mori() {
install -d ${D}${datadir}/binaryblob/
install ${WORKDIR}/config.json ${D}${datadir}/binaryblob/config.json
}
FILES:${PN}:append:mori = " ${datadir}/binaryblob/config.json"
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:mori := "${THISDIR}/${PN}:"
@@ -0,0 +1,2 @@
{"id": 0, "revision": 1, "addn_dev_support": 133,
"manuf_id": 17084, "prod_id": 1, "aux": 0}
@@ -0,0 +1,2 @@
PACKAGECONFIG:append:mori = " nuvoton-p2a-mbox net-bridge"
IPMI_FLASH_BMC_ADDRESS:mori = "0xF0848000"
@@ -0,0 +1,21 @@
SUMMARY = "Phosphor LED Group Management for mori"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
PROVIDES:append = " virtual/phosphor-led-manager-config-native"
PR = "r1"
SRC_URI = "file://led.yaml"
S = "${WORKDIR}"
inherit native
# Overwrite the example led layout yaml file prior
# to building the phosphor-led-manager package
do_install() {
SRC=${S}
DEST=${D}${datadir}/phosphor-led-manager
install -D ${SRC}/led.yaml ${DEST}/led.yaml
}
FILES:${PN}:append = " ${datadir}/phosphor-led-manager/led.yaml"
@@ -0,0 +1,13 @@
bmc_booted:
BMC_ALIVE:
Action: 'On'
boot_status_inactive:
boot_status_led:
Action: 'Blink'
DutyOn: 50
Period: 1000
boot_status_standby:
boot_status_led:
Action: 'On'
@@ -0,0 +1 @@
CHASSIS_TARGETS:mori = ""
@@ -0,0 +1,4 @@
# Enable threshold, pulse, and watchdog monitoring
PACKAGECONFIG:append:mori = " \
log-threshold log-alarm log-pulse log-watchdog clears-sel \
"
@@ -0,0 +1,29 @@
/xyz/openbmc_project/control/chassis0/chassiscapabilities:
- Interface: xyz.openbmc_project.Control.ChassisCapabilities
Properties:
CapabilitiesFlags:
Default: 32
ChassisIntrusionEnabled:
Default: 'true'
ChassisFrontPanelLockoutEnabled:
Default: 'true'
ChassisNMIEnabled:
Default: 'true'
ChassisPowerInterlockEnabled:
Default: 'true'
FRUDeviceAddress:
Default: 32
SDRDeviceAddress:
Default: 32
SELDeviceAddress:
Default: 32
SMDeviceAddress:
Default: 32
BridgeDeviceAddress:
Default: 32
/xyz/openbmc_project/control/host0/power_restore_policy:
- Interface: xyz.openbmc_project.Control.Power.RestorePolicy
Properties:
PowerRestorePolicy:
Default: RestorePolicy::Policy::AlwaysOn
@@ -0,0 +1,3 @@
FILESEXTRAPATHS:append:mori := ":${THISDIR}/${PN}"
SRC_URI:append:mori = " file://chassis_capabilities.override.yml"
@@ -0,0 +1,31 @@
{
"gpio_configs": {
"power_config": {
"power_good_in": "PGOOD",
"power_up_outs": [
],
"reset_outs": [
]
}
},
"gpio_definitions": [
{
"name": "PGOOD",
"num": 71,
"direction": "in"
},
{
"name": "POWER_BUTTON",
"num": 64,
"direction": "both"
},
{
"name": "RESET_BUTTON",
"num": 65,
"direction": "both"
}
]
}
@@ -0,0 +1,3 @@
FILESEXTRAPATHS:append:mori := ":${THISDIR}/${PN}"
SRC_URI:append:mori = " file://gpio_defs.json"
@@ -0,0 +1,2 @@
PACKAGECONFIG:append:mori = " smbios-ipmi-blob"
PACKAGECONFIG:remove:mori = " cpuinfo"
@@ -0,0 +1,15 @@
[Unit]
Description=Phosphor Chassis%i State Manager
Before=mapper-wait@-xyz-openbmc_project-state-chassis%i.service
After=org.openbmc.control.Power@%i.service
After=host-powerctrl.service
[Service]
ExecStartPre=/bin/sleep 5
ExecStart=/usr/bin/phosphor-chassis-state-manager --chassis %i
Restart=always
Type=dbus
BusName=xyz.openbmc_project.State.Chassis%i
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,17 @@
[Unit]
Description=Phosphor Host%i State Manager
Wants=mapper-wait@-xyz-openbmc_project-control-host%i-auto_reboot.service
After=mapper-wait@-xyz-openbmc_project-control-host%i-auto_reboot.service
Wants=mapper-wait@-xyz-openbmc_project-state-chassis%i.service
After=mapper-wait@-xyz-openbmc_project-state-chassis%i.service
After=phosphor-ipmi-host.service
Before=obmc-host-reset@%i.target
[Service]
ExecStart=/usr/bin/phosphor-host-state-manager --host %i
Restart=always
Type=dbus
BusName=xyz.openbmc_project.State.Host%i
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,42 @@
FILESEXTRAPATHS:prepend:mori := "${THISDIR}/${PN}:"
DEPENDS:append:mori = " gpioplus"
SRC_URI:append:mori = " \
file://xyz.openbmc_project.State.Chassis@.service \
file://xyz.openbmc_project.State.Host@.service \
"
SYSTEMD_SERVICE:${PN}-host:append:mori = " phosphor-host-condition-gpio@.service"
EXTRA_OEMESON:append:mori = " -Dhost-gpios=enabled"
do_install:append:mori() {
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${WORKDIR}/xyz.openbmc_project.State.Chassis@.service \
${D}${systemd_system_unitdir}/xyz.openbmc_project.State.Chassis@.service
install -m 0644 ${WORKDIR}/xyz.openbmc_project.State.Host@.service \
${D}${systemd_system_unitdir}/xyz.openbmc_project.State.Host@.service
}
FILES:${PN}:append:mori = " ${systemd_system_unitdir}/*"
FILES:${PN}-host:append:mori = " ${bindir}/phosphor-host-condition-gpio"
pkg_prerm:${PN}-obmc-targets:prepend:mori() {
LINK="$D$systemd_system_unitdir/multi-user.target.requires/phosphor-host-condition-gpio@0.service"
rm $LINK
}
pkg_postinst:${PN}-obmc-targets:prepend:mori() {
mkdir -p $D$systemd_system_unitdir/multi-user.target.requires
LINK="$D$systemd_system_unitdir/multi-user.target.requires/phosphor-host-condition-gpio@0.service"
TARGET="../phosphor-host-condition-gpio@.service"
ln -s $TARGET $LINK
}
pkg_postinst:${PN}-obmc-targets:append:mori() {
rm "$D$systemd_system_unitdir/obmc-host-reboot@0.target.requires/obmc-host-shutdown@0.target"
rm "$D$systemd_system_unitdir/obmc-host-reboot@0.target.requires/phosphor-reboot-host@0.service"
rm "$D$systemd_system_unitdir/obmc-host-shutdown@0.target.requires/obmc-chassis-poweroff@0.target"
rm "$D$systemd_system_unitdir/obmc-host-warm-reboot@0.target.requires/obmc-host-force-warm-reboot@0.target"
rm "$D$systemd_system_unitdir/obmc-host-warm-reboot@0.target.requires/xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service"
rm "$D$systemd_system_unitdir/obmc-host-force-warm-reboot@0.target.requires/obmc-host-stop@0.target"
rm "$D$systemd_system_unitdir/obmc-host-force-warm-reboot@0.target.requires/phosphor-reboot-host@0.service"
}