From 9340787ec4c07464fb26cfb78f64586af5eff2b0 Mon Sep 17 00:00:00 2001 From: "Thang Q. Nguyen" Date: Thu, 10 Dec 2020 08:49:53 +0000 Subject: meta-ampere: Add Mt.Jade machine Add initial Mt.Jade platform support with minimal configuration so that the code can be compiled and booted on the Mt.Jade platform system. Tested: 1. Compile OpenBMC image for Mt.Jade successfully and can boot on Mt.Jade. 2. Login to console and WebUI successfully. Signed-off-by: Thang Q. Nguyen Change-Id: Ib4c2c30be7fc0a13cc66f7eb1c8b9604e9a5292f --- meta-ampere/meta-jade/conf/bblayers.conf.sample | 29 + meta-ampere/meta-jade/conf/conf-notes.txt | 2 + meta-ampere/meta-jade/conf/layer.conf | 10 + meta-ampere/meta-jade/conf/local.conf.sample | 216 ++++++++ meta-ampere/meta-jade/conf/machine/mtjade.conf | 9 + ...eed-Add-device-tree-for-Ampere-s-Mt.-Jade.patch | 599 +++++++++++++++++++++ .../recipes-kernel/linux/linux-aspeed/mtjade.cfg | 16 + .../recipes-kernel/linux/linux-aspeed_%.bbappend | 7 + .../packagegroups/packagegroup-obmc-apps.bbappend | 1 + 9 files changed, 889 insertions(+) create mode 100644 meta-ampere/meta-jade/conf/bblayers.conf.sample create mode 100644 meta-ampere/meta-jade/conf/conf-notes.txt create mode 100644 meta-ampere/meta-jade/conf/layer.conf create mode 100644 meta-ampere/meta-jade/conf/local.conf.sample create mode 100644 meta-ampere/meta-jade/conf/machine/mtjade.conf create mode 100644 meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-aspeed-Add-device-tree-for-Ampere-s-Mt.-Jade.patch create mode 100644 meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/mtjade.cfg create mode 100644 meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed_%.bbappend create mode 100644 meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend (limited to 'meta-ampere/meta-jade') diff --git a/meta-ampere/meta-jade/conf/bblayers.conf.sample b/meta-ampere/meta-jade/conf/bblayers.conf.sample new file mode 100644 index 000000000..f4d7fc399 --- /dev/null +++ b/meta-ampere/meta-jade/conf/bblayers.conf.sample @@ -0,0 +1,29 @@ +# 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-ampere \ + ##OEROOT##/meta-ampere/meta-jade \ + " +BBLAYERS_NON_REMOVABLE ?= " \ + ##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-ampere \ + ##OEROOT##/meta-ampere/meta-jade \ + " diff --git a/meta-ampere/meta-jade/conf/conf-notes.txt b/meta-ampere/meta-jade/conf/conf-notes.txt new file mode 100644 index 000000000..9b3c01a55 --- /dev/null +++ b/meta-ampere/meta-jade/conf/conf-notes.txt @@ -0,0 +1,2 @@ +Common targets are: + obmc-phosphor-image diff --git a/meta-ampere/meta-jade/conf/layer.conf b/meta-ampere/meta-jade/conf/layer.conf new file mode 100644 index 000000000..2cf1805c7 --- /dev/null +++ b/meta-ampere/meta-jade/conf/layer.conf @@ -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 += "jade-layer" +BBFILE_PATTERN_jade-layer := "^${LAYERDIR}/" +LAYERSERIES_COMPAT_jade-layer = "dunfell gatesgarth" diff --git a/meta-ampere/meta-jade/conf/local.conf.sample b/meta-ampere/meta-jade/conf/local.conf.sample new file mode 100644 index 000000000..200d89797 --- /dev/null +++ b/meta-ampere/meta-jade/conf/local.conf.sample @@ -0,0 +1,216 @@ +# +# 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. +# +# 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 +# +MACHINE ??= "mtjade" + +# +# 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-phosphor" +# 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 rpm: +PACKAGE_CLASSES ?= "package_rpm" + +# +# SDK/ADT target architecture +# +# This variable specifies the architecture to build SDK/ADT 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 and x86_64 +#SDKMACHINE ?= "i686" + +SANITY_TESTED_DISTROS_append ?= " *" + +# +# 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) +# "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, exmap, 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 +# - 'image-mklibs' to reduce shared library files size for an image +# - 'image-prelink' in order to prelink the filesystem image +# - 'image-swab' to perform host system intrusion detection +# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink +# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended +USER_CLASSES ?= "buildstats image-mklibs image-prelink" + +# +# 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. To +# enable this uncomment this line. See classes/testimage(-auto).bbclass for +# further details. +#TEST_IMAGE = "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 that 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 \ + ABORT,${TMPDIR},100M,1K \ + ABORT,${DL_DIR},100M,1K \ + ABORT,${SSTATE_DIR},100M,1K \ + ABORT,/tmp,10M,1K" + +# +# Shared-state files from other locations +# +# As mentioned above, shared state files are prebuilt cache data objects which can +# 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" + + +# +# Qemu configuration +# +# By default qemu will build with a builtin VNC server where graphical output can be +# seen. The two lines below enable the SDL backend too. This assumes there is a +# libsdl library available on your build system. +#PACKAGECONFIG_append_pn-qemu-native = " sdl" +#PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl" +#ASSUME_PROVIDED += "libsdl-native" + + +# 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 = "1" diff --git a/meta-ampere/meta-jade/conf/machine/mtjade.conf b/meta-ampere/meta-jade/conf/machine/mtjade.conf new file mode 100644 index 000000000..c7bf92bfe --- /dev/null +++ b/meta-ampere/meta-jade/conf/machine/mtjade.conf @@ -0,0 +1,9 @@ +KMACHINE = "aspeed" +KERNEL_DEVICETREE = "${KMACHINE}-bmc-ampere-${MACHINE}.dtb" +UBOOT_MACHINE = "ast_g5_phy_config" + +require conf/machine/include/ast2500.inc +require conf/machine/include/obmc-bsp-common.inc +require conf/distro/include/phosphor-isolation.inc + +VOLATILE_LOG_DIR = "no" diff --git a/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-aspeed-Add-device-tree-for-Ampere-s-Mt.-Jade.patch b/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-aspeed-Add-device-tree-for-Ampere-s-Mt.-Jade.patch new file mode 100644 index 000000000..b517fd1d0 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/0001-ARM-dts-aspeed-Add-device-tree-for-Ampere-s-Mt.-Jade.patch @@ -0,0 +1,599 @@ +From 5c45537b1d74c22cd95c196bf261b3ee3aa4856f Mon Sep 17 00:00:00 2001 +From: Quan Nguyen +Date: Thu, 12 Nov 2020 13:42:43 +0700 +Subject: [PATCH 2/2] ARM: dts: aspeed: Add device tree for Ampere's Mt. Jade + BMC + +The Mt. Jade BMC is an ASPEED AST2500-based BMC for the Mt. Jade +hardware reference platform with Ampere's Altra Processor Family. + +Reviewed-by: Andrew Jeffery +Reviewed-by: Joel Stanley +Signed-off-by: Quan Nguyen +Signed-off-by: Phong Vo +Signed-off-by: Thang Q. Nguyen +--- + arch/arm/boot/dts/Makefile | 1 + + .../arm/boot/dts/aspeed-bmc-ampere-mtjade.dts | 558 ++++++++++++++++++ + 2 files changed, 559 insertions(+) + create mode 100644 arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts + +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile +index 9f9f3e49132a..5da5e8f93554 100644 +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -1398,6 +1398,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \ + aspeed-ast2500-evb.dtb \ + aspeed-ast2600-evb.dtb \ + aspeed-bmc-amd-ethanolx.dtb \ ++ aspeed-bmc-ampere-mtjade.dtb \ + aspeed-bmc-arm-centriq2400-rep.dtb \ + aspeed-bmc-arm-stardragon4800-rep2.dtb \ + aspeed-bmc-bytedance-g220a.dtb \ +diff --git a/arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts b/arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts +new file mode 100644 +index 000000000000..8f5ec22e51c2 +--- /dev/null ++++ b/arch/arm/boot/dts/aspeed-bmc-ampere-mtjade.dts +@@ -0,0 +1,558 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/dts-v1/; ++#include "aspeed-g5.dtsi" ++#include ++ ++/ { ++ model = "Ampere Mt. Jade BMC"; ++ compatible = "ampere,mtjade-bmc", "aspeed,ast2500"; ++ ++ chosen { ++ stdout-path = &uart5; ++ bootargs = "console=ttyS4,115200 earlyprintk"; ++ }; ++ ++ memory@80000000 { ++ reg = <0x80000000 0x20000000>; ++ }; ++ ++ reserved-memory { ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ranges; ++ ++ vga_memory: framebuffer@9f000000 { ++ no-map; ++ reg = <0x9f000000 0x01000000>; /* 16M */ ++ }; ++ ++ gfx_memory: framebuffer { ++ size = <0x01000000>; ++ alignment = <0x01000000>; ++ compatible = "shared-dma-pool"; ++ reusable; ++ }; ++ ++ video_engine_memory: jpegbuffer { ++ size = <0x02000000>; /* 32M */ ++ alignment = <0x01000000>; ++ compatible = "shared-dma-pool"; ++ reusable; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ ++ fault { ++ gpios = <&gpio ASPEED_GPIO(B, 6) GPIO_ACTIVE_HIGH>; ++ }; ++ ++ identify { ++ gpios = <&gpio ASPEED_GPIO(Q, 6) GPIO_ACTIVE_HIGH>; ++ }; ++ }; ++ ++ gpio-keys { ++ compatible = "gpio-keys"; ++ ++ shutdown_ack { ++ label = "SHUTDOWN_ACK"; ++ gpios = <&gpio ASPEED_GPIO(G, 2) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ reboot_ack { ++ label = "REBOOT_ACK"; ++ gpios = <&gpio ASPEED_GPIO(J, 3) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ S0_overtemp { ++ label = "S0_OVERTEMP"; ++ gpios = <&gpio ASPEED_GPIO(G, 3) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ S0_hightemp { ++ label = "S0_HIGHTEMP"; ++ gpios = <&gpio ASPEED_GPIO(J, 0) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ S0_cpu_fault { ++ label = "S0_CPU_FAULT"; ++ gpios = <&gpio ASPEED_GPIO(J, 1) GPIO_ACTIVE_HIGH>; ++ linux,code = ; ++ }; ++ ++ S1_overtemp { ++ label = "S1_OVERTEMP"; ++ gpios = <&gpio ASPEED_GPIO(Z, 6) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ S1_hightemp { ++ label = "S1_HIGHTEMP"; ++ gpios = <&gpio ASPEED_GPIO(AB, 0) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ S1_cpu_fault { ++ label = "S1_CPU_FAULT"; ++ gpios = <&gpio ASPEED_GPIO(Z, 1) GPIO_ACTIVE_HIGH>; ++ linux,code = ; ++ }; ++ ++ id_button { ++ label = "ID_BUTTON"; ++ gpios = <&gpio ASPEED_GPIO(Q, 5) GPIO_ACTIVE_LOW>; ++ linux,code = ; ++ }; ++ ++ }; ++ ++ gpioA0mux: mux-controller { ++ compatible = "gpio-mux"; ++ #mux-control-cells = <0>; ++ mux-gpios = <&gpio ASPEED_GPIO(A, 0) GPIO_ACTIVE_LOW>; ++ }; ++ ++ adc0mux: adc0mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 0>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc1mux: adc1mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 1>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc2mux: adc2mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 2>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc3mux: adc3mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 3>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc4mux: adc4mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 4>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc5mux: adc5mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 5>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc6mux: adc6mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 6>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc7mux: adc7mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 7>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc8mux: adc8mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 8>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc9mux: adc9mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 9>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc10mux: adc10mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 10>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc11mux: adc11mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 11>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc12mux: adc12mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 12>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ adc13mux: adc13mux { ++ compatible = "io-channel-mux"; ++ io-channels = <&adc 13>; ++ #io-channel-cells = <1>; ++ io-channel-names = "parent"; ++ mux-controls = <&gpioA0mux>; ++ channels = "s0", "s1"; ++ }; ++ ++ iio-hwmon { ++ compatible = "iio-hwmon"; ++ io-channels = <&adc0mux 0>, <&adc0mux 1>, ++ <&adc1mux 0>, <&adc1mux 1>, ++ <&adc2mux 0>, <&adc2mux 1>, ++ <&adc3mux 0>, <&adc3mux 1>, ++ <&adc4mux 0>, <&adc4mux 1>, ++ <&adc5mux 0>, <&adc5mux 1>, ++ <&adc6mux 0>, <&adc6mux 1>, ++ <&adc7mux 0>, <&adc7mux 1>, ++ <&adc8mux 0>, <&adc8mux 1>, ++ <&adc9mux 0>, <&adc9mux 1>, ++ <&adc10mux 0>, <&adc10mux 1>, ++ <&adc11mux 0>, <&adc11mux 1>, ++ <&adc12mux 0>, <&adc12mux 1>, ++ <&adc13mux 0>, <&adc13mux 1>; ++ }; ++ ++ iio-hwmon-adc14 { ++ compatible = "iio-hwmon"; ++ io-channels = <&adc 14>; ++ }; ++ ++ iio-hwmon-battery { ++ compatible = "iio-hwmon"; ++ io-channels = <&adc 15>; ++ }; ++}; ++ ++&fmc { ++ status = "okay"; ++ flash@0 { ++ status = "okay"; ++ m25p,fast-read; ++ label = "bmc"; ++ /* spi-max-frequency = <50000000>; */ ++#include "openbmc-flash-layout.dtsi" ++ }; ++}; ++ ++&spi1 { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_spi1_default>; ++ ++ flash@0 { ++ status = "okay"; ++ m25p,fast-read; ++ label = "pnor"; ++ /* spi-max-frequency = <100000000>; */ ++ }; ++}; ++ ++&uart1 { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_txd1_default ++ &pinctrl_rxd1_default ++ &pinctrl_ncts1_default ++ &pinctrl_nrts1_default>; ++}; ++ ++&uart2 { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_txd2_default ++ &pinctrl_rxd2_default>; ++}; ++ ++&uart3 { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_txd3_default ++ &pinctrl_rxd3_default>; ++}; ++ ++&uart4 { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_txd4_default ++ &pinctrl_rxd4_default>; ++}; ++ ++/* The BMC's uart */ ++&uart5 { ++ status = "okay"; ++}; ++ ++&mac1 { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; ++}; ++ ++&i2c0 { ++ status = "okay"; ++}; ++ ++&i2c1 { ++ status = "okay"; ++}; ++ ++&i2c2 { ++ status = "okay"; ++}; ++ ++&i2c3 { ++ status = "okay"; ++ eeprom@50 { ++ compatible = "microchip,24c64", "atmel,24c64"; ++ reg = <0x50>; ++ pagesize = <32>; ++ }; ++ ++ inlet_mem2: tmp175@28 { ++ compatible = "ti,tmp175"; ++ reg = <0x28>; ++ }; ++ ++ inlet_cpu: tmp175@29 { ++ compatible = "ti,tmp175"; ++ reg = <0x29>; ++ }; ++ ++ inlet_mem1: tmp175@2a { ++ compatible = "ti,tmp175"; ++ reg = <0x2a>; ++ }; ++ ++ outlet_cpu: tmp175@2b { ++ compatible = "ti,tmp175"; ++ reg = <0x2b>; ++ }; ++ ++ outlet1: tmp175@2c { ++ compatible = "ti,tmp175"; ++ reg = <0x2c>; ++ }; ++ ++ outlet2: tmp175@2d { ++ compatible = "ti,tmp175"; ++ reg = <0x2d>; ++ }; ++}; ++ ++&i2c4 { ++ status = "okay"; ++ rtc@51 { ++ compatible = "nxp,pcf85063a"; ++ reg = <0x51>; ++ }; ++}; ++ ++&i2c5 { ++ status = "okay"; ++}; ++ ++&i2c6 { ++ status = "okay"; ++ psu@58 { ++ compatible = "pmbus"; ++ reg = <0x58>; ++ }; ++ ++ psu@59 { ++ compatible = "pmbus"; ++ reg = <0x59>; ++ }; ++}; ++ ++&i2c7 { ++ status = "okay"; ++}; ++ ++&i2c8 { ++ status = "okay"; ++}; ++ ++&i2c9 { ++ status = "okay"; ++}; ++ ++&gfx { ++ status = "okay"; ++ memory-region = <&gfx_memory>; ++}; ++ ++&pinctrl { ++ aspeed,external-nodes = <&gfx &lhc>; ++}; ++ ++&pwm_tacho { ++ status = "okay"; ++ pinctrl-names = "default"; ++ pinctrl-0 = <&pinctrl_pwm2_default &pinctrl_pwm3_default ++ &pinctrl_pwm4_default &pinctrl_pwm5_default ++ &pinctrl_pwm6_default &pinctrl_pwm7_default>; ++ ++ fan@0 { ++ reg = <0x02>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x04>; ++ }; ++ ++ fan@1 { ++ reg = <0x02>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x05>; ++ }; ++ ++ fan@2 { ++ reg = <0x03>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x06>; ++ }; ++ ++ fan@3 { ++ reg = <0x03>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x07>; ++ }; ++ ++ fan@4 { ++ reg = <0x04>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x08>; ++ }; ++ ++ fan@5 { ++ reg = <0x04>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x09>; ++ }; ++ ++ fan@6 { ++ reg = <0x05>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x0a>; ++ }; ++ ++ fan@7 { ++ reg = <0x05>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x0b>; ++ }; ++ ++ fan@8 { ++ reg = <0x06>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x0c>; ++ }; ++ ++ fan@9 { ++ reg = <0x06>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x0d>; ++ }; ++ ++ fan@10 { ++ reg = <0x07>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x0e>; ++ }; ++ ++ fan@11 { ++ reg = <0x07>; ++ aspeed,fan-tach-ch = /bits/ 8 <0x0f>; ++ }; ++ ++}; ++ ++&vhub { ++ status = "okay"; ++}; ++ ++&adc { ++ status = "okay"; ++}; ++ ++&video { ++ status = "okay"; ++ memory-region = <&video_engine_memory>; ++}; ++ ++&gpio { ++ gpio-line-names = ++ /*A0-A7*/ "","","","S0_BMC_SPECIAL_BOOT","","","","", ++ /*B0-B7*/ "BMC_SELECT_EEPROM","","","", ++ "POWER_BUTTON","","","", ++ /*C0-C7*/ "","","","","","","","", ++ /*D0-D7*/ "","","","","","","","", ++ /*E0-E7*/ "","","","","","","","", ++ /*F0-F7*/ "","","BMC_SYS_PSON_L","S0_DDR_SAVE","PGOOD", ++ "S1_DDR_SAVE","","", ++ /*G0-G7*/ "S0_FW_BOOT_OK","SHD_REQ_L","","S0_OVERTEMP_L","","", ++ "","", ++ /*H0-H7*/ "","","","","","","","", ++ /*I0-I7*/ "","","S1_BMC_SPECIAL_BOOT","","","","","", ++ /*J0-J7*/ "S0_HIGHTEMP_L","S0_FAULT_L","S0_SCP_AUTH_FAIL_L","", ++ "","","","", ++ /*K0-K7*/ "","","","","","","","", ++ /*L0-L7*/ "","","","BMC_SYSRESET_L","SPI_AUTH_FAIL_L","","","", ++ /*M0-M7*/ "","","","","","","","", ++ /*N0-N7*/ "","","","","","","","", ++ /*O0-O7*/ "","","","","","","","", ++ /*P0-P7*/ "","","","","","","","", ++ /*Q0-Q7*/ "","","","","","UID_BUTTON","","", ++ /*R0-R7*/ "","","BMC_EXT_HIGHTEMP_L","","","RESET_BUTTON","","", ++ /*S0-S7*/ "","","","","","","","", ++ /*T0-T7*/ "","","","","","","","", ++ /*U0-U7*/ "","","","","","","","", ++ /*V0-V7*/ "","","","","","","","", ++ /*W0-W7*/ "","","","","","","","", ++ /*X0-X7*/ "","","","","","","","", ++ /*Y0-Y7*/ "","","","","","","","", ++ /*Z0-Z7*/ "S0_BMC_PLIMIT","S1_FAULT_L","S1_FW_BOOT_OK","","", ++ "S1_SCP_AUTH_FAIL_L","S1_OVERTEMP_L","", ++ /*AA0-AA7*/ "","","","","","","","", ++ /*AB0-AB7*/ "S1_HIGHTEMP_L","S1_BMC_PLIMIT","S0_BMC_DDR_ADDR", ++ "S1_BMC_DDR_ADR","","","","", ++ /*AC0-AC7*/ "SYS_PWR_GD","","","","","BMC_READY","SLAVE_PRESENT_L", ++ "BMC_OCP_PG"; ++}; +-- +2.28.0 + diff --git a/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/mtjade.cfg b/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/mtjade.cfg new file mode 100644 index 000000000..9afe14af8 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed/mtjade.cfg @@ -0,0 +1,16 @@ +# +# BOM +# +CONFIG_RTC_DRV_PCF85063=y +CONFIG_IIO_MUX=y +CONFIG_MUX_GPIO=y +CONFIG_I2C_MUX=y + +# +# Mtjade driver build flags +# +CONFIG_SENSORS_IIO_HWMON=y +CONFIG_ASPEED_ADC=y +CONFIG_SENSORS_LM75=y +CONFIG_I2C_SLAVE=y +CONFIG_SENSORS_ASPEED=y diff --git a/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed_%.bbappend new file mode 100644 index 000000000..109cc0721 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS_prepend_mtjade := "${THISDIR}/${PN}:" + +SRC_URI += " \ + file://${MACHINE}.cfg \ + file://0001-ARM-dts-aspeed-Add-device-tree-for-Ampere-s-Mt.-Jade.patch \ +" + diff --git a/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend new file mode 100644 index 000000000..07bff9390 --- /dev/null +++ b/meta-ampere/meta-jade/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend @@ -0,0 +1 @@ +RDEPENDS_${PN}-extras_append_mtjade = " phosphor-webui phosphor-image-signing" -- cgit v1.2.3