diff options
author | Jason M. Bills <jason.m.bills@linux.intel.com> | 2021-04-19 22:13:22 +0300 |
---|---|---|
committer | Jason M. Bills <jason.m.bills@linux.intel.com> | 2021-04-19 23:02:05 +0300 |
commit | ab16ab3d0de4dc9d130ae3db366c38888f1ada5a (patch) | |
tree | d7b76b8111aedb06ee17ced2c9cbdebaeaaf6311 /meta-openbmc-mods | |
parent | 36caa12533da01d4319c5ffe7613711a0ec7dea7 (diff) | |
download | openbmc-ab16ab3d0de4dc9d130ae3db366c38888f1ada5a.tar.xz |
Update to internal 0.45
Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com>
Diffstat (limited to 'meta-openbmc-mods')
45 files changed, 718 insertions, 827 deletions
diff --git a/meta-openbmc-mods/meta-ast2500/conf/machine/include/intel-ast2500.inc b/meta-openbmc-mods/meta-ast2500/conf/machine/include/intel-ast2500.inc index 3e7bd152f..9ccc399b1 100644 --- a/meta-openbmc-mods/meta-ast2500/conf/machine/include/intel-ast2500.inc +++ b/meta-openbmc-mods/meta-ast2500/conf/machine/include/intel-ast2500.inc @@ -7,7 +7,6 @@ KERNEL_DEVICETREE = " \ require conf/machine/include/ast2500.inc require conf/machine/include/obmc-bsp-si-common.inc require conf/machine/include/intel.inc -require conf/distro/include/phosphor-tiny.inc require conf/distro/include/phosphor-isolation.inc UBOOT_MACHINE = "ast_g5_phy_config" diff --git a/meta-openbmc-mods/meta-ast2600/conf/machine/include/intel-ast2600.inc b/meta-openbmc-mods/meta-ast2600/conf/machine/include/intel-ast2600.inc index ae22138ba..a1700c873 100644 --- a/meta-openbmc-mods/meta-ast2600/conf/machine/include/intel-ast2600.inc +++ b/meta-openbmc-mods/meta-ast2600/conf/machine/include/intel-ast2600.inc @@ -8,7 +8,6 @@ KERNEL_DEVICETREE = " \ require conf/machine/include/ast2600.inc require conf/machine/include/obmc-bsp-si-common.inc require conf/machine/include/intel.inc -require conf/distro/include/phosphor-tiny.inc TARGET_FPU = "hard" diff --git a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0027-ast2600-Add-Mailbox-init-function.patch b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0027-ast2600-Add-Mailbox-init-function.patch index 2bcf464cf..0933d913c 100644 --- a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0027-ast2600-Add-Mailbox-init-function.patch +++ b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0027-ast2600-Add-Mailbox-init-function.patch @@ -3,8 +3,18 @@ From: Kuiying Wang <kuiying.wang@intel.com> Date: Thu, 25 Feb 2021 14:45:12 +0800 Subject: [PATCH] ast2600: Add Mailbox init function. -Add Mailbox init function to make sure -mailbox regs are clear when BMC reset. +Add Mailbox init function to make sure mailbox regs are reset +to expected values at reset. + +At power-on reset, 0x0c=0, 0x0d=2, 0x0e=5e, 0x0f=31 +as per the handshake definition with BIOS. + +At all other resets, 0x0c is preserved, 0x0d, 0x0e, 0x0f +are reset the same as power-on reset. + +Because the reset behavior depends on a flag set in the _f phase of +booting, the mailbox_init function must be called from the _r phase. + AST2600 A0 has 16 mailboxes. AST2600 A1 has 32 mailboxes. @@ -13,7 +23,7 @@ BMC could boot correctly and all the mailboxes clear ast# md 0x1e789200 1e789200: 00000000 00000000 00000000 00000000 ................ 1e789210: 00000000 00000000 00000000 00000000 ................ -1e789220: 00000000 00000000 00000000 00000000 ................ +1e789220: 00000000 00000002 0000005e 00000031 .........^..1... 1e789230: 00000000 00000000 00000000 00000000 ................ 1e789240: 00000000 00000000 00000000 00000000 ................ @@ -25,10 +35,14 @@ Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com> 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/board/aspeed/ast2600_intel/intel.c b/board/aspeed/ast2600_intel/intel.c -index 17a21c746098..17d1b1952d4d 100644 +index 4a5ff0bdac..fbc3215138 100644 --- a/board/aspeed/ast2600_intel/intel.c +++ b/board/aspeed/ast2600_intel/intel.c -@@ -10,6 +10,9 @@ +@@ -7,9 +7,13 @@ + #include <asm/io.h> + #include <malloc.h> + ++#define SYS_PWR_RESET_FLAG BIT(0) /* from scu_info.c */ #define WATCHDOG_RESET_BIT BIT(20) #define BOOT_FAILURE_LIMIT 3 @@ -38,16 +52,18 @@ index 17a21c746098..17d1b1952d4d 100644 static int get_boot_failures(void) { return env_get_ulong("bootfailures", 10, 0); -@@ -320,6 +323,25 @@ static void timer_callback(void *cookie) +@@ -329,6 +333,55 @@ static void timer_callback(void *cookie) } } +#define AST_MBX_BASE 0x1e789200 +#define AST_MBX_COUNT_A0 16 +#define AST_MBX_COUNT 32 ++#define MAILBOX_INIT_D 0x02 ++#define MAILBOX_INIT_E 0x5e ++#define MAILBOX_INIT_F 0x31 +static void mailbox_init(void) +{ -+ /* clear out default mbox values */ + int i, mbx_count; + + if (readl(SCU_BASE + SCU_014) == REV_ID_AST2600A0) @@ -55,25 +71,53 @@ index 17a21c746098..17d1b1952d4d 100644 + else + mbx_count = AST_MBX_COUNT; + -+ for (i = 0; i < mbx_count; i++) ++ if (gd->reset_reason & SYS_PWR_RESET_FLAG) ++ { ++ /* on AC-reset, clear all except special values to d/e/f */ ++ for (i = 0; i < mbx_count; i++) ++ { ++ long v; ++ if (i == 0x0d) ++ v = MAILBOX_INIT_D; ++ else if (i == 0x0e) ++ v = MAILBOX_INIT_E; ++ else if (i == 0x0f) ++ v = MAILBOX_INIT_F; ++ else ++ v = 0; ++ writel(v, AST_MBX_BASE + 4 * i); ++ } ++ } ++ else + { -+ writel(0, AST_MBX_BASE + 4 * i); ++ /* on other resets, clear all except c/d/e/f */ ++ for (i = 0; i < mbx_count; i++) ++ { ++ long v; ++ if (i == 0x0d) ++ v = MAILBOX_INIT_D; ++ else if (i == 0x0c || i == 0x0e || i == 0x0f) ++ continue; ++ else ++ v = 0; ++ writel(v, AST_MBX_BASE + 4 * i); ++ } + } +} + int board_early_init_f(void) { /* This is called before relocation; beware! */ -@@ -333,6 +355,8 @@ int board_early_init_f(void) - - sgpio_init(); +@@ -350,6 +405,8 @@ int board_early_init_r(void) + { + debug("board_early_init_r\n"); + mailbox_init(); + - /* TODO: is it too late to enforce HW security registers? */ - return 0; - } -@@ -469,8 +493,6 @@ extern void timer_enable(int n, u32 interval_us, interrupt_handler_t *handler, + enable_onboard_tpm(); + + bmc_running_indicator(true); +@@ -447,8 +504,6 @@ extern void timer_enable(int n, u32 interval_us, interrupt_handler_t *handler, void *cookie); int board_late_init(void) { diff --git a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0028-Improve-randomness-of-mac-address-generation.patch b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0028-Improve-randomness-of-mac-address-generation.patch new file mode 100644 index 000000000..337e9995b --- /dev/null +++ b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/files/0028-Improve-randomness-of-mac-address-generation.patch @@ -0,0 +1,53 @@ +From da155e990fe763d3a03bdac76054e1d5530b8c16 Mon Sep 17 00:00:00 2001 +From: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +Date: Wed, 10 Mar 2021 20:15:10 -0800 +Subject: [PATCH] Improve randomness of mac address generation + +This commit improves randomness of mac address generation using +AST2600's hardware random number generator. + +Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +--- + lib/rand.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/lib/rand.c b/lib/rand.c +index af4cf3a0e8cf..0a12b0b82276 100644 +--- a/lib/rand.c ++++ b/lib/rand.c +@@ -8,16 +8,32 @@ + */ + + #include <common.h> ++#include <asm/io.h> + + static unsigned int y = 1U; + + unsigned int rand_r(unsigned int *seedp) + { ++#ifdef CONFIG_ASPEED_AST2600 ++#define SCU_524 0x1e6e2524 ++ int i; ++ ++ /* ++ * Use hardware random number generator. It generates a new number on ++ * each 1us or on each 32 read command cycle so this code makes ++ * intentional dummy 32 reads. ++ */ ++ for (i = 0; i < 32; i++) ++ *seedp ^= readl(SCU_524); ++ ++ return readl(SCU_524); ++#else + *seedp ^= (*seedp << 13); + *seedp ^= (*seedp >> 17); + *seedp ^= (*seedp << 5); + + return *seedp; ++#endif + } + + unsigned int rand(void) +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend index e05f9e16f..360d8398e 100644 --- a/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend +++ b/meta-openbmc-mods/meta-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_%.bbappend @@ -33,6 +33,7 @@ SRC_URI_append_intel-ast2600 = " \ file://0025-ast2600-PFR-platform-EXTRST-reset-mask-selection.patch \ file://0025-Enable-PCIe-L1-support.patch \ file://0027-ast2600-Add-Mailbox-init-function.patch \ + file://0028-Improve-randomness-of-mac-address-generation.patch \ " # CVE-2020-10648 vulnerability fix diff --git a/meta-openbmc-mods/meta-common/recipes-connectivity/openssl/openssl_1.1.1i.bb b/meta-openbmc-mods/meta-common/recipes-connectivity/openssl/openssl_1.1.1j.bb index a9120d136..bf01647ee 100644 --- a/meta-openbmc-mods/meta-common/recipes-connectivity/openssl/openssl_1.1.1i.bb +++ b/meta-openbmc-mods/meta-common/recipes-connectivity/openssl/openssl_1.1.1j.bb @@ -23,7 +23,7 @@ SRC_URI_append_class-nativesdk = " \ file://environment.d-openssl.sh \ " -SRC_URI[sha256sum] = "e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" +SRC_URI[sha256sum] = "aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" inherit lib_package multilib_header multilib_script ptest MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash" diff --git a/meta-openbmc-mods/meta-common/recipes-core/fw-update/intel-fw-update.bb b/meta-openbmc-mods/meta-common/recipes-core/fw-update/intel-fw-update.bb index 007a4aece..118d6aab8 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/fw-update/intel-fw-update.bb +++ b/meta-openbmc-mods/meta-common/recipes-core/fw-update/intel-fw-update.bb @@ -9,6 +9,8 @@ RDEPENDS_intel-fw-update += "busybox dropbear" # mkfs.vfat, parted RDEPENDS_intel-fw-update += "dosfstools dtc" +RDEPENDS_intel-fw-update += "bash" + LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${INTELBASE}/COPYING.apache-2.0;md5=34400b68072d710fecd0a2940a0d1658" PFR_EN = "${@bb.utils.contains('IMAGE_FSTYPES', 'intel-pfr', 'pfr', '', d)}" diff --git a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0032-Fix-buffer-overrun-in-EUC-KR-conversion-module-BZ-24973.patch b/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0032-Fix-buffer-overrun-in-EUC-KR-conversion-module-BZ-24973.patch deleted file mode 100644 index 82ae284d2..000000000 --- a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0032-Fix-buffer-overrun-in-EUC-KR-conversion-module-BZ-24973.patch +++ /dev/null @@ -1,133 +0,0 @@ -From ee7a3144c9922808181009b7b3e50e852fb4999b Mon Sep 17 00:00:00 2001 -From: Andreas Schwab <schwab@suse.de> -Date: Mon, 21 Dec 2020 08:56:43 +0530 -Subject: [PATCH] Fix buffer overrun in EUC-KR conversion module (bz #24973) - -The byte 0xfe as input to the EUC-KR conversion denotes a user-defined -area and is not allowed. The from_euc_kr function used to skip two bytes -when told to skip over the unknown designation, potentially running over -the buffer end. ---- - iconvdata/Makefile | 3 ++- - iconvdata/bug-iconv13.c | 53 +++++++++++++++++++++++++++++++++++++++++ - iconvdata/euc-kr.c | 6 +---- - iconvdata/ksc5601.h | 6 ++--- - 4 files changed, 59 insertions(+), 9 deletions(-) - create mode 100644 iconvdata/bug-iconv13.c - -diff --git a/iconvdata/Makefile b/iconvdata/Makefile -index 4ec2741cdc..85009f3390 100644 ---- a/iconvdata/Makefile -+++ b/iconvdata/Makefile -@@ -73,7 +73,8 @@ modules.so := $(addsuffix .so, $(modules)) - ifeq (yes,$(build-shared)) - tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ - tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \ -- bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 -+ bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \ -+ bug-iconv13 - ifeq ($(have-thread-library),yes) - tests += bug-iconv3 - endif -diff --git a/iconvdata/bug-iconv13.c b/iconvdata/bug-iconv13.c -new file mode 100644 -index 0000000000..87aaff398e ---- /dev/null -+++ b/iconvdata/bug-iconv13.c -@@ -0,0 +1,53 @@ -+/* bug 24973: Test EUC-KR module -+ Copyright (C) 2020 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <https://www.gnu.org/licenses/>. */ -+ -+#include <errno.h> -+#include <iconv.h> -+#include <stdio.h> -+#include <support/check.h> -+ -+static int -+do_test (void) -+{ -+ iconv_t cd = iconv_open ("UTF-8//IGNORE", "EUC-KR"); -+ TEST_VERIFY_EXIT (cd != (iconv_t) -1); -+ -+ /* 0xfe (->0x7e : row 94) and 0xc9 (->0x49 : row 41) are user-defined -+ areas, which are not allowed and should be skipped over due to -+ //IGNORE. The trailing 0xfe also is an incomplete sequence, which -+ should be checked first. */ -+ char input[4] = { '\xc9', '\xa1', '\0', '\xfe' }; -+ char *inptr = input; -+ size_t insize = sizeof (input); -+ char output[4]; -+ char *outptr = output; -+ size_t outsize = sizeof (output); -+ -+ /* This used to crash due to buffer overrun. */ -+ TEST_VERIFY (iconv (cd, &inptr, &insize, &outptr, &outsize) == (size_t) -1); -+ TEST_VERIFY (errno == EINVAL); -+ /* The conversion should produce one character, the converted null -+ character. */ -+ TEST_VERIFY (sizeof (output) - outsize == 1); -+ -+ TEST_VERIFY_EXIT (iconv_close (cd) != -1); -+ -+ return 0; -+} -+ -+#include <support/test-driver.c> -diff --git a/iconvdata/euc-kr.c b/iconvdata/euc-kr.c -index b0d56cf3ee..1045bae926 100644 ---- a/iconvdata/euc-kr.c -+++ b/iconvdata/euc-kr.c -@@ -80,11 +80,7 @@ euckr_from_ucs4 (uint32_t ch, unsigned char *cp) - \ - if (ch <= 0x9f) \ - ++inptr; \ -- /* 0xfe(->0x7e : row 94) and 0xc9(->0x59 : row 41) are \ -- user-defined areas. */ \ -- else if (__builtin_expect (ch == 0xa0, 0) \ -- || __builtin_expect (ch > 0xfe, 0) \ -- || __builtin_expect (ch == 0xc9, 0)) \ -+ else if (__glibc_unlikely (ch == 0xa0)) \ - { \ - /* This is illegal. */ \ - STANDARD_FROM_LOOP_ERR_HANDLER (1); \ -diff --git a/iconvdata/ksc5601.h b/iconvdata/ksc5601.h -index d3eb3a4ff8..f5cdc72797 100644 ---- a/iconvdata/ksc5601.h -+++ b/iconvdata/ksc5601.h -@@ -50,15 +50,15 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset) - unsigned char ch2; - int idx; - -+ if (avail < 2) -+ return 0; -+ - /* row 94(0x7e) and row 41(0x49) are user-defined area in KS C 5601 */ - - if (ch < offset || (ch - offset) <= 0x20 || (ch - offset) >= 0x7e - || (ch - offset) == 0x49) - return __UNKNOWN_10646_CHAR; - -- if (avail < 2) -- return 0; -- - ch2 = (*s)[1]; - if (ch2 < offset || (ch2 - offset) <= 0x20 || (ch2 - offset) >= 0x7f) - return __UNKNOWN_10646_CHAR; --- -2.27.0 - diff --git a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0033-Fix-assertion-failure-in-ISO-20220JP-3-module-bug-27256.patch b/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0033-Fix-assertion-failure-in-ISO-20220JP-3-module-bug-27256.patch deleted file mode 100644 index 68b9fcfdf..000000000 --- a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0033-Fix-assertion-failure-in-ISO-20220JP-3-module-bug-27256.patch +++ /dev/null @@ -1,292 +0,0 @@ -From 7d88c6142c6efc160c0ee5e4f85cde382c072888 Mon Sep 17 00:00:00 2001 -From: Florian Weimer <fweimer@redhat.com> -Date: Wed, 27 Jan 2021 13:36:12 +0100 -Subject: [PATCH] gconv: Fix assertion failure in ISO-2022-JP-3 module (bug - 27256) - -The conversion loop to the internal encoding does not follow -the interface contract that __GCONV_FULL_OUTPUT is only returned -after the internal wchar_t buffer has been filled completely. This -is enforced by the first of the two asserts in iconv/skeleton.c: - - /* We must run out of output buffer space in this - rerun. */ - assert (outbuf == outerr); - assert (nstatus == __GCONV_FULL_OUTPUT); - -This commit solves this issue by queuing a second wide character -which cannot be written immediately in the state variable, like -other converters already do (e.g., BIG5-HKSCS or TSCII). - -Reported-by: Tavis Ormandy <taviso@gmail.com> ---- - iconvdata/Makefile | 4 +- - iconvdata/bug-iconv14.c | 127 ++++++++++++++++++++++++++++++++++++++ - iconvdata/iso-2022-jp-3.c | 67 ++++++++++++++------ - 3 files changed, 178 insertions(+), 20 deletions(-) - create mode 100644 iconvdata/bug-iconv14.c - -diff --git a/iconvdata/Makefile b/iconvdata/Makefile -index c8c532a3e4..55c527a5f7 100644 ---- a/iconvdata/Makefile -+++ b/iconvdata/Makefile -@@ -74,7 +74,7 @@ ifeq (yes,$(build-shared)) - tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \ - tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \ - bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \ -- bug-iconv13 -+ bug-iconv13 bug-iconv14 - ifeq ($(have-thread-library),yes) - tests += bug-iconv3 - endif -@@ -322,6 +322,8 @@ $(objpfx)bug-iconv10.out: $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) - $(objpfx)bug-iconv12.out: $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) -+$(objpfx)bug-iconv14.out: $(objpfx)gconv-modules \ -+ $(addprefix $(objpfx),$(modules.so)) - - $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \ - $(addprefix $(objpfx),$(modules.so)) \ -diff --git a/iconvdata/bug-iconv14.c b/iconvdata/bug-iconv14.c -new file mode 100644 -index 0000000000..902f140fa9 ---- /dev/null -+++ b/iconvdata/bug-iconv14.c -@@ -0,0 +1,127 @@ -+/* Assertion in ISO-2022-JP-3 due to two-character sequence (bug 27256). -+ Copyright (C) 2021 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <https://www.gnu.org/licenses/>. */ -+ -+#include <iconv.h> -+#include <string.h> -+#include <errno.h> -+#include <support/check.h> -+ -+/* Use an escape sequence to return to the initial state. */ -+static void -+with_escape_sequence (void) -+{ -+ iconv_t c = iconv_open ("UTF-8", "ISO-2022-JP-3"); -+ TEST_VERIFY_EXIT (c != (iconv_t) -1); -+ -+ char in[] = "\e$(O+D\e(B"; -+ char *inbuf = in; -+ size_t inleft = strlen (in); -+ char out[3]; /* Space for one output character. */ -+ char *outbuf; -+ size_t outleft; -+ -+ outbuf = out; -+ outleft = sizeof (out); -+ TEST_COMPARE (iconv (c, &inbuf, &inleft, &outbuf, &outleft), (size_t) -1); -+ TEST_COMPARE (errno, E2BIG); -+ TEST_COMPARE (inleft, 3); -+ TEST_COMPARE (inbuf - in, strlen (in) - 3); -+ TEST_COMPARE (outleft, sizeof (out) - 2); -+ TEST_COMPARE (outbuf - out, 2); -+ TEST_COMPARE (out[0] & 0xff, 0xc3); -+ TEST_COMPARE (out[1] & 0xff, 0xa6); -+ -+ /* Return to the initial shift state, producing the pending -+ character. */ -+ outbuf = out; -+ outleft = sizeof (out); -+ TEST_COMPARE (iconv (c, &inbuf, &inleft, &outbuf, &outleft), 0); -+ TEST_COMPARE (inleft, 0); -+ TEST_COMPARE (inbuf - in, strlen (in)); -+ TEST_COMPARE (outleft, sizeof (out) - 2); -+ TEST_COMPARE (outbuf - out, 2); -+ TEST_COMPARE (out[0] & 0xff, 0xcc); -+ TEST_COMPARE (out[1] & 0xff, 0x80); -+ -+ /* Nothing should be flushed the second time. */ -+ outbuf = out; -+ outleft = sizeof (out); -+ TEST_COMPARE (iconv (c, NULL, 0, &outbuf, &outleft), 0); -+ TEST_COMPARE (outleft, sizeof (out)); -+ TEST_COMPARE (outbuf - out, 0); -+ TEST_COMPARE (out[0] & 0xff, 0xcc); -+ TEST_COMPARE (out[1] & 0xff, 0x80); -+ -+ TEST_COMPARE (iconv_close (c), 0); -+} -+ -+/* Use an explicit flush to return to the initial state. */ -+static void -+with_flush (void) -+{ -+ iconv_t c = iconv_open ("UTF-8", "ISO-2022-JP-3"); -+ TEST_VERIFY_EXIT (c != (iconv_t) -1); -+ -+ char in[] = "\e$(O+D"; -+ char *inbuf = in; -+ size_t inleft = strlen (in); -+ char out[3]; /* Space for one output character. */ -+ char *outbuf; -+ size_t outleft; -+ -+ outbuf = out; -+ outleft = sizeof (out); -+ TEST_COMPARE (iconv (c, &inbuf, &inleft, &outbuf, &outleft), (size_t) -1); -+ TEST_COMPARE (errno, E2BIG); -+ TEST_COMPARE (inleft, 0); -+ TEST_COMPARE (inbuf - in, strlen (in)); -+ TEST_COMPARE (outleft, sizeof (out) - 2); -+ TEST_COMPARE (outbuf - out, 2); -+ TEST_COMPARE (out[0] & 0xff, 0xc3); -+ TEST_COMPARE (out[1] & 0xff, 0xa6); -+ -+ /* Flush the pending character. */ -+ outbuf = out; -+ outleft = sizeof (out); -+ TEST_COMPARE (iconv (c, NULL, 0, &outbuf, &outleft), 0); -+ TEST_COMPARE (outleft, sizeof (out) - 2); -+ TEST_COMPARE (outbuf - out, 2); -+ TEST_COMPARE (out[0] & 0xff, 0xcc); -+ TEST_COMPARE (out[1] & 0xff, 0x80); -+ -+ /* Nothing should be flushed the second time. */ -+ outbuf = out; -+ outleft = sizeof (out); -+ TEST_COMPARE (iconv (c, NULL, 0, &outbuf, &outleft), 0); -+ TEST_COMPARE (outleft, sizeof (out)); -+ TEST_COMPARE (outbuf - out, 0); -+ TEST_COMPARE (out[0] & 0xff, 0xcc); -+ TEST_COMPARE (out[1] & 0xff, 0x80); -+ -+ TEST_COMPARE (iconv_close (c), 0); -+} -+ -+static int -+do_test (void) -+{ -+ with_escape_sequence (); -+ with_flush (); -+ return 0; -+} -+ -+#include <support/test-driver.c> -diff --git a/iconvdata/iso-2022-jp-3.c b/iconvdata/iso-2022-jp-3.c -index 3eaa847ad9..c8ba88cdc9 100644 ---- a/iconvdata/iso-2022-jp-3.c -+++ b/iconvdata/iso-2022-jp-3.c -@@ -67,23 +67,34 @@ enum - CURRENT_SEL_MASK = 7 << 3 - }; - --/* During UCS-4 to ISO-2022-JP-3 conversion, the COUNT element of the state -- also contains the last two bytes to be output, shifted by 6 bits, and a -- one-bit indicator whether they must be preceded by the shift sequence, -- in bit 22. */ -+/* During UCS-4 to ISO-2022-JP-3 conversion, the COUNT element of the -+ state also contains the last two bytes to be output, shifted by 6 -+ bits, and a one-bit indicator whether they must be preceded by the -+ shift sequence, in bit 22. During ISO-2022-JP-3 to UCS-4 -+ conversion, COUNT may also contain a non-zero pending wide -+ character, shifted by six bits. This happens for certain inputs in -+ JISX0213_1_2004_set and JISX0213_2_set if the second wide character -+ in a combining sequence cannot be written because the buffer is -+ full. */ - - /* Since this is a stateful encoding we have to provide code which resets - the output state to the initial state. This has to be done during the - flushing. */ - #define EMIT_SHIFT_TO_INIT \ -- if ((data->__statep->__count & ~7) != ASCII_set) \ -+ if (data->__statep->__count != ASCII_set) \ - { \ - if (FROM_DIRECTION) \ - { \ -- /* It's easy, we don't have to emit anything, we just reset the \ -- state for the input. */ \ -- data->__statep->__count &= 7; \ -- data->__statep->__count |= ASCII_set; \ -+ if (__glibc_likely (outbuf + 4 <= outend)) \ -+ { \ -+ /* Write out the last character. */ \ -+ *((uint32_t *) outbuf) = data->__statep->__count >> 6; \ -+ outbuf += sizeof (uint32_t); \ -+ data->__statep->__count = ASCII_set; \ -+ } \ -+ else \ -+ /* We don't have enough room in the output buffer. */ \ -+ status = __GCONV_FULL_OUTPUT; \ - } \ - else \ - { \ -@@ -151,7 +162,21 @@ enum - #define LOOPFCT FROM_LOOP - #define BODY \ - { \ -- uint32_t ch = *inptr; \ -+ uint32_t ch; \ -+ \ -+ /* Output any pending character. */ \ -+ ch = set >> 6; \ -+ if (__glibc_unlikely (ch != 0)) \ -+ { \ -+ put32 (outptr, ch); \ -+ outptr += 4; \ -+ /* Remove the pending character, but preserve state bits. */ \ -+ set &= (1 << 6) - 1; \ -+ continue; \ -+ } \ -+ \ -+ /* Otherwise read the next input byte. */ \ -+ ch = *inptr; \ - \ - /* Recognize escape sequences. */ \ - if (__glibc_unlikely (ch == ESC)) \ -@@ -297,21 +322,25 @@ enum - uint32_t u1 = __jisx0213_to_ucs_combining[ch - 1][0]; \ - uint32_t u2 = __jisx0213_to_ucs_combining[ch - 1][1]; \ - \ -+ inptr += 2; \ -+ \ -+ put32 (outptr, u1); \ -+ outptr += 4; \ -+ \ - /* See whether we have room for two characters. */ \ -- if (outptr + 8 <= outend) \ -+ if (outptr + 4 <= outend) \ - { \ -- inptr += 2; \ -- put32 (outptr, u1); \ -- outptr += 4; \ - put32 (outptr, u2); \ - outptr += 4; \ - continue; \ - } \ -- else \ -- { \ -- result = __GCONV_FULL_OUTPUT; \ -- break; \ -- } \ -+ \ -+ /* Otherwise store only the first character now, and \ -+ put the second one into the queue. */ \ -+ set |= u2 << 6; \ -+ /* Tell the caller why we terminate the loop. */ \ -+ result = __GCONV_FULL_OUTPUT; \ -+ break; \ - } \ - \ - inptr += 2; \ --- -2.27.0 - diff --git a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0035-Fix-build-error.patch b/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0035-Fix-build-error.patch new file mode 100644 index 000000000..6cf56c64f --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc/0035-Fix-build-error.patch @@ -0,0 +1,26 @@ +From 2a246ee8129e7cd4660fe76f7ab656191be7bc5e Mon Sep 17 00:00:00 2001 +From: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +Date: Thu, 11 Mar 2021 11:23:00 -0800 +Subject: [PATCH] Fix build error + +Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +--- + stdlib/canonicalize.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/stdlib/canonicalize.c b/stdlib/canonicalize.c +index 698f9ede2557..cac1f73d7471 100644 +--- a/stdlib/canonicalize.c ++++ b/stdlib/canonicalize.c +@@ -198,7 +198,7 @@ static char * + realpath_stk (const char *name, char *resolved, + struct scratch_buffer *rname_buf) + { +- char *dest; ++ char *dest = NULL; + char const *start; + char const *end; + int num_links = 0; +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc_%.bbappend index e0f4c3080..6ee6db4fa 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-core/glibc/glibc_%.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" -SRC_URI += "file://0032-Fix-buffer-overrun-in-EUC-KR-conversion-module-BZ-24973.patch \ - file://0033-Fix-assertion-failure-in-ISO-20220JP-3-module-bug-27256.patch \ - file://0034-Fix-double-free-in-netgroupcache-BZ-27462.patch \ - " +SRC_URI += " \ + file://0034-Fix-double-free-in-netgroupcache-BZ-27462.patch \ + file://0035-Fix-build-error.patch \ + " diff --git a/meta-openbmc-mods/meta-common/recipes-core/host-error-monitor/host-error-monitor_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/host-error-monitor/host-error-monitor_%.bbappend index a5b5ee429..eec234e96 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/host-error-monitor/host-error-monitor_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-core/host-error-monitor/host-error-monitor_%.bbappend @@ -1,4 +1,4 @@ SRC_URI = "git://github.com/openbmc/host-error-monitor" -SRCREV = "c90570ab1ad57ac824edf7b5d0f8a89afbcf0c09" +SRCREV = "4a6e45c4c2f38bc64afe5faac05ea82b3adb8d93" EXTRA_OECMAKE = "-DYOCTO=1" diff --git a/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb b/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb index f88f9957f..18ab8cb9f 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb +++ b/meta-openbmc-mods/meta-common/recipes-core/interfaces/libmctp_git.bb @@ -2,7 +2,7 @@ SUMMARY = "libmctp" DESCRIPTION = "Implementation of MCTP (DTMF DSP0236)" SRC_URI = "git://github.com/openbmc/libmctp.git" -SRCREV = "192752301b9d98b8699e88ede61d75e96eaed4bb" +SRCREV = "e889b19f4b349cd5c4ff186ff3c3b604c8f9c7b6" PV = "0.1+git${SRCPV}" diff --git a/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend index 6c25b3e0e..4650ec29b 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-core/ipmi/intel-ipmi-oem_%.bbappend @@ -2,4 +2,4 @@ EXTRA_OECMAKE += "${@bb.utils.contains('IMAGE_FSTYPES', 'intel-pfr', '-DINTEL_PF EXTRA_OECMAKE += "${@bb.utils.contains('EXTRA_IMAGE_FEATURES', 'validation-unsecure', '-DBMC_VALIDATION_UNSECURE_FEATURE=ON', '', d)}" EXTRA_OECMAKE += "-DUSING_ENTITY_MANAGER_DECORATORS=OFF" SRC_URI = "git://github.com/openbmc/intel-ipmi-oem.git" -SRCREV = "84efff0c639ed24e3b47394e8c38d3aba75b1a41" +SRCREV = "06aa21ab75cecce354b2a17e05d053c6f61d6a29" diff --git a/meta-openbmc-mods/meta-common/recipes-core/libpeci/libpeci_%.bbappend b/meta-openbmc-mods/meta-common/recipes-core/libpeci/libpeci_%.bbappend index b99d3948b..3e201e799 100644 --- a/meta-openbmc-mods/meta-common/recipes-core/libpeci/libpeci_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-core/libpeci/libpeci_%.bbappend @@ -1,3 +1,3 @@ # Enable downstream autobump SRC_URI = "git://github.com/openbmc/libpeci" -SRCREV = "adf056af63af67dff75065be810ba286bcea6e3a" +SRCREV = "8fc53d7cef0dd7ac405b5d7d91a368f376cdb508" diff --git a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend index 5ca73f0d8..7e79ac14b 100644 --- a/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-kernel/linux/linux-aspeed_%.bbappend @@ -4,7 +4,7 @@ KBRANCH = "dev-5.10-intel" KSRC = "git://github.com/Intel-BMC/linux;protocol=ssh;branch=${KBRANCH}" # Include this as a comment only for downstream auto-bump # SRC_URI = "git://github.com/Intel-BMC/linux;protocol=ssh;branch=dev-5.10-intel" -SRCREV="c306c95688f3e2d9ee9b5270eff4bfb3e6e34b8a" +SRCREV="e51019aa5cea44aa55b922261df9c7c7a4e5bcbc" do_compile_prepend(){ # device tree compiler flags diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend index 4cc641eec..1aa090f54 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend @@ -1,7 +1,7 @@ # Keep this as a comment to enable the auto-bump script without # stomping on SRC_URI from previous .bbappend files #SRC_URI = "git://github.com/openbmc/phosphor-dbus-interfaces.git" -SRCREV = "d01d1f84191894ad605a9ba5b546280bcfc64f7d" +SRCREV = "ae956ad9efd2be24c5439a4ef6498fb5c8383719" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager/0017-Fix-build-error.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager/0017-Fix-build-error.patch new file mode 100644 index 000000000..d21dbd63c --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager/0017-Fix-build-error.patch @@ -0,0 +1,34 @@ +From 1f3531eff8a05bb5375dea89c1ca9292f69863b0 Mon Sep 17 00:00:00 2001 +From: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +Date: Thu, 11 Mar 2021 11:42:39 -0800 +Subject: [PATCH] Fix build error + +Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@intel.com> +--- + pfr_image_manager.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/pfr_image_manager.cpp b/pfr_image_manager.cpp +index f844b8e79565..55ad21f8a3d4 100644 +--- a/pfr_image_manager.cpp ++++ b/pfr_image_manager.cpp +@@ -333,6 +333,7 @@ int Manager::processImage(const std::string& imgFilePath) + + int retry = 3; + std::string ver; ++ std::string extVer; + std::string purposeString; + + if (0 != verifyImage(imgFilePath, ver, purposeString)) +@@ -398,7 +399,7 @@ int Manager::processImage(const std::string& imgFilePath) + std::string objPath = std::string{SOFTWARE_OBJPATH} + '/' + id; + + auto versionPtr = std::make_unique<Version>( +- bus, objPath, ver, purpose, imageDirPath.string(), ++ bus, objPath, ver, purpose, extVer, imageDirPath.string(), + std::bind(&Manager::erase, this, std::placeholders::_1)); + versionPtr->deleteObject = + std::make_unique<phosphor::software::manager::Delete>(bus, objPath, +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager_%.bbappend index e1c72d161..c71beebad 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/flash/phosphor-software-manager_%.bbappend @@ -5,22 +5,25 @@ SYSTEMD_SERVICE_${PN}-updater += "fwupd@.service" EXTRA_OEMESON += "${@bb.utils.contains('IMAGE_FSTYPES', 'intel-pfr', '-Dpfr-update=enabled', '', d)}" -SRC_URI += "file://0002-Redfish-firmware-activation.patch \ - file://0004-Changed-the-condition-of-software-version-service-wa.patch \ - file://0005-Modified-firmware-activation-to-launch-fwupd.sh-thro.patch \ - file://0006-Modify-the-ID-of-software-image-updater-object-on-DB.patch \ - file://0007-Adding-StandBySpare-for-firmware-activation.patch \ - file://0008-item_updater-update-the-bmc_active-objectPath.patch \ - file://0009-Add-ApplyOptions-D-bus-property-under-Software.patch \ - file://0011-Fix-for-RedudancyPriority-in-item_updater.patch \ - file://0013-remove-image-file-on-pre-script-failures.patch \ - " +SRC_URI += " \ + file://0002-Redfish-firmware-activation.patch \ + file://0004-Changed-the-condition-of-software-version-service-wa.patch \ + file://0005-Modified-firmware-activation-to-launch-fwupd.sh-thro.patch \ + file://0006-Modify-the-ID-of-software-image-updater-object-on-DB.patch \ + file://0007-Adding-StandBySpare-for-firmware-activation.patch \ + file://0008-item_updater-update-the-bmc_active-objectPath.patch \ + file://0009-Add-ApplyOptions-D-bus-property-under-Software.patch \ + file://0011-Fix-for-RedudancyPriority-in-item_updater.patch \ + file://0013-remove-image-file-on-pre-script-failures.patch \ + " -SRC_URI_PFR = "file://0007-PFR-images-support.patch \ - file://0008-PFR-image-HASH-verification.patch \ - file://0010-Add-error-reporting-to-pfr_image_manager.patch \ - file://0014-PFR-image-verification.patch \ - file://0016-Process-PLDM-image-type.patch \ - " +SRC_URI_PFR = " \ + file://0007-PFR-images-support.patch \ + file://0008-PFR-image-HASH-verification.patch \ + file://0010-Add-error-reporting-to-pfr_image_manager.patch \ + file://0014-PFR-image-verification.patch \ + file://0016-Process-PLDM-image-type.patch \ + file://0017-Fix-build-error.patch \ + " SRC_URI += "${@bb.utils.contains('IMAGE_FSTYPES', 'intel-pfr', SRC_URI_PFR, '', d)}" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend index 08d867de4..ed48da4c0 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/host/phosphor-host-postd_git.bbappend @@ -1 +1,4 @@ DEPENDS += " gtest" + +#SRC_URI = "git://github.com/openbmc/phosphor-host-postd.git" +SRCREV = "ba5258f7158e8a0e61043290aff0873358509158" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend index 4c00421a9..9b76a8fa4 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/ipmi/phosphor-ipmi-net_%.bbappend @@ -3,7 +3,7 @@ inherit useradd # TODO: This should be removed, once up-stream bump up # issue is resolved SRC_URI += "git://github.com/openbmc/phosphor-net-ipmid" -SRCREV = "07bb095158b39cedb49dae0972e489a6a2776faf" +SRCREV = "de7dd5ce3133a0201e149b6fdf3d3458fb7f06a5" USERADD_PACKAGES = "${PN}" # add a group called ipmi diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libmctp-intel_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libmctp-intel_git.bb index 61d008c46..de34f59a9 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libmctp-intel_git.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libmctp-intel_git.bb @@ -2,7 +2,7 @@ SUMMARY = "libmctp_intel" DESCRIPTION = "Implementation of MCTP(DMTF DSP0236)" SRC_URI = "git://github.com/Intel-BMC/libmctp.git;protocol=ssh" -SRCREV = "f5246c429d728ee1b6558692b72ef1960db68a7c" +SRCREV = "f1532e4b19ff198d20782adf5fb9dcce36eea995" S = "${WORKDIR}/git" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libpldm-intel_git.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libpldm-intel_git.bb index d72093b8b..1b4be8136 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libpldm-intel_git.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/libpldm-intel_git.bb @@ -2,7 +2,7 @@ SUMMARY = "libpldm_intel" DESCRIPTION = "Provides encode/decode APIs for PLDM specifications" SRC_URI = "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git/libpldm_intel" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-emulator.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-emulator.bb index 291a18375..02921bae6 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-emulator.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-emulator.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=bcd9ada3a943f58551867d72893cc9ab" SRC_URI = "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git/mctp_emulator" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-wrapper.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-wrapper.bb index a56db5829..4fdd3b0d6 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-wrapper.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctp-wrapper.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=bcd9ada3a943f58551867d72893cc9ab" SRC_URI = "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git/mctp_wrapper" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpd.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpd.bb index 226a3a44f..a48a45513 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpd.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpd.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://${PN}/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpwplus.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpwplus.bb index c9a44d1ad..837560d78 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpwplus.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/mctpwplus.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=615045c30a05cde5c0e924854d43c327" SRC_URI = "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git/mctpwplus" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/nvmemi-daemon.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/nvmemi-daemon.bb new file mode 100644 index 000000000..510535363 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/nvmemi-daemon.bb @@ -0,0 +1,17 @@ +SUMMARY = "NVMe MI Daemon" +DESCRIPTION = "Implementation of NVMe MI daemon" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +SRC_URI = "git://github.com/Intel-BMC/nvme-mi.git;protocol=ssh;nobranch=1" +SRCREV = "23fad1d6ffd8ccd16b1369b96734a9701fc2802a" +S = "${WORKDIR}/git" +PV = "1.0+git${SRCPV}" + +inherit meson systemd + +SYSTEMD_SERVICE_${PN} += "xyz.openbmc_project.nvme-mi.service" +DEPENDS = "boost sdbusplus systemd phosphor-logging mctpwplus googletest" + +EXTRA_OEMESON = "-Dyocto_dep='enabled' -Dtests='enabled'" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pldmd.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pldmd.bb index 0167014b7..a561bfa23 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pldmd.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pldmd.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" SRC_URI += "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git/pldmd" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pmci-launcher.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pmci-launcher.bb index 09a3f9284..02e4c5ad8 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pmci-launcher.bb +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/pmci/pmci-launcher.bb @@ -5,7 +5,7 @@ LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e" SRC_URI = "git://github.com/Intel-BMC/pmci.git;protocol=ssh" -SRCREV = "85f6b517b0c519b88b7533f042159e9a30fd3048" +SRCREV = "86d4e9d3f2214c825ed76b38865abc47d2c7a11f" S = "${WORKDIR}/git/pmci_launcher" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-post-code-manager_git.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-post-code-manager_git.bbappend new file mode 100644 index 000000000..f767cda73 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/state/phosphor-post-code-manager_git.bbappend @@ -0,0 +1,2 @@ +#SRC_URI = "git://github.com/openbmc/phosphor-post-code-manager.git" +SRCREV = "84a4c19c48ad28b537cfcce15df39e841e1ed565" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/telemetry/telemetry_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/telemetry/telemetry_%.bbappend index cadacc235..1c8de604c 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/telemetry/telemetry_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/telemetry/telemetry_%.bbappend @@ -1,5 +1,5 @@ SRC_URI = "git://github.com/openbmc/telemetry.git" -SRCREV = "92cfff44d5790b7e59930e8a6acf15751a3cd891" +SRCREV = "9f9ff90a39219ff3a2f1179f74fc9a6dc857e5ab" EXTRA_OEMESON += " -Dmax-reports=5" EXTRA_OEMESON += " -Dmax-reading-parameters=200" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Customize-phosphor-watchdog-for-Intel-platforms.patch b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Customize-phosphor-watchdog-for-Intel-platforms.patch index 360ba35f0..d137f6971 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Customize-phosphor-watchdog-for-Intel-platforms.patch +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/watchdog/phosphor-watchdog/0001-Customize-phosphor-watchdog-for-Intel-platforms.patch @@ -1,4 +1,4 @@ -From 82f31d1e6096acd4f223f0b0fe0d814c27450022 Mon Sep 17 00:00:00 2001 +From 0e426ce8bcde3b6fb131405ef265250a96aa7e0a Mon Sep 17 00:00:00 2001 From: James Feist <james.feist@linux.intel.com> Date: Mon, 17 Jun 2019 12:00:58 -0700 Subject: [PATCH] Customize phosphor-watchdog for Intel platforms @@ -10,18 +10,20 @@ required for compatibility with Intel platforms. 2. Use dbus properties for power control insted of service files 3. Use host status to enable/disable watchdog 4. Set preTimeoutInterruptOccurFlag + 5. Assign watchdog cause for correct reset cause reporting Signed-off-by: James Feist <james.feist@linux.intel.com> Signed-off-by: Ren Yu <yux.ren@intel.com> Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Signed-off-by: Jason M. Bills <jason.m.bills@linux.intel.com> +Signed-off-by: Johnathan Mantey <johnathanx.mantey@intel.com> --- - watchdog.cpp | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- - watchdog.hpp | 23 ++++++- - 2 files changed, 226 insertions(+), 10 deletions(-) + watchdog.cpp | 212 ++++++++++++++++++++++++++++++++++++++++++++++++--- + watchdog.hpp | 23 +++++- + 2 files changed, 224 insertions(+), 11 deletions(-) diff --git a/watchdog.cpp b/watchdog.cpp -index 9090760..079d88e 100644 +index 9090760..2685401 100644 --- a/watchdog.cpp +++ b/watchdog.cpp @@ -1,11 +1,14 @@ @@ -225,7 +227,7 @@ index 9090760..079d88e 100644 auto target = actionTargetMap.find(action); if (target == actionTargetMap.end()) -@@ -128,10 +287,23 @@ void Watchdog::timeOutHandler() +@@ -128,12 +287,45 @@ void Watchdog::timeOutHandler() try { @@ -236,53 +238,46 @@ index 9090760..079d88e 100644 + sdbusplus::message::message method; + if (action == Watchdog::Action::HardReset) + { ++ auto method = bus.new_method_call( ++ restart::busName, restart::path, ++ "org.freedesktop.DBus.Properties", "Set"); ++ method.append( ++ restart::interface, restart::property, ++ std::variant<std::string>("xyz.openbmc_project.State.Host." ++ "RestartCause.WatchdogTimer")); ++ bus.call_noreply(method); + +- bus.call_noreply(method); + method = bus.new_method_call(host::busName, host::path, + "org.freedesktop.DBus.Properties", + "Set"); + method.append(host::interface, host::request, + std::variant<std::string>(target->second)); ++ bus.call_noreply(method); + } + else + { ++ if (action == Watchdog::Action::PowerCycle) ++ { ++ auto method = bus.new_method_call( ++ restart::busName, restart::path, ++ "org.freedesktop.DBus.Properties", "Set"); ++ method.append(restart::interface, restart::property, ++ std::variant<std::string>( ++ "xyz.openbmc_project.State.Host." ++ "RestartCause.WatchdogTimer")); ++ bus.call_noreply(method); ++ } + method = bus.new_method_call(chassis::busName, chassis::path, + "org.freedesktop.DBus.Properties", + "Set"); + method.append(chassis::interface, chassis::request, + std::variant<std::string>(target->second)); ++ bus.call_noreply(method); + } - - bus.call_noreply(method); } -@@ -142,6 +314,29 @@ void Watchdog::timeOutHandler() - entry("ERROR=%s", e.what())); - commit<InternalFailure>(); - } -+ -+ // set restart cause for watchdog HardReset & PowerCycle actions -+ if ((action == Watchdog::Action::HardReset) || -+ (action == Watchdog::Action::PowerCycle)) -+ { -+ try -+ { -+ auto method = bus.new_method_call( -+ restart::busName, restart::path, -+ "org.freedesktop.DBus.Properties", "Set"); -+ method.append( -+ restart::interface, restart::property, -+ std::variant<std::string>("xyz.openbmc_project.State.Host." -+ "RestartCause.WatchdogTimer")); -+ bus.call(method); -+ } -+ catch (sdbusplus::exception_t& e) -+ { -+ log<level::ERR>("Failed to set HostRestartCause property", -+ entry("ERROR=%s", e.what())); -+ commit<InternalFailure>(); -+ } -+ } - } - - tryFallbackOrDisable(); + catch (const SdBusError& e) + { diff --git a/watchdog.hpp b/watchdog.hpp index 7de9bb3..b004b7a 100644 --- a/watchdog.hpp @@ -332,5 +327,5 @@ index 7de9bb3..b004b7a 100644 void timeOutHandler(); -- -2.7.4 +2.29.2 diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend index e141cdb46..5ef57447d 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend @@ -1,4 +1,4 @@ SRC_URI = "git://github.com/Intel-BMC/phosphor-webui;protocol=ssh;branch=intel2" FILESEXTRAPATHS_prepend_intel := "${THISDIR}/${PN}:" -SRCREV = "6313c9df615fd85a8617c46444f964b972abdebd" +SRCREV = "f0e37253951a4a32e4929c660232e17961f97bb8" diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/webui-vue_%.bbappend b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/webui-vue_%.bbappend index 7dfdc5525..87ad21d71 100644 --- a/meta-openbmc-mods/meta-common/recipes-phosphor/webui/webui-vue_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-phosphor/webui/webui-vue_%.bbappend @@ -1,6 +1,6 @@ # Enable downstream autobump SRC_URI = "git://github.com/openbmc/webui-vue.git" -SRCREV = "7006806d21cf8d13666524a8124b8395f2f1e156" +SRCREV = "b0fadef1f96df99ff5eb0637527f04bc793c8d6e" do_compile_prepend() { cp -vf ${S}/.env.intel ${S}/.env diff --git a/meta-openbmc-mods/meta-common/recipes-support/avro/avro-c++/0001-enable-cross-compilation-and-pkgconfig.patch b/meta-openbmc-mods/meta-common/recipes-support/avro/avro-c++/0001-enable-cross-compilation-and-pkgconfig.patch new file mode 100644 index 000000000..7355ad5f1 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-support/avro/avro-c++/0001-enable-cross-compilation-and-pkgconfig.patch @@ -0,0 +1,71 @@ +diff --git a/lang/c++/CMakeLists.txt b/lang/c++/CMakeLists.txt +index 28a272b15..06ec38382 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -25,6 +25,7 @@ if (NOT DEFINED CMAKE_CXX_STANDARD) + endif() + + set(CMAKE_CXX_STANDARD_REQUIRED ON) ++set(PKGCONFIG_SUPPORT ON) + + cmake_policy (SET CMP0042 NEW) + +@@ -107,6 +108,12 @@ set (AVRO_SOURCE_FILES + impl/Resolver.cc impl/Validator.cc + ) + ++if (PKGCONFIG_SUPPORT) ++ install(FILES "avrocpp.pc" ++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++ message("${CMAKE_INSTALL_LIBDIR}/pkgconfig") ++endif() ++ + add_library (avrocpp SHARED ${AVRO_SOURCE_FILES}) + + set_property (TARGET avrocpp +@@ -141,6 +148,7 @@ macro (gen file ns) + add_custom_target (${file}_hh DEPENDS ${file}.hh) + endmacro (gen) + ++if (NOT DEFINED YOCTO_BUILD) + gen (empty_record empty) + gen (bigrecord testgen) + gen (bigrecord_r testgen_r) +@@ -196,13 +204,16 @@ include (InstallRequiredSystemLibraries) + set (CPACK_PACKAGE_FILE_NAME "avrocpp-${AVRO_VERSION_MAJOR}") + + include (CPack) ++endif () + + install (TARGETS avrocpp avrocpp_s + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION lib) + ++if (NOT DEFINED YOCTO_BUILD) + install (TARGETS avrogencpp RUNTIME DESTINATION bin) ++endif () + + install (DIRECTORY api/ DESTINATION include/avro + FILES_MATCHING PATTERN *.hh) +@@ -212,3 +223,4 @@ if (NOT CMAKE_BUILD_TYPE) + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." + FORCE) + endif (NOT CMAKE_BUILD_TYPE) ++ +diff --git a/lang/c++/avrocpp.pc b/lang/c++/avrocpp.pc +new file mode 100644 +index 000000000..471f1863c +--- /dev/null ++++ b/avrocpp.pc +@@ -0,0 +1,10 @@ ++prefix=/usr ++libdir=${prefix}/lib ++includedir=${prefix}/include/avro ++ ++Name: avrocpp ++Description: C++ bindings for Apache avro ++Version: 1.0.0 ++Libs: -L${libdir} -lavrocpp ++Cflags: -I${includedir} ++ diff --git a/meta-openbmc-mods/meta-common/recipes-support/avro/avro-c++_git.bb b/meta-openbmc-mods/meta-common/recipes-support/avro/avro-c++_git.bb new file mode 100644 index 000000000..af8aad522 --- /dev/null +++ b/meta-openbmc-mods/meta-common/recipes-support/avro/avro-c++_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "Apache Avro data serialization system (C++ bindings)" +HOMEPAGE = "http://apr.apache.org/" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=43abf34d8b9908494f83c55d213a7f89" + +DEPENDS = "boost" + +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +BRANCH = "master" +SRCREV = "f4e2ebaadaf6e6d99b59882233f8024243adb55d" +SRC_URI = "git://github.com/apache/avro;branch=${BRANCH} \ + file://0001-enable-cross-compilation-and-pkgconfig.patch \ + " + +S = "${WORKDIR}/git/lang/c++" + +EXTRA_OECMAKE = "-DSNAPPY_INCLUDE_DIR='' -DYOCTO_BUILD=ON -DCMAKE_BUILD_TYPE=MinSizeRel" +inherit cmake + diff --git a/meta-openbmc-mods/meta-common/recipes-support/boost/boost_%.bbappend b/meta-openbmc-mods/meta-common/recipes-support/boost/boost_%.bbappend index 780a12e24..c24249bcf 100644 --- a/meta-openbmc-mods/meta-common/recipes-support/boost/boost_%.bbappend +++ b/meta-openbmc-mods/meta-common/recipes-support/boost/boost_%.bbappend @@ -2,6 +2,6 @@ FILES_${PN} += "/usr/lib/libboost_chrono.so* \ /usr/lib/libboost_context.so* \ /usr/lib/libboost_thread.so*" -BOOST_LIBS_intel += "iostreams coroutine" +BOOST_LIBS_intel += "iostreams coroutine filesystem program_options regex system" FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch new file mode 100644 index 000000000..17f16cce5 --- /dev/null +++ b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Configure-host-error-monitors-for-meta-wht.patch @@ -0,0 +1,194 @@ +From 1b2df626b20aa14c0de7f46915758d10394d01b4 Mon Sep 17 00:00:00 2001 +From: "Jason M. Bills" <jason.m.bills@intel.com> +Date: Tue, 15 Dec 2020 10:05:31 -0800 +Subject: [PATCH] Configure host error monitors for meta-wht + +The new host error monitor architecture allows the list of error +monitors to be customized through a platform-specific patch file. + +This patch configures the host error monitors for meta-wht. + +Change-Id: I7070a3409b1471d7f9c93eca3e36b477f484e5d7 +Signed-off-by: Jason M. Bills <jason.m.bills@intel.com> +--- + include/error_monitors.hpp | 137 ++++++++++++++++++++++++++++++++++--- + 1 file changed, 129 insertions(+), 8 deletions(-) + +diff --git a/include/error_monitors.hpp b/include/error_monitors.hpp +index 55b8790d..8d1651d3 100644 +--- a/include/error_monitors.hpp ++++ b/include/error_monitors.hpp +@@ -14,23 +14,88 @@ + // limitations under the License. + */ + #pragma once ++#include <error_monitors/cpu_mismatch_monitor.hpp> ++#include <error_monitors/cpu_thermtrip_monitor.hpp> ++#include <error_monitors/err2_monitor.hpp> ++#include <error_monitors/err_pin_monitor.hpp> ++#include <error_monitors/ierr_monitor.hpp> ++#include <error_monitors/mem_thermtrip_monitor.hpp> ++#include <error_monitors/pch_thermtrip_monitor.hpp> ++#include <error_monitors/smi_monitor.hpp> ++#include <error_monitors/vr_hot_monitor.hpp> + #include <sdbusplus/asio/object_server.hpp> +-// #include <error_monitors/smi_monitor.hpp> + + #include <memory> + + namespace host_error_monitor::error_monitors + { + // Error signals to monitor +-// static std::unique_ptr<host_error_monitor::smi_monitor::SMIMonitor> +-// smiMonitor; ++static std::unique_ptr<host_error_monitor::smi_monitor::SMIMonitor> smiMonitor; ++static std::unique_ptr< ++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor> ++ cpu1MismatchMonitor; ++static std::unique_ptr< ++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor> ++ cpu2MismatchMonitor; ++static std::unique_ptr<host_error_monitor::err_pin_monitor::ErrPinMonitor> ++ err0Monitor; ++static std::unique_ptr<host_error_monitor::err_pin_monitor::ErrPinMonitor> ++ err1Monitor; ++static std::unique_ptr<host_error_monitor::err2_monitor::Err2Monitor> ++ err2Monitor; ++static std::unique_ptr<host_error_monitor::ierr_monitor::IERRMonitor> ++ ierrMonitor; ++static std::unique_ptr< ++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor> ++ cpu1ThermtripMonitor; ++static std::unique_ptr< ++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor> ++ cpu2ThermtripMonitor; ++static std::unique_ptr< ++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor> ++ mem1ThermtripMonitor; ++static std::unique_ptr< ++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor> ++ mem2ThermtripMonitor; ++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor> ++ cpu1VRHotMonitor; ++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor> ++ cpu1MemABCDVRHotMonitor; ++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor> ++ cpu1MemEFGHVRHotMonitor; ++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor> ++ cpu2VRHotMonitor; ++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor> ++ cpu2MemABCDVRHotMonitor; ++static std::unique_ptr<host_error_monitor::vr_hot_monitor::VRHotMonitor> ++ cpu2MemEFGHVRHotMonitor; ++static std::unique_ptr< ++ host_error_monitor::pch_thermtrip_monitor::PCHThermtripMonitor> ++ pchThermtripMonitor; + + // Check if all the signal monitors started successfully + bool checkMonitors() + { + bool ret = true; + +- // ret &= smiMonitor->isValid(); ++ ret &= smiMonitor->isValid(); ++ ret &= cpu1MismatchMonitor->isValid(); ++ ret &= cpu2MismatchMonitor->isValid(); ++ ret &= err0Monitor->isValid(); ++ ret &= err1Monitor->isValid(); ++ ret &= err2Monitor->isValid(); ++ ret &= ierrMonitor->isValid(); ++ ret &= cpu1ThermtripMonitor->isValid(); ++ ret &= cpu2ThermtripMonitor->isValid(); ++ ret &= mem1ThermtripMonitor->isValid(); ++ ret &= mem2ThermtripMonitor->isValid(); ++ ret &= cpu1VRHotMonitor->isValid(); ++ ret &= cpu1MemABCDVRHotMonitor->isValid(); ++ ret &= cpu1MemEFGHVRHotMonitor->isValid(); ++ ret &= cpu2VRHotMonitor->isValid(); ++ ret &= cpu2MemABCDVRHotMonitor->isValid(); ++ ret &= cpu2MemEFGHVRHotMonitor->isValid(); ++ ret &= pchThermtripMonitor->isValid(); + + return ret; + } +@@ -39,9 +104,59 @@ bool checkMonitors() + bool startMonitors(boost::asio::io_service& io, + std::shared_ptr<sdbusplus::asio::connection> conn) + { +- // smiMonitor = +- // std::make_unique<host_error_monitor::smi_monitor::SMIMonitor>( +- // io, conn, "SMI"); ++ smiMonitor = std::make_unique<host_error_monitor::smi_monitor::SMIMonitor>( ++ io, conn, "SMI"); ++ cpu1MismatchMonitor = std::make_unique< ++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor>( ++ io, conn, "CPU1_MISMATCH", 1); ++ cpu2MismatchMonitor = std::make_unique< ++ host_error_monitor::cpu_mismatch_monitor::CPUMismatchMonitor>( ++ io, conn, "CPU2_MISMATCH", 2); ++ err0Monitor = ++ std::make_unique<host_error_monitor::err_pin_monitor::ErrPinMonitor>( ++ io, conn, "CPU_ERR0", 0); ++ err1Monitor = ++ std::make_unique<host_error_monitor::err_pin_monitor::ErrPinMonitor>( ++ io, conn, "CPU_ERR1", 1); ++ err2Monitor = ++ std::make_unique<host_error_monitor::err2_monitor::Err2Monitor>( ++ io, conn, "CPU_ERR2"); ++ ierrMonitor = ++ std::make_unique<host_error_monitor::ierr_monitor::IERRMonitor>( ++ io, conn, "CPU_CATERR"); ++ cpu1ThermtripMonitor = std::make_unique< ++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor>( ++ io, conn, "CPU1_THERMTRIP", 1, "CPU1_FIVR_FAULT"); ++ cpu2ThermtripMonitor = std::make_unique< ++ host_error_monitor::cpu_thermtrip_monitor::CPUThermtripMonitor>( ++ io, conn, "CPU2_THERMTRIP", 2, "CPU2_FIVR_FAULT"); ++ mem1ThermtripMonitor = std::make_unique< ++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor>( ++ io, conn, "CPU1_MEM_THERM_EVENT", 1); ++ mem2ThermtripMonitor = std::make_unique< ++ host_error_monitor::mem_thermtrip_monitor::MemThermtripMonitor>( ++ io, conn, "CPU2_MEM_THERM_EVENT", 2); ++ cpu1VRHotMonitor = ++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>( ++ io, conn, "CPU1_VRHOT", "CPU 1"); ++ cpu1MemABCDVRHotMonitor = ++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>( ++ io, conn, "CPU1_MEM_ABCD_VRHOT", "CPU 1 Memory ABCD"); ++ cpu1MemEFGHVRHotMonitor = ++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>( ++ io, conn, "CPU1_MEM_EFGH_VRHOT", "CPU 1 Memory EFGH"); ++ cpu2VRHotMonitor = ++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>( ++ io, conn, "CPU2_VRHOT", "CPU 2"); ++ cpu2MemABCDVRHotMonitor = ++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>( ++ io, conn, "CPU2_MEM_ABCD_VRHOT", "CPU 2 Memory ABCD"); ++ cpu2MemEFGHVRHotMonitor = ++ std::make_unique<host_error_monitor::vr_hot_monitor::VRHotMonitor>( ++ io, conn, "CPU2_MEM_EFGH_VRHOT", "CPU 2 Memory EFGH"); ++ pchThermtripMonitor = std::make_unique< ++ host_error_monitor::pch_thermtrip_monitor::PCHThermtripMonitor>( ++ io, conn, "PCH_BMC_THERMTRIP"); + + return checkMonitors(); + } +@@ -49,7 +164,13 @@ bool startMonitors(boost::asio::io_service& io, + // Notify the signal monitors of host on event + void sendHostOn() + { +- // smiMonitor->hostOn(); ++ smiMonitor->hostOn(); ++ cpu1MismatchMonitor->hostOn(); ++ cpu2MismatchMonitor->hostOn(); ++ err0Monitor->hostOn(); ++ err1Monitor->hostOn(); ++ err2Monitor->hostOn(); ++ ierrMonitor->hostOn(); + } + + } // namespace host_error_monitor::error_monitors +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Filter-memory-thermtrip-events-based-on-DIMM-status.patch b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Filter-memory-thermtrip-events-based-on-DIMM-status.patch deleted file mode 100644 index 140724ca9..000000000 --- a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0001-Filter-memory-thermtrip-events-based-on-DIMM-status.patch +++ /dev/null @@ -1,169 +0,0 @@ -From c09e608da2f63eed5b73891d5c032b646d8e81eb Mon Sep 17 00:00:00 2001 -From: "Jason M. Bills" <jason.m.bills@intel.com> -Date: Wed, 22 Jul 2020 14:30:04 -0700 -Subject: [PATCH 1/2] Filter memory thermtrip events based on DIMM status - -There is a race-condition on shutdown that makes it difficult to -differentiate between a normal shutdown and a memory thermtrip -shutdown. This race-condition will be resolved in the CPLD for -future platforms but for now it requires a workaround. - -This workaround assumes that a memory thermtrip can only occur -if a DIMM temperature sensor has already reached a critical -threshold. When memory thermtrip asserts on shutdown, it only -logs an error if a DIMM is critical; otherwise it is treated -as a normal shutdown. - -Tested: -Memory thermtrip errors no longer log on each power-off. -Manually set a DIMM temperature above critical and verified -that the memory thermtrip event is logged. - -Change-Id: I9c38b41db30046499297ee24cc3a2790920b19d3 -Signed-off-by: Jason M. Bills <jason.m.bills@intel.com> ---- - src/host_error_monitor.cpp | 81 ++++++++++++++++++++++++++++++++++++-- - 1 file changed, 77 insertions(+), 4 deletions(-) - -diff --git a/src/host_error_monitor.cpp b/src/host_error_monitor.cpp -index d52a5dc6a..77d065fa3 100644 ---- a/src/host_error_monitor.cpp -+++ b/src/host_error_monitor.cpp -@@ -19,6 +19,7 @@ - #include <boost/asio/io_service.hpp> - #include <boost/asio/posix/stream_descriptor.hpp> - #include <boost/asio/steady_timer.hpp> -+#include <boost/container/flat_set.hpp> - #include <gpiod.hpp> - #include <sdbusplus/asio/object_server.hpp> - -@@ -38,6 +39,9 @@ static std::shared_ptr<sdbusplus::asio::dbus_interface> associationCATAssert; - - static const constexpr char* rootPath = "/xyz/openbmc_project/CallbackManager"; - -+static boost::container::flat_set<std::string> cpu1CriticalDIMMs; -+static boost::container::flat_set<std::string> cpu2CriticalDIMMs; -+ - static bool hostOff = true; - - static size_t caterrTimeoutMs = 2000; -@@ -274,6 +278,67 @@ static void initializeHostState() - "xyz.openbmc_project.State.Host", "CurrentHostState"); - } - -+static std::shared_ptr<sdbusplus::bus::match::match> -+ startDIMMThresholdEventMonitor() -+{ -+ return std::make_shared<sdbusplus::bus::match::match>( -+ *conn, -+ "type='signal',interface='org.freedesktop.DBus.Properties',member='" -+ "PropertiesChanged',arg0namespace='xyz.openbmc_project.Sensor." -+ "Threshold.Critical'", -+ [](sdbusplus::message::message& msg) { -+ std::string interfaceName; -+ boost::container::flat_map<std::string, std::variant<bool>> -+ propertiesChanged; -+ try -+ { -+ msg.read(interfaceName, propertiesChanged); -+ } -+ catch (std::exception& e) -+ { -+ std::cerr << "Unable to read threshold event\n"; -+ return; -+ } -+ // We only want to check for CriticalAlarmHigh -+ if (propertiesChanged.begin()->first != "CriticalAlarmHigh") -+ { -+ return; -+ } -+ const bool* alarm = -+ std::get_if<bool>(&(propertiesChanged.begin()->second)); -+ if (alarm == nullptr) -+ { -+ std::cerr << propertiesChanged.begin()->first -+ << " property invalid\n"; -+ return; -+ } -+ -+ // Get the sensor path and check if it's a DIMM sensor -+ std::string sensor = msg.get_path(); -+ if (sensor.find("DIMM") == std::string::npos) -+ { -+ // Not a DIMM sensor -+ return; -+ } -+ -+ // Determine which CPU the DIMM belongs to -+ boost::container::flat_set<std::string>& criticalDIMMs = -+ (sensor.find("CPU1") != std::string::npos) ? cpu1CriticalDIMMs -+ : cpu2CriticalDIMMs; -+ -+ if (*alarm) -+ { -+ // DIMM crossed a critical threshold, so store it -+ criticalDIMMs.insert(sensor); -+ } -+ else -+ { -+ // DIMM is no longer critical, so remove it -+ criticalDIMMs.erase(sensor); -+ } -+ }); -+} -+ - static std::shared_ptr<sdbusplus::bus::match::match> startHostStateMonitor() - { - return std::make_shared<sdbusplus::bus::match::match>( -@@ -851,7 +916,9 @@ static void cpu1MemtripHandler() - - bool cpu1Memtrip = - gpioLineEvent.event_type == gpiod::line_event::FALLING_EDGE; -- if (cpu1Memtrip) -+ -+ // Only log a memory thermtrip if a DIMM is critical -+ if (cpu1Memtrip && !cpu1CriticalDIMMs.empty()) - { - memThermTripLog(1); - } -@@ -911,7 +978,9 @@ static void cpu2MemtripHandler() - - bool cpu2Memtrip = - gpioLineEvent.event_type == gpiod::line_event::FALLING_EDGE; -- if (cpu2Memtrip) -+ -+ // Only log a memory thermtrip if a DIMM is critical -+ if (cpu2Memtrip && !cpu2CriticalDIMMs.empty()) - { - memThermTripLog(2); - } -@@ -1521,13 +1590,13 @@ static void initializeErrorState() - } - - // Handle CPU1_MEM_THERM_EVENT (CPU1 DIMM Thermal trip) if it's asserted now -- if (cpu1MemtripLine.get_value() == 0) -+ if ((cpu1MemtripLine.get_value() == 0) && !cpu1CriticalDIMMs.empty()) - { - memThermTripLog(1); - } - - // Handle CPU2_MEM_THERM_EVENT (CPU2 DIMM Thermal trip) if it's asserted now -- if (cpu2MemtripLine.get_value() == 0) -+ if ((cpu2MemtripLine.get_value() == 0) && !cpu2CriticalDIMMs.empty()) - { - memThermTripLog(2); - } -@@ -1639,6 +1708,10 @@ int main(int argc, char* argv[]) - std::shared_ptr<sdbusplus::bus::match::match> hostStateMonitor = - host_error_monitor::startHostStateMonitor(); - -+ // Start tracking critical DIMM status -+ std::shared_ptr<sdbusplus::bus::match::match> dimmThresholdEventMonitor = -+ host_error_monitor::startDIMMThresholdEventMonitor(); -+ - // Request CPU1_MISMATCH GPIO events - if (!host_error_monitor::requestGPIOInput( - "CPU1_MISMATCH", host_error_monitor::cpu1MismatchLine)) --- -2.17.1 - diff --git a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0002-Add-a-workaround-for-spurious-CPU-errors.patch b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0002-Add-a-workaround-for-spurious-CPU-errors.patch deleted file mode 100644 index 1f1efea69..000000000 --- a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0002-Add-a-workaround-for-spurious-CPU-errors.patch +++ /dev/null @@ -1,133 +0,0 @@ -From d7909c8924cf3619bffd52e5f352f175c1cf5033 Mon Sep 17 00:00:00 2001 -From: "Jason M. Bills" <jason.m.bills@intel.com> -Date: Mon, 17 Aug 2020 15:52:22 -0700 -Subject: [PATCH 2/2] Add a workaround for spurious CPU errors - -There is a possible issue where GPIO event interrupts are getting -missed causing false errors to be logged. - -This adds a check that the host is still on and the error is still -asserted before logging an error. - -Tested: -Confirmed that a spurious SMI event was ignored correctly after -this change. - -Change-Id: Id83d9d67b15dcf9035e6448086b140e5c7dab4fe -Signed-off-by: Jason M. Bills <jason.m.bills@intel.com> ---- - src/host_error_monitor.cpp | 77 ++++++++++++++++++++++++++++++++++++++ - 1 file changed, 77 insertions(+) - -diff --git a/src/host_error_monitor.cpp b/src/host_error_monitor.cpp -index 77d065fa3..d026ab90d 100644 ---- a/src/host_error_monitor.cpp -+++ b/src/host_error_monitor.cpp -@@ -806,6 +806,18 @@ static void caterrAssertHandler() - } - return; - } -+ // Confirm that this is a real failure by checking that the host is on -+ if (hostOff) -+ { -+ return; -+ } -+ // And that the signal is still asserted -+ if (caterrLine.get_value() != 0) -+ { -+ std::cerr -+ << "CPU_CATERR not asserted after timeout. Error ignored.\n"; -+ return; -+ } - std::cerr << "CATERR asserted for " << std::to_string(caterrTimeoutMs) - << " ms\n"; - beep(beepCPUIERR); -@@ -1288,6 +1300,48 @@ static void errXAssertHandler(const int errPin, - } - return; - } -+ // Confirm that this is a real failure by checking that the host is on -+ if (hostOff) -+ { -+ return; -+ } -+ // And that the signal is still asserted -+ switch (errPin) -+ { -+ case 0: -+ { -+ if (err0Line.get_value() != 0) -+ { -+ std::cerr << "CPU_ERR0 not asserted after timeout. Error " -+ "ignored.\n"; -+ return; -+ } -+ break; -+ } -+ case 1: -+ { -+ if (err1Line.get_value() != 0) -+ { -+ std::cerr << "CPU_ERR1 not asserted after timeout. Error " -+ "ignored.\n"; -+ return; -+ } -+ break; -+ } -+ case 2: -+ { -+ if (err2Line.get_value() != 0) -+ { -+ std::cerr << "CPU_ERR2 not asserted after timeout. Error " -+ "ignored.\n"; -+ return; -+ } -+ break; -+ } -+ default: -+ std::cerr << "Invalid ERR pin asserted\n"; -+ return; -+ } - std::cerr << "ERR" << std::to_string(errPin) << " asserted for " - << std::to_string(errTimeoutMs) << " ms\n"; - if (errPinCPUs.count()) -@@ -1397,6 +1451,18 @@ static void err2AssertHandler() - } - return; - } -+ // Confirm that this is a real failure by checking that the host is on -+ if (hostOff) -+ { -+ return; -+ } -+ // And that the signal is still asserted -+ if (err2Line.get_value() != 0) -+ { -+ std::cerr -+ << "CPU_ERR2 not asserted after timeout. Error ignored.\n"; -+ return; -+ } - conn->async_method_call( - [](boost::system::error_code ec, - const std::variant<bool>& property) { -@@ -1465,6 +1531,17 @@ static void smiAssertHandler() - } - return; - } -+ // Confirm that this is a real failure by checking that the host is on -+ if (hostOff) -+ { -+ return; -+ } -+ // And that the signal is still asserted -+ if (smiLine.get_value() != 0) -+ { -+ std::cerr << "SMI not asserted after timeout. Error ignored.\n"; -+ return; -+ } - std::cerr << "SMI asserted for " << std::to_string(smiTimeoutMs) - << " ms\n"; - smiTimeoutLog(); --- -2.17.1 - diff --git a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0002-Filter-memory-thermtrip-events-based-on-DIMM-status.patch b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0002-Filter-memory-thermtrip-events-based-on-DIMM-status.patch new file mode 100644 index 000000000..cf74a4925 --- /dev/null +++ b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor/0002-Filter-memory-thermtrip-events-based-on-DIMM-status.patch @@ -0,0 +1,143 @@ +From b8b701fde79e7a8ca7bf5aa6ca6832524c011fa5 Mon Sep 17 00:00:00 2001 +From: "Jason M. Bills" <jason.m.bills@intel.com> +Date: Tue, 15 Dec 2020 16:09:00 -0800 +Subject: [PATCH] Filter memory thermtrip events based on DIMM status + +There is a race-condition on shutdown that makes it difficult to +differentiate between a normal shutdown and a memory thermtrip +shutdown. This race-condition will be resolved in the CPLD for +future platforms but for now it requires a workaround. + +This workaround assumes that a memory thermtrip can only occur +if a DIMM temperature sensor has already reached a critical +threshold. When memory thermtrip asserts on shutdown, it only +logs an error if a DIMM is critical; otherwise it is treated +as a normal shutdown. + +Tested: +Memory thermtrip errors no longer log on each power-off. +Manually set a DIMM temperature above critical and verified +that the memory thermtrip event is logged. + +Change-Id: I9d8cf9b1de688e27babb8004b41f662242c78b3c +Signed-off-by: Jason M. Bills <jason.m.bills@intel.com> +--- + .../error_monitors/mem_thermtrip_monitor.hpp | 81 +++++++++++++++++++ + 1 file changed, 81 insertions(+) + +diff --git a/include/error_monitors/mem_thermtrip_monitor.hpp b/include/error_monitors/mem_thermtrip_monitor.hpp +index d3dff1d3b..0a3f2fc22 100644 +--- a/include/error_monitors/mem_thermtrip_monitor.hpp ++++ b/include/error_monitors/mem_thermtrip_monitor.hpp +@@ -14,6 +14,7 @@ + // limitations under the License. + */ + #pragma once ++#include <boost/container/flat_set.hpp> + #include <error_monitors/base_gpio_monitor.hpp> + #include <host_error_monitor.hpp> + #include <sdbusplus/asio/object_server.hpp> +@@ -28,6 +29,72 @@ class MemThermtripMonitor : + host_error_monitor::base_gpio_monitor::AssertValue::lowAssert; + size_t cpuNum; + ++ std::shared_ptr<sdbusplus::bus::match::match> dimmThresholdEventMonitor; ++ boost::container::flat_set<std::string> criticalDIMMs; ++ ++ std::shared_ptr<sdbusplus::bus::match::match> ++ startDIMMThresholdEventMonitor() ++ { ++ return std::make_shared<sdbusplus::bus::match::match>( ++ *conn, ++ "type='signal',interface='org.freedesktop.DBus.Properties',member='" ++ "PropertiesChanged',arg0namespace='xyz.openbmc_project.Sensor." ++ "Threshold.Critical'", ++ [this](sdbusplus::message::message& msg) { ++ std::string interfaceName; ++ boost::container::flat_map<std::string, std::variant<bool>> ++ propertiesChanged; ++ try ++ { ++ msg.read(interfaceName, propertiesChanged); ++ } ++ catch (std::exception& e) ++ { ++ std::cerr << "Unable to read threshold event\n"; ++ return; ++ } ++ // We only want to check for CriticalAlarmHigh ++ if (propertiesChanged.begin()->first != "CriticalAlarmHigh") ++ { ++ return; ++ } ++ const bool* alarm = ++ std::get_if<bool>(&(propertiesChanged.begin()->second)); ++ if (alarm == nullptr) ++ { ++ std::cerr << propertiesChanged.begin()->first ++ << " property invalid\n"; ++ return; ++ } ++ ++ // Get the sensor path and check if it's a DIMM sensor ++ std::string sensor = msg.get_path(); ++ if (sensor.find("DIMM") == std::string::npos) ++ { ++ // Not a DIMM sensor ++ return; ++ } ++ ++ // Check if the DIMM belongs to this CPU ++ if (sensor.find("CPU" + std::to_string(cpuNum)) == ++ std::string::npos) ++ { ++ return; ++ } ++ ++ if (*alarm) ++ { ++ // DIMM crossed a critical threshold, so store it ++ criticalDIMMs.insert(sensor); ++ } ++ else ++ { ++ // DIMM is no longer critical, so remove it ++ criticalDIMMs.erase(sensor); ++ } ++ }); ++ } ++ + void logEvent() override + { + std::string cpuNumber = "CPU " + std::to_string(cpuNum); +@@ -39,6 +106,17 @@ class MemThermtripMonitor : + "REDFISH_MESSAGE_ARGS=%s", cpuNumber.c_str(), NULL); + } + ++ void assertHandler() override ++ { ++ // Only log a memory thermtrip if a DIMM is critical ++ if (criticalDIMMs.empty()) ++ { ++ return; ++ } ++ ++ host_error_monitor::base_gpio_monitor::BaseGPIOMonitor::assertHandler(); ++ } ++ + public: + MemThermtripMonitor(boost::asio::io_service& io, + std::shared_ptr<sdbusplus::asio::connection> conn, +@@ -46,6 +124,9 @@ class MemThermtripMonitor : + BaseGPIOMonitor(io, conn, signalName, assertValue), + cpuNum(cpuNum) + { ++ // Start tracking critical DIMM status ++ dimmThresholdEventMonitor = startDIMMThresholdEventMonitor(); ++ + if (valid) + { + startMonitoring(); +-- +2.17.1 + diff --git a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor_%.bbappend b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor_%.bbappend index 0d1fd91d2..638d833a8 100644 --- a/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor_%.bbappend +++ b/meta-openbmc-mods/meta-wht/recipes-core/host-error-monitor/host-error-monitor_%.bbappend @@ -1,6 +1,6 @@ FILESEXTRAPATHS_append := "${THISDIR}/${PN}:" SRC_URI += " \ - file://0001-Filter-memory-thermtrip-events-based-on-DIMM-status.patch \ - file://0002-Add-a-workaround-for-spurious-CPU-errors.patch \ - " + file://0001-Configure-host-error-monitors-for-meta-wht.patch \ + file://0002-Filter-memory-thermtrip-events-based-on-DIMM-status.patch \ + " diff --git a/meta-openbmc-mods/meta-wht/recipes-core/libpeci/libpeci/99-peci.rules b/meta-openbmc-mods/meta-wht/recipes-core/libpeci/libpeci/99-peci.rules new file mode 100644 index 000000000..b587a3f57 --- /dev/null +++ b/meta-openbmc-mods/meta-wht/recipes-core/libpeci/libpeci/99-peci.rules @@ -0,0 +1,2 @@ +ACTION=="add", SUBSYSTEM=="peci_dev", ATTRS{name}=="*.peci-bus", SYMLINK+="peci-wire" TAG+="peci-wire" +ACTION=="add", SUBSYSTEM=="peci_dev", TAG=="peci-wire", SYMLINK+="peci-default" diff --git a/meta-openbmc-mods/meta-wht/recipes-core/libpeci/libpeci_%.bbappend b/meta-openbmc-mods/meta-wht/recipes-core/libpeci/libpeci_%.bbappend new file mode 100644 index 000000000..575cfea24 --- /dev/null +++ b/meta-openbmc-mods/meta-wht/recipes-core/libpeci/libpeci_%.bbappend @@ -0,0 +1,8 @@ +FILESEXTRAPATHS_append := ":${THISDIR}/${PN}" + +SRC_URI += "file://99-peci.rules" + +do_install_append() { + install -d ${D}/lib/udev/rules.d + install -m 0644 ${WORKDIR}/99-peci.rules ${D}/lib/udev/rules.d +} |