summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason M. Bills <jason.m.bills@intel.com>2022-02-01 02:07:14 +0300
committerJason M. Bills <jason.m.bills@intel.com>2022-02-01 02:20:34 +0300
commit5e7aabc46c54c7ff1dff74f2a0414819d6f53e41 (patch)
tree57e04d4e34967d14856c8735968799e427b9acbe
parent2af2c470828b4b3bbcd44215d6a68c8d01cd74db (diff)
downloadopenbmc-5e7aabc46c54c7ff1dff74f2a0414819d6f53e41.tar.xz
Update to internal 1.01-66
Signed-off-by: Jason M. Bills <jason.m.bills@intel.com>
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0035-PFR-platform-EXTRST-reset-mask-selection.patch26
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0042-Disable-PCIe-L1-settings-for-BrightonCity-BRC.patch100
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch8
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0048-Enable-AST2500-KCS-Channel-3-in-uboot.patch86
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0051-Add-Aspeed-DRAM-stress-test-command.patch12
-rw-r--r--meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru.bb2
-rwxr-xr-xmeta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/checkFru.sh44
-rwxr-xr-xmeta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/rewriteFru.sh21
-rw-r--r--meta-openbmc-mods/meta-common/recipes-phosphor/webui/phosphor-webui_%.bbappend2
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/curl/curl_7.79.1.bb (renamed from meta-openbmc-mods/meta-common/recipes-support/curl/curl_7.78.0.bb)4
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch41
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch90
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch9
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch332
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch178
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch21
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/determinism.patch32
-rw-r--r--meta-openbmc-mods/meta-common/recipes-support/libgcrypt/libgcrypt_1.9.4.bb (renamed from meta-openbmc-mods/meta-common/recipes-support/libgcrypt/libgcrypt_1.8.8.bb)14
-rw-r--r--meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control/0004-Protect-POST-Complete-GPIO-read.patch219
-rwxr-xr-xmeta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control_%.bbappend1
-rw-r--r--meta-openbmc-mods/meta-wht/conf/local.conf.sample2
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native.bbappend15
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/bmc_config_d.xml49
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_prv_d.pem6
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_pub_d.pem5
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfm_config_d.xml49
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfr_manifest_d.json250
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_prv_d.pem6
-rw-r--r--meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_pub_d.pem5
-rw-r--r--meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru.bbappend10
-rwxr-xr-xmeta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru/checkFruWFP.sh76
32 files changed, 1031 insertions, 686 deletions
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0035-PFR-platform-EXTRST-reset-mask-selection.patch b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0035-PFR-platform-EXTRST-reset-mask-selection.patch
index 99222f418..0a774946d 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0035-PFR-platform-EXTRST-reset-mask-selection.patch
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0035-PFR-platform-EXTRST-reset-mask-selection.patch
@@ -1,4 +1,4 @@
-From a5dc9fb9b33aa732858dc574f1ada22bc4cbd57c Mon Sep 17 00:00:00 2001
+From 9da7210783beeee237d82ee5306710c42c8025fa Mon Sep 17 00:00:00 2001
From: Vikram Bodireddy <vikram.bodireddy@intel.com>
Date: Thu, 5 Sep 2019 15:03:21 +0530
Subject: [PATCH] PFR platform - EXTRST# reset mask selection
@@ -12,13 +12,13 @@ to be reset so that Host functionality would be intact.
Signed-off-by: Vikram Bodireddy <vikram.bodireddy@intel.com>
---
- arch/arm/include/asm/arch-aspeed/ast-g5-intel.h | 31 +++++++++++++++++++++++++
- arch/arm/include/asm/arch-aspeed/regs-scu.h | 29 +++++++++++++++++++++++
- board/aspeed/ast-g5/ast-g5-intel.c | 9 +++++++
+ .../include/asm/arch-aspeed/ast-g5-intel.h | 31 +++++++++++++++++++
+ arch/arm/include/asm/arch-aspeed/regs-scu.h | 29 +++++++++++++++++
+ board/aspeed/ast-g5/ast-g5-intel.c | 9 ++++++
3 files changed, 69 insertions(+)
diff --git a/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h b/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h
-index 64f4ed1..b9386b2 100644
+index 64f4ed17bfd5..b9386b2cf61a 100644
--- a/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h
+++ b/arch/arm/include/asm/arch-aspeed/ast-g5-intel.h
@@ -12,6 +12,37 @@
@@ -60,7 +60,7 @@ index 64f4ed1..b9386b2 100644
int intel_force_firmware_jumper_enabled(void);
int intel_failed_boot(void);
diff --git a/arch/arm/include/asm/arch-aspeed/regs-scu.h b/arch/arm/include/asm/arch-aspeed/regs-scu.h
-index 1bdb1d8..0a4fb6f 100644
+index 1bdb1d85746d..0a4fb6f77309 100644
--- a/arch/arm/include/asm/arch-aspeed/regs-scu.h
+++ b/arch/arm/include/asm/arch-aspeed/regs-scu.h
@@ -144,6 +144,35 @@
@@ -100,13 +100,13 @@ index 1bdb1d8..0a4fb6f 100644
#define SCU_RESET_CRT3 (0x1 << 8)
#define SCU_RESET_CRT2 (0x1 << 7)
diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c
-index 06c6708..e6dd2e6 100644
+index 4d5fa2c023c8..4ca8ff38b809 100644
--- a/board/aspeed/ast-g5/ast-g5-intel.c
+++ b/board/aspeed/ast-g5/ast-g5-intel.c
-@@ -662,6 +662,15 @@ extern void espi_init(void);
- extern void kcs_init(void);
- void ast_g5_intel(void)
+@@ -686,6 +686,15 @@ void ast_g5_intel(void)
{
+ int platform_id;
+
+ /* EXTRST# mask for PFR platform
+ * EXTRST# is used by PFR CPLD to keep BMC in
+ * reset during firmware authentication, updates and recovery
@@ -117,8 +117,8 @@ index 06c6708..e6dd2e6 100644
+ ast_scu_write(AST_WDT_RESET_MASK, AST_SCU_WDT_RESET);
+
#ifdef USE_SOC_UART_DEBUG
- /* Enable uart port debug function */
- ast_scu_write(ast_scu_read(AST_SCU_MISC1_CTRL) &
+ /* Enable uart port debug function */
+ ast_scu_write(ast_scu_read(AST_SCU_MISC1_CTRL) &
--
-2.7.4
+2.17.1
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0042-Disable-PCIe-L1-settings-for-BrightonCity-BRC.patch b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0042-Disable-PCIe-L1-settings-for-BrightonCity-BRC.patch
new file mode 100644
index 000000000..2b11ae8fe
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0042-Disable-PCIe-L1-settings-for-BrightonCity-BRC.patch
@@ -0,0 +1,100 @@
+From 8d94d9f394b37ca4d40103f0f71c7f9a495303fb Mon Sep 17 00:00:00 2001
+From: Saravanan Palanisamy <saravanan.palanisamy@intel.com>
+Date: Fri, 7 Feb 2020 15:16:16 +0000
+Subject: [PATCH] Disable PCIe L1 settings for BrightonCity (BRC).
+
+PCIe L1 settings are enabled very early during boot (platform_g5.S).
+PCH used in BrightonCity can not support this power mode and
+BRC's VGA functionality is not working, if enabled.
+Disable PCIe L1 for BRC platform when platform id can be
+computed after GPIOs initialization.
+
+Tested:
+1.) Checked BrightonCity VGA works fine with PFR and non-PFR image.
+2.) Checked WilsonCity VGA works fine with PFR and non-PFR image.
+
+Change-Id: I86ad134adc26334a0a168c1b7ab461859eb5af08
+Signed-off-by: Saravanan Palanisamy <saravanan.palanisamy@intel.com>
+---
+ board/aspeed/ast-g5/ast-g5-intel.c | 30 +++++++++++++++++++++++++++++-
+ 1 file changed, 29 insertions(+), 1 deletion(-)
+
+diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c
+index 6c193d8afb..775c7947cd 100644
+--- a/board/aspeed/ast-g5/ast-g5-intel.c
++++ b/board/aspeed/ast-g5/ast-g5-intel.c
+@@ -127,6 +127,14 @@ static const GPIOValue gpio_table[] = {
+ /* HICRB Bits */
+ #define HICRB_EN80HSGIO (1 << 13) /* Enable 80hSGIO */
+
++/* PCI Express Configuration Registers. */
++#define PCI_CONFIG_LOCK_KEY 0x0
++#define PCI_CONFIG_UNLOCK_KEY 0xa8
++#define PCI_PWR_CTRL_REG_OFFSET 0x7c
++#define PCI_L1_CONFIG_REG_OFFSET 0x68
++#define PCI_L1_ENABLE_VALUE 0xc81f0a
++#define PCI_L1_DISABLE_VALUE 0xc807fa
++
+ #define SGPIO_CLK_DIV(N) ((N) << 16)
+ #define SGPIO_BYTES(N) ((N) << 6)
+ #define SGPIO_ENABLE 1
+@@ -138,6 +146,7 @@ static const GPIOValue gpio_table[] = {
+ #define WATCHDOG_RESET_BIT 0x8
+ #define BOOT_FAILURE_LIMIT 0x3
+
++#define BRIGHTON_CITY_BOARD_ID 0
+ #define COOPER_CITY_BOARD_ID 40
+
+ static int get_boot_failures(void)
+@@ -154,6 +163,18 @@ static void set_boot_failures(u32 count)
+ saveenv();
+ }
+
++static inline void pcie_l1_disable()
++{
++ /* Unlock Power Management registers. */
++ writel(PCI_CONFIG_UNLOCK_KEY,
++ AST_PCIE_PLDA_BASE + PCI_PWR_CTRL_REG_OFFSET);
++ /* Disable PCIe L1. */
++ writel(PCI_L1_DISABLE_VALUE,
++ AST_PCIE_PLDA_BASE + PCI_L1_CONFIG_REG_OFFSET);
++ /* Relock the registers. */
++ writel(PCI_CONFIG_LOCK_KEY,
++ AST_PCIE_PLDA_BASE + PCI_PWR_CTRL_REG_OFFSET);
++}
+
+ static void sgpio_init(void)
+ {
+@@ -660,6 +681,8 @@ extern void espi_init(void);
+ extern void kcs_init(void);
+ void ast_g5_intel(void)
+ {
++ int platform_id;
++
+ /* Disable uart port debug function */
+ ast_scu_write(ast_scu_read(AST_SCU_MISC1_CTRL) |
+ SCU_MISC_UART_DEBUG_DIS, AST_SCU_MISC1_CTRL);
+@@ -668,6 +691,11 @@ void ast_g5_intel(void)
+ mailbox_init();
+ pwm_init();
+ gpio_init(gpio_table, ARRAY_SIZE(gpio_table));
++ platform_id = intel_get_platform_id();
++ /* PCH used in BrightonCity does not support PCIe L1. */
++ if (platform_id == BRIGHTON_CITY_BOARD_ID)
++ pcie_l1_disable();
++
+ espi_init();
+ sgpio_init();
+ timer8_init();
+@@ -678,7 +706,7 @@ void ast_g5_intel(void)
+ id_led_control(GPIO_GREEN_LED, EIDLED_Off);
+ id_led_control(GPIO_AMBER_LED, EIDLED_On);
+ kcs_init();
+- if (intel_get_platform_id() == COOPER_CITY_BOARD_ID)
++ if (platform_id == COOPER_CITY_BOARD_ID)
+ set_pwm_duty_cycle(ELEVATED_PWM_DUTY_VALUE);
+ /* TODO: need to stop the booting here. */
+ }
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch
index 94c35be61..af0e08f7d 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0043-PFR-Skip-counting-WDT2-event-when-EXTRST-is-set.patch
@@ -22,15 +22,15 @@ diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-int
index 6a0d6556bc..c5aded759d 100644
--- a/board/aspeed/ast-g5/ast-g5-intel.c
+++ b/board/aspeed/ast-g5/ast-g5-intel.c
-@@ -136,6 +136,7 @@ static const GPIOValue gpio_table[] = {
+@@ -145,6 +145,7 @@ static const GPIOValue gpio_table[] = {
#define HOST_SERIAL_B_HIGH_SPEED (1 << 1)
#define WATCHDOG_RESET_BIT 0x8
+#define EXTRST_RESET_BIT 0x2
#define BOOT_FAILURE_LIMIT 0x3
-
- #define COOPER_CITY_BOARD_ID 40
-@@ -552,7 +553,8 @@ void ast_g5_intel_late_init(void)
+
+ #define BRIGHTON_CITY_BOARD_ID 0
+@@ -572,7 +573,8 @@ void ast_g5_intel_late_init(void)
boot_failures = get_boot_failures();
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0048-Enable-AST2500-KCS-Channel-3-in-uboot.patch b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0048-Enable-AST2500-KCS-Channel-3-in-uboot.patch
new file mode 100644
index 000000000..f00b9c749
--- /dev/null
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0048-Enable-AST2500-KCS-Channel-3-in-uboot.patch
@@ -0,0 +1,86 @@
+From 509e93eefa42f3df09e4b6270fac19fff6ba5ad2 Mon Sep 17 00:00:00 2001
+From: Saravanan Palanisamy <saravanan.palanisamy@intel.com>
+Date: Mon, 31 Aug 2020 20:34:58 +0000
+Subject: [PATCH] Enable AST2500 KCS Channel#3 in uboot.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Add AST2500 workaround to solve the issue described in Test Case:#1.
+
+Tested:
+1. Make BMC initialize later after BIOS, and check KCS works.
+ a. Hold BMC in u-boot (through Esc key and not through FFUJ mode).
+ b. Power on the Host and allow it to boot to UEFI shell
+ c. Try accessing CA2 port (used for KCS), through mm command:
+ (mm CA2 -w 1 -IO -n), as expected we are seeing 0xFF as data.
+ (No issues here, because KCS channel is not enabled yet from BMC).
+ d. Now, without disturbing the host system, allow BMC to boot to Linux
+ (Basically KCS Channel #3 are properly enabled with 0xCA2 address).
+ e. Now try accessing CA2 port (used for KCS “mm CA2 -w 1 -IO -n”.
+ f. Able to access the data fine, and KCS communication works as expected
+ Without this fix, this access will fail with 0xFF error.
+2. Test BMC BIOS KCS communication works fine in BC, WC baseboards after
+ a. AC power on
+ b. Host reset
+ c. BMC reset
+ by Verifying following:
+ i. cmdtool.efi 20 18 1
+ ii. CA2 port access by mm command.
+ iii. Get Device ID success in BIOS bootlogs (Except BC board, BIOS fix WIP.)
+
+Signed-off-by: Saravanan Palanisamy <saravanan.palanisamy@intel.com>
+Signed-off-by: Richard Marian Thomaiyar <richard.marian.thomaiyar@linux.intel.com>
+Change-Id: Ic0fe1fee0eefb2663965f7052b5b7e4ff1fede27
+---
+ board/aspeed/ast-g5/ast-g5-intel.c | 15 +++++++++++++++
+ board/aspeed/ast-g5/ast-g5-kcs.c | 8 ++++++++
+ 2 files changed, 23 insertions(+)
+
+diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-intel.c
+index 775c7947cd..c46bd70b71 100644
+--- a/board/aspeed/ast-g5/ast-g5-intel.c
++++ b/board/aspeed/ast-g5/ast-g5-intel.c
+@@ -709,5 +709,20 @@ void ast_g5_intel(void)
+ if (platform_id == COOPER_CITY_BOARD_ID)
+ set_pwm_duty_cycle(ELEVATED_PWM_DUTY_VALUE);
+ /* TODO: need to stop the booting here. */
++ } else {
++ /*
++ * AST2500 SW workaround:
++ * When eSPI-LPC bridge HW stays in the LPC I/O port
++ * decoding error state, controllers behind the bridge
++ * cannot be enabled. Thereby, these controller should
++ * be enabled early to avoid the decoding error.
++ *
++ * This workaround enables only the eSPI/LPC controllers which
++ * commonly interacts with Host at the early stage, the KCS@Channel3.
++ * Note: CA2h port will be still initialized in Linux.
++ * Enabling this only for BRC board for now.
++ */
++ if (platform_id == BRIGHTON_CITY_BOARD_ID)
++ enable_kcs_channel3_alone();
+ }
+ }
+diff --git a/board/aspeed/ast-g5/ast-g5-kcs.c b/board/aspeed/ast-g5/ast-g5-kcs.c
+index 98bf69ba85..38d13d4620 100644
+--- a/board/aspeed/ast-g5/ast-g5-kcs.c
++++ b/board/aspeed/ast-g5/ast-g5-kcs.c
+@@ -411,6 +411,14 @@ static void enable_kcs_channel(u16 channel_num, u16 enable)
+ }
+ }
+
++void enable_kcs_channel3_alone(void)
++{
++ u8 val;
++
++ val = readb(AST_LPC_BASE + LPC_HICR0) | BIT_LPC3E;
++ writeb(val, AST_LPC_BASE + LPC_HICR0);
++}
++
+ void kcs_init(void)
+ {
+ /* Initialize the KCS channels. */
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0051-Add-Aspeed-DRAM-stress-test-command.patch b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0051-Add-Aspeed-DRAM-stress-test-command.patch
index 377be5e53..82e8f3e0f 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0051-Add-Aspeed-DRAM-stress-test-command.patch
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/files/0051-Add-Aspeed-DRAM-stress-test-command.patch
@@ -19,19 +19,19 @@ diff --git a/board/aspeed/ast-g5/ast-g5-intel.c b/board/aspeed/ast-g5/ast-g5-int
index c46bd70b71b2..91dae91d02e4 100644
--- a/board/aspeed/ast-g5/ast-g5-intel.c
+++ b/board/aspeed/ast-g5/ast-g5-intel.c
-@@ -140,6 +140,8 @@ static const GPIOValue gpio_table[] = {
-
+@@ -149,6 +149,8 @@ static const GPIOValue gpio_table[] = {
+ #define BRIGHTON_CITY_BOARD_ID 0
#define COOPER_CITY_BOARD_ID 40
+#define USE_SOC_UART_DEBUG
+
static int get_boot_failures(void)
{
- return getenv_ulong("bootfailures", 10, 0);
-@@ -660,9 +662,15 @@ extern void espi_init(void);
- extern void kcs_init(void);
- void ast_g5_intel(void)
+ return getenv_ulong("bootfailures", 10, 0);
+@@ -683,9 +685,15 @@ void ast_g5_intel(void)
{
+ int platform_id;
+
+#ifdef USE_SOC_UART_DEBUG
+ /* Enable uart port debug function */
+ ast_scu_write(ast_scu_read(AST_SCU_MISC1_CTRL) &
diff --git a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
index 53e91136e..38e975944 100644
--- a/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
+++ b/meta-openbmc-mods/meta-ast2500/recipes-bsp/u-boot/u-boot-aspeed_%.bbappend
@@ -41,10 +41,12 @@ SRC_URI_append_intel-ast2500 = " \
file://0037-aspeed-ast-scu.c-fix-MAC1LINK-and-MAC2LINK-pin-pads-.patch \
file://0038-Increase-default-fan-speed-for-cooper-city.patch \
file://0040-Initialize-the-BMC-host-mailbox-at-reset-time.patch \
+ file://0042-Disable-PCIe-L1-settings-for-BrightonCity-BRC.patch \
file://0044-net-phy-realtek-Change-LED-configuration.patch \
file://0045-Apply-WDT1-2-reset-mask-to-reset-needed-controller.patch \
file://0046-Enable-FMC-DMA-for-memmove.patch \
file://0047-ast2500-parse-reset-reason.patch \
+ file://0048-Enable-AST2500-KCS-Channel-3-in-uboot.patch \
file://0049-Add-WDT-to-u-boot-to-cover-booting-failures.patch \
file://0051-Add-Aspeed-DRAM-stress-test-command.patch \
file://0052-Fix-issue-on-host-console-is-broken-due-to-BMC-reset.patch \
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru.bb b/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru.bb
index 53cec437d..cd0a7076e 100644
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru.bb
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru.bb
@@ -8,6 +8,7 @@ SYSTEMD_SERVICE_${PN} = "SetBaseboardFru.service"
S = "${WORKDIR}"
SRC_URI = "file://checkFru.sh \
+ file://rewriteFru.sh \
file://SetBaseboardFru.service \
file://mkfru.cpp \
file://CMakeLists.txt \
@@ -24,6 +25,7 @@ RDEPENDS_${PN} = "bash"
do_install_append() {
install -d ${D}${bindir}
install -m 0755 ${S}/checkFru.sh ${D}/${bindir}/checkFru.sh
+ install -m 0755 ${S}/rewriteFru.sh ${D}/${bindir}/rewriteFru.sh
install -d ${D}${base_libdir}/systemd/system
install -m 0644 ${S}/SetBaseboardFru.service ${D}${base_libdir}/systemd/system
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/checkFru.sh b/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/checkFru.sh
index 9227beb20..0ba6e132f 100755
--- a/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/checkFru.sh
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/checkFru.sh
@@ -5,10 +5,7 @@ FRUPATH="/etc/fru"
PRODIDPATH="/var/cache/private"
fruFile="$FRUPATH/baseboard.fru.bin"
prodIDFile="$PRODIDPATH/prodID"
-
-if [ -f $fruFile -a -f $prodIDFile ]; then
- exit 0
-fi
+eepromFru=false
read_id() {
local idx=0
@@ -23,9 +20,33 @@ read_id() {
echo $result
}
+# Check 'Chassis Info Area' exists or not by checking its offset value in the
+# FRU Common Header. If exists, return 0 (success).
+chassis_area_found(){
+ local eepromBus="3"
+ local eepromAddr="0x56"
+ local eepromReadOffset="0x02"
+ local chassisAreaOffset="0"
+
+ chassisAreaOffset=$(eeprog /dev/i2c-$eepromBus $eepromAddr -f -q -r $eepromReadOffset -x | awk '{print $2}')
+ if [ $chassisAreaOffset != "00" ]; then
+ return 0
+ fi
+ return 1
+}
+
+if [ -f $fruFile -a -f $prodIDFile ] &&
+ grep -q 'CPU part\s*: 0xc07' /proc/cpuinfo; then
+ exit 0
+fi
+
BOARD_ID=$(read_id)
if grep -q 'CPU part\s*: 0xb76' /proc/cpuinfo; then
# AST2500
+ if [ -f $fruFile -a -f $prodIDFile -a $BOARD_ID -ne 0 ]; then
+ exit 0
+ fi
+
case $BOARD_ID in
12) NAME="D50TNP1SB"
PRODID="0x99";;
@@ -41,6 +62,13 @@ if grep -q 'CPU part\s*: 0xb76' /proc/cpuinfo; then
PRODID="0x98";;
62) NAME="WilsonPoint"
PRODID="0x9a";;
+ 0) PRODID="0x00"
+ eepromFru=true
+ rm -f $fruFile
+ if ! chassis_area_found || [ -f /etc/bc_fru_write_fails ]; then
+ nohup rewriteFru.sh &
+ fi
+ ;;
*) NAME="S2600WFT"
PRODID="0x7b";;
esac
@@ -65,6 +93,13 @@ then
echo $PRODID >$prodIDFile
fi
+if $eepromFru;
+then
+ # Wait for rewriteFru.sh child process to finish.
+ wait
+ exit 0
+fi
+
if [ ! -f $fruFile ]
then
cd /tmp
@@ -73,4 +108,3 @@ then
mv $NAME.fru.bin $fruFile
fi
-
diff --git a/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/rewriteFru.sh b/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/rewriteFru.sh
new file mode 100755
index 000000000..3ef9e4b8b
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-phosphor/fru/default-fru/rewriteFru.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+touch /etc/bc_fru_write_fails
+sleep 190
+
+if ! busctl tree xyz.openbmc_project.FruDevice | grep -q /xyz/openbmc_project/FruDevice/BRIGHTONCITY; then
+ # Should not happen.
+ echo “Fru Device not found”
+ touch /etc/bc_fru_not_found
+ exit 1
+fi
+maxRetries=3
+while [ $maxRetries -gt 0 ]; do
+ if busctl call xyz.openbmc_project.FruDevice "/xyz/openbmc_project/FruDevice" "xyz.openbmc_project.FruDeviceManager" WriteFru yyay 3 86 136 1 1 4 5 11 0 0 234 2 3 0 0 0 0 0 0 0 224 46 195 1 0 0 0 0 9 0 0 193 0 0 95 1 1 23 192 192 193 0 166 1 6 25 192 229 194 198 65 67 67 84 79 78 204 66 82 73 71 72 84 79 78 67 73 84 89 192 202 75 55 57 53 51 52 45 49 48 48 192 193 0 0 0 0 0 0 0 121 1 6 25 198 65 67 67 84 79 78 204 66 82 73 71 72 84 79 78 67 73 84 89 192 192 192 204 65 51 51 50 53 50 51 51 51 53 53 52 192 193 0 0 0 0 0 0 252; then
+ rm -rf /etc/bc_fru_write_fails
+ break;
+ fi
+ ((maxRetries--))
+done
+# Since FRU write is going through FruDevice service, intel-ipmi-oem replaceCacheFru() should refresh its cache after 30 seconds.
+# Restart FruDevice service not required, ideally. Will do it if required
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 6b6793914..c45b50750 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 = "3e7346c1ea86c08ff2fafeee8f05c0937ffef731"
+SRCREV = "b5707d7648de19350b3f308b9602c888c6418d6f"
diff --git a/meta-openbmc-mods/meta-common/recipes-support/curl/curl_7.78.0.bb b/meta-openbmc-mods/meta-common/recipes-support/curl/curl_7.79.1.bb
index ce2f1e8be..3b6141af8 100644
--- a/meta-openbmc-mods/meta-common/recipes-support/curl/curl_7.78.0.bb
+++ b/meta-openbmc-mods/meta-common/recipes-support/curl/curl_7.79.1.bb
@@ -9,8 +9,8 @@ SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \
file://0001-replace-krb5-config-with-pkg-config.patch \
"
-SRC_URI[md5sum] = "9a57717210a0bb0b6becda1497f0f2b5"
-SRC_URI[sha256sum] = "98530b317dc95ccb324bbe4f834f07bb642fbc393b794ddf3434f246a71ea44a"
+SRC_URI[md5sum] = "9ae3222fb6a5fb069c923a3cb1f4e2e6"
+SRC_URI[sha256sum] = "de62c4ab9a9316393962e8b94777a570bb9f71feb580fb4475e412f2f9387851"
CVE_PRODUCT = "curl libcurl"
inherit autotools pkgconfig binconfig multilib_header
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch
new file mode 100644
index 000000000..8fbed9add
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Makefile.am-add-a-missing-space.patch
@@ -0,0 +1,41 @@
+From b8192ff67ed46ea2cc4282fa1856ce2868223737 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 24 Feb 2021 19:43:07 +0000
+Subject: [PATCH] Makefile.am: add a missing space
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ cipher/Makefile.am | 2 +-
+ doc/Makefile.am | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cipher/Makefile.am b/cipher/Makefile.am
+index 1cf5072..b3ca225 100644
+--- a/cipher/Makefile.am
++++ b/cipher/Makefile.am
+@@ -143,7 +143,7 @@ gost-sb.h: gost-s-box
+
+ gost-s-box: gost-s-box.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
+- $(CPPFLAGS_FOR_BUILD)-o $@ $(srcdir)/gost-s-box.c
++ $(CPPFLAGS_FOR_BUILD) -o $@ $(srcdir)/gost-s-box.c
+
+
+ if ENABLE_O_FLAG_MUNGING
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index fd7aac2..1703bd9 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -43,7 +43,7 @@ man_MANS = $(myman_pages)
+
+ yat2m: yat2m.c
+ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
+- $(CPPFLAGS_FOR_BUILD)-o $@ $(srcdir)/yat2m.c
++ $(CPPFLAGS_FOR_BUILD) -o $@ $(srcdir)/yat2m.c
+
+ .fig.png:
+ fig2dev -L png `test -f '$<' || echo '$(srcdir)/'`$< $@
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch
deleted file mode 100644
index 4df96f001..000000000
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-Prefetch-GCM-look-up-tables.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 1374254c2904ab5b18ba4a890856824a102d4705 Mon Sep 17 00:00:00 2001
-From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-Date: Sat, 27 Apr 2019 19:33:28 +0300
-Subject: [PATCH 1/3] Prefetch GCM look-up tables
-
-* cipher/cipher-gcm.c (prefetch_table, do_prefetch_tables)
-(prefetch_tables): New.
-(ghash_internal): Call prefetch_tables.
---
-
-Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-
-Upstream-Status: Backport
-[https://github.com/gpg/libgcrypt/commit/1374254c2904ab5b18ba4a890856824a102d4705]
-
-CVE: CVE-2019-12904
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- cipher/cipher-gcm.c | 33 +++++++++++++++++++++++++++++++++
- 1 file changed, 33 insertions(+)
-
-diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c
-index c19f09f..11f119a 100644
---- a/cipher/cipher-gcm.c
-+++ b/cipher/cipher-gcm.c
-@@ -118,6 +118,34 @@ static const u16 gcmR[256] = {
- 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
- };
-
-+static inline
-+void prefetch_table(const void *tab, size_t len)
-+{
-+ const volatile byte *vtab = tab;
-+ size_t i;
-+
-+ for (i = 0; i < len; i += 8 * 32)
-+ {
-+ (void)vtab[i + 0 * 32];
-+ (void)vtab[i + 1 * 32];
-+ (void)vtab[i + 2 * 32];
-+ (void)vtab[i + 3 * 32];
-+ (void)vtab[i + 4 * 32];
-+ (void)vtab[i + 5 * 32];
-+ (void)vtab[i + 6 * 32];
-+ (void)vtab[i + 7 * 32];
-+ }
-+
-+ (void)vtab[len - 1];
-+}
-+
-+static inline void
-+do_prefetch_tables (const void *gcmM, size_t gcmM_size)
-+{
-+ prefetch_table(gcmM, gcmM_size);
-+ prefetch_table(gcmR, sizeof(gcmR));
-+}
-+
- #ifdef GCM_TABLES_USE_U64
- static void
- bshift (u64 * b0, u64 * b1)
-@@ -365,6 +393,8 @@ do_ghash (unsigned char *result, const unsigned char *buf, const u32 *gcmM)
- #define fillM(c) \
- do_fillM (c->u_mode.gcm.u_ghash_key.key, c->u_mode.gcm.gcm_table)
- #define GHASH(c, result, buf) do_ghash (result, buf, c->u_mode.gcm.gcm_table)
-+#define prefetch_tables(c) \
-+ do_prefetch_tables(c->u_mode.gcm.gcm_table, sizeof(c->u_mode.gcm.gcm_table))
-
- #else
-
-@@ -430,6 +460,7 @@ do_ghash (unsigned char *hsub, unsigned char *result, const unsigned char *buf)
-
- #define fillM(c) do { } while (0)
- #define GHASH(c, result, buf) do_ghash (c->u_mode.gcm.u_ghash_key.key, result, buf)
-+#define prefetch_tables(c) do {} while (0)
-
- #endif /* !GCM_USE_TABLES */
-
-@@ -441,6 +472,8 @@ ghash_internal (gcry_cipher_hd_t c, byte *result, const byte *buf,
- const unsigned int blocksize = GCRY_GCM_BLOCK_LEN;
- unsigned int burn = 0;
-
-+ prefetch_tables (c);
-+
- while (nblocks)
- {
- burn = GHASH (c, result, buf);
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
index cd8a5993b..c873e24ed 100644
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
+++ b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0001-libgcrypt-fix-m4-file-for-oe-core.patch
@@ -1,4 +1,4 @@
-From bee26d7c4ea0b4a397c289b819b89e78bc325ba0 Mon Sep 17 00:00:00 2001
+From 839f38e5ecc22b7f1b837284bbbffac8cb32ab1e Mon Sep 17 00:00:00 2001
From: Trevor Gamblin <trevor.gamblin@windriver.com>
Date: Tue, 29 Oct 2019 14:08:32 -0400
Subject: [PATCH] libgcrypt: fix m4 file for oe-core
@@ -17,7 +17,7 @@ Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
1 file changed, 4 insertions(+), 86 deletions(-)
diff --git a/src/libgcrypt.m4 b/src/libgcrypt.m4
-index 37dfbea2..3d2e90a8 100644
+index 19d514f..21125c7 100644
--- a/src/libgcrypt.m4
+++ b/src/libgcrypt.m4
@@ -29,41 +29,6 @@ dnl is added to the gpg_config_script_warn variable.
@@ -25,7 +25,7 @@ index 37dfbea2..3d2e90a8 100644
AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_REQUIRE([AC_CANONICAL_HOST])
- AC_ARG_WITH(libgcrypt-prefix,
-- AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
+- AS_HELP_STRING([--with-libgcrypt-prefix=PFX],
- [prefix where LIBGCRYPT is installed (optional)]),
- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
- if test x"${LIBGCRYPT_CONFIG}" = x ; then
@@ -144,6 +144,3 @@ index 37dfbea2..3d2e90a8 100644
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBGCRYPT_CFLAGS)
---
-2.17.1
-
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch
deleted file mode 100644
index c82c5b5c8..000000000
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch
+++ /dev/null
@@ -1,332 +0,0 @@
-From 119348dd9aa52ab229afb5e2d3342d2b76fe81bf Mon Sep 17 00:00:00 2001
-From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-Date: Fri, 31 May 2019 17:18:09 +0300
-Subject: [PATCH 2/3] AES: move look-up tables to .data section and unshare between
- processes
-
-* cipher/rijndael-internal.h (ATTR_ALIGNED_64): New.
-* cipher/rijndael-tables.h (encT): Move to 'enc_tables' structure.
-(enc_tables): New structure for encryption table with counters before
-and after.
-(encT): New macro.
-(dec_tables): Add counters before and after encryption table; Move
-from .rodata to .data section.
-(do_encrypt): Change 'encT' to 'enc_tables.T'.
-(do_decrypt): Change '&dec_tables' to 'dec_tables.T'.
-* cipher/cipher-gcm.c (prefetch_table): Make inline; Handle input
-with length not multiple of 256.
-(prefetch_enc, prefetch_dec): Modify pre- and post-table counters
-to unshare look-up table pages between processes.
---
-
-GnuPG-bug-id: 4541
-Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-
-Upstream-Status: Backport
-[https://github.com/gpg/libgcrypt/commit/daedbbb5541cd8ecda1459d3b843ea4d92788762]
-
-CVE: CVE-2019-12904
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- cipher/rijndael-internal.h | 4 +-
- cipher/rijndael-tables.h | 155 +++++++++++++++++++++++++--------------------
- cipher/rijndael.c | 35 ++++++++--
- 3 files changed, 118 insertions(+), 76 deletions(-)
-
-diff --git a/cipher/rijndael-internal.h b/cipher/rijndael-internal.h
-index 160fb8c..a62d4b7 100644
---- a/cipher/rijndael-internal.h
-+++ b/cipher/rijndael-internal.h
-@@ -29,11 +29,13 @@
- #define BLOCKSIZE (128/8)
-
-
--/* Helper macro to force alignment to 16 bytes. */
-+/* Helper macro to force alignment to 16 or 64 bytes. */
- #ifdef HAVE_GCC_ATTRIBUTE_ALIGNED
- # define ATTR_ALIGNED_16 __attribute__ ((aligned (16)))
-+# define ATTR_ALIGNED_64 __attribute__ ((aligned (64)))
- #else
- # define ATTR_ALIGNED_16
-+# define ATTR_ALIGNED_64
- #endif
-
-
-diff --git a/cipher/rijndael-tables.h b/cipher/rijndael-tables.h
-index 8359470..b54d959 100644
---- a/cipher/rijndael-tables.h
-+++ b/cipher/rijndael-tables.h
-@@ -21,80 +21,98 @@
- /* To keep the actual implementation at a readable size we use this
- include file to define the tables. */
-
--static const u32 encT[256] =
-+static struct
-+{
-+ volatile u32 counter_head;
-+ u32 cacheline_align[64 / 4 - 1];
-+ u32 T[256];
-+ volatile u32 counter_tail;
-+} enc_tables ATTR_ALIGNED_64 =
- {
-- 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
-- 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
-- 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
-- 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
-- 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
-- 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
-- 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
-- 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
-- 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
-- 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
-- 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
-- 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
-- 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
-- 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
-- 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
-- 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
-- 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
-- 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
-- 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
-- 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
-- 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
-- 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
-- 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
-- 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
-- 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
-- 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
-- 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
-- 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
-- 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
-- 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
-- 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
-- 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
-- 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
-- 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
-- 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
-- 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
-- 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
-- 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
-- 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
-- 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
-- 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
-- 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
-- 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
-- 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
-- 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
-- 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
-- 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
-- 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
-- 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
-- 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
-- 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
-- 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
-- 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
-- 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
-- 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
-- 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
-- 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
-- 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
-- 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
-- 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
-- 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
-- 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
-- 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
-- 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
-+ 0,
-+ { 0, },
-+ {
-+ 0xa56363c6, 0x847c7cf8, 0x997777ee, 0x8d7b7bf6,
-+ 0x0df2f2ff, 0xbd6b6bd6, 0xb16f6fde, 0x54c5c591,
-+ 0x50303060, 0x03010102, 0xa96767ce, 0x7d2b2b56,
-+ 0x19fefee7, 0x62d7d7b5, 0xe6abab4d, 0x9a7676ec,
-+ 0x45caca8f, 0x9d82821f, 0x40c9c989, 0x877d7dfa,
-+ 0x15fafaef, 0xeb5959b2, 0xc947478e, 0x0bf0f0fb,
-+ 0xecadad41, 0x67d4d4b3, 0xfda2a25f, 0xeaafaf45,
-+ 0xbf9c9c23, 0xf7a4a453, 0x967272e4, 0x5bc0c09b,
-+ 0xc2b7b775, 0x1cfdfde1, 0xae93933d, 0x6a26264c,
-+ 0x5a36366c, 0x413f3f7e, 0x02f7f7f5, 0x4fcccc83,
-+ 0x5c343468, 0xf4a5a551, 0x34e5e5d1, 0x08f1f1f9,
-+ 0x937171e2, 0x73d8d8ab, 0x53313162, 0x3f15152a,
-+ 0x0c040408, 0x52c7c795, 0x65232346, 0x5ec3c39d,
-+ 0x28181830, 0xa1969637, 0x0f05050a, 0xb59a9a2f,
-+ 0x0907070e, 0x36121224, 0x9b80801b, 0x3de2e2df,
-+ 0x26ebebcd, 0x6927274e, 0xcdb2b27f, 0x9f7575ea,
-+ 0x1b090912, 0x9e83831d, 0x742c2c58, 0x2e1a1a34,
-+ 0x2d1b1b36, 0xb26e6edc, 0xee5a5ab4, 0xfba0a05b,
-+ 0xf65252a4, 0x4d3b3b76, 0x61d6d6b7, 0xceb3b37d,
-+ 0x7b292952, 0x3ee3e3dd, 0x712f2f5e, 0x97848413,
-+ 0xf55353a6, 0x68d1d1b9, 0x00000000, 0x2cededc1,
-+ 0x60202040, 0x1ffcfce3, 0xc8b1b179, 0xed5b5bb6,
-+ 0xbe6a6ad4, 0x46cbcb8d, 0xd9bebe67, 0x4b393972,
-+ 0xde4a4a94, 0xd44c4c98, 0xe85858b0, 0x4acfcf85,
-+ 0x6bd0d0bb, 0x2aefefc5, 0xe5aaaa4f, 0x16fbfbed,
-+ 0xc5434386, 0xd74d4d9a, 0x55333366, 0x94858511,
-+ 0xcf45458a, 0x10f9f9e9, 0x06020204, 0x817f7ffe,
-+ 0xf05050a0, 0x443c3c78, 0xba9f9f25, 0xe3a8a84b,
-+ 0xf35151a2, 0xfea3a35d, 0xc0404080, 0x8a8f8f05,
-+ 0xad92923f, 0xbc9d9d21, 0x48383870, 0x04f5f5f1,
-+ 0xdfbcbc63, 0xc1b6b677, 0x75dadaaf, 0x63212142,
-+ 0x30101020, 0x1affffe5, 0x0ef3f3fd, 0x6dd2d2bf,
-+ 0x4ccdcd81, 0x140c0c18, 0x35131326, 0x2fececc3,
-+ 0xe15f5fbe, 0xa2979735, 0xcc444488, 0x3917172e,
-+ 0x57c4c493, 0xf2a7a755, 0x827e7efc, 0x473d3d7a,
-+ 0xac6464c8, 0xe75d5dba, 0x2b191932, 0x957373e6,
-+ 0xa06060c0, 0x98818119, 0xd14f4f9e, 0x7fdcdca3,
-+ 0x66222244, 0x7e2a2a54, 0xab90903b, 0x8388880b,
-+ 0xca46468c, 0x29eeeec7, 0xd3b8b86b, 0x3c141428,
-+ 0x79dedea7, 0xe25e5ebc, 0x1d0b0b16, 0x76dbdbad,
-+ 0x3be0e0db, 0x56323264, 0x4e3a3a74, 0x1e0a0a14,
-+ 0xdb494992, 0x0a06060c, 0x6c242448, 0xe45c5cb8,
-+ 0x5dc2c29f, 0x6ed3d3bd, 0xefacac43, 0xa66262c4,
-+ 0xa8919139, 0xa4959531, 0x37e4e4d3, 0x8b7979f2,
-+ 0x32e7e7d5, 0x43c8c88b, 0x5937376e, 0xb76d6dda,
-+ 0x8c8d8d01, 0x64d5d5b1, 0xd24e4e9c, 0xe0a9a949,
-+ 0xb46c6cd8, 0xfa5656ac, 0x07f4f4f3, 0x25eaeacf,
-+ 0xaf6565ca, 0x8e7a7af4, 0xe9aeae47, 0x18080810,
-+ 0xd5baba6f, 0x887878f0, 0x6f25254a, 0x722e2e5c,
-+ 0x241c1c38, 0xf1a6a657, 0xc7b4b473, 0x51c6c697,
-+ 0x23e8e8cb, 0x7cdddda1, 0x9c7474e8, 0x211f1f3e,
-+ 0xdd4b4b96, 0xdcbdbd61, 0x868b8b0d, 0x858a8a0f,
-+ 0x907070e0, 0x423e3e7c, 0xc4b5b571, 0xaa6666cc,
-+ 0xd8484890, 0x05030306, 0x01f6f6f7, 0x120e0e1c,
-+ 0xa36161c2, 0x5f35356a, 0xf95757ae, 0xd0b9b969,
-+ 0x91868617, 0x58c1c199, 0x271d1d3a, 0xb99e9e27,
-+ 0x38e1e1d9, 0x13f8f8eb, 0xb398982b, 0x33111122,
-+ 0xbb6969d2, 0x70d9d9a9, 0x898e8e07, 0xa7949433,
-+ 0xb69b9b2d, 0x221e1e3c, 0x92878715, 0x20e9e9c9,
-+ 0x49cece87, 0xff5555aa, 0x78282850, 0x7adfdfa5,
-+ 0x8f8c8c03, 0xf8a1a159, 0x80898909, 0x170d0d1a,
-+ 0xdabfbf65, 0x31e6e6d7, 0xc6424284, 0xb86868d0,
-+ 0xc3414182, 0xb0999929, 0x772d2d5a, 0x110f0f1e,
-+ 0xcbb0b07b, 0xfc5454a8, 0xd6bbbb6d, 0x3a16162c
-+ },
-+ 0
- };
-
--static const struct
-+#define encT enc_tables.T
-+
-+static struct
- {
-+ volatile u32 counter_head;
-+ u32 cacheline_align[64 / 4 - 1];
- u32 T[256];
- byte inv_sbox[256];
--} dec_tables =
-+ volatile u32 counter_tail;
-+} dec_tables ATTR_ALIGNED_64 =
- {
-+ 0,
-+ { 0, },
- {
- 0x50a7f451, 0x5365417e, 0xc3a4171a, 0x965e273a,
- 0xcb6bab3b, 0xf1459d1f, 0xab58faac, 0x9303e34b,
-@@ -194,7 +212,8 @@ static const struct
- 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61,
- 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,
- 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
-- }
-+ },
-+ 0
- };
-
- #define decT dec_tables.T
-diff --git a/cipher/rijndael.c b/cipher/rijndael.c
-index 8637195..d0edab2 100644
---- a/cipher/rijndael.c
-+++ b/cipher/rijndael.c
-@@ -227,11 +227,11 @@ static const char *selftest(void);
-
-
- /* Prefetching for encryption/decryption tables. */
--static void prefetch_table(const volatile byte *tab, size_t len)
-+static inline void prefetch_table(const volatile byte *tab, size_t len)
- {
- size_t i;
-
-- for (i = 0; i < len; i += 8 * 32)
-+ for (i = 0; len - i >= 8 * 32; i += 8 * 32)
- {
- (void)tab[i + 0 * 32];
- (void)tab[i + 1 * 32];
-@@ -242,17 +242,37 @@ static void prefetch_table(const volatile byte *tab, size_t len)
- (void)tab[i + 6 * 32];
- (void)tab[i + 7 * 32];
- }
-+ for (; i < len; i += 32)
-+ {
-+ (void)tab[i];
-+ }
-
- (void)tab[len - 1];
- }
-
- static void prefetch_enc(void)
- {
-- prefetch_table((const void *)encT, sizeof(encT));
-+ /* Modify counters to trigger copy-on-write and unsharing if physical pages
-+ * of look-up table are shared between processes. Modifying counters also
-+ * causes checksums for pages to change and hint same-page merging algorithm
-+ * that these pages are frequently changing. */
-+ enc_tables.counter_head++;
-+ enc_tables.counter_tail++;
-+
-+ /* Prefetch look-up tables to cache. */
-+ prefetch_table((const void *)&enc_tables, sizeof(enc_tables));
- }
-
- static void prefetch_dec(void)
- {
-+ /* Modify counters to trigger copy-on-write and unsharing if physical pages
-+ * of look-up table are shared between processes. Modifying counters also
-+ * causes checksums for pages to change and hint same-page merging algorithm
-+ * that these pages are frequently changing. */
-+ dec_tables.counter_head++;
-+ dec_tables.counter_tail++;
-+
-+ /* Prefetch look-up tables to cache. */
- prefetch_table((const void *)&dec_tables, sizeof(dec_tables));
- }
-
-@@ -737,7 +757,7 @@ do_encrypt (const RIJNDAEL_context *ctx,
- #ifdef USE_AMD64_ASM
- # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
- return _gcry_aes_amd64_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds,
-- encT);
-+ enc_tables.T);
- # else
- /* Call SystemV ABI function without storing non-volatile XMM registers,
- * as target function does not use vector instruction sets. */
-@@ -757,7 +777,8 @@ do_encrypt (const RIJNDAEL_context *ctx,
- return ret;
- # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */
- #elif defined(USE_ARM_ASM)
-- return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds, encT);
-+ return _gcry_aes_arm_encrypt_block(ctx->keyschenc, bx, ax, ctx->rounds,
-+ enc_tables.T);
- #else
- return do_encrypt_fn (ctx, bx, ax);
- #endif /* !USE_ARM_ASM && !USE_AMD64_ASM*/
-@@ -1120,7 +1141,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx,
- #ifdef USE_AMD64_ASM
- # ifdef HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS
- return _gcry_aes_amd64_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds,
-- &dec_tables);
-+ dec_tables.T);
- # else
- /* Call SystemV ABI function without storing non-volatile XMM registers,
- * as target function does not use vector instruction sets. */
-@@ -1141,7 +1162,7 @@ do_decrypt (const RIJNDAEL_context *ctx, unsigned char *bx,
- # endif /* HAVE_COMPATIBLE_GCC_AMD64_PLATFORM_AS */
- #elif defined(USE_ARM_ASM)
- return _gcry_aes_arm_decrypt_block(ctx->keyschdec, bx, ax, ctx->rounds,
-- &dec_tables);
-+ dec_tables.T);
- #else
- return do_decrypt_fn (ctx, bx, ax);
- #endif /*!USE_ARM_ASM && !USE_AMD64_ASM*/
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch
deleted file mode 100644
index b580b7b13..000000000
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From a4c561aab1014c3630bc88faf6f5246fee16b020 Mon Sep 17 00:00:00 2001
-From: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-Date: Fri, 31 May 2019 17:27:25 +0300
-Subject: [PATCH 3/3] GCM: move look-up table to .data section and unshare
- between processes
-
-* cipher/cipher-gcm.c (ATTR_ALIGNED_64): New.
-(gcmR): Move to 'gcm_table' structure.
-(gcm_table): New structure for look-up table with counters before and
-after.
-(gcmR): New macro.
-(prefetch_table): Handle input with length not multiple of 256.
-(do_prefetch_tables): Modify pre- and post-table counters to unshare
-look-up table pages between processes.
---
-
-GnuPG-bug-id: 4541
-Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-
-Upstream-Status: Backport
-[https://github.com/gpg/libgcrypt/commit/a4c561aab1014c3630bc88faf6f5246fee16b020]
-
-CVE: CVE-2019-12904
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- cipher/cipher-gcm.c | 106 ++++++++++++++++++++++++++++++++++------------------
- 1 file changed, 70 insertions(+), 36 deletions(-)
-
-diff --git a/cipher/cipher-gcm.c b/cipher/cipher-gcm.c
-index 11f119a..194e2ec 100644
---- a/cipher/cipher-gcm.c
-+++ b/cipher/cipher-gcm.c
-@@ -30,6 +30,14 @@
- #include "./cipher-internal.h"
-
-
-+/* Helper macro to force alignment to 16 or 64 bytes. */
-+#ifdef HAVE_GCC_ATTRIBUTE_ALIGNED
-+# define ATTR_ALIGNED_64 __attribute__ ((aligned (64)))
-+#else
-+# define ATTR_ALIGNED_64
-+#endif
-+
-+
- #ifdef GCM_USE_INTEL_PCLMUL
- extern void _gcry_ghash_setup_intel_pclmul (gcry_cipher_hd_t c);
-
-@@ -83,40 +91,54 @@ ghash_armv7_neon (gcry_cipher_hd_t c, byte *result, const byte *buf,
-
-
- #ifdef GCM_USE_TABLES
--static const u16 gcmR[256] = {
-- 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e,
-- 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e,
-- 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e,
-- 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e,
-- 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e,
-- 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e,
-- 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e,
-- 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e,
-- 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce,
-- 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde,
-- 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee,
-- 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe,
-- 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e,
-- 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e,
-- 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae,
-- 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe,
-- 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e,
-- 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e,
-- 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e,
-- 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e,
-- 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e,
-- 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e,
-- 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e,
-- 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e,
-- 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce,
-- 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade,
-- 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee,
-- 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe,
-- 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e,
-- 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e,
-- 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae,
-- 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
--};
-+static struct
-+{
-+ volatile u32 counter_head;
-+ u32 cacheline_align[64 / 4 - 1];
-+ u16 R[256];
-+ volatile u32 counter_tail;
-+} gcm_table ATTR_ALIGNED_64 =
-+ {
-+ 0,
-+ { 0, },
-+ {
-+ 0x0000, 0x01c2, 0x0384, 0x0246, 0x0708, 0x06ca, 0x048c, 0x054e,
-+ 0x0e10, 0x0fd2, 0x0d94, 0x0c56, 0x0918, 0x08da, 0x0a9c, 0x0b5e,
-+ 0x1c20, 0x1de2, 0x1fa4, 0x1e66, 0x1b28, 0x1aea, 0x18ac, 0x196e,
-+ 0x1230, 0x13f2, 0x11b4, 0x1076, 0x1538, 0x14fa, 0x16bc, 0x177e,
-+ 0x3840, 0x3982, 0x3bc4, 0x3a06, 0x3f48, 0x3e8a, 0x3ccc, 0x3d0e,
-+ 0x3650, 0x3792, 0x35d4, 0x3416, 0x3158, 0x309a, 0x32dc, 0x331e,
-+ 0x2460, 0x25a2, 0x27e4, 0x2626, 0x2368, 0x22aa, 0x20ec, 0x212e,
-+ 0x2a70, 0x2bb2, 0x29f4, 0x2836, 0x2d78, 0x2cba, 0x2efc, 0x2f3e,
-+ 0x7080, 0x7142, 0x7304, 0x72c6, 0x7788, 0x764a, 0x740c, 0x75ce,
-+ 0x7e90, 0x7f52, 0x7d14, 0x7cd6, 0x7998, 0x785a, 0x7a1c, 0x7bde,
-+ 0x6ca0, 0x6d62, 0x6f24, 0x6ee6, 0x6ba8, 0x6a6a, 0x682c, 0x69ee,
-+ 0x62b0, 0x6372, 0x6134, 0x60f6, 0x65b8, 0x647a, 0x663c, 0x67fe,
-+ 0x48c0, 0x4902, 0x4b44, 0x4a86, 0x4fc8, 0x4e0a, 0x4c4c, 0x4d8e,
-+ 0x46d0, 0x4712, 0x4554, 0x4496, 0x41d8, 0x401a, 0x425c, 0x439e,
-+ 0x54e0, 0x5522, 0x5764, 0x56a6, 0x53e8, 0x522a, 0x506c, 0x51ae,
-+ 0x5af0, 0x5b32, 0x5974, 0x58b6, 0x5df8, 0x5c3a, 0x5e7c, 0x5fbe,
-+ 0xe100, 0xe0c2, 0xe284, 0xe346, 0xe608, 0xe7ca, 0xe58c, 0xe44e,
-+ 0xef10, 0xeed2, 0xec94, 0xed56, 0xe818, 0xe9da, 0xeb9c, 0xea5e,
-+ 0xfd20, 0xfce2, 0xfea4, 0xff66, 0xfa28, 0xfbea, 0xf9ac, 0xf86e,
-+ 0xf330, 0xf2f2, 0xf0b4, 0xf176, 0xf438, 0xf5fa, 0xf7bc, 0xf67e,
-+ 0xd940, 0xd882, 0xdac4, 0xdb06, 0xde48, 0xdf8a, 0xddcc, 0xdc0e,
-+ 0xd750, 0xd692, 0xd4d4, 0xd516, 0xd058, 0xd19a, 0xd3dc, 0xd21e,
-+ 0xc560, 0xc4a2, 0xc6e4, 0xc726, 0xc268, 0xc3aa, 0xc1ec, 0xc02e,
-+ 0xcb70, 0xcab2, 0xc8f4, 0xc936, 0xcc78, 0xcdba, 0xcffc, 0xce3e,
-+ 0x9180, 0x9042, 0x9204, 0x93c6, 0x9688, 0x974a, 0x950c, 0x94ce,
-+ 0x9f90, 0x9e52, 0x9c14, 0x9dd6, 0x9898, 0x995a, 0x9b1c, 0x9ade,
-+ 0x8da0, 0x8c62, 0x8e24, 0x8fe6, 0x8aa8, 0x8b6a, 0x892c, 0x88ee,
-+ 0x83b0, 0x8272, 0x8034, 0x81f6, 0x84b8, 0x857a, 0x873c, 0x86fe,
-+ 0xa9c0, 0xa802, 0xaa44, 0xab86, 0xaec8, 0xaf0a, 0xad4c, 0xac8e,
-+ 0xa7d0, 0xa612, 0xa454, 0xa596, 0xa0d8, 0xa11a, 0xa35c, 0xa29e,
-+ 0xb5e0, 0xb422, 0xb664, 0xb7a6, 0xb2e8, 0xb32a, 0xb16c, 0xb0ae,
-+ 0xbbf0, 0xba32, 0xb874, 0xb9b6, 0xbcf8, 0xbd3a, 0xbf7c, 0xbebe,
-+ },
-+ 0
-+ };
-+
-+#define gcmR gcm_table.R
-
- static inline
- void prefetch_table(const void *tab, size_t len)
-@@ -124,7 +146,7 @@ void prefetch_table(const void *tab, size_t len)
- const volatile byte *vtab = tab;
- size_t i;
-
-- for (i = 0; i < len; i += 8 * 32)
-+ for (i = 0; len - i >= 8 * 32; i += 8 * 32)
- {
- (void)vtab[i + 0 * 32];
- (void)vtab[i + 1 * 32];
-@@ -135,6 +157,10 @@ void prefetch_table(const void *tab, size_t len)
- (void)vtab[i + 6 * 32];
- (void)vtab[i + 7 * 32];
- }
-+ for (; i < len; i += 32)
-+ {
-+ (void)vtab[i];
-+ }
-
- (void)vtab[len - 1];
- }
-@@ -142,8 +168,16 @@ void prefetch_table(const void *tab, size_t len)
- static inline void
- do_prefetch_tables (const void *gcmM, size_t gcmM_size)
- {
-+ /* Modify counters to trigger copy-on-write and unsharing if physical pages
-+ * of look-up table are shared between processes. Modifying counters also
-+ * causes checksums for pages to change and hint same-page merging algorithm
-+ * that these pages are frequently changing. */
-+ gcm_table.counter_head++;
-+ gcm_table.counter_tail++;
-+
-+ /* Prefetch look-up tables to cache. */
- prefetch_table(gcmM, gcmM_size);
-- prefetch_table(gcmR, sizeof(gcmR));
-+ prefetch_table(&gcm_table, sizeof(gcm_table));
- }
-
- #ifdef GCM_TABLES_USE_U64
---
-2.7.4
-
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch
index 8622df3ea..5bf0c7f8a 100644
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch
+++ b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch
@@ -1,7 +1,7 @@
-From e20dbdb0b8f0af840ef90b299c4e2277c52ddf87 Mon Sep 17 00:00:00 2001
+From cb06d218ee36e303a64f27c690f30040d5d87960 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Sun, 12 Jun 2016 04:44:29 -0400
-Subject: [PATCH 4/4] tests/Makefile.am: fix undefined reference to
+Subject: [PATCH] tests/Makefile.am: fix undefined reference to
`pthread_create'
Add missing '-lpthread' to CFLAGS
@@ -9,20 +9,21 @@ Add missing '-lpthread' to CFLAGS
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
---
tests/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/Makefile.am b/tests/Makefile.am
-index 1744ea7..04cf425 100644
+index ab201f0..1cf82d0 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
-@@ -64,4 +64,4 @@ EXTRA_DIST = README rsa-16k.key cavs_tests.sh cavs_driver.pl \
-
- LDADD = $(standard_ldadd) $(GPG_ERROR_LIBS)
- t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS)
+@@ -75,7 +75,7 @@ t_mpi_bit_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
+ t_secmem_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
+ testapi_LDADD = $(standard_ldadd) @LDADD_FOR_TESTS_KLUDGE@
+ t_lock_LDADD = $(standard_ldadd) $(GPG_ERROR_MT_LIBS) @LDADD_FOR_TESTS_KLUDGE@
-t_lock_CFLAGS = $(GPG_ERROR_MT_CFLAGS)
+t_lock_CFLAGS = $(GPG_ERROR_MT_CFLAGS) -lpthread
---
-1.8.3.1
-
+ testdrv_LDADD = $(LDADD_FOR_TESTS_KLUDGE)
+
+ # Build a version of the test driver for the build platform.
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/determinism.patch b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/determinism.patch
deleted file mode 100644
index ad0b8c795..000000000
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/files/determinism.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-gnutls detects our outer git trees and injects that revision into its objects.
-That isn't deterministic so stop it. Also ensure we're not marked as a development
-build as its git detection is faulty.
-
-RP 2020/2/6
-
-Upstream-Status: Pending
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-
-Index: libgcrypt-1.8.5/configure.ac
-===================================================================
---- libgcrypt-1.8.5.orig/configure.ac
-+++ libgcrypt-1.8.5/configure.ac
-@@ -45,7 +45,7 @@ m4_define([mym4_revision_dec],
- m4_define([mym4_betastring],
- m4_esyscmd_s([git describe --match 'libgcrypt-[0-9].*[0-9]' --long|\
- awk -F- '$3!=0{print"-beta"$3}']))
--m4_define([mym4_isgit],m4_if(mym4_betastring,[],[no],[yes]))
-+m4_define([mym4_isgit],[no])
- m4_define([mym4_full_version],[mym4_version[]mym4_betastring])
-
- AC_INIT([libgcrypt],[mym4_full_version],[http://bugs.gnupg.org])
-@@ -2575,7 +2575,7 @@ AM_CONDITIONAL([BUILD_DOC], [test "x$bui
- #
- # Provide information about the build.
- #
--BUILD_REVISION="mym4_revision"
-+BUILD_REVISION="None"
- AC_SUBST(BUILD_REVISION)
- AC_DEFINE_UNQUOTED(BUILD_REVISION, "$BUILD_REVISION",
- [GIT commit id revision used to build this package])
diff --git a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/libgcrypt_1.8.8.bb b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/libgcrypt_1.9.4.bb
index 043044a4b..06f8e268e 100644
--- a/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/libgcrypt_1.8.8.bb
+++ b/meta-openbmc-mods/meta-common/recipes-support/libgcrypt/libgcrypt_1.9.4.bb
@@ -11,7 +11,7 @@ LICENSE_dumpsexp-dev = "GPLv3+"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff \
- file://LICENSES;md5=840e3bcb754e5046ffeda7619034cbd8"
+ file://LICENSES;md5=42fa35a25e138166cc40588387f9159d"
DEPENDS = "libgpg-error"
@@ -21,13 +21,13 @@ SRC_URI = "${GNUPG_MIRROR}/libgcrypt/libgcrypt-${PV}.tar.bz2 \
file://0003-tests-bench-slope.c-workaround-ICE-failure-on-mips-w.patch \
file://0002-libgcrypt-fix-building-error-with-O2-in-sysroot-path.patch \
file://0004-tests-Makefile.am-fix-undefined-reference-to-pthread.patch \
- file://0001-Prefetch-GCM-look-up-tables.patch \
- file://0002-AES-move-look-up-tables-to-.data-section-and-unshare.patch \
- file://0003-GCM-move-look-up-table-to-.data-section-and-unshare-.patch \
- file://determinism.patch \
+ file://0001-Makefile.am-add-a-missing-space.patch \
"
-SRC_URI[md5sum] = "252045343c586e5261134c91330f5b90"
-SRC_URI[sha256sum] = "895de2bb981dd127f0821d1ce13fadf7d760f9fa7737648b15f2c1fe13cc5af5"
+SRC_URI[md5sum] = "edc7becfe09c75d8f95ff7623e40c52e"
+SRC_URI[sha256sum] = "ea849c83a72454e3ed4267697e8ca03390aee972ab421e7df69dfe42b65caaf7"
+
+# Below whitelisted CVEs are disputed and not affecting crypto libraries for any distro.
+CVE_CHECK_WHITELIST += "CVE-2018-12433 CVE-2018-12438"
BINCONFIG = "${bindir}/libgcrypt-config"
diff --git a/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control/0004-Protect-POST-Complete-GPIO-read.patch b/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control/0004-Protect-POST-Complete-GPIO-read.patch
new file mode 100644
index 000000000..8da9660ef
--- /dev/null
+++ b/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control/0004-Protect-POST-Complete-GPIO-read.patch
@@ -0,0 +1,219 @@
+From 247bb976d0852af0a2e2c1fb6730876c01895487 Mon Sep 17 00:00:00 2001
+From: rrv <rashmi.r.v@intel.com>
+Date: Fri, 15 Oct 2021 10:29:01 +0530
+Subject: [PATCH] Protect POST Complete GPIO read
+
+In BRC/MRC platforms, due to ME BIOS limitation,
+PostComplete GPIO pin cannot be locked. Hence
+to nullify the impact to BMC, this change makes sure
+that Post Complete monitor is based on espi reset.
+for BRC and MRC platforms.
+
+Tested:
+
+Checked the OperatingSystemState property during all
+conditions of AC ON, AC cycle, DC cycle, DC OFF and DC ON,
+and BMC reset. It works as expected.
+
+Signed-off-by: rrv <rashmi.r.v@intel.com>
+---
+ power-control-x86/src/power_control.cpp | 155 ++++++++++++++++++++++++
+ 1 file changed, 155 insertions(+)
+
+diff --git a/power-control-x86/src/power_control.cpp b/power-control-x86/src/power_control.cpp
+index 5a8487e..28b296d 100644
+--- a/power-control-x86/src/power_control.cpp
++++ b/power-control-x86/src/power_control.cpp
+@@ -18,6 +18,7 @@
+ #include <sys/sysinfo.h>
+ #include <systemd/sd-journal.h>
+
++#include <boost/algorithm/string/predicate.hpp>
+ #include <boost/asio/posix/stream_descriptor.hpp>
+ #include <boost/container/flat_map.hpp>
+ #include <boost/container/flat_set.hpp>
+@@ -112,6 +113,11 @@ static gpiod::line nmiOutLine;
+
+ static constexpr uint8_t beepPowerFail = 8;
+
++static uint16_t productId = 0;
++static constexpr uint16_t brcId = 160;
++static constexpr uint16_t mrcId = 161;
++static std::unique_ptr<sdbusplus::bus::match::match> productIdMatch;
++
+ static void beep(const uint8_t& beepPriority)
+ {
+ std::cerr << "Beep with priority: " << (unsigned)beepPriority << "\n";
+@@ -2029,6 +2035,11 @@ static void postCompleteHandler()
+ {
+ sendPowerControlEvent(Event::postCompleteAssert);
+ osIface->set_property("OperatingSystemState", std::string("Standby"));
++ // return only when MRC or BRC platforms
++ if (productId == brcId || productId == mrcId)
++ {
++ return;
++ }
+ }
+ else
+ {
+@@ -2047,6 +2058,147 @@ static void postCompleteHandler()
+ postCompleteHandler();
+ });
+ }
++
++static void getEspiPlatformReset()
++{
++
++ static std::unique_ptr<sdbusplus::bus::match::match> eSpiMatch =
++ std::make_unique<sdbusplus::bus::match::match>(
++ *conn,
++ "type='signal',interface='org.freedesktop.DBus.Properties',"
++ "member='PropertiesChanged',arg0namespace='xyz.openbmc_project."
++ "State.Host.Misc'",
++ [](sdbusplus::message::message& msg) {
++ std::string interfaceName;
++ boost::container::flat_map<std::string,
++ std::variant<bool, std::string>>
++ propertiesChanged;
++ try
++ {
++ msg.read(interfaceName, propertiesChanged);
++ if (propertiesChanged.begin()->first == "ESpiPlatformReset")
++ {
++ bool value =
++ std::get<bool>(propertiesChanged.begin()->second);
++ phosphor::logging::log<phosphor::logging::level::INFO>(
++ "ESpiPlatformReset propertiesChanged",
++ phosphor::logging::entry("VALUE= %d", value));
++ if (value)
++ {
++ postCompleteHandler();
++ }
++ }
++ }
++ catch (std::exception& e)
++ {
++ std::cerr << "Unable to read ESpiPlatformReset \n";
++ return;
++ }
++ });
++}
++
++static void getProductId(const std::string& baseboardObjPath)
++{
++ // Check if it's already on DBus
++ conn->async_method_call(
++ [](boost::system::error_code ec,
++ const std::variant<uint64_t>& prodIdProperty) {
++ if (ec)
++ {
++ return;
++ }
++ const uint64_t* prodId = std::get_if<uint64_t>(&prodIdProperty);
++ if (prodId == nullptr)
++ {
++ std::cerr << "Unable to read power restore delay value\n";
++ return;
++ }
++ // Reset the signal
++ productIdMatch.reset();
++ productId = static_cast<uint16_t>(*prodId);
++ if (productId == brcId || productId == mrcId)
++ {
++ getEspiPlatformReset();
++ };
++ },
++ "xyz.openbmc_project.EntityManager", baseboardObjPath,
++ "org.freedesktop.DBus.Properties", "Get",
++ "xyz.openbmc_project.Inventory.Item.Board.Motherboard", "ProductId");
++}
++
++static void checkProductId()
++{
++ productIdMatch = std::make_unique<sdbusplus::bus::match::match>(
++ *conn,
++ "type='signal',interface='org.freedesktop.DBus.Properties',"
++ "member='PropertiesChanged',arg0namespace='xyz.openbmc_project."
++ "Inventory.Item.Board.Motherboard'",
++ [](sdbusplus::message::message& msg) {
++ std::string interfaceName;
++ boost::container::flat_map<std::string,
++ std::variant<uint64_t, std::string>>
++ propertiesChanged;
++ try
++ {
++ msg.read(interfaceName, propertiesChanged);
++ if (propertiesChanged.begin()->first == "ProductId")
++ {
++ productId = static_cast<uint16_t>(
++ std::get<uint64_t>(propertiesChanged.begin()->second));
++ phosphor::logging::log<phosphor::logging::level::INFO>(
++ "ProductId propertiesChanged",
++ phosphor::logging::entry(" PRODUCTID= %d", productId));
++ }
++ }
++ catch (std::exception& e)
++ {
++ std::cerr << "Unable to read ProductId \n";
++ productIdMatch.reset();
++ return;
++ }
++ // Reset the signal
++ productIdMatch.reset();
++ // monitor the eSpiplatform reset only BRC OR MRC
++ // platforms
++ if (productId == brcId || productId == mrcId)
++ {
++ getEspiPlatformReset();
++ }
++ });
++
++ // get the MRC/BRC board path.
++ conn->async_method_call(
++ [](boost::system::error_code ec, std::vector<std::string>& subtree) {
++ if (ec)
++ {
++ phosphor::logging::log<phosphor::logging::level::ERR>(
++ "dbus call failed in getSubTree of board interface.",
++ phosphor::logging::entry("ERROR=%s", ec.message().c_str()));
++ return;
++ }
++ const std::string match = "board";
++ for (const std::string& objpath : subtree)
++ {
++ // Iterate over all retrieved ObjectPaths.
++ if (!boost::ends_with(objpath, match))
++ {
++ // Just move to next path.
++ continue;
++ }
++
++ // Baseboard object path found
++ getProductId(objpath);
++ return;
++ }
++ },
++ "xyz.openbmc_project.ObjectMapper",
++ "/xyz/openbmc_project/object_mapper",
++ "xyz.openbmc_project.ObjectMapper", "GetSubTreePaths",
++ "/xyz/openbmc_project/inventory", 0,
++ std::array<const char*, 1>{
++ "xyz.openbmc_project.Inventory.Item.Board.Motherboard"});
++}
++
+ } // namespace power_control
+
+ int main(int argc, char* argv[])
+@@ -2123,6 +2275,9 @@ int main(int argc, char* argv[])
+ "ID_BUTTON", power_control::idButtonHandler,
+ power_control::idButtonLine, power_control::idButtonEvent);
+
++ // Read productId from Dbus and check
++ power_control::checkProductId();
++
+ // Request POST_COMPLETE GPIO events
+ if (!power_control::requestGPIOEvents(
+ "POST_COMPLETE", power_control::postCompleteHandler,
+--
+2.17.1
+
diff --git a/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control_%.bbappend b/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control_%.bbappend
index fbb126681..677a27245 100755
--- a/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control_%.bbappend
+++ b/meta-openbmc-mods/meta-common/recipes-x86/chassis/x86-power-control_%.bbappend
@@ -8,4 +8,5 @@ SRC_URI += " \
file://0001-Extend-VR-Watchdog-timeout.patch \
file://0002-save-current-power-state-in-tmp-file.patch \
file://0003-Improve-graceful-power-state-handling.patch \
+ file://0004-Protect-POST-Complete-GPIO-read.patch \
"
diff --git a/meta-openbmc-mods/meta-wht/conf/local.conf.sample b/meta-openbmc-mods/meta-wht/conf/local.conf.sample
index 7d53790cf..860bc238f 100644
--- a/meta-openbmc-mods/meta-wht/conf/local.conf.sample
+++ b/meta-openbmc-mods/meta-wht/conf/local.conf.sample
@@ -14,6 +14,8 @@ PATCHRESOLVE = "noop"
# Before exporting the conf, please uncomment the below line
# for building Intel PFR compliant images.
#IMAGE_FSTYPES += "intel-pfr"
+# Comment below line, if you want to build only -SP images.
+BUILD_SEGD = "yes"
BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native.bbappend b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native.bbappend
index 55cc619ce..1b120624f 100644
--- a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native.bbappend
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native.bbappend
@@ -8,6 +8,13 @@ SRC_URI_append = " \
file://csk_pub.pem \
file://rk_pub.pem \
file://rk_prv.pem \
+ file://pfr_manifest_d.json \
+ file://pfm_config_d.xml \
+ file://bmc_config_d.xml \
+ file://csk_prv_d.pem \
+ file://csk_pub_d.pem \
+ file://rk_pub_d.pem \
+ file://rk_prv_d.pem \
"
do_install_append () {
@@ -18,5 +25,13 @@ do_install_append () {
install -m 400 ${WORKDIR}/csk_pub.pem ${D}/${datadir}/pfrconfig/csk_pub.pem
install -m 400 ${WORKDIR}/rk_pub.pem ${D}/${datadir}/pfrconfig/rk_pub.pem
install -m 400 ${WORKDIR}/rk_prv.pem ${D}/${datadir}/pfrconfig/rk_prv.pem
+ install -m 400 ${WORKDIR}/pfr_manifest_d.json ${D}/${datadir}/pfrconfig/pfr_manifest_d.json
+ install -m 400 ${WORKDIR}/pfm_config_d.xml ${D}/${datadir}/pfrconfig/pfm_config_d.xml
+ install -m 400 ${WORKDIR}/bmc_config_d.xml ${D}/${datadir}/pfrconfig/bmc_config_d.xml
+ install -m 400 ${WORKDIR}/csk_prv_d.pem ${D}/${datadir}/pfrconfig/csk_prv_d.pem
+ install -m 400 ${WORKDIR}/csk_pub_d.pem ${D}/${datadir}/pfrconfig/csk_pub_d.pem
+ install -m 400 ${WORKDIR}/rk_pub_d.pem ${D}/${datadir}/pfrconfig/rk_pub_d.pem
+ install -m 400 ${WORKDIR}/rk_prv_d.pem ${D}/${datadir}/pfrconfig/rk_prv_d.pem
+
}
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/bmc_config_d.xml b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/bmc_config_d.xml
new file mode 100644
index 000000000..746bd56e7
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/bmc_config_d.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- XML file for Block Sign Tool -->
+<blocksign>
+ <version>1</version>
+ <!-- Block 0 -->
+ <block0>
+ <magic>0xB6EAFD19</magic>
+ <pctype>4</pctype>
+ </block0>
+ <!-- Block 1 -->
+ <block1>
+ <magic>0xF27F28D7</magic>
+ <!-- Root key -->
+ <rkey>
+ <magic>0xA757A046</magic>
+ <curvemagic>0xC7B88C74</curvemagic>
+ <permissions>-1</permissions>
+ <keyid>-1</keyid>
+ <pubkey>rk_pub_d.pem</pubkey>
+ </rkey>
+ <!-- Code signing key -->
+ <cskey>
+ <magic>0x14711C2F</magic>
+ <curvemagic>0xC7B88C74</curvemagic>
+ <permissions>8</permissions>
+ <keyid>1</keyid>
+ <pubkey>csk_pub_d.pem</pubkey>
+ <sigmagic>0xDE64437D</sigmagic>
+ <hashalg>sha256</hashalg>
+ <signkey>rk_prv_d.pem</signkey>
+ <!--<script>./sign_external.sh</script>-->
+ </cskey>
+ <!-- Signature over Block 0 -->
+ <b0_sig>
+ <magic>0x15364367</magic>
+ <sigmagic>0xDE64437D</sigmagic>
+ <hashalg>sha256</hashalg>
+ <signkey>csk_prv_d.pem</signkey>
+ </b0_sig>
+ </block1>
+ <!-- CPLD Bitstream Specific -->
+ <padding>
+ <!-- Pad block1 such that combined block length is 1024b -->
+ <blockpad>1024</blockpad>
+ <!-- Align total package to 128 bytes -->
+ <align>128</align>
+ </padding>
+</blocksign>
+
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_prv_d.pem b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_prv_d.pem
new file mode 100644
index 000000000..0d8229a30
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_prv_d.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEIFtcE8BzlKo7eGpiPphpihXwDm5QbxzlGB8eZscXJoy+oAoGCCqGSM49
+AwEHoUQDQgAEHWJKjDWcf6l8tvcafFE8B3nowPs/uJJlMD3Cqm6VLWI1EoxWBfQc
+nCmUEgvKW82E4l+mmgqIM/4j/QW3L5Q5iA==
+-----END EC PRIVATE KEY-----
+
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_pub_d.pem b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_pub_d.pem
new file mode 100644
index 000000000..1d8469863
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/csk_pub_d.pem
@@ -0,0 +1,5 @@
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEHWJKjDWcf6l8tvcafFE8B3nowPs/
+uJJlMD3Cqm6VLWI1EoxWBfQcnCmUEgvKW82E4l+mmgqIM/4j/QW3L5Q5iA==
+-----END PUBLIC KEY-----
+
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfm_config_d.xml b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfm_config_d.xml
new file mode 100644
index 000000000..1df991cd0
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfm_config_d.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- XML file for Block Sign Tool -->
+<blocksign>
+ <version>1</version>
+ <!-- Block 0 -->
+ <block0>
+ <magic>0xB6EAFD19</magic>
+ <pctype>3</pctype>
+ </block0>
+ <!-- Block 1 -->
+ <block1>
+ <magic>0xF27F28D7</magic>
+ <!-- Root key -->
+ <rkey>
+ <magic>0xA757A046</magic>
+ <curvemagic>0xC7B88C74</curvemagic>
+ <permissions>-1</permissions>
+ <keyid>-1</keyid>
+ <pubkey>rk_pub_d.pem</pubkey>
+ </rkey>
+ <!-- Code signing key -->
+ <cskey>
+ <magic>0x14711C2F</magic>
+ <curvemagic>0xC7B88C74</curvemagic>
+ <permissions>4</permissions>
+ <keyid>1</keyid>
+ <pubkey>csk_pub_d.pem</pubkey>
+ <sigmagic>0xDE64437D</sigmagic>
+ <hashalg>sha256</hashalg>
+ <signkey>rk_prv_d.pem</signkey>
+ <!--<script>./sign_external.sh</script>-->
+ </cskey>
+ <!-- Signature over Block 0 -->
+ <b0_sig>
+ <magic>0x15364367</magic>
+ <sigmagic>0xDE64437D</sigmagic>
+ <hashalg>sha256</hashalg>
+ <signkey>csk_prv_d.pem</signkey>
+ </b0_sig>
+ </block1>
+ <!-- CPLD Bitstream Specific -->
+ <padding>
+ <!-- Pad block1 such that combined block length is 1024b -->
+ <blockpad>1024</blockpad>
+ <!-- Align total package to 128 bytes -->
+ <align>128</align>
+ </padding>
+</blocksign>
+
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfr_manifest_d.json b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfr_manifest_d.json
new file mode 100644
index 000000000..e077657e8
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/pfr_manifest_d.json
@@ -0,0 +1,250 @@
+{
+ "image-parts": [{
+ "name": "u-boot",
+ "index": 0,
+ "offset": "0",
+ "size": "0x80000",
+ "prot_mask": 29,
+ "pfm": 1,
+ "hash": 1,
+ "compress": 1
+ },
+ {
+ "name": "pfm",
+ "index": 1,
+ "offset": "0x80000",
+ "size": "0x20000",
+ "prot_mask": 0,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 0
+ },
+ {
+ "name": "u-boot-env",
+ "index": 2,
+ "offset": "0xa0000",
+ "size": "0x20000",
+ "prot_mask": 31,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 1
+ },
+ {
+ "name": "sofs",
+ "index": 3,
+ "offset": "0xc0000",
+ "size": "0x200000",
+ "prot_mask": 31,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 1
+ },
+ {
+ "name": "rwfs",
+ "index": 4,
+ "offset": "0x2c0000",
+ "size": "0x840000",
+ "prot_mask": 31,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 1
+ },
+ {
+ "name": "fit-image-a",
+ "index": 5,
+ "offset": "0xb00000",
+ "size": "0x1f00000",
+ "prot_mask": 29,
+ "pfm": 1,
+ "hash": 1,
+ "compress": 1
+ },
+ {
+ "name": "rc-image",
+ "index": 6,
+ "offset": "0x2a00000",
+ "size": "0x2000000",
+ "prot_mask": 0,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 0
+ },
+ {
+ "name": "image-stg",
+ "index": 7,
+ "offset": "0x4a00000",
+ "size": "0x3500000",
+ "prot_mask": 3,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 0
+ },
+ {
+ "name": "cpld-rc",
+ "index": 8,
+ "offset": "0x7f00000",
+ "size": "0x100000",
+ "prot_mask": 0,
+ "pfm": 1,
+ "hash": 0,
+ "compress": 0
+ }
+ ],
+ "i2c-rules": [{
+ "bus-id": 1,
+ "rule-id": 4,
+ "address": "0xB2",
+ "cmd-whitelist": ["0x00", "0x03", "0x05", "0x06", "0x19", "0x1A", "0x30", "0x3A", "0x3B", "0x3C", "0x3D", "0x3E", "0x3F",
+ "0x79", "0x7A", "0x7B", "0x7C", "0x7D", "0x7E", "0x7F", "0x81", "0x82", "0x86", "0x87", "0x88",
+ "0x89", "0x8C", "0x8D", "0x8E", "0x8F", "0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96",
+ "0x97", "0x98", "0x9A", "0xA6", "0xA7", "0xD0", "0xD3", "0xD4", "0xD5", "0xD6", "0xD7", "0xD8",
+ "0xD9", "0xDC", "0xDD", "0xDE", "0xDF"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 6,
+ "address": "0xB0",
+ "cmd-whitelist": ["0x00", "0x03", "0x05", "0x06", "0x19", "0x1A", "0x30", "0x3A", "0x3B", "0x3C", "0x3D", "0x3E", "0x3F",
+ "0x79", "0x7A", "0x7B", "0x7C", "0x7D", "0x7E", "0x7F", "0x81", "0x82", "0x86", "0x87", "0x88",
+ "0x89", "0x8C", "0x8D", "0x8E", "0x8F", "0x90", "0x91", "0x92", "0x93", "0x94", "0x95", "0x96",
+ "0x97", "0x98", "0x9A", "0xA6", "0xA7", "0xD0", "0xD3", "0xD4", "0xD5", "0xD6", "0xD7", "0xD8",
+ "0xD9", "0xDC", "0xDD", "0xDE", "0xDF"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 7,
+ "address": "0x60",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 8,
+ "address": "0x7C",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 9,
+ "address": "0x82",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 10,
+ "address": "0x84",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 11,
+ "address": "0xC0",
+ "cmd-whitelist": ["all"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 12,
+ "address": "0x70",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 13,
+ "address": "0x80",
+ "cmd-whitelist": ["all"]
+ },
+ {
+ "bus-id": 1,
+ "rule-id": 14,
+ "address": "0x74",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 1,
+ "address": "0xB4",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 2,
+ "address": "0xD4",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 3,
+ "address": "0x4A",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 4,
+ "address": "0x4C",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 5,
+ "address": "0xDC",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 6,
+ "address": "0xEC",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 7,
+ "address": "0xE0",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 8,
+ "address": "0xB0",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 9,
+ "address": "0xC4",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 10,
+ "address": "0xCC",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 11,
+ "address": "0xE4",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 2,
+ "rule-id": 12,
+ "address": "0xD0",
+ "cmd-whitelist": ["0x00"]
+ },
+ {
+ "bus-id": 3,
+ "rule-id": 3,
+ "address": "0xD0",
+ "cmd-whitelist": ["0x00", "0x01", "0x02", "0x03", "0x04", "0x09", "0x0A", "0x0B", "0x0C", "0x0D", "0x0E", "0x0F",
+ "0x10", "0x13", "0x17", "0x1B", "0x1C", "0x1D", "0x20", "0x021", "0x22", "0x23", "0x25", "0x30",
+ "0x31", "0x32", "0x33", "0x035", "0x36", "0x37", "0x38", "0x39", "0x3A", "0x3B", "0x3C", "0x3D"]
+ },
+ {
+ "bus-id": 3,
+ "rule-id": 4,
+ "address": "0xD8",
+ "cmd-whitelist": ["0x00", "0x01", "0x02", "0x03", "0x04", "0x09", "0x0A", "0x0B", "0x0C", "0x0D", "0x0E", "0x0F",
+ "0x10", "0x13", "0x17", "0x1B", "0x1C", "0x1D", "0x20", "0x021", "0x22", "0x23", "0x25", "0x30",
+ "0x31", "0x32", "0x33", "0x035", "0x36", "0x37", "0x38", "0x39", "0x3A", "0x3B", "0x3C", "0x3D"]
+ }
+ ]
+}
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_prv_d.pem b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_prv_d.pem
new file mode 100644
index 000000000..1bdd23b5d
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_prv_d.pem
@@ -0,0 +1,6 @@
+-----BEGIN EC PRIVATE KEY-----
+MHcCAQEEIA6FrGuK5LnHRw5k67VuEpodyyJ7FTsVEcZgbrV2dm7xoAoGCCqGSM49
+AwEHoUQDQgAEDCsQe1NzsZ/4gvSQ/tUeGC/i4JGAPms3vSGkHWz/CDa40cDu+82w
+/V4Mo6/+3zYrJnb1dB2kwtlO3O+aJW4Flw==
+-----END EC PRIVATE KEY-----
+
diff --git a/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_pub_d.pem b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_pub_d.pem
new file mode 100644
index 000000000..82deeb5b8
--- /dev/null
+++ b/meta-openbmc-mods/meta-wht/recipes-intel/intel-pfr/obmc-intel-pfr-image-native/rk_pub_d.pem
@@ -0,0 +1,5 @@
+-----BEGIN PUBLIC KEY-----
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEDCsQe1NzsZ/4gvSQ/tUeGC/i4JGA
+Pms3vSGkHWz/CDa40cDu+82w/V4Mo6/+3zYrJnb1dB2kwtlO3O+aJW4Flw==
+-----END PUBLIC KEY-----
+
diff --git a/meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru.bbappend b/meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru.bbappend
new file mode 100644
index 000000000..e065feae2
--- /dev/null
+++ b/meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru.bbappend
@@ -0,0 +1,10 @@
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append = " file://checkFruWFP.sh"
+
+do_install_append() {
+ # Using an older 'checkFru.sh' file for WFP support.
+ install -m 0755 ${S}/checkFruWFP.sh ${D}/${bindir}/checkFru.sh
+}
+
diff --git a/meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru/checkFruWFP.sh b/meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru/checkFruWFP.sh
new file mode 100755
index 000000000..9227beb20
--- /dev/null
+++ b/meta-openbmc-mods/meta-wolfpass/recipes-phosphor/fru/default-fru/checkFruWFP.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+# this script checks the gpio id and loads the correct baseboard fru
+FRUPATH="/etc/fru"
+PRODIDPATH="/var/cache/private"
+fruFile="$FRUPATH/baseboard.fru.bin"
+prodIDFile="$PRODIDPATH/prodID"
+
+if [ -f $fruFile -a -f $prodIDFile ]; then
+ exit 0
+fi
+
+read_id() {
+ local idx=0
+ local result=0
+ local value=0
+ for ((idx=0; idx<6; idx++))
+ do
+ typeset -i value=$(gpioget $(gpiofind "FM_BMC_BOARD_SKU_ID${idx}_N"))
+ value=$((value << idx))
+ result=$((result | value))
+ done
+ echo $result
+}
+
+BOARD_ID=$(read_id)
+if grep -q 'CPU part\s*: 0xb76' /proc/cpuinfo; then
+ # AST2500
+ case $BOARD_ID in
+ 12) NAME="D50TNP1SB"
+ PRODID="0x99";;
+ 40) NAME="CooperCity"
+ PRODID="0x9d";;
+ 42) NAME="WilsonCity"
+ PRODID="0x91";;
+ 44) NAME="WilsonCityM"
+ PRODID="0x91";;
+ 45) NAME="WilsonCity"
+ PRODID="0x91";;
+ 60) NAME="M50CYP2SB2U"
+ PRODID="0x98";;
+ 62) NAME="WilsonPoint"
+ PRODID="0x9a";;
+ *) NAME="S2600WFT"
+ PRODID="0x7b";;
+ esac
+
+elif grep -q 'CPU part\s*: 0xc07' /proc/cpuinfo; then
+ # AST2600
+ case $BOARD_ID in
+ 62) NAME="ArcherCity"
+ PRODID="0x9c";;
+ *) NAME="AST2600EVB"
+ PRODID="0x00";;
+ esac
+
+fi
+
+if [ -z "$NAME" ]; then
+ NAME="Unknown"
+fi
+
+if [ ! -e $prodIDFile ]
+then
+ echo $PRODID >$prodIDFile
+fi
+
+if [ ! -f $fruFile ]
+then
+ cd /tmp
+ mkdir -p $FRUPATH
+ mkfru $NAME
+ mv $NAME.fru.bin $fruFile
+fi
+
+