summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey V.Kosteltsev <AKosteltsev@IBS.RU>2022-07-21 17:38:10 +0300
committerAndrey V.Kosteltsev <AKosteltsev@IBS.RU>2022-07-21 17:38:10 +0300
commit07938591500c1620071fced89aaa9a232b087a83 (patch)
tree7aaf1a1ab8a42e83a7478eb6074a90c6c64f25f1
parent62aaf008397e61af69ea398b59fb7fb0881d924d (diff)
parentc94ad6d6a8eeac50663af152f868da8877a620cc (diff)
downloadopenbmc-07938591500c1620071fced89aaa9a232b087a83.tar.xz
merged sila@c94ad6d6a8eeac50663af152f868da8877a620cc
-rw-r--r--meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500-64mb.inc24
-rw-r--r--meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500.inc2
-rw-r--r--meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/aspeed-bmc-sila-cp2-5422-64mb.dts537
-rw-r--r--meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-32MB.dtsi6
-rw-r--r--meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-64MB.dtsi33
-rw-r--r--meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed_%.bbappend2
-rw-r--r--meta-ibs/meta-ast2500/recipes-phosphor/configuration/entity-manager/SILA-Baseboard-full.json42
-rw-r--r--meta-ibs/meta-common/recipes-ibs/firmware-watchdog/firmware-watchdog/virtual-asset-tag5
-rw-r--r--meta-ibs/meta-common/recipes-ibs/images/obmc-phosphor-image.bbappend12
-rw-r--r--meta-ibs/meta-common/recipes-ibs/ipmi/intel-ipmi-oem_git.bb2
-rw-r--r--meta-ibs/meta-common/recipes-ibs/packagegroups/packagegroup-ibs-apps.bb4
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Add-new-fields-to-cpu.patch70
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0036-add-fields.patch71
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0037-add-new-dimm-fields.patch36
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0038-repair_telemetry_yaml.patch156
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend4
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend3
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs/obmc-init.sh453
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0003-add-new-cpu-fields.patch133
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0004-add-new-dimm-fields.patch66
-rw-r--r--meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend2
-rw-r--r--meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-no-pci-lookup.patch16
-rw-r--r--meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/snmpd.conf34
-rw-r--r--meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp_%.bbappend10
-rw-r--r--meta-ibs/meta-cp2-5422/conf/machine/cp2-5422-64mb.conf1
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb/0001-IBS-Default-BMC-Name-and-Model.patch34
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb_%.bbappend6
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu0.yaml12
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu1.yaml12
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm0.yaml6
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm1.yaml6
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm2.yaml6
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm3.yaml6
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans.bb18
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans/fans.yaml18
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard.bb18
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard/motherboard.yaml44
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json1551
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend3
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/logging/phosphor-hostlogger/cp2-5422-64mb/ttyS2.conf7
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb65
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0001-main-Use-sdeventplus.patch123
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0002-main-Add-UNIX-signals-handler.patch102
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0003-conf_manager-use-snmpd-as-a-clients-storage.patch859
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/snmpd-dependency.conf3
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp_%.bbappend23
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/0001-set_new_report_path.patch22
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/30173616021
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry_%.bbappend8
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue/0002-add-new-dimm-fields.patch29
-rw-r--r--meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue_%.bbappend4
-rw-r--r--meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb4
52 files changed, 3043 insertions, 1671 deletions
diff --git a/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500-64mb.inc b/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500-64mb.inc
new file mode 100644
index 0000000000..778f2b63d7
--- /dev/null
+++ b/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500-64mb.inc
@@ -0,0 +1,24 @@
+
+KMACHINE = "aspeed"
+KERNEL_DEVICETREE = "${KMACHINE}-bmc-${FACTORY}-${MACHINE}.dtb"
+
+PREFERRED_PROVIDER_virtual/bootloader = "u-boot-aspeed"
+PREFERRED_PROVIDER_u-boot = "u-boot-aspeed"
+PREFERRED_PROVIDER_u-boot-fw-utils = "u-boot-fw-utils-aspeed"
+
+UBOOT_MACHINE = "ast_g5_phy_config"
+
+require conf/machine/include/ast2500.inc
+require conf/machine/include/obmc-bsp-common.inc
+require conf/machine/include/ibs.inc
+
+include conf/machine/include/obmc-bsp-sila-common.inc
+
+SERIAL_CONSOLES = "115200;ttyS3 115200;ttyS4"
+
+FLASH_SIZE = "65536"
+FLASH_KERNEL_OFFSET:flash-65536 = "512"
+FLASH_ROFS_OFFSET:flash-65536 = "9216"
+FLASH_RWFS_OFFSET:flash-65536 = "49152"
+
+IMAGE_FEATURES += "allow-root-login"
diff --git a/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500.inc b/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500.inc
index 6cededa6e6..91ddd82705 100644
--- a/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500.inc
+++ b/meta-ibs/meta-ast2500/conf/machine/include/sila-ast2500.inc
@@ -18,6 +18,6 @@ SERIAL_CONSOLES = "115200;ttyS3 115200;ttyS4"
FLASH_SIZE = "32768"
FLASH_ROFS_OFFSET = "5632"
-FLASH_RWFS_OFFSET = "29696"
+FLASH_RWFS_OFFSET = "30720"
IMAGE_FEATURES += "allow-root-login"
diff --git a/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/aspeed-bmc-sila-cp2-5422-64mb.dts b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/aspeed-bmc-sila-cp2-5422-64mb.dts
new file mode 100644
index 0000000000..7bc45260cc
--- /dev/null
+++ b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/aspeed-bmc-sila-cp2-5422-64mb.dts
@@ -0,0 +1,537 @@
+/dts-v1/;
+
+#include "aspeed-g5.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+ model = "CP2-5422 BMC";
+ compatible = "sila,cp2-5422-bmc", "aspeed,ast2500";
+
+ aliases {
+ serial4 = &uart5;
+ serial5 = &vuart;
+ };
+
+ chosen {
+ stdout-path = &uart5;
+ bootargs = "console=ttyS4,115200 earlyprintk";
+ };
+
+ memory@80000000 {
+ reg = <0x80000000 0x20000000>;
+ };
+
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ vga_memory: framebuffer@7f000000 {
+ no-map;
+ phandle = <0xf6>;
+ reg = <0x7f000000 0x01000000>; /* 16M */
+ };
+
+ gfx_memory: framebuffer {
+ reusable;
+ compatible = "shared-dma-pool";
+ alignment = <0x01000000>;
+ size = <0x01000000>;
+ phandle = <0x0a>;
+ };
+
+ video_engine_memory: jpegbuffer {
+ reusable;
+ compatible = "shared-dma-pool";
+ alignment = <0x01000000>;
+ size = <0x02000000>; /* 32M */
+ phandle = <0x0d>;
+ };
+
+ ramoops@9eff0000{
+ compatible = "ramoops";
+ record-size = <0x2000>;
+ console-size = <0x2000>;
+ reg = <0x9eff0000 0x10000>;
+ };
+ };
+
+ vga-shared-memory {
+ compatible = "aspeed,ast2500-vga-sharedmem";
+ reg = <0x9ff00000 0x100000>;
+ };
+
+ iio-hwmon {
+ compatible = "iio-hwmon";
+ io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
+ <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
+ <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
+ <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ identify {
+ default-state = "off";
+ gpios = <&gpio ASPEED_GPIO(S, 6) GPIO_ACTIVE_LOW>;
+ };
+
+ status_amber {
+ default-state = "off";
+ gpios = <&gpio ASPEED_GPIO(S, 5) GPIO_ACTIVE_LOW>;
+ };
+
+ status_green {
+ default-state = "keep";
+ gpios = <&gpio ASPEED_GPIO(S, 4) GPIO_ACTIVE_LOW>;
+ };
+
+ cpu0fault {
+ default-state = "off";
+ gpios = <&gpio ASPEED_GPIO(F, 4) GPIO_ACTIVE_HIGH>;
+ };
+
+ cpu1fault {
+ default-state = "off";
+ gpios = <&gpio ASPEED_GPIO(F, 5) GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ beeper {
+ compatible = "pwm-beeper";
+ pwms = <&timer 6 1000000 0>;
+ };
+};
+
+&fmc {
+ status = "okay";
+ flash@0 {
+ status = "okay";
+ m25p,fast-read;
+ label = "bmc";
+#include "openbmc-flash-layout-64MB.dtsi"
+ };
+};
+
+&espi {
+ status = "okay";
+};
+
+&jtag {
+ status = "okay";
+};
+
+&peci0 {
+ status = "okay";
+ gpios = <&gpio ASPEED_GPIO(F, 6) 0>;
+};
+
+&syscon {
+ uart-clock-high-speed;
+ status = "okay";
+
+ misc_control {
+ compatible = "aspeed,bmc-misc";
+ uart_port_debug {
+ offset = <0x2c>;
+ bit-mask = <0x1>;
+ bit-shift = <10>;
+ read-only;
+ };
+ p2a-bridge {
+ offset = <0x180>;
+ bit-mask = <0x1>;
+ bit-shift = <1>;
+ read-only;
+ };
+ boot-2nd-flash {
+ offset = <0x70>;
+ bit-mask = <0x1>;
+ bit-shift = <17>;
+ read-only;
+ };
+ chip_id {
+ offset = <0x150>;
+ bit-mask = <0x0fffffff 0xffffffff>;
+ bit-shift = <0>;
+ read-only;
+ reg-width = <64>;
+ hash-data = "d44f9b804976fa23c2e25d62f16154d26520a7e24c5555095fd1b55c027804f1570dcd16189739c640cd7d9a6ce14944a2c4eaf1dc429eed6940e8a83498a474";
+ };
+ silicon_id {
+ offset = <0x7c>;
+ bit-mask = <0xffffffff>;
+ bit-shift = <0>;
+ read-only;
+ reg-width = <32>;
+ };
+ };
+};
+
+&adc {
+ status = "okay";
+};
+
+&gpio {
+ status = "okay";
+ /* Enable GPIOE0 and GPIOE2 pass-through by default */
+ pinctrl-names = "pass-through";
+ pinctrl-0 = <&pinctrl_gpie0_default
+ &pinctrl_gpie2_default>;
+ gpio-line-names =
+ /*A0-A7*/ "","","","","","","","",
+ /*B0-B7*/ "","","","","","","","",
+ /*C0-C7*/ "","","","","","","","",
+ /*D0-D7*/ "","","","","","","","",
+ /*E0-E7*/ "RESET_BUTTON","RESET_OUT","POWER_BUTTON","POWER_OUT","","","","",
+ /*F0-F7*/ "NMI_OUT","","","","CPU_ERR0","CPU_ERR1","","",
+ /*G0-G7*/ "CPU_ERR2","CPU_CATERR","PCH_BMC_THERMTRIP","LCP_ENTER_BUTTON","LCP_LEFT_BUTTON","FM_BMC_BOARD_SKU_ID5_N","","",
+ /*H0-H7*/ "","","","FM_NODE_ID_1","FM_NODE_ID_2","FM_NODE_ID_3","FM_NODE_ID_4","FM_240VA_STATUS",
+ /*I0-I7*/ "FM_SYS_FAN0_PRSNT_D_N","FM_SYS_FAN1_PRSNT_D_N","FM_SYS_FAN2_PRSNT_D_N","FM_SYS_FAN3_PRSNT_D_N","FM_SYS_FAN4_PRSNT_D_N","FM_SYS_FAN5_PRSNT_D_N","","",
+ /*J0-J7*/ "","","","","","","","",
+ /*K0-K7*/ "","","","","","","","",
+ /*L0-L7*/ "","","","","","","","",
+ /*M0-M7*/ "","","","","","","","",
+ /*N0-N7*/ "","","","","","","","",
+ /*O0-O7*/ "","","","","","","","",
+ /*P0-P7*/ "","","","","","","","",
+ /*Q0-Q7*/ "","","","","","","","PWR_DEBUG_N",
+ /*R0-R7*/ "","XDP_PRST_N","","","","","","CHASSIS_INTRUSION",
+ /*S0-S7*/ "REMOTE_DEBUG_ENABLE","SYSPWROK","RSMRST_N","","","","","",
+ /*T0-T7*/ "","","","","","","","",
+ /*U0-U7*/ "","","","","","","","",
+ /*V0-V7*/ "","","","","","","","",
+ /*W0-W7*/ "","","","","","","","",
+ /*X0-X7*/ "","","","","","","","",
+ /*Y0-Y7*/ "SIO_S3","SIO_S5","","SIO_ONCONTROL","","","","",
+ /*Z0-Z7*/ "","SIO_POWER_GOOD","","","","","","",
+ /*AA0-AA7*/ "P3VBAT_BRIDGE_EN","","","","PREQ_N","TCK_MUX_SEL","SMI","POST_COMPLETE",
+ /*AB0-AB7*/ "","NMI_BUTTON","ID_BUTTON","PS_PWROK","","","","",
+ /*AC0-AC7*/ "","","","","","","","";
+};
+
+&sgpio {
+ ngpios = <80>;
+ bus-frequency = <2000000>;
+ status = "okay";
+ /* SGPIO lines. even: input, odd: output */
+ gpio-line-names =
+ /*A0-A7*/ "CPU1_PRESENCE","","CPU1_THERMTRIP","","CPU1_VRHOT","","CPU1_FIVR_FAULT","","CPU1_MEM_ABCD_VRHOT","","CPU1_MEM_EFGH_VRHOT","","","","","",
+ /*B0-B7*/ "CPU1_MISMATCH","LED_CPU1_CH1_DIMM1_FAULT","CPU1_MEM_THERM_EVENT","LED_CPU1_CH1_DIMM2_FAULT","CPU2_PRESENCE","LED_CPU1_CH2_DIMM1_FAULT","CPU2_THERMTRIP","LED_CPU1_CH2_DIMM2_FAULT","CPU2_VRHOT","LED_CPU1_CH3_DIMM1_FAULT","CPU2_FIVR_FAULT","LED_CPU1_CH3_DIMM2_FAULT","CPU2_MEM_ABCD_VRHOT","LED_CPU1_CH4_DIMM1_FAULT","CPU2_MEM_EFGH_VRHOT","LED_CPU1_CH4_DIMM2_FAULT",
+ /*C0-C7*/ "","LED_CPU1_CH5_DIMM1_FAULT","","LED_CPU1_CH5_DIMM2_FAULT","CPU2_MISMATCH","LED_CPU1_CH6_DIMM1_FAULT","CPU2_MEM_THERM_EVENT","LED_CPU1_CH6_DIMM2_FAULT","","LED_FAN1_FAULT","","LED_FAN2_FAULT","","LED_FAN3_FAULT","","LED_FAN4_FAULT",
+ /*D0-D7*/ "","LED_FAN5_FAULT","","LED_FAN6_FAULT","","LED_FAN7_FAULT","","LED_FAN8_FAULT","","LED_CPU2_CH1_DIMM1_FAULT","","LED_CPU2_CH1_DIMM2_FAULT","","LED_CPU2_CH2_DIMM1_FAULT","","LED_CPU2_CH2_DIMM2_FAULT",
+ /*E0-E7*/ "","LED_CPU2_CH3_DIMM1_FAULT","","LED_CPU2_CH3_DIMM2_FAULT","","LED_CPU2_CH4_DIMM1_FAULT","","LED_CPU2_CH4_DIMM2_FAULT","","LED_CPU2_CH5_DIMM1_FAULT","","LED_CPU2_CH5_DIMM2_FAULT","","LED_CPU2_CH6_DIMM1_FAULT","","LED_CPU2_CH6_DIMM2_FAULT",
+ /*F0-F7*/ "SGPIO_PLD_MINOR_REV_BIT0","LED_CPU3_CH1_DIMM1_FAULT","SGPIO_PLD_MINOR_REV_BIT1","LED_CPU3_CH1_DIMM2_FAULT","SGPIO_PLD_MINOR_REV_BIT2","LED_CPU3_CH2_DIMM1_FAULT","SGPIO_PLD_MINOR_REV_BIT3","LED_CPU3_CH2_DIMM2_FAULT","SGPIO_PLD_MAJOR_REV_BIT0","LED_CPU3_CH3_DIMM1_FAULT","SGPIO_PLD_MAJOR_REV_BIT1","LED_CPU3_CH3_DIMM2_FAULT","SGPIO_PLD_MAJOR_REV_BIT2","LED_CPU3_CH4_DIMM1_FAULT","SGPIO_PLD_MAJOR_REV_BIT3","LED_CPU3_CH4_DIMM2_FAULT",
+ /*G0-G7*/ "MAIN_PLD_MINOR_REV_BIT0","LED_CPU3_CH5_DIMM1_FAULT","MAIN_PLD_MINOR_REV_BIT1","LED_CPU3_CH5_DIMM2_FAULT","MAIN_PLD_MINOR_REV_BIT2","LED_CPU3_CH6_DIMM1_FAULT","MAIN_PLD_MINOR_REV_BIT3","LED_CPU3_CH6_DIMM2_FAULT","MAIN_PLD_MAJOR_REV_BIT0","LED_CPU4_CH1_DIMM1_FAULT","MAIN_PLD_MAJOR_REV_BIT1","LED_CPU4_CH1_DIMM2_FAULT","MAIN_PLD_MAJOR_REV_BIT2","LED_CPU4_CH2_DIMM1_FAULT","MAIN_PLD_MAJOR_REV_BIT3","LED_CPU4_CH2_DIMM2_FAULT",
+ /*H0-H7*/ "","LED_CPU4_CH3_DIMM1_FAULT","","LED_CPU4_CH3_DIMM2_FAULT","","LED_CPU4_CH4_DIMM1_FAULT","","LED_CPU4_CH4_DIMM2_FAULT","","LED_CPU4_CH5_DIMM1_FAULT","","LED_CPU4_CH5_DIMM2_FAULT","","LED_CPU4_CH6_DIMM1_FAULT","","LED_CPU4_CH6_DIMM2_FAULT",
+ /*I0-I7*/ "","","","","","","","","","","","","","","","",
+ /*J0-J7*/ "","","","","","","","","","","","","","","","";
+#if 0
+ status = "okay";
+ gpio-line-names =
+ /* SGPIO output lines */
+ /*OA0-OA7*/ "","","","","","","","",
+ /*OB0-OB7*/ "LED_CPU1_CH1_DIMM1_FAULT","LED_CPU1_CH1_DIMM2_FAULT","LED_CPU1_CH2_DIMM1_FAULT","LED_CPU1_CH2_DIMM2_FAULT","LED_CPU1_CH3_DIMM1_FAULT","LED_CPU1_CH3_DIMM2_FAULT","LED_CPU1_CH4_DIMM1_FAULT","LED_CPU1_CH4_DIMM2_FAULT",
+ /*OC0-OC7*/ "LED_CPU1_CH5_DIMM1_FAULT","LED_CPU1_CH5_DIMM2_FAULT","LED_CPU1_CH6_DIMM1_FAULT","LED_CPU1_CH6_DIMM2_FAULT","LED_FAN1_FAULT","LED_FAN2_FAULT","LED_FAN3_FAULT","LED_FAN4_FAULT",
+ /*OD0-OD7*/ "LED_FAN5_FAULT","LED_FAN6_FAULT","LED_FAN7_FAULT","LED_FAN8_FAULT","LED_CPU2_CH1_DIMM1_FAULT","LED_CPU1_CH1_DIMM2_FAULT","LED_CPU2_CH2_DIMM1_FAULT","LED_CPU2_CH2_DIMM2_FAULT",
+ /*OE0-OE7*/ "LED_CPU2_CH3_DIMM1_FAULT","LED_CPU2_CH3_DIMM2_FAULT","LED_CPU2_CH4_DIMM1_FAULT","LED_CPU2_CH4_DIMM2_FAULT","LED_CPU2_CH5_DIMM1_FAULT","LED_CPU2_CH5_DIMM2_FAULT","LED_CPU2_CH6_DIMM1_FAULT","LED_CPU2_CH6_DIMM2_FAULT",
+ /*OF0-OF7*/ "LED_CPU3_CH1_DIMM1_FAULT","LED_CPU3_CH1_DIMM2_FAULT","LED_CPU3_CH2_DIMM1_FAULT","LED_CPU3_CH2_DIMM2_FAULT","LED_CPU3_CH3_DIMM1_FAULT","LED_CPU3_CH3_DIMM2_FAULT","LED_CPU3_CH4_DIMM1_FAULT","LED_CPU3_CH4_DIMM2_FAULT",
+ /*OG0-OG7*/ "LED_CPU3_CH5_DIMM1_FAULT","LED_CPU3_CH5_DIMM2_FAULT","LED_CPU3_CH6_DIMM1_FAULT","LED_CPU3_CH6_DIMM2_FAULT","LED_CPU4_CH1_DIMM1_FAULT","LED_CPU4_CH1_DIMM2_FAULT","LED_CPU4_CH2_DIMM1_FAULT","LED_CPU4_CH2_DIMM2_FAULT",
+ /*OH0-OH7*/ "LED_CPU4_CH3_DIMM1_FAULT","LED_CPU4_CH3_DIMM2_FAULT","LED_CPU4_CH4_DIMM1_FAULT","LED_CPU4_CH4_DIMM2_FAULT","LED_CPU4_CH5_DIMM1_FAULT","LED_CPU4_CH5_DIMM2_FAULT","LED_CPU4_CH6_DIMM1_FAULT","LED_CPU4_CH6_DIMM2_FAULT",
+ /*OI0-OI7*/ "","","","","","","","",
+ /*OJ0-OJ7*/ "","","","","","","","",
+ /*DUMMY*/ "","","","","","","","",
+ /*DUMMY*/ "","","","","","","","",
+
+ /* SGPIO input lines */
+ /*IA0-IA7*/ "CPU1_PRESENCE","CPU1_THERMTRIP","CPU1_VRHOT","CPU1_FIVR_FAULT","CPU1_MEM_ABCD_VRHOT","CPU1_MEM_EFGH_VRHOT","","",
+ /*IB0-IB7*/ "CPU1_MISMATCH","CPU1_MEM_THERM_EVENT","CPU2_PRESENCE","CPU2_THERMTRIP","CPU2_VRHOT","CPU2_FIVR_FAULT","CPU2_MEM_ABCD_VRHOT","CPU2_MEM_EFGH_VRHOT",
+ /*IC0-IC7*/ "","","CPU2_MISMATCH","CPU2_MEM_THERM_EVENT","","","","",
+ /*ID0-ID7*/ "","","","","","","","",
+ /*IE0-IE7*/ "","","","","","","","",
+ /*IF0-IF7*/ "SGPIO_PLD_MINOR_REV_BIT0","SGPIO_PLD_MINOR_REV_BIT1","SGPIO_PLD_MINOR_REV_BIT2","SGPIO_PLD_MINOR_REV_BIT3","SGPIO_PLD_MAJOR_REV_BIT0","SGPIO_PLD_MAJOR_REV_BIT1","SGPIO_PLD_MAJOR_REV_BIT2","SGPIO_PLD_MAJOR_REV_BIT3",
+ /*IG0-IG7*/ "MAIN_PLD_MINOR_REV_BIT0","MAIN_PLD_MINOR_REV_BIT1","MAIN_PLD_MINOR_REV_BIT2","MAIN_PLD_MINOR_REV_BIT3","MAIN_PLD_MAJOR_REV_BIT0","MAIN_PLD_MAJOR_REV_BIT1","MAIN_PLD_MAJOR_REV_BIT2","MAIN_PLD_MAJOR_REV_BIT3",
+ /*IH0-IH7*/ "","","","","","","","",
+ /*II0-II7*/ "","","","","","","","",
+ /*IJ0-IJ7*/ "","","","","","","","";
+#endif
+};
+
+&kcs3 {
+ aspeed,lpc-io-reg = <0xCA2>;
+ status = "okay";
+};
+
+&kcs4 {
+ aspeed,lpc-io-reg = <0xCA4>;
+ status = "okay";
+};
+
+&sio_regs {
+ status = "okay";
+ sio_status {
+ offset = <0x10C>;
+ bit-mask = <0x1F>;
+ bit-shift = <4>;
+ };
+};
+
+&lpc_sio {
+ status = "okay";
+};
+
+&lpc_snoop {
+ snoop-ports = <0x80>;
+ status = "okay";
+};
+
+&mbox {
+ status = "okay";
+};
+
+&uart_routing {
+ status = "okay";
+};
+
+/**
+ * SAFS through SPI1 is available only on Wilson Point.
+ * These pins are used as fan presence checking gpios in WFP
+ * so commenting it out for now.
+ * &spi1 {
+ * status = "okay";
+ *
+ * flash@0 {
+ * m25p,fast-read;
+ * status = "okay";
+ * };
+ *};
+ */
+
+&uart1 {
+ //Host Console
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_txd1_default
+ &pinctrl_rxd1_default
+ &pinctrl_nrts1_default
+ &pinctrl_ndtr1_default
+ &pinctrl_ndsr1_default
+ &pinctrl_ncts1_default
+ &pinctrl_ndcd1_default
+ &pinctrl_nri1_default>;
+};
+
+&uart2 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_txd2_default
+ &pinctrl_rxd2_default
+ &pinctrl_nrts2_default
+ &pinctrl_ndtr2_default
+ &pinctrl_ndsr2_default
+ &pinctrl_ncts2_default
+ &pinctrl_ndcd2_default
+ &pinctrl_nri2_default>;
+};
+
+&uart3 {
+ status = "okay";
+};
+
+&uart4 {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <>;
+};
+
+&uart5 {
+ //BMC Console
+ status = "okay";
+};
+
+&mac1 {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
+};
+
+&mac0 {
+ status = "okay";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_rmii1_default>;
+ use-ncsi;
+};
+
+&i2c0 {
+ multi-master;
+ general-call;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c1 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c2 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c3 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+
+ rtc-pch@44 {
+ compatible = "rtc,pchc620";
+ reg = <0x44>;
+ };
+};
+
+&i2c4 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c5 {
+ bus-frequency = <1000000>;
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c6 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c7 {
+ multi-master;
+ #retries = <3>;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c9 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c11 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&i2c13 {
+ multi-master;
+ aspeed,dma-buf-size = <4095>;
+ aspeed,hw-timeout-ms = <300>;
+ status = "okay";
+};
+
+&gfx {
+ status = "okay";
+ memory-region = <&gfx_memory>;
+};
+
+&vuart {
+ status = "okay";
+
+ /* We enable the VUART here, but leave it in a state that does
+ * not interfere with the SuperIO. The goal is to have both the
+ * VUART and the SuperIO available and decide at runtime whether
+ * the VUART should actually be used. For that reason, configure
+ * an "invalid" IO address and an IRQ that is not used by the
+ * BMC.
+ */
+ aspeed,lpc-io-reg = <0xffff>;
+ aspeed,lpc-interrupts = <15>;
+};
+
+&pwm_tacho {
+ status = "okay";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
+ &pinctrl_pwm2_default &pinctrl_pwm3_default
+ &pinctrl_pwm4_default &pinctrl_pwm5_default
+ &pinctrl_pwm6_default &pinctrl_pwm7_default>;
+
+ fan@0 {
+ reg = <0x00>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x00 0x01>;
+ };
+ fan@1 {
+ reg = <0x01>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x02 0x03>;
+ };
+ fan@2 {
+ reg = <0x02>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x04 0x05>;
+ };
+ fan@3 {
+ reg = <0x03>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x06 0x07>;
+ };
+ fan@4 {
+ reg = <0x04>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x08 0x09>;
+ };
+ fan@5 {
+ reg = <0x05>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x0A 0x0B>;
+ };
+ fan@6 {
+ reg = <0x06>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x0C 0x0D>;
+ };
+ fan@7 {
+ reg = <0x07>;
+ aspeed,fan-tach-ch = /bits/ 8 <0x0E 0x0F>;
+ };
+
+};
+
+&timer {
+/*
+ * Available settings:
+ * fttmr010,pwm-outputs = <5>, <6>, <7>, <8>;
+ * pinctrl-0 = <&pinctrl_timer5_default &pinctrl_timer6_default
+ * &pinctrl_timer7_default &pinctrl_timer8_default>;
+ */
+ fttmr010,pwm-outputs = <6>;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_timer6_default>;
+ #pwm-cells = <3>;
+ status = "okay";
+};
+
+&video {
+ status = "okay";
+ memory-region = <&video_engine_memory>;
+};
+
+&vhub {
+ status = "okay";
+};
diff --git a/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-32MB.dtsi b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-32MB.dtsi
index 874bfd4e3b..85ee3b1323 100644
--- a/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-32MB.dtsi
+++ b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-32MB.dtsi
@@ -22,12 +22,12 @@ partitions {
};
rofs@580000 {
- reg = <0x580000 0x1780000>;
+ reg = <0x580000 0x1880000>;
label = "rofs";
};
- rwfs@1d00000 {
- reg = <0x1d00000 0x300000>;
+ rwfs@1e00000 {
+ reg = <0x1e00000 0x200000>;
label = "rwfs";
};
};
diff --git a/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-64MB.dtsi b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-64MB.dtsi
new file mode 100644
index 0000000000..db50ad6796
--- /dev/null
+++ b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed/openbmc-flash-layout-64MB.dtsi
@@ -0,0 +1,33 @@
+// SPDX-License-Identifier: GPL-2.0+
+// 64MB flash layout:
+
+partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ u-boot@0 {
+ reg = <0x0 0x60000>; // 384KB
+ label = "u-boot";
+ };
+
+ u-boot-env@60000 {
+ reg = <0x60000 0x20000>; // 128KB
+ label = "u-boot-env";
+ };
+
+ kernel@80000 {
+ reg = <0x80000 0x880000>; // 8704KB
+ label = "kernel";
+ };
+
+ rofs@900000 {
+ reg = <0x900000 0x2700000>; // 39MB
+ label = "rofs";
+ };
+
+ rwfs@3000000 {
+ reg = <0x3000000 0x100000>; // 16MB
+ label = "rwfs";
+ };
+};
diff --git a/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed_%.bbappend b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed_%.bbappend
index 7ced02fda2..9646283b5f 100644
--- a/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed_%.bbappend
+++ b/meta-ibs/meta-ast2500/recipes-kernel/linux/linux-aspeed_%.bbappend
@@ -19,4 +19,6 @@ SRC_URI += " \
file://sila.cfg \
file://aspeed-bmc-sila-cp2-5422.dts;subdir=git/arch/arm/boot/dts \
file://openbmc-flash-layout-32MB.dtsi;subdir=git/arch/arm/boot/dts \
+ file://aspeed-bmc-sila-cp2-5422-64mb.dts;subdir=git/arch/arm/boot/dts \
+ file://openbmc-flash-layout-64MB.dtsi;subdir=git/arch/arm/boot/dts \
"
diff --git a/meta-ibs/meta-ast2500/recipes-phosphor/configuration/entity-manager/SILA-Baseboard-full.json b/meta-ibs/meta-ast2500/recipes-phosphor/configuration/entity-manager/SILA-Baseboard-full.json
index b70f41d710..5211809dc9 100644
--- a/meta-ibs/meta-ast2500/recipes-phosphor/configuration/entity-manager/SILA-Baseboard-full.json
+++ b/meta-ibs/meta-ast2500/recipes-phosphor/configuration/entity-manager/SILA-Baseboard-full.json
@@ -107,7 +107,7 @@
"Type": "AspeedFan"
},
{
- "Address": 79,
+ "Address": "0x4f",
"Bus": 6,
"Name": "Right side of the board Temp",
"Thresholds": [
@@ -139,7 +139,7 @@
"Type": "TMP75"
},
{
- "Address": 72,
+ "Address": "0x48",
"Bus": 6,
"Name": "PCH & M.2 Temp",
"Thresholds": [
@@ -171,7 +171,7 @@
"Type": "TMP75"
},
{
- "Address": 77,
+ "Address": "0x4d",
"Bus": 6,
"Name": "Inlet BRD Temp",
"Thresholds": [
@@ -203,7 +203,7 @@
"Type": "TMP75"
},
{
- "Address": 73,
+ "Address": "0x49",
"Bus": 6,
"Name": "CPUs Temp",
"Thresholds": [
@@ -736,39 +736,7 @@
}
],
"Type": "TMP75"
- },
- {
- "Address": 75,
- "Bus": 6,
- "Name": "VR 2 Temp",
- "Thresholds": [
- {
- "Direction": "greater than",
- "Name": "upper critical",
- "Severity": 1,
- "Value": 115
- },
- {
- "Direction": "greater than",
- "Name": "upper non critical",
- "Severity": 0,
- "Value": 110
- },
- {
- "Direction": "less than",
- "Name": "lower non critical",
- "Severity": 0,
- "Value": 5
- },
- {
- "Direction": "less than",
- "Name": "lower critical",
- "Severity": 1,
- "Value": 0
- }
- ],
- "Type": "TMP75"
- }
+ }
],
"Name": "SILA Baseboard",
"Probe": "xyz.openbmc_project.FruDevice({'PRODUCT_PRODUCT_NAME': 'CP.*'})",
diff --git a/meta-ibs/meta-common/recipes-ibs/firmware-watchdog/firmware-watchdog/virtual-asset-tag b/meta-ibs/meta-common/recipes-ibs/firmware-watchdog/firmware-watchdog/virtual-asset-tag
index a911e551c1..a54bac6419 100644
--- a/meta-ibs/meta-common/recipes-ibs/firmware-watchdog/firmware-watchdog/virtual-asset-tag
+++ b/meta-ibs/meta-common/recipes-ibs/firmware-watchdog/firmware-watchdog/virtual-asset-tag
@@ -4,7 +4,8 @@
#
model="CP2.*"
-spi_flash_model="mx25l25635e"
+spi_32mb_flash_model="mx25l25635e"
+spi_64mb_flash_model="n25q512a"
interface=xyz.openbmc_project.FruDevice
asset_tag_var=PRODUCT_ASSET_TAG
@@ -29,7 +30,7 @@ get_asset_tag() {
echo "${tag}"
}
-if `dmesg | grep -q "aspeed-smc 1e620000.spi: ${spi_flash_model}"` ; then
+if `dmesg | grep -q "aspeed-smc 1e620000.spi: ${spi_32mb_flash_model}"` || `dmesg | grep -q "aspeed-smc 1e620000.spi: ${spi_64mb_flash_model}"` ; then
run_cmd /usr/bin/busctl set-property ${interface} $(get_model_path) ${interface} ${asset_tag_var} s "${asset_tag_vm}"
else
if [ "$(get_asset_tag)" = "...................." ] ; then
diff --git a/meta-ibs/meta-common/recipes-ibs/images/obmc-phosphor-image.bbappend b/meta-ibs/meta-common/recipes-ibs/images/obmc-phosphor-image.bbappend
index bf8f1b8b33..5525afca9c 100644
--- a/meta-ibs/meta-common/recipes-ibs/images/obmc-phosphor-image.bbappend
+++ b/meta-ibs/meta-common/recipes-ibs/images/obmc-phosphor-image.bbappend
@@ -5,13 +5,21 @@ IMAGE_INSTALL += " openssl-bin \
phosphor-u-boot-mgr \
phosphor-host-postd \
phosphor-post-code-manager \
- beepcode-mgr \
biosconfig-manager \
bmcweb-init-certs \
firmware-watchdog \
ibmcutil \
smbios-mdrv2 \
- psu-manager \
+ "
+
+IMAGE_INSTALL += " net-snmp-lib-agent \
+ net-snmp-lib-helpers \
+ net-snmp-lib-mibs \
+ net-snmp-lib-netsnmp \
+ net-snmp-lib-trapd \
+ net-snmp-mibs \
+ net-snmp-server-snmpd \
+ net-snmp-server-snmptrapd \
"
OBMC_IMAGE_EXTRA_INSTALL += " "
diff --git a/meta-ibs/meta-common/recipes-ibs/ipmi/intel-ipmi-oem_git.bb b/meta-ibs/meta-common/recipes-ibs/ipmi/intel-ipmi-oem_git.bb
index 30f7542311..87a30b895c 100644
--- a/meta-ibs/meta-common/recipes-ibs/ipmi/intel-ipmi-oem_git.bb
+++ b/meta-ibs/meta-common/recipes-ibs/ipmi/intel-ipmi-oem_git.bb
@@ -14,7 +14,7 @@ DEPENDS = "boost phosphor-ipmi-host phosphor-logging systemd intel-dbus-interfac
inherit pkgconfig cmake obmc-phosphor-ipmiprovider-symlink
-EXTRA_OECMAKE="-DENABLE_TEST=0 -DYOCTO=1"
+EXTRA_OECMAKE="-DENABLE_TEST=0 -DYOCTO=1 -DMDR_V1_SUPPORT=1"
LIBRARY_NAMES = "libzinteloemcmds.so"
diff --git a/meta-ibs/meta-common/recipes-ibs/packagegroups/packagegroup-ibs-apps.bb b/meta-ibs/meta-common/recipes-ibs/packagegroups/packagegroup-ibs-apps.bb
index 88d95bb2b5..095170ad47 100644
--- a/meta-ibs/meta-common/recipes-ibs/packagegroups/packagegroup-ibs-apps.bb
+++ b/meta-ibs/meta-common/recipes-ibs/packagegroups/packagegroup-ibs-apps.bb
@@ -51,6 +51,7 @@ RDEPENDS:${PN}-system = " \
phosphor-power-regulators \
${PN}-interface \
${PN}-cli \
+ peci-pcie \
"
SUMMARY:${PN}-interface = "Interfaces"
@@ -58,6 +59,9 @@ RDEPENDS:${PN}-interface = " \
bmcweb \
webui-vue \
phosphor-ipmi-ipmb \
+ phosphor-snmp \
+ obmc-sila-snmp-agent \
+ obmc-sila-snmp-cfg-manager \
"
SUMMARY:${PN}-cli = "CLI utils"
diff --git a/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Add-new-fields-to-cpu.patch b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Add-new-fields-to-cpu.patch
new file mode 100644
index 0000000000..f10da21652
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0003-Add-new-fields-to-cpu.patch
@@ -0,0 +1,70 @@
+From 4b2a14e510495ef42d638584a62ab3c9ccf24056 Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Thu, 7 Jul 2022 17:52:12 +0300
+Subject: [PATCH] Add new fields to cpu
+
+---
+ .../Inventory/Item/Cpu.interface.yaml | 36 ++++++++++++++++++-
+ 1 file changed, 35 insertions(+), 1 deletion(-)
+
+diff --git a/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml b/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
+index 211673d..174a80e 100644
+--- a/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
++++ b/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
+@@ -37,6 +37,10 @@ properties:
+ type: uint32
+ description: >
+ Max Speed in megahertz the CPU can support.
++ - name: MinSpeedMHz
++ type: uint32
++ description: >
++ Min Speed in megahertz the CPU can support.
+ - name: Characteristics
+ type: array[enum[self.Capability]]
+ description: >
+@@ -72,6 +76,12 @@ properties:
+ The set of boolean flags for processor's capability, such as
+ 64-bit Capable, Multi-Core, Hardware Thread, Execute Protection,
+ Enhanced Virtualization, Power/Performance Control etc.
++ - name: ProcessorArchitecture
++ type: enum[self.ProcessorArchitecture]
++ description: >
++ The set of boolean flags for processor's capability, such as
++ 64-bit Capable, Multi-Core, Hardware Thread, Execute Protection,
++ Enhanced Virtualization, Power/Performance Control etc.
+
+ enumerations:
+ - name: Capability
+@@ -130,7 +140,31 @@ enumerations:
+ - name: x86_64
+ description: >
+ Support power/performance control.
+-
++
++ - name: ProcessorArchitecture
++ description: >
++ Contain the string that identifies the architecture
++ of the processor contained in this socket
++ values:
++ - name: ARM
++ description: >
++ ARM.
++ - name: IA_64
++ description: >
++ Intel Itanium.
++ - name: MIPS
++ description: >
++ MIPS.
++ - name: OEM
++ description: >
++ OEM-defined.
++ - name: Power
++ description: >
++ Power.
++ - name: x86
++ description: >
++ x86 or x86-64.
++
+ associations:
+ - name: associated_pcie_slots
+ description: >
diff --git a/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0036-add-fields.patch b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0036-add-fields.patch
new file mode 100644
index 0000000000..6665de9d5d
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0036-add-fields.patch
@@ -0,0 +1,71 @@
+From 57ccd7833ab4a7d91df3431783dfea3ab12c77b8 Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Tue, 5 Jul 2022 11:37:22 +0300
+Subject: [PATCH] add fields
+
+---
+ .../Inventory/Item/Cpu.interface.yaml | 44 +++++++++++++++++++
+ 1 file changed, 44 insertions(+)
+
+diff --git a/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml b/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
+index 222f117..211673d 100644
+--- a/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
++++ b/yaml/xyz/openbmc_project/Inventory/Item/Cpu.interface.yaml
+@@ -61,6 +61,17 @@ properties:
+ description: >
+ The microcode information for this processor
+ default: 0
++ - name: Version
++ type: string
++ description: >
++ Vendor or supplier
++ default: ""
++ - name: InstructionSet
++ type: enum[self.Instruction]
++ description: >
++ The set of boolean flags for processor's capability, such as
++ 64-bit Capable, Multi-Core, Hardware Thread, Execute Protection,
++ Enhanced Virtualization, Power/Performance Control etc.
+
+ enumerations:
+ - name: Capability
+@@ -86,6 +97,39 @@ enumerations:
+ - name: PowerPerformanceControl
+ description: >
+ Support power/performance control.
++
++ - name: Instruction
++ description: >
++ List of capabilities that a processor can support.
++ Values are based off DMTF DSP0134 specification.
++ values:
++ - name: ARM_A32
++ description: >
++ Capable of 64-bit.
++ - name: ARM_A64
++ description: >
++ Support multi-core.
++ - name: IA_64
++ description: >
++ Support hardware thread.
++ - name: MIPS32
++ description: >
++ Support execute protection.
++ - name: MIPS64
++ description: >
++ Support enhanced virtualization.
++ - name: OEM
++ description: >
++ Support power/performance control.
++ - name: PowerISA
++ description: >
++ Support power/performance control.
++ - name: x86
++ description: >
++ Support power/performance control.
++ - name: x86_64
++ description: >
++ Support power/performance control.
+
+ associations:
+ - name: associated_pcie_slots
diff --git a/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0037-add-new-dimm-fields.patch b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0037-add-new-dimm-fields.patch
new file mode 100644
index 0000000000..34dc1ab854
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0037-add-new-dimm-fields.patch
@@ -0,0 +1,36 @@
+From 29f5e21a995d79789fb28cef1c2b459fe9df9276 Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Fri, 8 Jul 2022 16:34:52 +0300
+Subject: [PATCH] add new dimm fields
+
+---
+ .../openbmc_project/Inventory/Item/Dimm.interface.yaml | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml b/yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
+index d3a7df7..ba326b0 100644
+--- a/yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
++++ b/yaml/xyz/openbmc_project/Inventory/Item/Dimm.interface.yaml
+@@ -15,6 +15,7 @@ properties:
+ Socket on base board where Memory located, for example CPU1_DIMM_B1.
+ - name: MemoryType
+ type: enum[self.DeviceType]
++ default: DRAM
+ description: >
+ Type of memory.
+ - name: MemoryTypeDetail
+@@ -66,6 +67,14 @@ properties:
+ default: Unknown
+ description: >
+ Memory Technology of this memory.
++ - name: Description
++ type: string
++ description: >
++ Description
++ - name: Model
++ type: string
++ description: >
++ Model
+
+ enumerations:
+ - name: Ecc
diff --git a/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0038-repair_telemetry_yaml.patch b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0038-repair_telemetry_yaml.patch
new file mode 100644
index 0000000000..de4c35abbc
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces/0038-repair_telemetry_yaml.patch
@@ -0,0 +1,156 @@
+From 34d6bfbcdea771bbfa957fe72f9e3070ccec4202 Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Fri, 15 Jul 2022 17:27:25 +0300
+Subject: [PATCH] repair_telemetry_yaml
+
+---
+ .../Telemetry/ReportManager.interface.yaml | 111 +++++++++++++++---
+ 1 file changed, 95 insertions(+), 16 deletions(-)
+
+diff --git a/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml b/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
+index ae8d36f..decc3d0 100644
+--- a/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
++++ b/yaml/xyz/openbmc_project/Telemetry/ReportManager.interface.yaml
+@@ -10,21 +10,19 @@ methods:
+ /xyz/openbmc_project/Telemetry/Reports/{Domain}/{Name} where
+ Domain and Name are parameters of this method.
+ parameters:
+- - name: name
++ - name: reportId
+ type: string
+ description: >
+ Defines the name of report to be exposed over D-Bus. Service allows
+ to use separator '/' in name to group reports in directory.
+ - name: reportingType
+- type: enum[xyz.openbmc_project.Telemetry.Report.ReportingType]
+- description: Defines report type
+- - name: reportUpdates
+- type: enum[xyz.openbmc_project.Telemetry.Report.ReportUpdates]
+- description: Defines report update type
+- - name: appendLimit
+- type: size
++ type: string
+ description: >
+- Defines the maximum number of entries in 'Readings' property.
++ Defines report type
++ Variants:
++ - Periodic
++ - OnRequest
++ - OnChange
+ - name: emitsReadingsUpdate
+ type: boolean
+ description: >
+@@ -35,25 +33,106 @@ methods:
+ description: >
+ Defines presence of Report in Metric Report Collection in Redfish
+ Telemetry Service.
++ - name: interval
++ type: uint64
++ description: >
++ Defines period of time in milliseconds when Report is updated with
++ new readings. Minimal interval is defined in MinInterval property(default: 1000).
++ - name: metricParams
++ type: array[struct[object_path,string,string,string]]
++ description: >
++ Array of struct of metric parameters where:
++ - first parameter is an array of DBus
++ sensor paths(example /xyz/openbmc_project/sensors/voltage/PVCCIN_CPU1);
++ - second parameter specifies operation type.
++ Variants:
++ -- Maximum
++ -- Minimum
++ -- Average
++ -- Summation
++ - third is a metric Id (store by a user)
++ - fourth is a metadata (store by a user)
++ returns:
++ - name: reportPath
++ type: object_path
++ description: >
++ Path to new report -> /xyz/openbmc_project/Telemetry/Reports/{name}.
++
++ - name: AddReportFutureVersion
++ description: >
++ Create new object that represent Report with
++ xyz.openbmc_project.Telemetry.Report interface stored in path
++ /xyz/openbmc_project/Telemetry/Reports/{Domain}/{Name} where
++ Domain and Name are parameters of this method.
++ parameters:
++ - name: reportId
++ type: string
++ description: >
++ Defines the name of report to be exposed over D-Bus. Service allows
++ to use separator '/' in name to group reports in directory.
++ - name: reportName
++ type: string
++ description: >
++ Defines the name of report to be exposed over D-Bus. Service allows
++ to use separator '/' in name to group reports in directory.
++ - name: reportingType
++ type: string
++ description: >
++ Defines report type
++ Variants:
++ - Periodic
++ - OnRequest
++ - OnChange
++ - name: reportUpdates
++ type: string
++ description: >
++ Defines report updates
++ Variants:
++ - Overwrite
++ - AppendStopsWhenFull
++ - AppendWrapsWhenFull
++ - name: appendLimit
++ type: uint64
++ description: >
++ Defines limit of values
++ - name: reportActions
++ type: array[string]
++ description: >
++ Defines report actions
++ May add variants:
++ - EmitsReadingsUpdate
++ - LogToMetricReportsCollection
+ - name: interval
+ type: uint64
+ description: >
+ Defines period of time in milliseconds when Report is updated with
+ new readings. Minimal interval is defined in MinInterval property.
+ - name: metricParams
+- type: array[struct[array[object_path],enum[xyz.openbmc_project.Telemetry.Report.OperationType],string,string,enum[xyz.openbmc_project.Telemetry.Report.CollectionTimescope],uint64]]
++ type: array[struct[array[struct[object_path,string]],string,string,string,uint64]]
+ description: >
+- Array of metric parameters where first parameter is an array of DBus
+- sensor paths. Second parameter specifies operation type. Third is a
+- metric Id and fourth is a metadata, both are used to store user
+- details. Fifth and sixth are used for collection timescope and
+- collection duration.
++ Array of struct of metric parameters where:
++ - first parameter is an array of struct of:
++ -- DBus sensor paths
++ (example /xyz/openbmc_project/sensors/voltage/PVCCIN_CPU1);
++ -- metadata (store by a user);
++ - second parameter specifies operation type
++ Variants:
++ -- Maximum
++ -- Minimum
++ -- Average
++ -- Summation
++ - third is a metric Id (store by a user)
++ - fourth is a CollectionTimeScope
++ Variants:
++ -- Point;
++ -- Interval;
++ -- StartupInterval;
++ - fifth is a CollectionTimeScope period
+ returns:
+ - name: reportPath
+ type: object_path
+ description: >
+ Path to new report -> /xyz/openbmc_project/Telemetry/Reports/{name}.
+-
+ properties:
+ - name: MaxReports
+ type: size
diff --git a/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
index 3da80680fe..fa37528261 100644
--- a/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
+++ b/meta-ibs/meta-common/recipes-phosphor/dbus/phosphor-dbus-interfaces_%.bbappend
@@ -20,4 +20,8 @@ SRC_URI += "file://0007-ipmi-set-BIOS-id.patch \
file://0033-update-meson-build-for-PLDM-FWU-interfaces.patch \
file://0034-Add-username-property-to-SessionInfo-interface.patch \
file://0035-Remove-read-only-flag-from-NTPServers.patch \
+ file://0036-add-fields.patch \
+ file://0003-Add-new-fields-to-cpu.patch \
+ file://0037-add-new-dimm-fields.patch \
+ file://0038-repair_telemetry_yaml.patch \
"
diff --git a/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend b/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend
index 339740dfbd..56385128a4 100644
--- a/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend
+++ b/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs.bbappend
@@ -2,7 +2,8 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
DESCRIPTION = "Pinging system watchdog before BMC update"
-SRC_URI += "file://obmc-shutdown.sh \
+SRC_URI += "file://obmc-init.sh \
+ file://obmc-shutdown.sh \
file://obmc-update.sh \
"
diff --git a/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs/obmc-init.sh b/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs/obmc-init.sh
new file mode 100644
index 0000000000..902ca9d617
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/initrdscripts/obmc-phosphor-initfs/obmc-init.sh
@@ -0,0 +1,453 @@
+#!/bin/sh
+
+fslist="proc sys dev run"
+rodir=run/initramfs/ro
+rwdir=run/initramfs/rw
+upper=$rwdir/cow
+work=$rwdir/work
+nfs_bootargs=""
+ipaddr=""
+
+cd /
+mkdir -p $fslist
+mount dev dev -tdevtmpfs
+mount sys sys -tsysfs
+mount proc proc -tproc
+if ! grep run proc/mounts
+then
+ mount tmpfs run -t tmpfs -o mode=755,nodev
+fi
+
+mkdir -p $rodir $rwdir
+
+cp -rp init shutdown update whitelist bin sbin usr lib etc var run/initramfs
+
+# To start a interactive shell with job control at this point, run
+# getty 38400 ttyS4
+
+findmtd() {
+ m=$(grep -xl "$1" /sys/class/mtd/*/name)
+ m=${m%/name}
+ m=${m##*/}
+ echo $m
+}
+
+blkid_fs_type() {
+ # Emulate util-linux's `blkid -s TYPE -o value $1`
+ # Example busybox blkid output:
+ # # blkid /dev/mtdblock5
+ # /dev/mtdblock5: TYPE="squashfs"
+ # Process output to extract TYPE value "squashfs".
+ blkid $1 | sed -e 's/^.*TYPE="//' -e 's/".*$//'
+}
+
+probe_fs_type() {
+ fst=$(blkid_fs_type $1)
+ echo ${fst:=jffs2}
+}
+
+# This fw_get_env_var is a possibly broken version of fw_printenv that
+# does not check the crc or flag byte.
+# The u-boot environment starts with a crc32, followed by a flag byte
+# when a redundannt environment is configured, followed by var=value\0 sets.
+# The flag byte for nand is a 1 byte counter; for nor it is a 1 or 0 byte.
+
+get_fw_env_var() {
+ # do we have 1 or 2 copies of the environment?
+ # count non-blank non-comment lines
+ # copies=$(grep -v ^# /etc/fw_env.config | grep -c [::alnum::])
+ # ... we could if we had the fw_env.config in the initramfs
+ copies=2
+
+ # * Change \n to \r and \0 to \n
+ # * Skip to the 5th byte to skip over crc
+ # * then skip to the first or 2nd byte to skip over flag if it exists
+ # * stop parsing at first empty line corresponding to the
+ # double \0 at the end of the environment.
+ # * print the value of the variable name passed as argument
+
+ envdev=$(findmtd u-boot-env)
+ if test -n $envdev
+ then
+ cat /dev/$envdev |
+ tr '\n\000' '\r\n' |
+ tail -c +5 | tail -c +${copies-1} |
+ sed -ne '/^$/,$d' -e "s/^$1=//p"
+ fi
+}
+
+setup_resolv() {
+ runresolv=/run/systemd/resolve/resolv.conf
+ etcresolv=/etc/resolv.conf
+
+ if test ! -e $etcresolv -a ! -L $etcresolv
+ then
+ mkdir -p ${runresolv%/*}
+ ln -s $runresolv $etcresolv
+ fi
+ if test ! -f $runresolv
+ then
+ cat /proc/net/pnp > $runresolv
+ fi
+
+ return 0
+}
+
+try_tftp() {
+ # split into tftp:// host:port/ path/on/remote
+ # then spilt off / and then :port from the end of host:port/
+ # and : from the beginning of port
+
+ rest="${1#tftp://}"
+ path=${rest#*/}
+ host=${rest%$path}
+ host="${host%/}"
+ port="${host#${host%:*}}"
+ host="${host%$port}"
+ port="${port#:}"
+
+ setup_resolv
+
+ if test -z "$host" -o -z "$path"
+ then
+ debug_takeover "Invalid tftp download url '$url'."
+ elif echo "Downloading '$url' from $host ..." &&
+ ! tftp -g -r "$path" -l /run/image-rofs "$host" ${port+"$port"}
+ then
+ debug_takeover "Download of '$url' failed."
+ fi
+}
+
+try_wget() {
+ setup_resolv
+
+ echo "Downloading '$1' ..."
+ if ! wget -O /run/image-rofs "$1"
+ then
+ debug_takeover "Download of '$url' failed."
+ fi
+}
+
+debug_takeover() {
+ echo "$@"
+
+ if ! grep -w enable-initrd-debug-sh "$optfile"
+ then
+ echo "Fatal error, triggering kernel panic!"
+ exit 1
+ fi
+
+ test -n "$@" && echo Try to manually fix.
+ cat << HERE
+After fixing run exit to continue this script, or reboot -f to retry, or
+touch /takeover and exit to become PID 1 allowing editing of this script.
+HERE
+
+ while ! /bin/sh && ! test -f /takeover
+ do
+ echo /bin/sh failed, retrying
+ done
+
+ # Touch /takeover in the above shell to become pid 1
+ if test -e /takeover
+ then
+ cat << HERE
+
+Takeover of init requested. Executing /bin/sh as PID 1.
+When finished exec new init or cleanup and run reboot -f.
+
+Warning: No job control! Shell exit will panic the system!
+HERE
+ export PS1=init#\
+ exec /bin/sh
+ fi
+}
+
+rofs=$(findmtd rofs)
+rwfs=$(findmtd rwfs)
+
+rodev=/dev/mtdblock${rofs#mtd}
+rwdev=/dev/mtdblock${rwfs#mtd}
+
+# Set to y for yes, anything else for no.
+force_rwfst_jffs2=y
+flash_images_before_init=n
+consider_download_files=y
+consider_download_tftp=y
+consider_download_http=y
+consider_download_ftp=y
+
+rofst=squashfs
+rwfst=$(probe_fs_type $rwdev)
+roopts=ro
+rwopts=rw
+
+image=/run/initramfs/image-
+trigger=${image}rwfs
+
+init=/sbin/init
+fsckbase=/sbin/fsck.
+fsck=$fsckbase$rwfst
+fsckopts=-a
+optfile=/run/initramfs/init-options
+optbase=/run/initramfs/init-options-base
+urlfile=/run/initramfs/init-download-url
+update=/run/initramfs/update
+
+if test -e /${optfile##*/}
+then
+ cp /${optfile##*/} $optfile
+fi
+
+if test -e /${optbase##*/}
+then
+ cp /${optbase##*/} $optbase
+else
+ touch $optbase
+fi
+
+if test ! -f $optfile
+then
+ cat /proc/cmdline $optbase > $optfile
+ get_fw_env_var openbmcinit >> $optfile
+ get_fw_env_var openbmconce >> $optfile
+fi
+
+echo rofs = $rofs $rofst rwfs = $rwfs $rwfst
+
+if grep -w debug-init-sh $optfile
+then
+ if grep -w enable-initrd-debug-sh "$optfile"
+ then
+ debug_takeover "Debug initial shell requested by command line."
+ else
+ echo "Need to also add enable-initrd-debug-sh for debug shell."
+ fi
+fi
+
+if test "x$consider_download_files" = xy &&
+ grep -w openbmc-init-download-files $optfile
+then
+ if test -f ${urlfile##*/}
+ then
+ cp ${urlfile##*/} $urlfile
+ fi
+ if test ! -f $urlfile
+ then
+ get_fw_env_var openbmcinitdownloadurl > $urlfile
+ fi
+ url="$(cat $urlfile)"
+ rest="${url#*://}"
+ proto="${url%$rest}"
+
+ if test -z "$url"
+ then
+ echo "Download url empty. Ignoring download request."
+ elif test -z "$proto"
+ then
+ echo "Download failed."
+ elif test "$proto" = tftp://
+ then
+ if test "x$consider_download_tftp" = xy
+ then
+ try_tftp "$url"
+ else
+ echo "Download failed."
+ fi
+ elif test "$proto" = http://
+ then
+ if test "x$consider_download_http" = xy
+ then
+ try_wget "$url"
+ else
+ echo "Download failed."
+ fi
+ elif test "$proto" = ftp://
+ then
+ if test "x$consider_download_ftp" = xy
+ then
+ try_wget "$url"
+ else
+ echo "Download failed."
+ fi
+ else
+ echo "Download failed."
+ fi
+fi
+
+# If there are images in root move them to /run/initramfs/ or /run/ now.
+imagebasename=${image##*/}
+if test -n "${imagebasename}" && ls /${imagebasename}* > /dev/null 2>&1
+then
+ if test "x$flash_images_before_init" = xy
+ then
+ echo "Flash images found, will update before starting init."
+ mv /${imagebasename}* ${image%$imagebasename}
+ else
+ echo "Flash images found, will use but deferring flash update."
+ mv /${imagebasename}* /run/
+ fi
+fi
+
+if grep -w clean-rwfs-filesystem $optfile
+then
+ echo "Cleaning of read-write overlay filesystem requested."
+ touch $trigger
+fi
+
+if grep -w factory-reset $optfile
+then
+ echo "Factory reset requested."
+ touch $trigger
+ do_save=--no-save-files
+else
+ do_save=--save-files
+fi
+
+if test "x$force_rwfst_jffs2" = xy -a $rwfst != jffs2 -a ! -f $trigger
+then
+ echo "Converting read-write overlay filesystem to jffs2 forced."
+ touch $trigger
+fi
+
+if ls $image* > /dev/null 2>&1
+then
+ if ! test -x $update
+ then
+ debug_takeover "Flash update requested but $update missing!"
+ elif test -f $trigger -a ! -s $trigger
+ then
+ if [ $do_save = "--save-files" ]
+ then
+ echo "Saving selected files from read-write overlay filesystem."
+ else
+ echo "No files will be selected for save."
+ fi
+ $update --no-restore-files $do_save
+ echo "Clearing read-write overlay filesystem."
+ flash_eraseall /dev/$rwfs
+ echo "Restoring saved files to read-write overlay filesystem."
+ touch $trigger
+ $update --no-save-files --clean-saved-files
+ else
+ $update --clean-saved-files $do_save
+ fi
+
+ rwfst=$(probe_fs_type $rwdev)
+ fsck=$fsckbase$rwfst
+fi
+
+if grep -w overlay-filesystem-in-ram $optfile
+then
+ rwfst=none
+fi
+
+copyfiles=
+if grep -w copy-files-to-ram $optfile
+then
+ rwfst=none
+ copyfiles=y
+fi
+
+# It would be nice to do this after fsck but that mean rofs is mounted
+# which triggers the mtd is mounted check
+if test "$rwfst$copyfiles" = noney
+then
+ touch $trigger
+ $update --copy-files --clean-saved-files --no-restore-files
+fi
+
+if grep -w copy-base-filesystem-to-ram $optfile &&
+ test ! -e /run/image-rofs && ! cp $rodev /run/image-rofs
+then
+ # Remove any partial copy to avoid attempted usage later
+ if test -e /run/image-rofs
+ then
+ ls -l /run/image-rofs
+ rm -f /run/image-rofs
+ fi
+ debug_takeover "Copying $rodev to /run/image-rofs failed."
+fi
+
+if test -s /run/image-rofs
+then
+ rodev=/run/image-rofs
+ roopts=$roopts,loop
+fi
+
+mount $rodev $rodir -t $rofst -o $roopts
+
+if test -x $rodir$fsck
+then
+ for fs in $fslist
+ do
+ mount --bind $fs $rodir/$fs
+ done
+ chroot $rodir $fsck $fsckopts $rwdev
+ rc=$?
+ for fs in $fslist
+ do
+ umount $rodir/$fs
+ done
+ if test $rc -gt 1
+ then
+ debug_takeover "fsck of read-write fs on $rwdev failed (rc=$rc)"
+ fi
+elif test "$rwfst" != jffs2 -a "$rwfst" != none
+then
+ echo "No '$fsck' in read only fs, skipping fsck."
+fi
+
+if test "$rwfst" = none
+then
+ echo "Running with read-write overlay in RAM for this boot."
+ echo "No state will be preserved unless flash update performed."
+elif ! mount $rwdev $rwdir -t $rwfst -o $rwopts
+then
+ msg="$(cat)" << HERE
+
+Mounting read-write $rwdev filesystem failed. Please fix and run
+ mount $rwdev $rwdir -t $rwfst -o $rwopts
+or perform a factory reset with the clean-rwfs-filesystem option.
+HERE
+ debug_takeover "$msg"
+fi
+
+rm -rf $work
+mkdir -p $upper $work
+
+nfs_bootargs=$(get_fw_env_var nfs_bootargs)
+ipaddr=$(get_fw_env_var ipaddr)
+
+if [ -n "$nfs_bootargs" ]
+then
+ echo NFS bootargs: $nfs_bootargs
+ echo IP_ADDR: $ipaddr
+ ifconfig eth1 $ipaddr
+ ifconfig eth0 $ipaddr
+ echo mounting NFS rootfs
+ mount -t nfs -v $nfs_bootargs /root -o nolock,rw
+else
+ mount -t overlay -o lowerdir=$rodir,upperdir=$upper,workdir=$work cow /root
+fi
+
+
+while ! chroot /root /bin/sh -c "test -x '$init' -a -s '$init'"
+do
+ msg="$(cat)" << HERE
+
+Unable to confirm /sbin/init is an executable non-empty file
+in merged file system mounted at /root.
+
+Change Root test failed!
+HERE
+ debug_takeover "$msg"
+done
+
+for f in $fslist
+do
+ mount --move $f root/$f
+done
+
+# switch_root /root $init
+exec chroot /root $init
diff --git a/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0003-add-new-cpu-fields.patch b/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0003-add-new-cpu-fields.patch
new file mode 100644
index 0000000000..1e4f2efd7a
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0003-add-new-cpu-fields.patch
@@ -0,0 +1,133 @@
+From 644dc71f3ff13fbc620d6ea8bff89736dc7cc691 Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Fri, 8 Jul 2022 10:31:14 +0300
+Subject: [PATCH] add new cpu fields
+
+---
+ redfish-core/lib/processor.hpp | 106 +++++++++++++++++++++++++++++++++
+ 1 file changed, 106 insertions(+)
+
+diff --git a/redfish-core/lib/processor.hpp b/redfish-core/lib/processor.hpp
+index 2a0e028..a83211a 100644
+--- a/redfish-core/lib/processor.hpp
++++ b/redfish-core/lib/processor.hpp
+@@ -66,6 +66,77 @@ inline void getProcessorUUID(std::shared_ptr<bmcweb::AsyncResp> aResp,
+ });
+ }
+
++inline std::string translateInstructionSetTypeToRedfish(const std::string& instructionSetType)
++{
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.ARM_A32")
++ {
++ return "ARM-A32";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.ARM_A64")
++ {
++ return "ARM-A64";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.IA_64")
++ {
++ return "IA-64";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.MIPS32")
++ {
++ return "MIPS32";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.MIPS64")
++ {
++ return "MIPS64";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.OEM")
++ {
++ return "OEM";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.PowerISA")
++ {
++ return "PowerISA";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.x86")
++ {
++ return "x86";
++ }
++ if (instructionSetType == "xyz.openbmc_project.Inventory.Item.Cpu.Instruction.x86_64")
++ {
++ return "x86-64";
++ }
++ return "";
++}
++
++inline std::string translateProcessorArchTypeToRedfish(const std::string& processorArchType)
++{
++ if (processorArchType == "xyz.openbmc_project.Inventory.Item.Cpu.ProcessorArchitecture.ARM")
++ {
++ return "ARM";
++ }
++ if (processorArchType == "xyz.openbmc_project.Inventory.Item.Cpu.ProcessorArchitecture.IA_64")
++ {
++ return "IA-64";
++ }
++ if (processorArchType == "xyz.openbmc_project.Inventory.Item.Cpu.ProcessorArchitecture.MIPS")
++ {
++ return "MIPS";
++ }
++ if (processorArchType == "xyz.openbmc_project.Inventory.Item.Cpu.ProcessorArchitecture.OEM")
++ {
++ return "OEM";
++ }
++ if (processorArchType == "xyz.openbmc_project.Inventory.Item.Cpu.ProcessorArchitecture.Power")
++ {
++ return "Power";
++ }
++ if (processorArchType == "xyz.openbmc_project.Inventory.Item.Cpu.ProcessorArchitecture.x86")
++ {
++ return "x86";
++ }
++ return "";
++}
++
++
+ inline void getCpuDataByInterface(
+ const std::shared_ptr<bmcweb::AsyncResp>& aResp,
+ const dbus::utility::DBusInteracesMap& cpuInterfacesProperties)
+@@ -144,6 +215,41 @@ inline void getCpuDataByInterface(
+ aResp->res.jsonValue["TotalThreads"] = *value;
+ }
+ }
++ else if (property.first == "InstructionSet")
++ {
++ const std::string* value =
++ std::get_if<std::string>(&property.second);
++ if (value != nullptr)
++ {
++ aResp->res.jsonValue["InstructionSet"] = translateInstructionSetTypeToRedfish(*value);
++ }
++ }
++ else if (property.first == "Version")
++ {
++ const std::string* value =
++ std::get_if<std::string>(&property.second);
++ if (value != nullptr)
++ {
++ aResp->res.jsonValue["Version"] = *value;
++ }
++ }
++ else if (property.first == "ProcessorArchitecture")
++ {
++ const std::string* value =
++ std::get_if<std::string>(&property.second);
++ if (value != nullptr)
++ {
++ aResp->res.jsonValue["ProcessorArchitecture"] = translateProcessorArchTypeToRedfish(*value);
++ }
++ }
++ else if (property.first == "MinSpeedMHz")
++ {
++ const uint32_t* value = std::get_if<uint32_t>(&property.second);
++ if (value != nullptr)
++ {
++ aResp->res.jsonValue["MinSpeedMHz"] = *value;
++ }
++ }
+ else if (property.first == "EffectiveFamily")
+ {
+ const uint16_t* value = std::get_if<uint16_t>(&property.second);
diff --git a/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0004-add-new-dimm-fields.patch b/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0004-add-new-dimm-fields.patch
new file mode 100644
index 0000000000..9061fc34d9
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb/0004-add-new-dimm-fields.patch
@@ -0,0 +1,66 @@
+From c834e8916d482a20e2f322dbd772ddd8a3f2b65b Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Fri, 8 Jul 2022 16:30:51 +0300
+Subject: [PATCH] add new dimm fields
+
+---
+ redfish-core/lib/memory.hpp | 25 ++++++++++++++++++++++++-
+ 1 file changed, 24 insertions(+), 1 deletion(-)
+
+diff --git a/redfish-core/lib/memory.hpp b/redfish-core/lib/memory.hpp
+index 6e4ab67..31dd3c7 100644
+--- a/redfish-core/lib/memory.hpp
++++ b/redfish-core/lib/memory.hpp
+@@ -30,6 +30,10 @@ namespace redfish
+
+ inline std::string translateMemoryTypeToRedfish(const std::string& memoryType)
+ {
++ if (memoryType == "xyz.openbmc_project.Inventory.Item.Dimm.DeviceType.DRAM")
++ {
++ return "DRAM";
++ }
+ if (memoryType == "xyz.openbmc_project.Inventory.Item.Dimm.DeviceType.DDR")
+ {
+ return "DDR";
+@@ -473,6 +477,7 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> aResp,
+ messages::internalError(aResp->res);
+ return;
+ }
++ aResp->res.jsonValue["MemorySize"] = (*memorySize);
+ aResp->res.jsonValue["CapacityMiB"] = (*memorySize >> 10);
+ }
+ else if (property.first == "PartNumber")
+@@ -647,7 +652,7 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> aResp,
+ // so just leave off
+ if (!memoryDeviceType.empty())
+ {
+- aResp->res.jsonValue["MemoryDeviceType"] =
++ aResp->res.jsonValue["MemoryType"] =
+ memoryDeviceType;
+ }
+ if (value->find("DDR") != std::string::npos)
+@@ -660,6 +665,24 @@ inline void getDimmDataByService(std::shared_ptr<bmcweb::AsyncResp> aResp,
+ }
+ }
+ }
++ else if (property.first == "Model")
++ {
++ const auto* value =
++ std::get_if<std::string>(&property.second);
++ if (value != nullptr)
++ {
++ aResp->res.jsonValue["Model"] = *value;
++ }
++ }
++ else if (property.first == "Description")
++ {
++ const auto* value =
++ std::get_if<std::string>(&property.second);
++ if (value != nullptr)
++ {
++ aResp->res.jsonValue["Description"] = *value;
++ }
++ }
+ // memory location interface
+ else if (property.first == "Channel" ||
+ property.first == "MemoryController" ||
diff --git a/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend b/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend
index e349ee7674..098d12559c 100644
--- a/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend
+++ b/meta-ibs/meta-common/recipes-phosphor/interfaces/bmcweb_%.bbappend
@@ -5,6 +5,8 @@ SRCREV = "550a6bf85f81c1725b6c320a5ee419335cff2cf6"
SRC_URI += "\
file://0001-Enable-vm-nbdproxy-option.patch \
file://0002-Add-http-ftp-nfs-protocols-to-un-filter-them-FT-58-T.patch \
+ file://0003-add-new-cpu-fields.patch \
+ file://0004-add-new-dimm-fields.patch \
"
EXTRA_OEMESON += "\
diff --git a/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-no-pci-lookup.patch b/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-no-pci-lookup.patch
new file mode 100644
index 0000000000..1ac465b28d
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-no-pci-lookup.patch
@@ -0,0 +1,16 @@
+diff -bu -Nr net-snmp-5.9.1-orig/configure.d/config_os_libs2 net-snmp-5.9.1/configure.d/config_os_libs2
+--- net-snmp-5.9.1-orig/configure.d/config_os_libs2 2022-07-16 18:27:39.958781773 +0300
++++ net-snmp-5.9.1/configure.d/config_os_libs2 2022-07-16 20:07:49.846845832 +0300
+@@ -185,9 +185,9 @@
+ # libpci
+ # (for if-mib description)
+ #
+-NETSNMP_SEARCH_LIBS(pci_lookup_name, pci,
+- AC_DEFINE(HAVE_PCI_LOOKUP_NAME, 1,
+- [define if you have pci_lookup_name()]),,,LMIBLIBS)
++#NETSNMP_SEARCH_LIBS(pci_lookup_name, pci,
++# AC_DEFINE(HAVE_PCI_LOOKUP_NAME, 1,
++# [define if you have pci_lookup_name()]),,,LMIBLIBS)
+
+ # LM-SENSORS-MIB support
+ #
diff --git a/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/snmpd.conf b/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/snmpd.conf
new file mode 100644
index 0000000000..9244009421
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp/snmpd.conf
@@ -0,0 +1,34 @@
+
+rwcommunity private localhost
+
+# sec.name source community
+com2sec readonly default public
+com2sec rwsink localhost private
+
+# sec.model sec.name
+group MyROGroup v1 readonly
+group MyROGroup v2c readonly
+group MyROGroup usm readonly
+group MyRWGroup usm root
+group MyRwGroup v2c rwsink
+
+# incl/excl subtree mask
+view readonly included .1.3.6.1.2.1.1
+view readonly included .1.3.6.1.2.1.25.1.1
+view readonly included .1.3.6.1.4.1.49769
+view rwsink included .1.3.6.1.6.3
+
+# context sec.model sec.level match read write notif
+access MyROGroup "" any noauth exact readonly none none
+access MyRWGroup "" any priv exact all all none
+access MyRwGroup "" v2c noauth exact all rwsink none
+
+###############################################################################
+# System contact information
+#
+
+syslocation Solar System, Earth (configure /etc/snmp/snmpd.conf)
+syscontact Root <root@localhost> (configure /etc/snmp/snmpd.conf)
+
+# -----------------------------------------------------------------------------
+master agentx
diff --git a/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp_%.bbappend b/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp_%.bbappend
new file mode 100644
index 0000000000..71b972804c
--- /dev/null
+++ b/meta-ibs/meta-common/recipes-protocols/net-snmp/net-snmp_%.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+#
+# meta-openembedded/meta-networking/recipes-protocols/net-snmp:
+#
+
+SRC_URI += " \
+ file://snmpd.conf \
+ file://0001-config_os_libs2-no-pci-lookup.patch \
+ "
diff --git a/meta-ibs/meta-cp2-5422/conf/machine/cp2-5422-64mb.conf b/meta-ibs/meta-cp2-5422/conf/machine/cp2-5422-64mb.conf
new file mode 100644
index 0000000000..50acf4b2b9
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/conf/machine/cp2-5422-64mb.conf
@@ -0,0 +1 @@
+require conf/machine/include/sila-ast2500-64mb.inc
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb/0001-IBS-Default-BMC-Name-and-Model.patch b/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb/0001-IBS-Default-BMC-Name-and-Model.patch
new file mode 100644
index 0000000000..06342a344e
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb/0001-IBS-Default-BMC-Name-and-Model.patch
@@ -0,0 +1,34 @@
+From aedf441cea55a3cb5e8c8a815c8cbe1c7944f863 Mon Sep 17 00:00:00 2001
+From: "Andrey V.Kosteltsev" <AKosteltsev@IBS.RU>
+Date: Tue, 12 Jul 2022 12:09:23 +0300
+Subject: [PATCH] IBS: Default BMC Name and Model
+
+---
+ redfish-core/lib/managers.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
+index aa4c694da..86b8c7df9 100644
+--- a/redfish-core/lib/managers.hpp
++++ b/redfish-core/lib/managers.hpp
+@@ -1974,7 +1974,7 @@ inline void requestRoutesManager(App& app)
+ asyncResp->res.jsonValue["@odata.type"] =
+ "#Manager.v1_11_0.Manager";
+ asyncResp->res.jsonValue["Id"] = "bmc";
+- asyncResp->res.jsonValue["Name"] = "OpenBmc Manager";
++ asyncResp->res.jsonValue["Name"] = "Sila Bmc Manager";
+ asyncResp->res.jsonValue["Description"] =
+ "Baseboard Management Controller";
+ asyncResp->res.jsonValue["PowerState"] = "On";
+@@ -1984,7 +1984,7 @@ inline void requestRoutesManager(App& app)
+ asyncResp->res.jsonValue["UUID"] = systemd_utils::getUuid();
+ asyncResp->res.jsonValue["ServiceEntryPointUUID"] = uuid;
+ asyncResp->res.jsonValue["Model"] =
+- "OpenBmc"; // TODO(ed), get model
++ "Sila Bmc"; // TODO(ed), get model
+
+ asyncResp->res.jsonValue["LogServices"] = {
+ {"@odata.id", "/redfish/v1/Managers/bmc/LogServices"}};
+--
+2.35.1
+
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb_%.bbappend b/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb_%.bbappend
index a6059ecb83..c4c7943d51 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb_%.bbappend
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/interfaces/bmcweb_%.bbappend
@@ -1,8 +1,10 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+SRC_URI += "\
+ file://0001-IBS-Default-BMC-Name-and-Model.patch \
+ "
+
EXTRA_OEMESON += "\
- -Dredfish-allow-deprecated-power-thermal=disabled \
- -Dredfish-new-powersubsystem-thermalsubsystem=enabled \
-Dredfish-host-logger=enabled \
-Dredfish-dump-log=enabled \
-Dvm-nbdproxy=enabled \
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu0.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu0.yaml
index d2863b548d..9c70596b00 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu0.yaml
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu0.yaml
@@ -14,6 +14,9 @@ events:
Family:
value: "XeonCPU-3"
type: string
+ Version:
+ value: "1.22"
+ type: string
- name: createObjects
objs:
@@ -143,6 +146,15 @@ events:
type: uint32
value: 111
+ - name: setProperty
+ interface: xyz.openbmc_project.Inventory.Item.Cpu
+ property: MinSpeedMHz
+ paths:
+ - /system/chassis/motherboard/cpu0
+ value:
+ type: uint32
+ value: 2000
+
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu1.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu1.yaml
index 35a8d5abb5..4c85a72551 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu1.yaml
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-cpu/cpu1.yaml
@@ -14,6 +14,9 @@ events:
Family:
value: "XeonCPU-3"
type: string
+ Version:
+ value: "1.22"
+ type: string
- name: createObjects
objs:
@@ -143,6 +146,15 @@ events:
type: uint32
value: 111
+ - name: setProperty
+ interface: xyz.openbmc_project.Inventory.Item.Cpu
+ property: MinSpeedMHz
+ paths:
+ - /system/chassis/motherboard/cpu1
+ value:
+ type: uint32
+ value: 2000
+
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm0.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm0.yaml
index 6331d50b00..531c6686b0 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm0.yaml
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm0.yaml
@@ -14,6 +14,12 @@ events:
MemoryTypeDetail:
value: "Synchronous, Static column"
type: string
+ Description:
+ value: "This is description"
+ type: string
+ Model:
+ value: "Kingston FURY Beast Black"
+ type: string
- name: createObjects
objs:
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm1.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm1.yaml
index 8f245821ca..0ea51971cf 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm1.yaml
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm1.yaml
@@ -14,6 +14,12 @@ events:
MemoryTypeDetail:
value: "Synchronous, Static column"
type: string
+ Description:
+ value: "This is description"
+ type: string
+ Model:
+ value: "Kingston FURY Beast Black"
+ type: string
- name: createObjects
objs:
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm2.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm2.yaml
index 1bf7d867a0..e9e8e15802 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm2.yaml
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm2.yaml
@@ -14,6 +14,12 @@ events:
MemoryTypeDetail:
value: "Synchronous, Static column"
type: string
+ Description:
+ value: "This is description"
+ type: string
+ Model:
+ value: "Kingston FURY Beast Black"
+ type: string
- name: createObjects
objs:
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm3.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm3.yaml
index e1dfb1e4d9..48eca62db3 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm3.yaml
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-dimm/dimm3.yaml
@@ -14,6 +14,12 @@ events:
MemoryTypeDetail:
value: "Synchronous, Static column"
type: string
+ Description:
+ value: "This is description"
+ type: string
+ Model:
+ value: "Kingston FURY Beast Black"
+ type: string
- name: createObjects
objs:
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans.bb b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans.bb
deleted file mode 100644
index ac120e773e..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Add Dimm interface for inventory manager"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit allarch
-inherit phosphor-inventory-manager
-
-PROVIDES += "virtual/phosphor-inventory-manager-fans"
-S = "${WORKDIR}"
-
-SRC_URI = "file://fans.yaml"
-
-do_install() {
- install -D fans.yaml ${D}${base_datadir}/events.d/fans.yaml
-}
-
-FILES:${PN} += "${base_datadir}/events.d/fans.yaml"
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans/fans.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans/fans.yaml
deleted file mode 100644
index 1992b6e6f8..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-fans/fans.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-events:
- - name: Add Fans interface
- description: >
- Add the fan interface on the fan inventory path
- type: startup
- actions:
- - name: createObjects
- objs:
- /system/chassis/motherboard/fan0:
- xyz.openbmc_project.Inventory.Item.Fan:
- /system/chassis/motherboard/fan1:
- xyz.openbmc_project.Inventory.Item.Fan:
- /system/chassis/motherboard/fan2:
- xyz.openbmc_project.Inventory.Item.Fan:
- /system/chassis/motherboard/fan3:
- xyz.openbmc_project.Inventory.Item.Fan:
- /system/chassis/motherboard/fan4:
- xyz.openbmc_project.Inventory.Item.Fan:
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard.bb b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard.bb
deleted file mode 100644
index 18817f5b13..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Add Dimm interface for inventory manager"
-PR = "r1"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit allarch
-inherit phosphor-inventory-manager
-
-PROVIDES += "virtual/phosphor-inventory-manager-motherboard"
-S = "${WORKDIR}"
-
-SRC_URI = "file://motherboard.yaml"
-
-do_install() {
- install -D motherboard.yaml ${D}${base_datadir}/events.d/motherboard.yaml
-}
-
-FILES:${PN} += "${base_datadir}/events.d/motherboard.yaml"
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard/motherboard.yaml b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard/motherboard.yaml
deleted file mode 100644
index 57d6085144..0000000000
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager-motherboard/motherboard.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-events:
- - name: Add Chassis interface
- description: >
- Add the chassis interface on the chassis inventory path
- type: startup
- actions:
- - name: createObjects
- objs:
- /system/chassis/motherboard:
- xyz.openbmc_project.Inventory.Item.Board.Motherboard:
-
- - name: createObjects
- objs:
- /system/chassis/motherboard:
- xyz.openbmc_project.Inventory.Decorator.Asset:
- Manufacturer:
- value: "Manufacturer"
- type: string
- PartNumber:
- value: "PartNumber"
- type: string
- SerialNumber:
- value: "SerialNumber"
- type: string
- BuildDate:
- value: "BuildDate"
- type: string
- Model:
- value: "Model"
- type: string
- SubModel:
- value: "SubModel"
- type: string
- SparePartNumber:
- value: "SparePartNumber"
- type: string
-
- - name: createObjects
- objs:
- /system/chassis/motherboard:
- xyz.openbmc_project.Inventory.Decorator.AssetTag:
- AssetTag:
- value: "AssetTag"
- type: string
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json
index 0f3ffa3d21..00efe4bea9 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager/associations.json
@@ -47,7 +47,7 @@
]
},
{
- "path": "system/chassis/motherboard/powersupply1",
+ "path": "system/chassis/motherboard/fan",
"endpoints":
[
{
@@ -58,197 +58,11 @@
},
"paths":
[
- "/xyz/openbmc_project/sensors/power/ps1_input_power",
- "/xyz/openbmc_project/sensors/power/ps1_output_power",
- "/xyz/openbmc_project/sensors/voltage/ps1_input_voltage",
- "/xyz/openbmc_project/sensors/voltage/ps1_output_voltage",
- "/xyz/openbmc_project/sensors/current/ps1_input_current",
- "/xyz/openbmc_project/sensors/current/ps1_output_current",
- "/xyz/openbmc_project/sensors/temperature/psu_inlet",
- "/xyz/openbmc_project/sensors/voltage/P12V",
- "/xyz/openbmc_project/sensors/voltage/P3V3"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front_psu"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/powersupply1_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/fan0",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/fan_tach/fan0_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan0_1"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front_fan"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/fan0_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/fan1",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/fan_tach/fan1_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan1_1"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front_fan"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/fan1_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/fan2",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/fan_tach/fan2_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan2_1"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front_fan"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/fan2_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/fan3",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/fan_tach/fan3_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan3_1"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front_fan"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/fan3_fault"
+ "/xyz/openbmc_project/sensors/fan_tach/CPU1_Fan",
+ "/xyz/openbmc_project/sensors/fan_tach/CPU2_Fan",
+ "/xyz/openbmc_project/sensors/fan_tach/System_Fan_1",
+ "/xyz/openbmc_project/sensors/fan_tach/System_Fan_2",
+ "/xyz/openbmc_project/sensors/fan_tach/System_Fan_3"
]
}
]
@@ -265,20 +79,18 @@
},
"paths":
[
- "/xyz/openbmc_project/sensors/temperature/inlet",
- "/xyz/openbmc_project/sensors/temperature/bmc_zone",
- "/xyz/openbmc_project/sensors/voltage/PVDD_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVCS_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU0_CH01",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU0_CH67",
- "/xyz/openbmc_project/sensors/voltage/PVDN_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVIO_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVDD_CPU1",
- "/xyz/openbmc_project/sensors/voltage/PVCS_CPU1",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU1_CH01",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU1_CH67",
- "/xyz/openbmc_project/sensors/voltage/PVDN_CPU1",
- "/xyz/openbmc_project/sensors/voltage/PVIO_CPU1"
+ "/xyz/openbmc_project/sensors/voltage/P105_PCH_AUX",
+ "/xyz/openbmc_project/sensors/voltage/P1V8_PCH",
+ "/xyz/openbmc_project/sensors/voltage/P3V3",
+ "/xyz/openbmc_project/sensors/voltage/P5V_STBY_PSU",
+ "/xyz/openbmc_project/sensors/voltage/Baseboard_12Volt",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIN_CPU1",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIN_CPU2",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIO_CPU1",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIO_CPU2",
+ "/xyz/openbmc_project/sensors/voltage/PVDQ_ABC_CPU1",
+ "/xyz/openbmc_project/sensors/voltage/PVDQ_ABC_CPU2",
+ "/xyz/openbmc_project/sensors/voltage/PVDQ_DEF_CPU1"
]
},
{
@@ -396,380 +208,6 @@
]
},
{
- "path": "system/chassis/motherboard/cpu0/core2",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core2_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core3",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core3_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core4",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core4_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core5",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core5_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core6",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core6_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core7",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core7_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core8",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core8_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core9",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core9_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core10",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core10_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core11",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core11_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core12",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core12_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core13",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core13_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core14",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core14_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core15",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core15_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core16",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core16_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core17",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core17_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core18",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core18_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core19",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core19_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core20",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core20_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core21",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core21_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core22",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core22_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu0/core23",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p0_core23_temp"
- ]
- }
- ]
- },
- {
"path": "system/chassis/motherboard/cpu1/core0",
"endpoints":
[
@@ -804,380 +242,6 @@
]
},
{
- "path": "system/chassis/motherboard/cpu1/core2",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core2_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core3",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core3_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core4",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core4_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core5",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core5_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core6",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core6_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core7",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core7_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core8",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core8_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core9",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core9_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core10",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core10_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core11",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core11_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core12",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core12_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core13",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core13_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core14",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core14_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core15",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core15_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core16",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core16_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core17",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core17_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core18",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core18_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core19",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core19_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core20",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core20_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core21",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core21_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core22",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core22_temp"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/cpu1/core23",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/p1_core23_temp"
- ]
- }
- ]
- },
- {
"path": "system/chassis/motherboard/dimm0",
"endpoints":
[
@@ -1334,474 +398,6 @@
]
},
{
- "path": "system/chassis/motherboard/dimm4",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm4_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm4_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm5",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm5_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm5_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm6",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm6_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm6_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm7",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm7_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm7_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm8",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm8_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm8_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm9",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm9_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm9_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm10",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm10_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm10_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm11",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm11_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm11_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm12",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm12_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm12_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm13",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm13_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm13_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm14",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm14_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm14_fault"
- ]
- }
- ]
- },
- {
- "path": "system/chassis/motherboard/dimm15",
- "endpoints":
- [
- {
- "types":
- {
- "rType": "inventory",
- "fType": "sensors"
- },
- "paths":
- [
- "/xyz/openbmc_project/sensors/temperature/dimm15_temp"
- ]
- },
- {
- "types":
- {
- "rType": "inventory",
- "fType": "leds"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/physical/front-memory"
- ]
- },
- {
- "types":
- {
- "rType": "fru",
- "fType": "fault_led_group"
- },
- "paths":
- [
- "/xyz/openbmc_project/led/groups/dimm15_fault"
- ]
- }
- ]
- },
- {
"path": "system/chassis",
"endpoints":
[
@@ -1813,113 +409,34 @@
},
"paths":
[
- "/xyz/openbmc_project/sensors/fan_tach/fan0_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan0_1",
- "/xyz/openbmc_project/sensors/fan_tach/fan1_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan1_1",
- "/xyz/openbmc_project/sensors/fan_tach/fan2_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan2_1",
- "/xyz/openbmc_project/sensors/fan_tach/fan3_0",
- "/xyz/openbmc_project/sensors/fan_tach/fan3_1",
+ "/xyz/openbmc_project/sensors/fan_tach/CPU1_Fan",
+ "/xyz/openbmc_project/sensors/fan_tach/CPU2_Fan",
+ "/xyz/openbmc_project/sensors/fan_tach/System_Fan_1",
+ "/xyz/openbmc_project/sensors/fan_tach/System_Fan_2",
+ "/xyz/openbmc_project/sensors/fan_tach/System_Fan_3",
"/xyz/openbmc_project/sensors/temperature/p0_core0_temp",
"/xyz/openbmc_project/sensors/temperature/p0_core1_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core2_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core3_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core4_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core5_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core6_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core7_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core8_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core9_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core10_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core11_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core12_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core13_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core14_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core15_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core16_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core17_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core18_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core19_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core20_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core21_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core22_temp",
- "/xyz/openbmc_project/sensors/temperature/p0_core23_temp",
"/xyz/openbmc_project/sensors/temperature/p1_core0_temp",
"/xyz/openbmc_project/sensors/temperature/p1_core1_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core2_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core3_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core4_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core5_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core6_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core7_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core8_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core9_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core10_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core11_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core12_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core13_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core14_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core15_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core16_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core17_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core18_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core19_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core20_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core21_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core22_temp",
- "/xyz/openbmc_project/sensors/temperature/p1_core23_temp",
"/xyz/openbmc_project/sensors/temperature/dimm0_temp",
"/xyz/openbmc_project/sensors/temperature/dimm1_temp",
"/xyz/openbmc_project/sensors/temperature/dimm2_temp",
"/xyz/openbmc_project/sensors/temperature/dimm3_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm4_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm5_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm6_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm7_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm8_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm9_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm10_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm11_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm12_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm13_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm14_temp",
- "/xyz/openbmc_project/sensors/temperature/dimm15_temp",
- "/xyz/openbmc_project/sensors/temperature/inlet",
- "/xyz/openbmc_project/sensors/temperature/outlet",
- "/xyz/openbmc_project/sensors/temperature/ocp_zone",
- "/xyz/openbmc_project/sensors/temperature/bmc_zone",
- "/xyz/openbmc_project/sensors/voltage/P12V",
+ "/xyz/openbmc_project/sensors/voltage/P105_PCH_AUX",
+ "/xyz/openbmc_project/sensors/voltage/P1V8_PCH",
"/xyz/openbmc_project/sensors/voltage/P3V3",
- "/xyz/openbmc_project/sensors/voltage/P5V",
- "/xyz/openbmc_project/sensors/voltage/PVCS_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVCS_CPU1",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU0_CH01",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU0_CH067",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU1_CH01",
- "/xyz/openbmc_project/sensors/voltage/PVDDQ_CPU1_CH067",
- "/xyz/openbmc_project/sensors/voltage/PVDD_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVDD_CPU1",
- "/xyz/openbmc_project/sensors/voltage/PVDN_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVDN_CPU1",
- "/xyz/openbmc_project/sensors/voltage/PVIO_CPU0",
- "/xyz/openbmc_project/sensors/voltage/PVIO_CPU1",
- "/xyz/openbmc_project/sensors/power/ps0_input_power",
- "/xyz/openbmc_project/sensors/power/ps0_output_power",
- "/xyz/openbmc_project/sensors/power/ps1_input_power",
- "/xyz/openbmc_project/sensors/power/ps1_output_power",
- "/xyz/openbmc_project/sensors/voltage/ps0_input_voltage",
- "/xyz/openbmc_project/sensors/voltage/ps0_output_voltage",
- "/xyz/openbmc_project/sensors/voltage/ps1_input_voltage",
- "/xyz/openbmc_project/sensors/voltage/ps1_output_voltage",
- "/xyz/openbmc_project/sensors/current/ps0_input_current",
- "/xyz/openbmc_project/sensors/current/ps0_output_current",
- "/xyz/openbmc_project/sensors/current/ps1_input_current",
- "/xyz/openbmc_project/sensors/current/ps1_output_current",
- "/xyz/openbmc_project/sensors/temperature/psu_inlet"
+ "/xyz/openbmc_project/sensors/voltage/P5V_STBY_PSU",
+ "/xyz/openbmc_project/sensors/voltage/Baseboard_12Volt",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIN_CPU1",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIN_CPU2",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIO_CPU1",
+ "/xyz/openbmc_project/sensors/voltage/PVCCIO_CPU2",
+ "/xyz/openbmc_project/sensors/voltage/PVDQ_ABC_CPU1",
+ "/xyz/openbmc_project/sensors/voltage/PVDQ_ABC_CPU2",
+ "/xyz/openbmc_project/sensors/voltage/PVDQ_DEF_CPU1"
]
}
]
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend
index 2ac4350e7d..63933e512c 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/inventory/phosphor-inventory-manager_%.bbappend
@@ -3,10 +3,9 @@ PACKAGECONFIG:append = " associations"
SRC_URI += " file://associations.json"
DEPENDS += " phosphor-inventory-manager-chassis"
-DEPENDS += " phosphor-inventory-manager-motherboard"
+#DEPENDS += " phosphor-inventory-manager-motherboard"
DEPENDS += " phosphor-inventory-manager-cpu"
DEPENDS += " phosphor-inventory-manager-dimm"
-DEPENDS += " phosphor-inventory-manager-fans"
do_install:append() {
install -d ${D}${base_datadir}
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/logging/phosphor-hostlogger/cp2-5422-64mb/ttyS2.conf b/meta-ibs/meta-cp2-5422/recipes-phosphor/logging/phosphor-hostlogger/cp2-5422-64mb/ttyS2.conf
new file mode 100644
index 0000000000..c75186415a
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/logging/phosphor-hostlogger/cp2-5422-64mb/ttyS2.conf
@@ -0,0 +1,7 @@
+SOCKET_ID=
+BUF_MAXSIZE=3000
+BUF_MAXTIME=0
+FLUSH_FULL=false
+HOST_STATE=/xyz/openbmc_project/state/host0
+OUT_DIR=/var/lib/obmc/hostlogs
+MAX_FILES=10
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb
new file mode 100644
index 0000000000..eb802defea
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/obmc-sila-snmp_git.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Sila SNMP agent for OpenBMC"
+DESCRIPTION = "The project provides a snmp subagent and configuration manager."
+HOMEPAGE = "http://git.sila.ru/openbmc/obmc-sila-snmp.git/"
+
+PR = "r1"
+PV = "1.0+git${SRCPV}"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
+
+SRC_URI = "git://git@git.sila.ru/srv/pub/scm/git/openbmc/obmc-sila-snmp.git;branch=master;protocol=ssh"
+SRCREV = "a7db2279b461f7aa6659e262962fc50ca98eb901"
+
+
+inherit autotools pkgconfig python3native
+inherit obmc-phosphor-dbus-service
+
+S = "${WORKDIR}/git"
+
+DEPENDS += " autoconf-archive-native"
+DEPENDS += " net-snmp"
+DEPENDS += " systemd"
+DEPENDS += " sdbusplus"
+DEPENDS += " sdeventplus"
+DEPENDS += " ${PYTHON_PN}-sdbus++-native"
+DEPENDS += " phosphor-logging"
+DEPENDS += " phosphor-dbus-interfaces"
+
+
+# Package configuration
+SNMP_PACKAGES = " \
+ ${PN}-agent \
+ ${PN}-cfg-manager \
+ "
+
+ALLOW_EMPTY_${PN} = "1"
+PACKAGE_BEFORE_PN += "${SNMP_PACKAGES}"
+PACKAGECONFIG ?= "agent cfg-manager"
+SYSTEMD_PACKAGES = "${PN}-agent"
+DBUS_PACKAGES = "${PN}-cfg-manager"
+
+# --------------------------------------
+# ${PN}-agent specific configuration:
+# --------------------------------------
+PACKAGECONFIG[agent] = "--enable-agent,--disable-agent,,"
+RDEPENDS_${PN}-agent += " sdbusplus net-snmp-libs net-snmp-server-snmpd"
+FILES:${PN}-agent = " \
+ ${bindir}/sila-snmp-agent \
+ ${datadir}/snmp/mibs/SILA-MIB.txt \
+ "
+
+SYSTEMD_SERVICE:${PN}-agent += "sila-snmp-agent.service"
+
+# --------------------------------------
+# ${PN}-cfg-manager specific configuration
+PACKAGECONFIG[cfg-manager] = "--enable-cfg-manager,--disable-cfg-manager,,"
+RDEPENDS:${PN}-cfg-manager += " sdbusplus"
+FILES:${PN}-cfg-manager = "${bindir}/sila-snmpcfg"
+DBUS_SERVICE:${PN}-cfg-manager += "sila-snmp-cfg-manager.service"
+
+# Makes the MIB-file available over https by bmcweb
+FILES:${PN}-agent += " ${datadir}/www/mibs/SILA-MIB.txt "
+do_install:append () {
+ mkdir -p ${D}${datadir}/www/mibs
+ ln -s ${datadir}/snmp/mibs/SILA-MIB.txt ${D}${datadir}/www/mibs/SILA-MIB.txt
+}
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0001-main-Use-sdeventplus.patch b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0001-main-Use-sdeventplus.patch
new file mode 100644
index 0000000000..e38befa7d6
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0001-main-Use-sdeventplus.patch
@@ -0,0 +1,123 @@
+From d07ee811792a8440fc0cc99d7f51aa4121e50928 Mon Sep 17 00:00:00 2001
+From: "Andrey V.Kosteltsev" <AKosteltsev@IBS.RU>
+Date: Sun, 17 Jul 2022 12:25:14 +0300
+Subject: [PATCH 1/3] main: Use sdeventplus
+
+Makes use sdeventplus instead custom wrapper around the sd_event library calls.
+
+Signed-off-by: Andrey V.Kosteltsev <AKosteltsev@IBS.RU>
+---
+ meson.build | 8 +++++++-
+ snmp_main.cpp | 27 ++++-----------------------
+ subprojects/sdeventplus.wrap | 6 ++++++
+ 3 files changed, 17 insertions(+), 24 deletions(-)
+ create mode 100644 subprojects/sdeventplus.wrap
+
+diff --git a/meson.build b/meson.build
+index 73ca4a6..8a82752 100644
+--- a/meson.build
++++ b/meson.build
+@@ -17,6 +17,7 @@ conf_data.set_quoted('SNMP_CONF_PERSIST_PATH', '/var/lib/phosphor-snmp/managers/
+ conf_data.set('CLASS_VERSION', 1)
+
+ sdbusplus_dep = dependency('sdbusplus')
++sdeventplus_dep = dependency('sdeventplus')
+ phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
+ phosphor_logging_dep = dependency('phosphor-logging')
+ libsystemd_dep = dependency('libsystemd')
+@@ -30,6 +31,7 @@ deps = [
+ phosphor_dbus_interfaces_dep,
+ phosphor_logging_dep,
+ sdbusplus_dep,
++ sdeventplus_dep,
+ ]
+
+ sources = [
+@@ -55,6 +57,7 @@ executable(
+
+ libsnmp_deps = [
+ sdbusplus_dep,
++ sdeventplus_dep,
+ phosphor_logging_dep,
+ phosphor_dbus_interfaces_dep,
+ netsnmp_dep,
+@@ -85,7 +88,10 @@ import('pkgconfig').generate(
+ libsnmp_lib,
+ name: meson.project_name(),
+ version: meson.project_version(),
+- requires: sdbusplus_dep,
++ requires: [
++ sdbusplus_dep,
++ sdeventplus_dep,
++ ],
+ description: 'Phosphor snmp utilities',
+ )
+
+diff --git a/snmp_main.cpp b/snmp_main.cpp
+index be4bea1..ab3c4b6 100644
+--- a/snmp_main.cpp
++++ b/snmp_main.cpp
+@@ -4,38 +4,19 @@
+
+ #include <phosphor-logging/lg2.hpp>
+ #include <sdbusplus/bus.hpp>
++#include <sdeventplus/event.hpp>
+ #include <sdbusplus/server/manager.hpp>
+
+ #include <memory>
+
+-/* Need a custom deleter for freeing up sd_event */
+-struct EventDeleter
+-{
+- void operator()(sd_event* event) const
+- {
+- sd_event_unref(event);
+- }
+-};
+-
+-using EventPtr = std::unique_ptr<sd_event, EventDeleter>;
+-
+ int main(int /*argc*/, char** /*argv[]*/)
+ {
+ auto bus = sdbusplus::bus::new_default();
+
+- sd_event* event = nullptr;
+- auto r = sd_event_default(&event);
+- if (r < 0)
+- {
+- lg2::error("Error creating a default sd_event handler: {RC}", "RC", r);
+- return r;
+- }
+-
+- EventPtr eventPtr{event};
+- event = nullptr;
++ auto event = sdeventplus::Event::get_default();
+
+ // Attach the bus to sd_event to service user requests
+- bus.attach_event(eventPtr.get(), SD_EVENT_PRIORITY_NORMAL);
++ bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL);
+
+ // Add sdbusplus Object Manager for the 'root' path of the snmp.
+ sdbusplus::server::manager::manager objManager(bus, OBJ_NETWORK_SNMP);
+@@ -46,5 +27,5 @@ int main(int /*argc*/, char** /*argv[]*/)
+
+ manager->restoreClients();
+
+- return sd_event_loop(eventPtr.get());
++ return event.loop();
+ }
+diff --git a/subprojects/sdeventplus.wrap b/subprojects/sdeventplus.wrap
+new file mode 100644
+index 0000000..f871ac0
+--- /dev/null
++++ b/subprojects/sdeventplus.wrap
+@@ -0,0 +1,6 @@
++[wrap-git]
++url = https://github.com/openbmc/sdeventplus.git
++revision = HEAD
++
++[provide]
++sdeventplus = sdeventplus_dep
+--
+2.35.1
+
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0002-main-Add-UNIX-signals-handler.patch b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0002-main-Add-UNIX-signals-handler.patch
new file mode 100644
index 0000000000..9ff1e35897
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0002-main-Add-UNIX-signals-handler.patch
@@ -0,0 +1,102 @@
+From 81daf0a592fdcb0df22476621e3202e9932a867e Mon Sep 17 00:00:00 2001
+From: "Andrey V.Kosteltsev" <AKosteltsev@IBS.RU>
+Date: Sun, 17 Jul 2022 12:55:01 +0300
+Subject: [PATCH 2/3] main: Add UNIX signals handler
+
+This commit adds a handler for SIGTERM and SIGINT signals that is the normal service stop.
+
+Signed-off-by: Andrey V.Kosteltsev <AKosteltsev@IBS.RU>
+---
+ meson.build | 4 ++++
+ snmp_main.cpp | 15 +++++++++++++++
+ subprojects/stdplus.wrap | 6 ++++++
+ 3 files changed, 25 insertions(+)
+ create mode 100644 subprojects/stdplus.wrap
+
+diff --git a/meson.build b/meson.build
+index 8a82752..4ed6094 100644
+--- a/meson.build
++++ b/meson.build
+@@ -18,6 +18,7 @@ conf_data.set('CLASS_VERSION', 1)
+
+ sdbusplus_dep = dependency('sdbusplus')
+ sdeventplus_dep = dependency('sdeventplus')
++stdplus_dep = dependency('stdplus')
+ phosphor_dbus_interfaces_dep = dependency('phosphor-dbus-interfaces')
+ phosphor_logging_dep = dependency('phosphor-logging')
+ libsystemd_dep = dependency('libsystemd')
+@@ -32,6 +33,7 @@ deps = [
+ phosphor_logging_dep,
+ sdbusplus_dep,
+ sdeventplus_dep,
++ stdplus_dep,
+ ]
+
+ sources = [
+@@ -58,6 +60,7 @@ executable(
+ libsnmp_deps = [
+ sdbusplus_dep,
+ sdeventplus_dep,
++ stdplus_dep,
+ phosphor_logging_dep,
+ phosphor_dbus_interfaces_dep,
+ netsnmp_dep,
+@@ -91,6 +94,7 @@ import('pkgconfig').generate(
+ requires: [
+ sdbusplus_dep,
+ sdeventplus_dep,
++ stdplus_dep,
+ ],
+ description: 'Phosphor snmp utilities',
+ )
+diff --git a/snmp_main.cpp b/snmp_main.cpp
+index ab3c4b6..df5850b 100644
+--- a/snmp_main.cpp
++++ b/snmp_main.cpp
+@@ -5,10 +5,18 @@
+ #include <phosphor-logging/lg2.hpp>
+ #include <sdbusplus/bus.hpp>
+ #include <sdeventplus/event.hpp>
++#include <sdeventplus/source/signal.hpp>
+ #include <sdbusplus/server/manager.hpp>
++#include <stdplus/signal.hpp>
+
+ #include <memory>
+
++static void cleanExit(sdeventplus::source::Signal& source,
++ const struct signalfd_siginfo*)
++{
++ source.get_event().exit(EXIT_SUCCESS);
++}
++
+ int main(int /*argc*/, char** /*argv[]*/)
+ {
+ auto bus = sdbusplus::bus::new_default();
+@@ -27,5 +35,12 @@ int main(int /*argc*/, char** /*argv[]*/)
+
+ manager->restoreClients();
+
++ // Clean exit by unix signal
++ stdplus::signal::block(SIGTERM);
++ stdplus::signal::block(SIGINT);
++
++ sdeventplus::source::Signal sigTerm(event, SIGTERM, cleanExit);
++ sdeventplus::source::Signal sigInt(event, SIGINT, cleanExit);
++
+ return event.loop();
+ }
+diff --git a/subprojects/stdplus.wrap b/subprojects/stdplus.wrap
+new file mode 100644
+index 0000000..2f8a5f4
+--- /dev/null
++++ b/subprojects/stdplus.wrap
+@@ -0,0 +1,6 @@
++[wrap-git]
++url = https://github.com/openbmc/stdplus.git
++revision = HEAD
++
++[provide]
++stdplus = stdplus_dep
+--
+2.35.1
+
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0003-conf_manager-use-snmpd-as-a-clients-storage.patch b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0003-conf_manager-use-snmpd-as-a-clients-storage.patch
new file mode 100644
index 0000000000..e13de7ba74
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/0003-conf_manager-use-snmpd-as-a-clients-storage.patch
@@ -0,0 +1,859 @@
+From 22a0736aa2613f0821e762e76db0efac17a0b7b1 Mon Sep 17 00:00:00 2001
+From: "Andrey V.Kosteltsev" <AKosteltsev@IBS.RU>
+Date: Sun, 17 Jul 2022 19:05:14 +0300
+Subject: [PATCH 3/3] conf_manager: use snmpd as a clients storage
+
+This commit brings the alternative of storage of clients. It's able now to communicate with snmpd and manage the built-in list of snmp trap receivers.
+
+Signed-off-by: Andrey V.Kosteltsev <AKosteltsev@IBS.RU>
+---
+ meson.build | 9 ++
+ meson_options.txt | 19 ++++
+ snmp/exceptions.hpp | 71 ++++++++++++++
+ snmp/notify_tables.hpp | 58 ++++++++++++
+ snmp/oid.hpp | 42 +++++++++
+ snmp/pdu.hpp | 150 +++++++++++++++++++++++++++++
+ snmp/session.hpp | 110 ++++++++++++++++++++++
+ snmp_conf_manager.cpp | 207 +++++++++++++++++++++++++++++++++++++++++
+ snmp_conf_manager.hpp | 8 ++
+ snmp_main.cpp | 11 +++
+ 10 files changed, 685 insertions(+)
+ create mode 100644 snmp/exceptions.hpp
+ create mode 100644 snmp/notify_tables.hpp
+ create mode 100644 snmp/oid.hpp
+ create mode 100644 snmp/pdu.hpp
+ create mode 100644 snmp/session.hpp
+
+diff --git a/meson.build b/meson.build
+index 4ed6094..ad07caa 100644
+--- a/meson.build
++++ b/meson.build
+@@ -44,6 +44,15 @@ sources = [
+ 'snmp_serialize.cpp',
+ ]
+
++if get_option('snmpd-support').enabled()
++ conf_data.set('USE_SNMPD', 1)
++ deps += [
++ netsnmp_dep,
++ ]
++ conf_data.set_quoted('SNMPD_ADDRESS', get_option('snmpd-address'))
++ conf_data.set_quoted('SNMPD_COMMUNITY', get_option('snmpd-community'))
++endif
++
+ configure_file(output: 'config.h',
+ configuration: conf_data
+ )
+diff --git a/meson_options.txt b/meson_options.txt
+index f1c7bd8..8b26686 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1 +1,20 @@
++
++option('snmpd-support',
++ type: 'feature',
++ value: 'disabled',
++ description: 'Enable snmpd as a client storage.'
++)
++
++option('snmpd-address',
++ type: 'string',
++ value: 'localhost',
++ description: 'Address of snmpd.'
++)
++
++option('snmpd-community',
++ type: 'string',
++ value: 'private',
++ description: 'Community name to communicate with snmpd.'
++)
++
+ option('tests', type : 'feature', description : 'Build tests')
+\ No newline at end of file
+diff --git a/snmp/exceptions.hpp b/snmp/exceptions.hpp
+new file mode 100644
+index 0000000..9f1d858
+--- /dev/null
++++ b/snmp/exceptions.hpp
+@@ -0,0 +1,71 @@
++#pragma once
++
++#include <net-snmp/net-snmp-config.h>
++#include <net-snmp/net-snmp-includes.h>
++
++#include <stdexcept>
++
++namespace snmp
++{
++namespace exception
++{
++
++class SnmpError : public std::runtime_error
++{
++ public:
++ using std::runtime_error::runtime_error;
++};
++
++class SnmpSessionError : public SnmpError
++{
++ public:
++ using SnmpError::SnmpError;
++
++ SnmpSessionError(netsnmp_session* sp, const std::string& name) :
++ SnmpError(makeError(sp, name))
++ {
++ }
++
++ protected:
++ static std::string makeError(netsnmp_session* sp, const std::string& name)
++ {
++ char* msg = nullptr;
++ snmp_error(sp, nullptr, nullptr, &msg);
++ std::string error = name + " failed, ";
++ error += msg;
++ SNMP_FREE(msg);
++
++ return error;
++ }
++};
++
++class SnmpTimeout : public SnmpError
++{
++ public:
++ using SnmpError::SnmpError;
++
++ SnmpTimeout() : SnmpError("Connection timed out!")
++ {
++ }
++};
++
++class SnmpPacketError : public SnmpError
++{
++ public:
++ using SnmpError::SnmpError;
++
++ SnmpPacketError(int ec) : SnmpError(makeError(ec))
++ {
++ }
++
++ protected:
++ static std::string makeError(int ec)
++ {
++ std::string error("Error in packet, ");
++ error += snmp_errstring(ec);
++ return error;
++ }
++};
++
++} // namespace exception
++} // namespace snmp
+diff --git a/snmp/notify_tables.hpp b/snmp/notify_tables.hpp
+new file mode 100644
+index 0000000..7d23c0f
+--- /dev/null
++++ b/snmp/notify_tables.hpp
+@@ -0,0 +1,58 @@
++/*
++ * SPDX-License-Identifier: Apache-2.0
++ * Copyright (C) 2021 YADRO.
++ */
++#include "oid.hpp"
++
++namespace snmp
++{
++namespace table
++{
++
++/**
++ * @brief SNMP-NOTIFICATION-MIB::snmpNotifyTable fields
++ */
++namespace notify
++{
++ // clang-format off
++static const snmp::OID tag = {1,3,6,1,6,3,13,1,1,1,2};
++static const snmp::OID type = {1,3,6,1,6,3,13,1,1,1,3};
++static const snmp::OID storageType = {1,3,6,1,6,3,13,1,1,1,4};
++static const snmp::OID rowStatus = {1,3,6,1,6,3,13,1,1,1,5};
++ // clang-format on
++} // namespace notify
++
++/**
++ * @brief SNMP-TARGET-MIB::snmpTargetParamsTable fields
++ */
++namespace targetParams
++{
++ // clang-format off
++static const snmp::OID mpModel = {1,3,6,1,6,3,12,1,3,1,2};
++static const snmp::OID securityModel = {1,3,6,1,6,3,12,1,3,1,3};
++static const snmp::OID securityName = {1,3,6,1,6,3,12,1,3,1,4};
++static const snmp::OID securityLevel = {1,3,6,1,6,3,12,1,3,1,5};
++static const snmp::OID storageType = {1,3,6,1,6,3,12,1,3,1,6};
++static const snmp::OID rowStatus = {1,3,6,1,6,3,12,1,3,1,7};
++ // clang-format on
++} // namespace targetParams
++
++/**
++ * @brief SNMP-TARGET-MIB::snmpTargetAddrTable fields
++ */
++namespace targetAddr
++{
++ // clang-format off
++static const snmp::OID tDomain = {1,3,6,1,6,3,12,1,2,1,2};
++static const snmp::OID tAddress = {1,3,6,1,6,3,12,1,2,1,3};
++static const snmp::OID timeout = {1,3,6,1,6,3,12,1,2,1,4};
++static const snmp::OID retryCount = {1,3,6,1,6,3,12,1,2,1,5};
++static const snmp::OID tagList = {1,3,6,1,6,3,12,1,2,1,6};
++static const snmp::OID params = {1,3,6,1,6,3,12,1,2,1,7};
++static const snmp::OID storageType = {1,3,6,1,6,3,12,1,2,1,8};
++static const snmp::OID rowStatus = {1,3,6,1,6,3,12,1,2,1,9};
++ // clang-format on
++} // namespace targetAddr
++
++} // namespace table
++} // namespace snmp
+diff --git a/snmp/oid.hpp b/snmp/oid.hpp
+new file mode 100644
+index 0000000..5394873
+--- /dev/null
++++ b/snmp/oid.hpp
+@@ -0,0 +1,42 @@
++#pragma once
++
++#include <net-snmp/net-snmp-config.h>
++#include <net-snmp/net-snmp-includes.h>
++
++#include <string>
++#include <vector>
++
++namespace snmp
++{
++
++struct OID : public std::vector<oid>
++{
++ using std::vector<oid>::vector;
++
++ static std::string dump(const oid* objid, const size_t length)
++ {
++ std::string ret(length * 11 + 1, '\0');
++ size_t offset = 0;
++ for (size_t i = 0; i < length; ++i)
++ {
++ offset += snprintf(ret.data() + offset, ret.size() - offset, ".%lu",
++ objid[i]);
++ }
++ ret.resize(offset);
++ return std::forward<std::string>(ret);
++ }
++
++ std::string dump() const
++ {
++ return std::forward<std::string>(dump(data(), size()));
++ }
++
++ template <typename T> OID operator+(const T& tail) const
++ {
++ OID res = *this;
++ res.insert(res.end(), tail.begin(), tail.end());
++ return std::forward<OID>(res);
++ }
++};
++
++} // namespace snmp
+diff --git a/snmp/pdu.hpp b/snmp/pdu.hpp
+new file mode 100644
+index 0000000..5487da0
+--- /dev/null
++++ b/snmp/pdu.hpp
+@@ -0,0 +1,150 @@
++#pragma once
++
++#include "oid.hpp"
++
++#include <net-snmp/net-snmp-config.h>
++#include <net-snmp/net-snmp-includes.h>
++
++#include <iterator>
++#include <memory>
++
++namespace snmp
++{
++
++class session;
++
++namespace details
++{
++
++struct PduDeleter
++{
++ void operator()(netsnmp_pdu* pduPtr) const
++ {
++ snmp_free_pdu(pduPtr);
++ }
++};
++
++using PduPtr = std::unique_ptr<netsnmp_pdu, PduDeleter>;
++} // namespace details
++
++class pdu
++{
++ public:
++ pdu() = delete;
++ pdu(const pdu&) = delete;
++ pdu& operator=(const pdu&) = delete;
++
++ pdu(pdu&&) = default;
++ pdu& operator=(pdu&&) = default;
++ ~pdu() = default;
++
++ netsnmp_pdu* get() const
++ {
++ return pduPtr.get();
++ }
++
++ static pdu create(const int command)
++ {
++ return std::forward<pdu>(pdu(snmp_pdu_create(command)));
++ }
++
++ void addVar(const OID& oid)
++ {
++ snmp_add_null_var(pduPtr.get(), oid.data(), oid.size());
++ }
++
++ void addVar(const OID& oid, const int& value)
++ {
++ snmp_pdu_add_variable(pduPtr.get(), oid.data(), oid.size(), ASN_INTEGER,
++ &value, sizeof(value));
++ }
++
++ void addVar(const OID& oid, const std::string& value)
++ {
++ snmp_pdu_add_variable(pduPtr.get(), oid.data(), oid.size(),
++ ASN_OCTET_STR, value.c_str(), value.size());
++ }
++
++ void addVar(const OID& oid, const OID& value)
++ {
++ snmp_pdu_add_variable(pduPtr.get(), oid.data(), oid.size(),
++ ASN_OBJECT_ID, value.data(),
++ value.size() * sizeof(OID::value_type));
++ }
++
++ void addVar(const OID& oid, const std::vector<uint8_t>& value)
++ {
++ snmp_pdu_add_variable(pduPtr.get(), oid.data(), oid.size(),
++ ASN_OCTET_STR, value.data(), value.size());
++ }
++
++ netsnmp_pdu* operator->() const
++ {
++ return pduPtr.get();
++ }
++
++ struct iterator
++ {
++ using value_type = netsnmp_variable_list;
++ using reference = netsnmp_variable_list&;
++ using pointer = netsnmp_variable_list*;
++ using iterator_category = std::forward_iterator_tag;
++
++ iterator(netsnmp_variable_list* vp) : vp(vp)
++ {
++ }
++
++ reference operator*()
++ {
++ return *vp;
++ }
++
++ pointer operator->()
++ {
++ return vp;
++ }
++
++ iterator& operator++()
++ {
++ vp = vp->next_variable;
++ return *this;
++ }
++
++ friend bool operator==(const iterator& a, const iterator& b)
++ {
++ return a.vp == b.vp;
++ };
++ friend bool operator!=(const iterator& a, const iterator& b)
++ {
++ return a.vp != b.vp;
++ };
++
++ private:
++ pointer vp;
++ };
++
++ iterator begin() const
++ {
++ return iterator(pduPtr->variables);
++ }
++ iterator end() const
++ {
++ return iterator(nullptr);
++ }
++
++ protected:
++ explicit pdu(netsnmp_pdu* rawPtr) : pduPtr(rawPtr)
++ {
++ if (pduPtr->command == SNMP_MSG_GETBULK)
++ {
++ pduPtr->non_repeaters = 0;
++ pduPtr->max_repetitions = 10;
++ }
++ }
++
++ private:
++ friend class snmp::session;
++ details::PduPtr pduPtr;
++};
++
++} // namespace snmp
+diff --git a/snmp/session.hpp b/snmp/session.hpp
+new file mode 100644
+index 0000000..6665882
+--- /dev/null
++++ b/snmp/session.hpp
+@@ -0,0 +1,110 @@
++#pragma once
++
++#include "exceptions.hpp"
++#include "pdu.hpp"
++
++#include <net-snmp/net-snmp-config.h>
++#include <net-snmp/net-snmp-includes.h>
++
++#include <memory>
++#include <string>
++
++namespace snmp
++{
++
++namespace details
++{
++
++struct SessionDeleter
++{
++ void operator()(netsnmp_session* sessionPtr) const
++ {
++ snmp_close(sessionPtr);
++ }
++};
++
++using SessionPtr = std::unique_ptr<netsnmp_session, SessionDeleter>;
++
++} // namespace details
++
++class session
++{
++ public:
++ session() = delete;
++ session(const session&) = delete;
++ session& operator=(const session&) = delete;
++
++ session(session&&) = default;
++ session& operator=(session&&) = default;
++ ~session() = default;
++
++ netsnmp_session* get() const
++ {
++ return sessionPtr.get();
++ }
++
++ static session open(const std::string& peername,
++ const std::string& community,
++ const int version = SNMP_VERSION_2c,
++ const int retryAttempts = 3,
++ const int timeout = 1000000)
++ {
++ netsnmp_session ss{};
++
++ snmp_sess_init(&ss);
++ ss.version = version;
++ ss.retries = retryAttempts;
++ ss.timeout = timeout;
++ ss.peername = const_cast<char*>(peername.c_str());
++ ss.community = const_cast<u_char*>(
++ reinterpret_cast<const u_char*>(community.c_str()));
++ ss.community_len = community.size();
++
++ netsnmp_session* sp = snmp_open(&ss);
++
++ if (!sp)
++ {
++ throw snmp::exception::SnmpSessionError(&ss, "snmp_open()");
++ }
++
++ return std::forward<session>(session(sp));
++ }
++
++ void send(pdu& pdu) const
++ {
++ netsnmp_pdu* rsp = nullptr;
++ auto status = snmp_synch_response(sessionPtr.get(), pdu.get(), &rsp);
++ pdu.pduPtr.release();
++ pdu.pduPtr.reset(rsp);
++
++ switch (status)
++ {
++ case STAT_TIMEOUT:
++ throw snmp::exception::SnmpTimeout();
++ break;
++
++ case STAT_ERROR:
++ throw snmp::exception::SnmpSessionError(
++ sessionPtr.get(), "snmp_synch_response()");
++ break;
++
++ default:
++ break;
++ }
++
++ if (pdu->errstat != SNMP_ERR_NOERROR)
++ {
++ throw snmp::exception::SnmpPacketError(pdu->errstat);
++ }
++ }
++
++ protected:
++ explicit session(netsnmp_session* sp) : sessionPtr(sp)
++ {
++ }
++
++ private:
++ details::SessionPtr sessionPtr;
++};
++
++} // namespace snmp
+diff --git a/snmp_conf_manager.cpp b/snmp_conf_manager.cpp
+index 4ddace1..2a631b7 100644
+--- a/snmp_conf_manager.cpp
++++ b/snmp_conf_manager.cpp
+@@ -6,6 +6,11 @@
+ #include "snmp_util.hpp"
+ #include "xyz/openbmc_project/Common/error.hpp"
+
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++#include "snmp/pdu.hpp"
++#include "snmp/notify_tables.hpp"
++#endif
++
+ #include <arpa/inet.h>
+
+ #include <phosphor-logging/elog-errors.hpp>
+@@ -29,14 +34,97 @@ ConfManager::ConfManager(sdbusplus::bus::bus& bus, const char* objPath) :
+ details::CreateIface::action::defer_emit),
+ dbusPersistentLocation(SNMP_CONF_PERSIST_PATH), bus(bus),
+ objectPath(objPath)
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++ ,
++ session(::snmp::session::open(SNMPD_ADDRESS, SNMPD_COMMUNITY))
++#endif
+ {}
+
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++static std::vector<uint8_t> encodeAddr(const std::string& addr, uint16_t port)
++{
++ std::vector<uint8_t> data;
++
++ addrinfo hints;
++ addrinfo* ptr = nullptr;
++
++ memset(&hints, 0, sizeof hints);
++ hints.ai_family = AF_UNSPEC;
++ hints.ai_socktype = SOCK_STREAM;
++ hints.ai_flags |= AI_CANONNAME;
++
++ auto result =
++ getaddrinfo(addr.c_str(), std::to_string(port).c_str(), &hints, &ptr);
++ if (result)
++ {
++ log<level::ERR>("getaddrinfo failed",
++ entry("ADDRESS=%s", addr.c_str()));
++ elog<InternalFailure>();
++ }
++
++ AddrPtr addrPtr{ptr};
++ ptr = nullptr;
++
++ auto sa = reinterpret_cast<const sockaddr_in*>(addrPtr->ai_addr);
++ auto begin = reinterpret_cast<const uint8_t*>(&(sa->sin_addr));
++ data.insert(data.end(), begin, begin + sizeof(sa->sin_addr));
++
++ begin = reinterpret_cast<const uint8_t*>(&(sa->sin_port));
++ data.insert(data.end(), begin, begin + sizeof(sa->sin_port));
++
++ return data;
++}
++#endif
++
+ std::string ConfManager::client(std::string address, uint16_t port)
+ {
+ // will throw exception if it is already configured.
+ checkClientConfigured(address, port);
+
+ lastClientId++;
++
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++ auto data = encodeAddr(address, port);
++ try
++ {
++ auto pdu = ::snmp::pdu::create(SNMP_MSG_SET);
++ auto index = std::to_string(lastClientId);
++
++ constexpr int noAuthNoPriv = 1;
++ constexpr int createAndGo = 4;
++
++ using namespace ::snmp::table;
++
++ pdu.addVar(targetParams::mpModel + index, 1 /* SNMPv2c */);
++ pdu.addVar(targetParams::securityModel + index, 2 /* SNMPv2c */);
++ pdu.addVar(targetParams::securityName + index, "public");
++ pdu.addVar(targetParams::securityLevel + index, noAuthNoPriv);
++ pdu.addVar(targetParams::rowStatus + index, createAndGo);
++
++ const ::snmp::OID snmpUDPDomain = {1, 3, 6, 1, 6, 1, 1};
++
++ pdu.addVar(targetAddr::tDomain + index, snmpUDPDomain);
++ pdu.addVar(targetAddr::tAddress + index, data);
++ pdu.addVar(targetAddr::tagList + index, index);
++ pdu.addVar(targetAddr::params + index, index);
++ pdu.addVar(targetAddr::rowStatus + index, createAndGo);
++
++ constexpr int trap = 1;
++
++ pdu.addVar(notify::tag + index, index);
++ pdu.addVar(notify::type + index, trap);
++ pdu.addVar(notify::rowStatus + index, createAndGo);
++
++ session.send(pdu);
++ }
++ catch (const ::snmp::exception::SnmpError& ex)
++ {
++ log<level::ERR>("Sending client data to snmpd failed",
++ entry("ERROR=%s", ex.what()),
++ entry("ADDRESS=%s", address.c_str()));
++ elog<InternalFailure>();
++ }
++#else
+ try
+ {
+ // just to check whether given address is valid or not.
+@@ -48,6 +136,7 @@ std::string ConfManager::client(std::string address, uint16_t port)
+ elog<InvalidArgument>(Argument::ARGUMENT_NAME("Address"),
+ Argument::ARGUMENT_VALUE(address.c_str()));
+ }
++#endif
+
+ // create the D-Bus object
+ std::filesystem::path objPath;
+@@ -57,8 +146,10 @@ std::string ConfManager::client(std::string address, uint16_t port)
+ auto client = std::make_unique<phosphor::network::snmp::Client>(
+ bus, objPath.string().c_str(), *this, address, port);
+
++#if ! defined( USE_SNMPD ) || ( USE_SNMPD == 0 )
+ // save the D-Bus object
+ serialize(lastClientId, *client, dbusPersistentLocation);
++#endif
+
+ this->clients.emplace(lastClientId, std::move(client));
+ return objPath.string();
+@@ -98,6 +189,27 @@ void ConfManager::deleteSNMPClient(Id id)
+ return;
+ }
+
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++ try
++ {
++ using namespace ::snmp::table;
++
++ constexpr int destroy = 6;
++ auto pdu = ::snmp::pdu::create(SNMP_MSG_SET);
++ auto index = std::to_string(id);
++ pdu.addVar(notify::rowStatus + index, destroy);
++ pdu.addVar(targetAddr::rowStatus + index, destroy);
++ pdu.addVar(targetParams::rowStatus + index, destroy);
++ session.send(pdu);
++ }
++ catch (const ::snmp::exception::SnmpError& ex)
++ {
++ log<level::ERR>("Deleting client data from snmpd failed",
++ entry("ERROR=%s", ex.what()),
++ entry("CLIENT_UD=%zu", id));
++ elog<InternalFailure>();
++ }
++#else
+ std::error_code ec;
+ // remove the persistent file
+ fs::path fileName = dbusPersistentLocation;
+@@ -115,12 +227,106 @@ void ConfManager::deleteSNMPClient(Id id)
+ {
+ lg2::error("{FILE} doesn't exist", "FILE", fileName);
+ }
++#endif
++
+ // remove the D-Bus Object.
+ this->clients.erase(it);
+ }
+
+ void ConfManager::restoreClients()
+ {
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++ using SnmpClient = std::tuple<std::string, uint16_t>;
++ using SnmpClients = std::map<Id, SnmpClient>;
++ SnmpClients snmpClients;
++
++ try
++ {
++ using namespace ::snmp::table;
++ auto root = targetAddr::tAddress;
++
++ while (!root.empty())
++ {
++ auto pdu = ::snmp::pdu::create(SNMP_MSG_GETBULK);
++ pdu.addVar(root);
++ session.send(pdu);
++
++ for (const auto& var : pdu)
++ {
++ if (var.name_length <= targetAddr::tAddress.size() ||
++ !std::equal(targetAddr::tAddress.begin(),
++ targetAddr::tAddress.end(), var.name))
++ {
++ // End of table reached.
++ root.clear();
++ break;
++ }
++
++ std::string index(var.name + targetAddr::tAddress.size(),
++ var.name + var.name_length);
++ Id idNum = std::stol(index);
++
++ char ipaddress[INET6_ADDRSTRLEN];
++ if (inet_ntop(AF_INET, var.val.string, ipaddress,
++ sizeof(ipaddress)))
++ {
++ auto& snmpClient = snmpClients[idNum];
++ std::get<0>(snmpClient) = ipaddress;
++ std::get<1>(snmpClient) =
++ ntohs(*(reinterpret_cast<uint16_t*>(
++ var.val.string + sizeof(in_addr_t))));
++ }
++
++ if (!var.next_variable)
++ {
++ // Following request should contain the last OID
++ root.assign(var.name, var.name + var.name_length);
++ }
++ }
++ }
++ }
++ catch (const ::snmp::exception::SnmpError& ex)
++ {
++ log<level::ERR>("Receiving list of clients from snmpd failed",
++ entry("ERROR=%s", ex.what()));
++ elog<InternalFailure>();
++ }
++
++ // Remove excess clients
++ for (auto it = clients.begin(); it != clients.end();)
++ {
++ auto snmpIt = snmpClients.find(it->first);
++ if (snmpIt == snmpClients.end())
++ {
++ it = clients.erase(it);
++ }
++ else
++ {
++ it++;
++ }
++ }
++
++ // Add missing clients
++ for (const auto& [id, snmpClient] : snmpClients)
++ {
++ auto it = clients.find(id);
++ if (it == clients.end())
++ {
++ fs::path objPath = objectPath;
++ objPath /= std::to_string(id);
++
++ auto client = std::make_unique<Client>(
++ bus, objPath.string().c_str(), *this, std::get<0>(snmpClient),
++ std::get<1>(snmpClient));
++ clients.emplace(id, std::move(client));
++
++ if (id > lastClientId)
++ {
++ lastClientId = id;
++ }
++ }
++ }
++#else
+ if (!fs::exists(dbusPersistentLocation) ||
+ fs::is_empty(dbusPersistentLocation))
+ {
+@@ -152,6 +358,7 @@ void ConfManager::restoreClients()
+ }
+ }
+ }
++#endif
+ }
+
+ } // namespace snmp
+diff --git a/snmp_conf_manager.hpp b/snmp_conf_manager.hpp
+index afbfad8..10ed4dd 100644
+--- a/snmp_conf_manager.hpp
++++ b/snmp_conf_manager.hpp
+@@ -1,6 +1,9 @@
+ #pragma once
+
+ #include "snmp_client.hpp"
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++#include "snmp/session.hpp"
++#endif
+
+ #include <sdbusplus/bus.hpp>
+ #include <xyz/openbmc_project/Network/Client/Create/server.hpp>
+@@ -84,6 +87,11 @@ class ConfManager : public details::CreateIface
+ /** @brief map of SNMP Client dbus objects and their ID */
+ ClientList clients;
+
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++ /** @brief SNMP client session */
++ ::snmp::session session;
++#endif
++
+ /** @brief Id of the last SNMP manager entry */
+ Id lastClientId = 0;
+
+diff --git a/snmp_main.cpp b/snmp_main.cpp
+index df5850b..d6e6646 100644
+--- a/snmp_main.cpp
++++ b/snmp_main.cpp
+@@ -42,5 +42,16 @@ int main(int /*argc*/, char** /*argv[]*/)
+ sdeventplus::source::Signal sigTerm(event, SIGTERM, cleanExit);
+ sdeventplus::source::Signal sigInt(event, SIGINT, cleanExit);
+
++#if defined( USE_SNMPD ) && ( USE_SNMPD == 1 )
++ // Reload list of clients
++ stdplus::signal::block(SIGHUP);
++ sdeventplus::source::Signal sigHup(
++ event, SIGHUP,
++ [&manager](sdeventplus::source::Signal&,
++ const struct signalfd_siginfo*) {
++ manager->restoreClients();
++ });
++#endif
++
+ return event.loop();
+ }
+--
+2.35.1
+
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/snmpd-dependency.conf b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/snmpd-dependency.conf
new file mode 100644
index 0000000000..8507aaa0e6
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp/snmpd-dependency.conf
@@ -0,0 +1,3 @@
+[Unit]
+Requires=snmpd.service
+After=snmpd.service
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp_%.bbappend b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp_%.bbappend
new file mode 100644
index 0000000000..a784b2510b
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/network/phosphor-snmp_%.bbappend
@@ -0,0 +1,23 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += " \
+ file://0001-main-Use-sdeventplus.patch \
+ file://0002-main-Add-UNIX-signals-handler.patch \
+ file://0003-conf_manager-use-snmpd-as-a-clients-storage.patch \
+ file://snmpd-dependency.conf \
+ "
+
+EXTRA_OEMESON:append = " -Dsnmpd-support=enabled -Dsnmpd-address=localhost -Dsnmpd-community=private"
+
+DEPENDS += "sdeventplus"
+DEPENDS += "stdplus"
+
+RDEPENDS:${PN} += " \
+ net-snmp \
+ phosphor-logging \
+ phosphor-dbus-interfaces \
+ "
+
+SYSTEMD_OVERRIDE:${PN}:append = " \
+ snmpd-dependency.conf:xyz.openbmc_project.Network.SNMP.service.d/snmpd-dependency.conf \
+ "
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/0001-set_new_report_path.patch b/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/0001-set_new_report_path.patch
new file mode 100644
index 0000000000..b59438bd28
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/0001-set_new_report_path.patch
@@ -0,0 +1,22 @@
+From 71ad04dd8ce0a31fe260626215d30bf0e58b255c Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Fri, 15 Jul 2022 17:38:30 +0300
+Subject: [PATCH] set_new_report_path
+
+---
+ src/report.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/report.hpp b/src/report.hpp
+index 6d8c6b4..8d71bc9 100644
+--- a/src/report.hpp
++++ b/src/report.hpp
+@@ -137,7 +137,7 @@ class Report : public interfaces::Report, public interfaces::MetricListener
+ static constexpr const char* reportIfaceName =
+ "xyz.openbmc_project.Telemetry.Report";
+ static constexpr const char* reportDir =
+- "/xyz/openbmc_project/Telemetry/Reports/";
++ "/xyz/openbmc_project/Telemetry/Reports/TelemetryService/";
+ static constexpr const char* deleteIfaceName =
+ "xyz.openbmc_project.Object.Delete";
+ static constexpr size_t reportVersion = 6;
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/3017361602 b/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/3017361602
new file mode 100644
index 0000000000..57252a3388
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry/3017361602
@@ -0,0 +1 @@
+{"AppendLimit":20,"Enabled":true,"Id":"report_id","Interval":1000,"Name":"report_name","ReadingParameters":[{"collectionDuration":10,"collectionTimeScope":0,"id":"id","operationType":2,"sensorPath":[{"metadata":"meta_data","path":"/xyz/openbmc_project/sensors/voltage/PVCCIN_CPU1","service":"xyz.openbmc_project.ADCSensor"}]}],"ReportActions":[1],"ReportUpdates":2,"ReportingType":0,"Version":6} \ No newline at end of file
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry_%.bbappend b/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry_%.bbappend
new file mode 100644
index 0000000000..ca45488936
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/telemetry/telemetry_%.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS:append := "${THISDIR}/${PN}:"
+SRC_URI += "file://3017361602 \
+ file://0001-set_new_report_path.patch \
+ "
+do_install:append() {
+ install -d ${D}/var/lib/telemetry/Reports
+ cp ${WORKDIR}/3017361602 ${D}/var/lib/telemetry/Reports
+}
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue/0002-add-new-dimm-fields.patch b/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue/0002-add-new-dimm-fields.patch
new file mode 100644
index 0000000000..0b3cdd6475
--- /dev/null
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue/0002-add-new-dimm-fields.patch
@@ -0,0 +1,29 @@
+From b2fed2b2735851248931753a70e8135318b51661 Mon Sep 17 00:00:00 2001
+From: eportnov <eportnov@ibs.ru>
+Date: Fri, 8 Jul 2022 16:40:06 +0300
+Subject: [PATCH] add new dimm fields
+
+---
+ src/store/modules/HardwareStatus/MemoryStore.js | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/store/modules/HardwareStatus/MemoryStore.js b/src/store/modules/HardwareStatus/MemoryStore.js
+index fd8f0a9..ff0b00f 100644
+--- a/src/store/modules/HardwareStatus/MemoryStore.js
++++ b/src/store/modules/HardwareStatus/MemoryStore.js
+@@ -26,6 +26,7 @@ const MemoryStore = {
+ SparePartNumber,
+ Description,
+ MemoryType,
++ Model,
+ MemorySize,
+ LocationIndicatorActive,
+ Location,
+@@ -45,6 +46,7 @@ const MemoryStore = {
+ sparePartNumber: SparePartNumber,
+ description: Description,
+ memoryType: MemoryType,
++ model: Model,
+ memorySize: MemorySize,
+ identifyLed: LocationIndicatorActive,
+ uri: data['@odata.id'],
diff --git a/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue_%.bbappend b/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue_%.bbappend
index 493c101f7b..0ff04ae0b5 100644
--- a/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue_%.bbappend
+++ b/meta-ibs/meta-cp2-5422/recipes-phosphor/webui/webui-vue_%.bbappend
@@ -8,12 +8,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
EXTRA_OENPM = "-- --mode sila"
+
SRC_URI = "git://git@git.sila.ru/srv/pub/scm/git/openbmc/webui-vue.git;branch=sila-ui;protocol=ssh"
-SRCREV = "8047ae3d83ba0718fb7a42907036157e5c680b85"
+SRCREV = "a4f3903f2b4fa9dff958591a78d8888c653efa50"
SRC_URI += "\
file://favicon.ico \
file://0001-IBS-html-head-title.patch \
+ file://0002-add-new-dimm-fields.patch \
"
do_update_logo () {
diff --git a/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb b/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
index 9034936e29..d86041f1b0 100644
--- a/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
+++ b/meta-phosphor/recipes-phosphor/interfaces/bmcweb_git.bb
@@ -19,10 +19,6 @@ S = "${WORKDIR}/git"
inherit pkgconfig meson ptest
-SRC_URI += " \
- file://run-ptest \
-"
-
DEPENDS = " \
openssl \
zlib \