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
+10
View File
@@ -0,0 +1,10 @@
# We have a conf and classes directory, add to BBPATH
BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "palmetto-layer"
BBFILE_PATTERN_palmetto-layer := "^${LAYERDIR}/"
LAYERSERIES_COMPAT_palmetto-layer = "langdale mickledore"
@@ -0,0 +1,25 @@
KMACHINE = "aspeed"
KERNEL_DEVICETREE = "${KMACHINE}-bmc-opp-${MACHINE}.dtb"
require conf/machine/include/ast2400.inc
require conf/machine/include/obmc-bsp-common.inc
require conf/machine/include/openpower.inc
require conf/machine/include/p8.inc
UBOOT_MACHINE = "evb-ast2400_defconfig"
UBOOT_DEVICETREE = "ast2400-palmetto"
UBOOT_ENTRYPOINT = "0x40008000"
UBOOT_LOADADDRESS = "0x40008000"
FLASH_SIZE = "32768"
PHOSPHOR_MRW_LICENSE = "Apache-2.0"
PHOSPHOR_MRW_LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
PHOSPHOR_MRW_URI = "git://github.com/open-power/palmetto-xml;branch=master;protocol=https"
PHOSPHOR_MRW_REV = "82818682f2c2009c30d700df6d5f8897a3096e4f"
PREFERRED_PROVIDER_virtual/phosphor-led-manager-config-native = "palmetto-led-manager-config-native"
PREFERRED_PROVIDER_virtual/openpower-occ-control-config-native = "palmetto-occ-control-config-native"
QB_MACHINE:palmetto = "-machine palmetto-bmc"
QB_MEM:palmetto = "-m 512"
@@ -0,0 +1,18 @@
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "8"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
##OEROOT##/meta \
##OEROOT##/meta-openembedded/meta-oe \
##OEROOT##/meta-openembedded/meta-networking \
##OEROOT##/meta-openembedded/meta-perl \
##OEROOT##/meta-openembedded/meta-python \
##OEROOT##/meta-phosphor \
##OEROOT##/meta-aspeed \
##OEROOT##/meta-openpower \
##OEROOT##/meta-ibm/meta-palmetto \
"
@@ -0,0 +1,2 @@
Common targets are:
obmc-phosphor-image
@@ -0,0 +1,277 @@
#
# This file is your local configuration file and is where all local user settings
# are placed. The comments in this file give some guide to the options a new user
# to the system might want to change but pretty much any configuration option can
# be set in this file. More adventurous users can look at local.conf.extended
# which contains other examples of configuration which can be placed in this file
# but new users likely won't need any of them initially.
#
# Lines starting with the '#' character are commented out and in some cases the
# default values are provided as comments to show people example syntax. Enabling
# the option is a question of removing the # character and making any change to the
# variable as required.
#
# Machine Selection
#
# You need to select a specific machine to target the build with. There are a selection
# of emulated machines available which can boot and run in the QEMU emulator:
#
#MACHINE ?= "qemuarm"
#MACHINE ?= "qemuarm64"
#MACHINE ?= "qemumips"
#MACHINE ?= "qemumips64"
#MACHINE ?= "qemuppc"
#MACHINE ?= "qemux86"
#MACHINE ?= "qemux86-64"
#
# There are also the following hardware board target machines included for
# demonstration purposes:
#
#MACHINE ?= "beaglebone-yocto"
#MACHINE ?= "genericx86"
#MACHINE ?= "genericx86-64"
#MACHINE ?= "edgerouter"
#
# This sets the default machine to be qemux86 if no other machine is selected:
MACHINE ??= "palmetto"
#
# Where to place downloads
#
# During a first build the system will download many different source code tarballs
# from various upstream projects. This can take a while, particularly if your network
# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
# can preserve this directory to speed up this part of subsequent builds. This directory
# is safe to share between multiple builds on the same machine too.
#
# The default is a downloads directory under TOPDIR which is the build directory.
#
#DL_DIR ?= "${TOPDIR}/downloads"
#
# Where to place shared-state files
#
# BitBake has the capability to accelerate builds based on previously built output.
# This is done using "shared state" files which can be thought of as cache objects
# and this option determines where those files are placed.
#
# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
# from these files if no changes were made to the configuration. If changes were made
# to the configuration, only shared state files where the state was still valid would
# be used (done using checksums).
#
# The default is a sstate-cache directory under TOPDIR.
#
#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
#
# Where to place the build output
#
# This option specifies where the bulk of the building work should be done and
# where BitBake should place its temporary files and output. Keep in mind that
# this includes the extraction and compilation of many applications and the toolchain
# which can use Gigabytes of hard disk space.
#
# The default is a tmp directory under TOPDIR.
#
#TMPDIR = "${TOPDIR}/tmp"
#
# Default policy config
#
# The distribution setting controls which policy settings are used as defaults.
# The default value is fine for general Yocto project use, at least initially.
# Ultimately when creating custom policy, people will likely end up subclassing
# these defaults.
#
DISTRO ?= "openbmc-openpower"
# As an example of a subclass there is a "bleeding" edge policy configuration
# where many versions are set to the absolute latest code from the upstream
# source control systems. This is just mentioned here as an example, its not
# useful to most new users.
# DISTRO ?= "poky-bleeding"
#
# Package Management configuration
#
# This variable lists which packaging formats to enable. Multiple package backends
# can be enabled at once and the first item listed in the variable will be used
# to generate the root filesystems.
# Options are:
# - 'package_deb' for debian style deb files
# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
# - 'package_rpm' for rpm style packages
# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
# We default to ipk:
PACKAGE_CLASSES ?= "package_ipk"
#
# SDK target architecture
#
# This variable specifies the architecture to build SDK items for and means
# you can build the SDK packages for architectures other than the machine you are
# running the build on (i.e. building i686 packages on an x86_64 host).
# Supported values are i686, x86_64, aarch64
#SDKMACHINE ?= "i686"
SANITY_TESTED_DISTROS:append ?= " RedHatEnterpriseWorkstation-6.*"
#
# Extra image configuration defaults
#
# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
# images. Some of these options are added to certain image types automatically. The
# variable can contain the following options:
# "dbg-pkgs" - add -dbg packages for all installed packages
# (adds symbol information for debugging/profiling)
# "src-pkgs" - add -src packages for all installed packages
# (adds source code for debugging)
# "dev-pkgs" - add -dev packages for all installed packages
# (useful if you want to develop against libs in the image)
# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
# (useful if you want to run the package test suites)
# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
# "tools-debug" - add debugging tools (gdb, strace)
# "eclipse-debug" - add Eclipse remote debugging support
# "tools-profile" - add profiling tools (oprofile, lttng, valgrind)
# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
# "debug-tweaks" - make an image suitable for development
# e.g. ssh root access has a blank password
# There are other application targets that can be used here too, see
# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
# We default to enabling the debugging tweaks.
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
#
# Additional image features
#
# The following is a list of additional classes to use when building images which
# enable extra features. Some available options which can be included in this variable
# are:
# - 'buildstats' collect build statistics
USER_CLASSES ?= "buildstats"
#
# Runtime testing of images
#
# The build system can test booting virtual machine images under qemu (an emulator)
# after any root filesystems are created and run tests against those images. It can also
# run tests against any SDK that are built. To enable this uncomment these lines.
# See classes/test{image,sdk}.bbclass for further details.
#IMAGE_CLASSES += "testimage testsdk"
#TESTIMAGE_AUTO_qemuall = "1"
#
# Interactive shell configuration
#
# Under certain circumstances the system may need input from you and to do this it
# can launch an interactive shell. It needs to do this since the build is
# multithreaded and needs to be able to handle the case where more than one parallel
# process may require the user's attention. The default is iterate over the available
# terminal types to find one that works.
#
# Examples of the occasions this may happen are when resolving patches which cannot
# be applied, to use the devshell or the kernel menuconfig
#
# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
# Note: currently, Konsole support only works for KDE 3.x due to the way
# newer Konsole versions behave
#OE_TERMINAL = "auto"
# By default disable interactive patch resolution (tasks will just fail instead):
PATCHRESOLVE = "noop"
#
# Disk Space Monitoring during the build
#
# Monitor the disk space during the build. If there is less that 1GB of space or less
# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
# shutdown the build. If there is less than 100MB or 1K inodes, perform a hard abort
# of the build. The reason for this is that running completely out of space can corrupt
# files and damages the build in ways which may not be easily recoverable.
# It's necessary to monitor /tmp, if there is no space left the build will fail
# with very exotic errors.
BB_DISKMON_DIRS ??= "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
HALT,${TMPDIR},100M,1K \
HALT,${DL_DIR},100M,1K \
HALT,${SSTATE_DIR},100M,1K \
HALT,/tmp,10M,1K"
#
# Shared-state files from other locations
#
# As mentioned above, shared state files are prebuilt cache data objects which can be
# used to accelerate build time. This variable can be used to configure the system
# to search other mirror locations for these objects before it builds the data itself.
#
# This can be a filesystem directory, or a remote url such as http or ftp. These
# would contain the sstate-cache results from previous builds (possibly from other
# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
# cache locations to check for the shared objects.
# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
# at the end as shown in the examples below. This will be substituted with the
# correct path within the directory structure.
#SSTATE_MIRRORS ?= "\
#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
#file://.* file:///some/local/dir/sstate/PATH"
#
# Yocto Project SState Mirror
#
# The Yocto Project has prebuilt artefacts available for its releases, you can enable
# use of these by uncommenting the following line. This will mean the build uses
# the network to check for artefacts at the start of builds, which does slow it down
# equally, it will also speed up the builds by not having to build things if they are
# present in the cache. It assumes you can download something faster than you can build it
# which will depend on your network.
#
#SSTATE_MIRRORS ?= "file://.* http://sstate.yoctoproject.org/2.5/PATH;downloadfilename=PATH"
#
# Qemu configuration
#
# By default native qemu will build with a builtin VNC server where graphical output can be
# seen. The line below enables the SDL UI frontend too.
#PACKAGECONFIG:append:pn-qemu-system-native = " sdl"
PACKAGECONFIG:append:pn-qemu-native = " sdl"
PACKAGECONFIG:append:pn-nativesdk-qemu = " sdl"
# By default libsdl2-native will be built, if you want to use your host's libSDL instead of
# the minimal libsdl built by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
#ASSUME_PROVIDED += "libsdl2-native"
# You can also enable the Gtk UI frontend, which takes somewhat longer to build, but adds
# a handy set of menus for controlling the emulator.
#PACKAGECONFIG:append:pn-qemu-system-native = " gtk+"
#
# Hash Equivalence
#
# Enable support for automatically running a local hash equivalence server and
# instruct bitbake to use a hash equivalence aware signature generator. Hash
# equivalence improves reuse of sstate by detecting when a given sstate
# artifact can be reused as equivalent, even if the current task hash doesn't
# match the one that generated the artifact.
#
# A shared hash equivalent server can be set with "<HOSTNAME>:<PORT>" format
#
#BB_HASHSERVE = "auto"
#BB_SIGNATURE_HANDLER = "OEEquivHash"
#
# Memory Resident Bitbake
#
# Bitbake's server component can stay in memory after the UI for the current command
# has completed. This means subsequent commands can run faster since there is no need
# for bitbake to reload cache files and so on. Number is in seconds, after which the
# server will shut down.
#
#BB_SERVER_TIMEOUT = "60"
# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
# track the version of this file when it was generated. This can safely be ignored if
# this doesn't mean anything to you.
CONF_VERSION = "2"
@@ -0,0 +1,3 @@
CONFIG_SENSORS_NCT7904=y
CONFIG_EEPROM_AT24=y
CONFIG_SENSORS_TMP421=y
@@ -0,0 +1,2 @@
FILESEXTRAPATHS:prepend:palmetto := "${THISDIR}/${PN}:"
SRC_URI += "file://palmetto.cfg"
@@ -0,0 +1,31 @@
SUMMARY = "YAML configuration for Palmetto"
PR = "r1"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
inherit allarch
SRC_URI = " \
file://palmetto-ipmi-fru.yaml \
file://palmetto-ipmi-fru-properties.yaml \
file://palmetto-ipmi-sensors.yaml \
"
S = "${WORKDIR}"
do_install() {
install -m 0644 -D palmetto-ipmi-fru-properties.yaml \
${D}${datadir}/${BPN}/ipmi-extra-properties.yaml
install -m 0644 -D palmetto-ipmi-fru.yaml \
${D}${datadir}/${BPN}/ipmi-fru-read.yaml
install -m 0644 -D palmetto-ipmi-sensors.yaml \
${D}${datadir}/${BPN}/ipmi-sensors.yaml
}
FILES:${PN}-dev = " \
${datadir}/${BPN}/ipmi-extra-properties.yaml \
${datadir}/${BPN}/ipmi-fru-read.yaml \
${datadir}/${BPN}/ipmi-sensors.yaml \
"
ALLOW_EMPTY:${PN} = "1"
@@ -0,0 +1,63 @@
/system:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard/cpu0:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard/dimm0:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard/dimm1:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard/dimm2:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard/dimm3:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
/system/chassis/motherboard/membuf0:
xyz.openbmc_project.Inventory.Decorator.Cacheable:
Cached: 'true'
xyz.openbmc_project.Inventory.Decorator.Replaceable:
FieldReplaceable: 'true'
xyz.openbmc_project.Inventory.Item:
Present: 'true'
@@ -0,0 +1,219 @@
1:
/system/chassis/motherboard/cpu0:
entityID: 3
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: Custom Field 2
IPMIFruSection: Board
IPMIFruValueDelimiter: 58
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
2:
/system/chassis:
entityID: 23
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
Model:
IPMIFruProperty: Part Number
IPMIFruSection: Chassis
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Chassis
/system/chassis/motherboard/membuf:
entityID: 23
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
3:
/system/chassis/motherboard/dimm0:
entityID: 32
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Product
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Product
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Product
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Product
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Product
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: Version
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Product
4:
/system/chassis/motherboard/dimm1:
entityID: 32
entityInstance: 2
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Product
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Product
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Product
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Product
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Product
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: Version
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Product
5:
/system/chassis/motherboard/dimm2:
entityID: 32
entityInstance: 3
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Product
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Product
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Product
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Product
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Product
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: Version
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Product
6:
/system/chassis/motherboard/dimm3:
entityID: 32
entityInstance: 4
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Product
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Product
Model:
IPMIFruProperty: Model Number
IPMIFruSection: Product
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Product
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Product
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: Version
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Product
14:
/system/chassis/motherboard:
entityID: 7
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
15:
/system:
entityID: 25
entityInstance: 1
interfaces:
xyz.openbmc_project.Inventory.Decorator.Asset:
BuildDate:
IPMIFruProperty: Mfg Date
IPMIFruSection: Board
Manufacturer:
IPMIFruProperty: Manufacturer
IPMIFruSection: Board
PartNumber:
IPMIFruProperty: Part Number
IPMIFruSection: Board
SerialNumber:
IPMIFruProperty: Serial Number
IPMIFruSection: Board
xyz.openbmc_project.Inventory.Decorator.Revision:
Version:
IPMIFruProperty: Version
xyz.openbmc_project.Inventory.Item:
PrettyName:
IPMIFruProperty: Name
IPMIFruSection: Board
@@ -0,0 +1,4 @@
lpc-address = 0x3f8
sirq = 4
local-tty = ttyS0
local-tty-baud = 115200
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:palmetto := "${THISDIR}/${PN}:"
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:palmetto := "${THISDIR}/${PN}:"
@@ -0,0 +1,4 @@
DEVPATH=/dev/input/by-path/platform-gpio-keys-event
KEY=125
POLARITY=1
TARGET=obmc-host-crash@0.target
@@ -0,0 +1 @@
OBMC_IMAGE_EXTRA_INSTALL:append:palmetto = " mboxd"
@@ -0,0 +1,17 @@
SUMMARY = "Copy the inventory cleanup yaml for inventory manager"
PR = "r1"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
inherit allarch
inherit phosphor-inventory-manager
S = "${WORKDIR}"
SRC_URI = "file://inventory-cleanup.yaml"
do_install() {
install -D inventory-cleanup.yaml ${D}${base_datadir}/events.d/inventory-cleanup.yaml
}
FILES:${PN} += "${base_datadir}/events.d/inventory-cleanup.yaml"
@@ -0,0 +1,16 @@
description: >
Palmetto inventory fixups
events:
- name: Add Chassis interface
description: >
Add the chassis interface on the chassis inventory path
type: startup
actions:
- name: createObjects
objs:
/system/chassis:
xyz.openbmc_project.Inventory.Item.Chassis:
Type:
value: "xyz.openbmc_project.Inventory.Item.Chassis.ChassisType.RackMount"
type: string
@@ -0,0 +1 @@
DEPENDS:append = " inventory-cleanup"
@@ -0,0 +1,4 @@
DEPENDS:append:palmetto = " palmetto-yaml-config"
IPMI_FRU_YAML:palmetto="${STAGING_DIR_HOST}${datadir}/palmetto-yaml-config/ipmi-fru-read.yaml"
IPMI_FRU_PROP_YAML:palmetto="${STAGING_DIR_HOST}${datadir}/palmetto-yaml-config/ipmi-extra-properties.yaml"
@@ -0,0 +1,6 @@
DEPENDS:append:palmetto = " palmetto-yaml-config"
EXTRA_OEMESON:palmetto = " \
-Dsensor-yaml-gen=${STAGING_DIR_HOST}${datadir}/palmetto-yaml-config/ipmi-sensors.yaml \
-Dfru-yaml-gen=${STAGING_DIR_HOST}${datadir}/palmetto-yaml-config/ipmi-fru-read.yaml \
"
@@ -0,0 +1,18 @@
SUMMARY = "Phosphor LED Group Management for Palmetto"
PR = "r1"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
inherit native
PROVIDES += "virtual/phosphor-led-manager-config-native"
SRC_URI += "file://led.yaml"
S = "${WORKDIR}"
# Copies example led layout yaml file
do_install() {
SRC=${S}
DEST=${D}${datadir}/phosphor-led-manager
install -D ${SRC}/led.yaml ${DEST}/led.yaml
}
@@ -0,0 +1,33 @@
BmcBooted:
heartbeat:
Action: 'Blink'
DutyOn: 50
Period: 0
PowerOn:
power:
Action: 'On'
DutyOn: 50
Period: 0
EnclosureFault:
identify:
Action: 'On'
DutyOn: 50
Period: 0
EnclosureIdentify:
identify:
Action: 'Blink'
DutyOn: 50
Period: 1000
LampTest:
heartbeat:
Action: 'Blink'
DutyOn: 50
Period: 1000
identify:
Action: 'Blink'
DutyOn: 50
Period: 1000
power:
Action: 'Blink'
DutyOn: 50
Period: 1000
@@ -0,0 +1,473 @@
<patches>
<targetFile>palmetto.xml</targetFile>
<!-- Add in the 5 fan and connector instances -->
<targetInstance xpath="/">
<id>fanconn-0</id>
<type>connector-card-generic</type>
<library_target>false</library_target>
<instance_name>fanconn</instance_name>
<position>0</position>
<child_id>fan-0</child_id>
<attribute>
<id>CLASS</id>
<default>CONNECTOR</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>0</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>NA</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fan-0</id>
<type>card-fan</type>
<library_target>false</library_target>
<instance_name>fan</instance_name>
<position>0</position>
<attribute>
<id>CLASS</id>
<default>CARD</default>
</attribute>
<attribute>
<id>FRU_ID</id>
<default></default>
</attribute>
<attribute>
<id>FRU_NAME</id>
<default>FAN</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>0</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>FAN</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fanconn-1</id>
<type>connector-card-generic</type>
<library_target>false</library_target>
<instance_name>fanconn</instance_name>
<position>1</position>
<child_id>fan-1</child_id>
<attribute>
<id>CLASS</id>
<default>CONNECTOR</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>1</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>NA</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fan-1</id>
<type>card-fan</type>
<library_target>false</library_target>
<instance_name>fan</instance_name>
<position>1</position>
<attribute>
<id>CLASS</id>
<default>CARD</default>
</attribute>
<attribute>
<id>FRU_ID</id>
<default></default>
</attribute>
<attribute>
<id>FRU_NAME</id>
<default>FAN</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>1</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>FAN</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fanconn-2</id>
<type>connector-card-generic</type>
<library_target>false</library_target>
<instance_name>fanconn</instance_name>
<position>2</position>
<child_id>fan-2</child_id>
<attribute>
<id>CLASS</id>
<default>CONNECTOR</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>2</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>NA</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fan-2</id>
<type>card-fan</type>
<library_target>false</library_target>
<instance_name>fan</instance_name>
<position>2</position>
<attribute>
<id>CLASS</id>
<default>CARD</default>
</attribute>
<attribute>
<id>FRU_ID</id>
<default></default>
</attribute>
<attribute>
<id>FRU_NAME</id>
<default>FAN</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>2</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>FAN</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fanconn-3</id>
<type>connector-card-generic</type>
<library_target>false</library_target>
<instance_name>fanconn</instance_name>
<position>3</position>
<child_id>fan-3</child_id>
<attribute>
<id>CLASS</id>
<default>CONNECTOR</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>3</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>NA</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fan-3</id>
<type>card-fan</type>
<library_target>false</library_target>
<instance_name>fan</instance_name>
<position>3</position>
<attribute>
<id>CLASS</id>
<default>CARD</default>
</attribute>
<attribute>
<id>FRU_ID</id>
<default></default>
</attribute>
<attribute>
<id>FRU_NAME</id>
<default>FAN</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>3</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>FAN</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fanconn-4</id>
<type>connector-card-generic</type>
<library_target>false</library_target>
<instance_name>fanconn</instance_name>
<position>4</position>
<child_id>fan-4</child_id>
<attribute>
<id>CLASS</id>
<default>CONNECTOR</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>4</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>NA</default>
</attribute>
</targetInstance>
<targetInstance xpath="/">
<id>fan-4</id>
<type>card-fan</type>
<library_target>false</library_target>
<instance_name>fan</instance_name>
<position>4</position>
<attribute>
<id>CLASS</id>
<default>CARD</default>
</attribute>
<attribute>
<id>FRU_ID</id>
<default></default>
</attribute>
<attribute>
<id>FRU_NAME</id>
<default>FAN</default>
</attribute>
<attribute>
<id>LOCATION_CODE</id>
<default></default>
</attribute>
<attribute>
<id>MODEL</id>
<default></default>
</attribute>
<attribute>
<id>MRW_TYPE</id>
<default>NA</default>
</attribute>
<attribute>
<id>POSITION</id>
<default>4</default>
</attribute>
<attribute>
<id>RESOURCE_IS_CRITICAL</id>
<default>0</default>
</attribute>
<attribute>
<id>TYPE</id>
<default>FAN</default>
</attribute>
</targetInstance>
<!-- place the fan connectors on the motherboard -->
<targetInstance type="add-child" xpath="targetInstance[id='motherboard-0']">
<child_id>fanconn-0</child_id>
<child_id>fanconn-1</child_id>
<child_id>fanconn-2</child_id>
<child_id>fanconn-3</child_id>
<child_id>fanconn-4</child_id>
</targetInstance>
<!-- Add in the motherboard FRU name -->
<attribute type="add" xpath="targetInstance[id='motherboard-0']">
<id>FRU_NAME</id>
<default>MOTHERBOARD</default>
</attribute>
<!-- add in some new types -->
<enumerationType type="add-child" xpath="enumerationType[id='TYPE']">
<enumerator>
<name>FAN</name>
<value>35</value>
</enumerator>
<enumerator>
<name>PCIE_CARD</name>
<value>36</value>
</enumerator>
</enumerationType>
<!--fix up the other enums that come at the end of the list-->
<enumerationType type="replace-child" key="name" xpath="enumerationType[id='TYPE']">
<enumerator>
<name>TEST_FAIL</name>
<value>37</value>
</enumerator>
<enumerator>
<name>LAST_IN_RANGE</name>
<value>38</value>
</enumerator>
</enumerationType>
<!-- Fix the PCIE card's type -->
<attribute type="replace" xpath="targetInstance[id='pciecard_x8-0']/attribute[id='TYPE']">
<id>TYPE</id>
<default>PCIE_CARD</default>
</attribute>
<!-- Add the card's FRU name -->
<attribute type="add" xpath="targetInstance[id='pciecard_x8-0']">
<id>FRU_NAME</id>
<default>PCIE_CARD</default>
</attribute>
<!-- Fix the PCIE card's type -->
<attribute type="replace" xpath="targetInstance[id='pciecard_x16-0']/attribute[id='TYPE']">
<id>TYPE</id>
<default>PCIE_CARD</default>
</attribute>
<!-- Add the card's FRU name -->
<attribute type="add" xpath="targetInstance[id='pciecard_x16-0']">
<id>FRU_NAME</id>
<default>PCIE_CARD</default>
</attribute>
<!-- new parser requires FABRIC_GROUP_ID, though it's unused by the BMC -->
<attribute type="replace" xpath="targetInstance[id='proc_socket-0']/attribute[id='FABRIC_NODE_ID']">
<id>FABRIC_GROUP_ID</id>
<default>0</default>
</attribute>
</patches>
@@ -0,0 +1,2 @@
FILESEXTRAPATHS:prepend:palmetto := "${THISDIR}/${PN}:"
SRC_URI:append:palmetto = " file://palmetto.xml.patch.xml"
@@ -0,0 +1,3 @@
- Instance: 0
SensorID: 0x08
SensorName: occ0
@@ -0,0 +1,18 @@
SUMMARY = "Palmetto OCC Control sensor IDs"
PR = "r1"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
inherit native
inherit openpower-occ-control
SRC_URI += "file://occ_sensor.yaml"
PROVIDES += "virtual/openpower-occ-control-config-native"
S = "${WORKDIR}"
do_install() {
install -d ${YAML_DEST}/
install -D occ_sensor.yaml ${YAML_DEST}/occ_sensor.yaml
}
@@ -0,0 +1 @@
RDEPENDS:${PN}-inventory:append:palmetto = " openpower-occ-control webui-vue"
@@ -0,0 +1,40 @@
MODE_temp1 = "label"
MODE_temp2 = "label"
MODE_temp3 = "label"
MODE_temp4 = "label"
MODE_temp5 = "label"
MODE_temp6 = "label"
MODE_temp7 = "label"
MODE_temp8 = "label"
MODE_temp9 = "label"
MODE_temp10 = "label"
MODE_temp11 = "label"
MODE_temp12 = "label"
MODE_temp13 = "label"
MODE_temp14 = "label"
MODE_temp15 = "label"
MODE_temp16 = "label"
MODE_temp17 = "label"
MODE_temp18 = "label"
LABEL_temp13 = "cpu0_temp"
LABEL_temp101 = "centaur0_temp"
LABEL_temp102 = "dimm0_temp"
LABEL_temp103 = "dimm1_temp"
LABEL_temp104 = "dimm2_temp"
LABEL_temp105 = "dimm3_temp"
LABEL_temp106 = "core0_temp"
LABEL_temp107 = "core1_temp"
LABEL_temp108 = "core2_temp"
LABEL_temp109 = "core3_temp"
LABEL_temp110 = "core4_temp"
LABEL_temp111 = "core5_temp"
LABEL_temp112 = "core6_temp"
LABEL_temp113 = "core7_temp"
LABEL_temp114 = "core8_temp"
LABEL_temp115 = "core9_temp"
LABEL_temp116 = "core10_temp"
LABEL_temp117 = "core11_temp"
LABEL_power1 = "p0_power"
LABEL_power2 = "p0_pcie_power"
LABEL_power3 = "p0_io_power"
LABEL_power4 = "centaur0_power"
@@ -0,0 +1,3 @@
LABEL_temp1=rtc
WARNLO_temp1=10000
WARNHI_temp1=35000
@@ -0,0 +1,7 @@
LABEL_temp1=ambient
WARNLO_temp1=10000
WARNHI_temp1=40000
LABEL_temp2=cpu
WARNLO_temp2=10000
WARNHI_temp2=80000
@@ -0,0 +1,13 @@
FILESEXTRAPATHS:prepend:palmetto := "${THISDIR}/${PN}:"
NAMES = " \
bus@1e78a000/i2c-bus@40/rtc@68 \
bus@1e78a000/i2c-bus@c0/tmp423@4c \
bus@1e78a000/i2c-bus@100/occ-hwmon@50 \
"
ITEMSFMT = "ahb/apb/{0}.conf"
ITEMS = "${@compose_list(d, 'ITEMSFMT', 'NAMES')}"
ENVS = "obmc/hwmon/{0}"
SYSTEMD_ENVIRONMENT_FILE:${PN}:append:palmetto = " ${@compose_list(d, 'ENVS', 'ITEMS')}"
@@ -0,0 +1,60 @@
{
"gpio_configs": {
"power_config": {
"power_good_in": "PGOOD",
"power_up_outs": [
{"name": "POWER_PIN", "polarity": false}
],
"reset_outs": [
{"name": "USB_RESET", "polarity": false}
],
"pci_reset_outs": [
{"name": "PCIE_RESET", "polarity": false, "hold": false}
]
}
},
"gpio_definitions": [
{
"name": "POWER_PIN",
"pin": "E1",
"direction": "out"
},
{
"name": "PGOOD",
"pin": "C7",
"direction": "in"
},
{
"name": "BMC_THROTTLE",
"pin": "J3",
"direction": "out"
},
{
"name": "IDBTN",
"pin": "Q7",
"direction": "out"
},
{
"name": "POWER_BUTTON",
"pin": "E0",
"direction": "both"
},
{
"name": "PCIE_RESET",
"pin": "B5",
"direction": "out"
},
{
"name": "USB_RESET",
"pin": "B6",
"direction": "out"
},
{
"name": "CHECKSTOP",
"pin": "P5",
"direction": "falling"
}
]
}
@@ -0,0 +1 @@
FILESEXTRAPATHS:prepend:palmetto := "${THISDIR}/${PN}:"
+2
View File
@@ -0,0 +1,2 @@
recipes-kernel - The kernel and generic applications/libraries with strong kernel dependencies
recipes-phosphor - Phosphor OpenBMC applications and configuration