summaryrefslogtreecommitdiff
path: root/meta-ampere
AgeCommit message (Collapse)AuthorFilesLines
2021-11-05meta-ampere: mtjade: remove u-boot patchesThang Q. Nguyen4-319/+0
Remove Mt.Jade u-boot patches as we have other approach for them: 1. Patch 0001 is to set FANs to maximum speed in u-boot to avoid hardware damage in case of Host ON with high CPU usage. This can be resolved by setting FAN to maximum speed when the FAN service stop. 2. Patch 0002 is to enable I2C4 device access. With commit 0b32c1b40@linux, I2C4 enable is set via gpio-hog 3. Patch 0003 will be resolved later by supporting Aspeed watchdog with boot status. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I247f99ebac7c3ca10a2dc77f1909f5c0c519401d
2021-11-05meta-ampere: usbnet: implement using usb-ctrlThang Q. Nguyen8-136/+62
Change to implement virtual USB Ethernet using phosphor-misc's usb-ctrl. Tested: 1. Boot BMC to Linux. Login and check if usb0 ethernet interface exists. 2. Power ON the Host. Check if usb0 automatically sets its IP to 192.168.0.10 3. Restart the ampere-usbnet.service service. Check if no error happens. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I4de722a691a112db851b6dda0a7821b9f78b4d72
2021-11-04meta-ampere: fix shellcheck issuesThang Q. Nguyen14-262/+230
Fix all issues from the shellcheck checked on bash shells under meta-ampere. Tested: Verify the following features: 1. Power control (on,off, cycle, graceful shutdown, hard reset). 2. UART switching. 3. UEFI firmware update. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Idabf839b7521ecadb642230cc8bb3472c787002e
2021-11-04Partially revert "treewide: remove obmc-system-mgmt feature"Patrick Williams2-0/+3
The obmc-system-mgmt feature is currently used in the image to trigger inclusion of a virtual-provider which provides a number of packages many systems need. Partially revert the removal of this feature so that the outcome is: 1. The empty obmc-phosphor-sysd package is still removed. 2. By default the 'obmc-system-mgmt' feature is included, unless specifically exempted. 3. All EVB platforms remove the 'obmc-system-mgmt' feature since they have no system they are managing. This partially reverts commit 060ad3ff7fcc30aff78a9e504efee9d8fa0d4526. Tested: * Built `bletchley` and confirmed `packagegroup-fb-apps-system` and `entity-manager` are present. ``` entity-manager armv7ahf-vfpv4d16 0.1+git0+6bf41588ab-r0 packagegroup-fb-apps-system all 1.0-r1 ``` * Built `witherspoon` and confirmed `packagegroup-op-apps-system` and `pdbg` are present. ``` packagegroup-op-apps-system noarch 1.0 pdbg arm1176jzs 3.3 ``` * Ran `bitbake -p` on `evb-ast2600` to confirm the undefined `virtual-obmc-system-mgmt` is not being included in the image. Change-Id: I8b7804d5101cc84a2c57473b3f85672bf7767c67 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
2021-10-26treewide: remove obmc-system-mgmt featurePatrick Williams2-3/+0
Every machine layer treats 'system-management' as either part of a package-group or removes the feature. The sample implementation in meta-phosphor is a do-nothing shell script (and up until recently was a Python script). There appears to be no useful purpose to this feature as a stand-alone concept, so remove it. Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I20ca1fa8ff3cb01cac2d07d4ded84e0769e4514b
2021-10-26treewide: clean up use of OBMC_MACHINE_FEATURESPatrick Williams1-1/+1
Modify the machine meta-layer configs to remove the use of the OBMC_MACHINE_FEATURES indirection and favor the Yocto MACHINE_FEATURES variable instead. Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ifafb79e4e4c010e9476b9547cd4982f5b645060e
2021-10-26ampere-ipmi-oem: srcrev bump 1463f7013a..4c556399c7Andrew Geissler1-1/+1
Manojkiran Eda (1): Add OWNERS file Change-Id: I60701ca35fc2027fa31db97029d846f9efacc31c Signed-off-by: Andrew Geissler <openbmcbump-github@yahoo.com>
2021-10-16meta-ampere: mtjade: replace u-boot patches by featureThang Q. Nguyen5-729/+1
Enable phosphor-aspeed-spi-master-mode.inc and remove the u-boot patch that used for this feature. Also remove GPIO setting patches which the setting already implemented in the platform init package. Tested: on Mt.Jade platform with OCP plugged 1. Bind/unbind Host SPI-NOR and ensure no problem 2. Turn off Host, reboot BMC and check if Host SPI-NOR is probe successfully. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ie85166edca93b882868e1373696fbf664bee2ee4
2021-09-27meta-ampere: mtjade: update dependency for mac-updateThang Q. Nguyen2-5/+14
The ampere_update_mac service gets BMC MAC Address from FruDevice but currently uses Inventory.Manager as its dependency. This makes the service sometime not work correctly. This commit updates the dependency to EntityManager to fix the issue Tested: 1. Clear eth1addr variable. Do A/C power the BMC and ensure the BMC MAC is set to eth1addr 2. Clear eth1addr variable. Reboot BMC and ensure the BMC MAC is set to eth1addr Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I00c78222d487c72db5e6e06f8cc8b45cfde2f253
2021-09-27meta-ampere: mtjade: set power policy always-on by defaultThang Q. Nguyen1-0/+6
Ampere BMC specification requires the chassis power policy to always-on by default. However, it is set by default to always-off in OpenBMC. This commit updates the setting to always-on by default. Tested: 1. Do factory reset the BMC. 2. Check the power status $ root@mtjade:~# ipmitool chassis status Power Restore Policy : always-on Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I7ec478dc60faa5fe51a091599265ec807bab22e9
2021-09-25meta-ampere: enable ampere-ipmi-oem repoHieu Huynh2-0/+33
Adds the ampere-ipmi-oem.bb file to support ampere-ipmi-oem features. Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: I869a3e73573dd43103b52640ef3ac2d1912280dc
2021-09-25meta-ampere: mtjade: clean up unused codesThang Q. Nguyen4-33/+6
There are some redundant codes inside meta-mtjade: - ampere-reset-host-check@.service: no longer be used. - redundant :mtjade in phosphor-software-manager_%.bbappend - Incorrect GPIO function call in ampere_platform_init.sh This commit fixes the above issues. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Iadde88ba6472815556a2c0839c1e3e127c2a04d4
2021-09-23meta-ampere: mtjade: initialize GPIOsThang Q. Nguyen4-0/+95
Several GPIOs should be configured properly when booting BMC. Currently, these GPIOs are configured in u-boot. However, some must be configured in Linux. For example, the BMC_READY GPIO should be set only after BMC is ready to work. This commit introduce platform-init service which starts after BMC boots to configure GPIOs pins required by hardware design. Tested: 1. Do A/C power, check GPIO227 is set to 0. 2. Reboot BMC, check GPIO227 is set to 0. 3. Run gpioinfo and check GPIO directions Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ie0cfe171659ad740c6a25297f2fcce259870d43d
2021-09-23meta-ampere: mtjade: Remove BMC_READY from power controlThang Q. Nguyen1-7/+1
The BMC_READY pin is used to notify CPLD that BMC is running and it is ready to control the Host power. This pin should be always high after the BMC boots successful. This commit removes BMC_READY setting in the skeleton config so that is is not set low when powering off the Host. Tested: 1. Power off the host. Check if BMC_READY is still HIGH. Signed-off-by: Thu B Nguyen <tbnguyen@amperecomputing.com> Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Idc3a2b7ef92e6f8881d346f29920e184585911c3
2021-09-20meta-ampere: mtjade: set MAC Address from FruDeviceThang Q. Nguyen3-8/+13
FruDevice service is always running no matter if entity-manager is used or not. It scans for all FRU EEPROMs, parse and store information into dbus. This commit changes to get BMC MAC Address from FruDevice data instead of ipmi-fru-parser. Tested: 1. Clear environment in u-boot, boot BMC to Linux and check if the eth1addr variable is set with value from FRU. 2. Change BMC MAC address from FRU's Board Extra. Reboot BMC and check if the eth1addr variable is set with new BMC MAC Address Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I99b5d46c8a22b98402f749cdebd1c0aad3d6daf0
2021-09-20meta-ampere: enable smbios-mdrHieu Huynh2-0/+4
Enable support for smbios-mdr using IPMI BLOB transport protocol, and disable the cpuinfo feature. Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: I0ed7ff78ba3910ab60018e0b8f55b14a22fcbb2a
2021-09-17meta-ampere: fwupdate: detect Host FW to flashChanh Nguyen4-3/+116
Support a wrapper script to detect the Host firmware image by checking the ExtendedVersion field from the MANIFEST file to flash into the appropriate device components. The supported image type include: - ExtendedVersion=secondary: flash to secondary Host SPI-NOR - ExtendedVersion=scp-primary: flash to primary Boot EEPROM - ExtendedVersion=scp-secondary: flash to alternative Boot EEPROM - ExtendedVersion=fru: write to the FRU EEPROM. Tested: 1. Flash UEFI firmware into the primary Host SPI-NOR via WebUI 2. Flash UEFI firmware into the secondary Host SPI-NOR via WebUI Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com> Change-Id: I7dff2ca0f8b9de85c2cbac1a49d04b6e14721a03
2021-09-16treewide: fix comments for rpm/ipkPatrick Williams1-1/+1
Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Ia05891430c6c97a89b7bc8ba4558ae496866bf7d
2021-09-16bitbake: Use IPK packaging for rootfs assemblyAndrew Jeffery1-1/+1
bitbake offers a choice of DEB, RPM or IPK packaging. To a degree the choice is functionally arbitrary for image generation but control over the package format becomes important if we want to: 1. Include runtime package management functionality in the firmware image 2. Mess about with the packages on the build system With respect to 1 the IPK format and opkg (an ipk package manager) are designed for embedded systems[1] - by contrast to RPMs have heavier dependencies and a greater impact on the size and complexity of the firmware image. Regarding 2, the embedded nature and the need for opkg to work without much fuss leads to a lower configuration barrier by comparison to RPMs. With ipk it becomes possible to reuse the packages built during image preparation for core analysis without needing to generate an SDK: ``` $ export LD_LIBRARY_PATH=./tmp/work/x86_64-linux/opkg-native/*/recipe-sysroot-native/usr/lib $ MY_DEBUG_ROOT=tmp/rootfs-debug $ ./tmp/sysroots-components/x86_64/opkg-native/usr/bin/opkg \ -f ./tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-phosphor-image/*/opkg.conf \ -o $MY_DEBUG_ROOT \ update $ fakeroot ./tmp/sysroots-components/x86_64/opkg-native/usr/bin/opkg \ -f ./tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-phosphor-image/1.0-r0/opkg.conf \ -o $MY_DEBUG_ROOT \ install dbus-sensors dbus-sensors-dbg $ gdb-multiarch (gdb) set solib-absolute-prefix .../tmp/rootfs-debug (gdb) add-auto-load-safe-path .../tmp/rootfs-debug (gdb) file tmp/rootfs-debug/usr/bin/nvmesensor (gdb) core-file obmcdump_17_9597/core.nvmesensor.0.aae91b519d0e4e0e8bbe746e3f6cd25f.2779.9594000000 Core was generated by `/usr/bin/nvmesensor'. Program terminated with signal SIGABRT, Aborted. pthread_kill.c:45 45 pthread_kill.c: No such file or directory. (gdb) bt pthread_kill.c:45 ../sysdeps/posix/raise.c:26 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 /home/andrew/src/openbmc/openbmc/build/p10bmc/tmp/rootfs-debug/usr/lib/libstdc++.so.6 "xyz.openbmc_project.NVMeSensor", this=0x488f04) at /usr/include/sdbusplus/bus.hpp:234 ../../../../../../workspace/sources/dbus-sensors/src/NVMeSensorMain.cpp:159 (gdb) ``` This approach documented in the Poky Reference Manual: https://www.yoctoproject.org/docs/1.0/poky-ref-manual/poky-ref-manual.html#platdev-gdb-remotedebug-launch-gdb-inferiorbins Switch all machines to IPK to align the debugging experience with upstream's documentation and to facilitate efficient use of packaged software at runtime. [1] https://openwrt.org/docs/guide-user/additional-software/opkg Change-Id: I8ef526add2d7a6790de1b3eb3fb85cd39b864f23 Signed-off-by: Andrew Jeffery <andrew@aj.id.au> Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
2021-09-07meta-ampere: Disable unsecured TFTP firmware updateHieu Huynh1-1/+1
Disable this option to does not support TFTP firmware update as it is an unsecured protocol. Tested: 1. On Webui, Configuration -> Firmware. No more option TFTP server on Update firmware. Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: I8cb3285154b62ac2ee026485ad3f1d9d9586a016
2021-09-06meta-ampere: mtd-utils: fix flashcp offset apply failThang Q. Nguyen1-19/+17
The patch to support flashcp offset parameter is fail to apply because of new mtd-utils revision. This commit updates the patch to resolve the compilation warning on apply failure. Tested: 1. Compile Mt.Jade OpenBMC without warning about mtd-utils. 2. Flash EDKII firmware using ampere_flash_bios.sh and check Host boots successfully. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I9026ac5bafc07ee5eff7efdf7890d0eef2161c52
2021-09-02meta-phosphor: change systemd.bbclass to match upstream override syntaxPatrick Williams10-18/+18
Upstream bbclasses changed to typically use the `:${PN}` override syntax, including the SYSTEMD_ variables. Change our systemd.bbclass to do the same for consistency and perform a tree-wide variable replacement. Spot checked by building bletchley and witherspoon and checking some of the SYSTEMD_LINK directives on installed packages under qemu. Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I20a9dd809bff8af8759488734f80486c7228c6eb
2021-09-01meta-ampere: rsyslog: support IPMI SELThang Q. Nguyen1-1/+27
Enable rsyslog to save IPMI SEL event into /var/log/ipmi_sel. Tested: 1. Log IPMI SEL event using xyz.openbmc_project.Logging.IPMI 2. Check /var/log/ipmi_sel for the new entry root@mtjade:~# cat /var/log/ipmi_sel 2021-09-01T09:23:49.022943+00:00 1,c0,3ACD000FEB00000000000000,,, Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ic02a6166498251ed1e84a56e4847f465a069c872
2021-08-28meta-ampere: mtjade: add DCMI sensor configurationThang Q. Nguyen2-0/+33
Add DCMI sensor configuration for the Mt.Jade platform. Tested: 1. root@mtjade:~# ipmitool dcmi sensors Inlet: 2 temperature sensors found: Record ID 0x00f3: PSU0_TEMP | 26 degrees C | ok Record ID 0x00f4: PSU1_TEMP | 31 degrees C | ok Baseboard: 6 temperature sensors found: Record ID 0x0001: TS1_Temp | 31 degrees C | ok Record ID 0x0002: TS2_Temp | 32 degrees C | ok Record ID 0x0003: TS3_Temp | 31 degrees C | ok Record ID 0x0004: TS4_Temp | 30 degrees C | ok Record ID 0x0005: TS5_Temp | 35 degrees C | ok Record ID 0x0006: TS6_Temp | 32 degrees C | ok Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Iff8a94e523346347b7e449522ab5a12b841aee9e
2021-08-26meta-ampere: mtjade: configure SOL parametersThang Q. Nguyen2-0/+33
Since 29086950, phosphor-net-ipmid has updated the SOL parameters by obtaining the attribute values of the xyz.openbmc_project.Ipmi.SOL interface. It is necessary to enable SOL by default on Mt.Jade with correct parameters. Tested: 1. ipmitool -I lanplus -H x -U x -P x -C 17 raw sol info 2. ipmitool -I lanplus -H x -U x -P x -C 17 sol activate ipmitool -I lanplus -H x -U x -P x -C 17 sol deactivate Use the above commands to successfully activate and deactivate SOL 3. Activate IPMI SOL and boot Host to Linux 5 times without disconnected. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I8e4d0e06eaa9c8995cde27f17f0d0d274b553f0d
2021-08-26meta-ampere: mtjade: hwmon: fix missing Yocto syntax changeThang Q. Nguyen1-1/+1
Fix missing Yocto syntax change in phosphor-hwmon append file which make sensor configured not work correctly. Tested: 1. Run "ipmitool sdr list" and check all sensors reported correctly Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ia4653180ac1a66dac13ee6d7edf5c34a106967e9
2021-08-24treewide: remove gategarth from layer-supportPatrick Williams2-2/+2
We've typically kept these LAYERSERIES_COMPAT to 2 releases: the current and the upcoming. Remove 'gatesgarth' is it is now 2 releases back. Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I5e812a94fed1738898af75c0fdee81996a5bbf20
2021-08-13meta-ampere: fix compilation error with latest YoctoThang Q. Nguyen16-28/+30
Make the following changes to fix compilation errors: 1. Add honister to LAYERSERIES_COMPAT 2. Increase CONF_VERSION to 2. 3. Fix mistake on previous change on Yocto syntax update. Tested: 1. Compile OpenBMC for Mt.Jade without error. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I5ac3f568d776109955759fab78844b1d38a51af1
2021-08-07meta-ampere: Cleanup for Yocto override syntax changeThang Q. Nguyen36-109/+109
Run convert-overrides.py meta-ampere and update missing changes as below: - Change all _mtjade to :mtjade - Change all _${PN} to :${PN} Tested: 1. Check compilation without problem. 2. Check basic functions like switch UART mux, power control. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I42038b2a98ed1951d6c770bdf49f5fc440f8163e
2021-08-06meta-ampere: mtjade: fix Mt.Jade recipes not enabledThang Q. Nguyen1-4/+1
Using IMAGE_INSTALL in mtjade.conf makes other Ampere recipes not included in the build. This commit fixes the issue by enabling the mtd-utils in OBMC_IMAGE_EXTRA_INSTALL_append instead. Tested: 1. Check if all Ampere services and scripts available. 2. Check power control operations Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I17293ba520c05a7b5a438767c790f00220156d3f
2021-08-04meta-ampere: mtjade: add mtjade-gpio-config packageThuBaNguyen7-1/+118
The OCP module in Mt.Jade platform supports the GPIO pins to set the power state. The SPI0 module also supports the GPIO pins to config SPI mode. These gpio pins have to be set to the right states before power off/on. The mtjade-gpio-config package will support that. Tested: 1. Power off/on the host. 2. The OCP and SPI0 gpio pins should be in the corrected states. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: I46bca50222b0428f73aa9c05003f650f6ec0cc0b
2021-08-04meta-ampere: power control: correct the scriptThuBaNguyen1-17/+1
The power functions are failed to work. There is one mistake in merging ampere_power_utils.sh script. This commit fixes the mistake. Tested: 1. Power off the host when it is on. 2. The host state should be changed to off. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: Iaa253e4b8d0f645a2b7097501e8c602d693cb37a
2021-08-04meta-ampere: host-check: overide phosphor-reset-host-checkThuBaNguyen2-0/+26
When BMC boots, phosphor-host-check uses the software interfaces(IPMI inband Hearbeat command or PLDM interface) to verify the host state and creates the host on indicator file. Ampere Altra SoCs do not support those software interfaces. They use the GPIO interface. GPIO pin S0_FW_BOOT_OK go high when the host is on. This commit appends ampere-reset-host-check@.service to phosphor-state-manager This service will replaces the role of phosphor-reset-host-check@.service. Tested: 1. Boot up BMC with the host is off/on. 2. Verify the CurrentHostState. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: Ie4f73538266fff7d8c5fd40b437ffebc82cb12c5
2021-08-04meta-ampere: host-check: verify the host stateThuBaNguyen5-0/+100
When phosphor-state-manager handles the power action to turn on the host, phosphor-state-manager does not use the software interfaces to verify the host state. It set the host state to running after all of required services of the power action target are done. The power on watchdog is used to verify the host state and handle the failure in the host state changing. But Mt.Jade platforms do not handle power on watchdog. This causes the CurrentHostState dbus property is Running before the host is ready. In Mt.Jade platform, the SCP drives S0_FW_BOOT_OK to high when the host is already on. This GPIO can be used to identify the host state. One service should be added to the required list. This service checks the host state in power on and triggers obmc-host-quiesce@%i.target when the host is failed to boot. ampere-host-check package adds ampere-host-on-host-check@.service for that purpose. Tested: 1. Boot up BMC with the host is off/on. Check CurrentHostState. 2. Call Ipmitool power off/on. Check the CurrentHostState. 3. Call Ipmitool chassis power off/on. Check the CurrentHostState. 4. Call Ipmitool power cycle. Check the CurrentHostState. 5. Call Ipmitool chassis power cycle. Check the CurrentHostState. 6. Power off the host. Set power policty to Always-on. AC power. The host should be on. And CurrentHostState should be Running. 7. Power on the host. Set power policty to Always-off. AC power. The host should be off. And CurrentHostState should be Off. Change-Id: I9b0b346883a5f0203bf078453065c18ae4603311 Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com>
2021-08-04meta-ampere: power control: restructure source codeThuBaNguyen10-27/+88
ampere-hostctrl package includes the generic codes and the platform specific codes. The generic sources are applied for all of the Ampere platforms, they are the service files and the scripts to setting the GPIO pins. The platform specific sources are the GPIO pin config file and the gpio monitor config files. This commit moves the platform specific files to the platform code. Tested: 1. Do the power control actions use ipmitool, BMC web and Redfish. 2. Make sure the server states are changed as expected. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: Ic0e261109f7a5dfaf38c883bff0afedab763a0b6
2021-08-04meta-ampere: power control: refactor host power controlThuBaNguyen12-131/+69
Refactor the Mt.Jade Host power control operations to support Altra CPU following the Altra SoC BMC Interface specification which still satisfying the OpenBMC power control framework. Tested: check the below cases and ensure Host state report correctly: 1. Run "reboot" from Host Linux. Check the Host is graceful shutdown, then SYS_RESET is asserted and the Host is booted. 2. Run "shutdown" from Host Linux. Check the Host is graceful shutdown then the chassis power is turned OFF. 3. Run "ipmitool chassis power soft". Check the Host is graceful shutdown 4. Execute Redfish GracefulShutdown. Check the Host is graceful shutdown then the chassis power is turned OFF. 5. Execute Redfish GracefulRestart. Check the Host is graceful shutdown then turned ON. 6. Check other IPMI chassis power and Redfish Reset actions work. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: I3a9716f37d7e80bdc1a1d0422e561c8fc51ad040
2021-08-04meta-ampere: mtjade: flash UEFI firmware at 4MB offsetThang Q. Nguyen4-13/+157
UEFI firmware for Ampere Altra-based platform starts at offset 0x400000 but currently the firmware image is flashed start at offset 0. This makes the Host fail to boot. This commit supports offset option for the mtd-util's flashcp utility and update the script to flash UEFI firmware starting at offset 0x400000. Tested: 1. Turn on the Host. 2. Flash UEFI firmware. Wait for the flash complete and check if Host can boot successfully. 4. Turn off the Host. 5. Flash UEFI firmware. Wait for the flash complete. 6. Turn on the Host and check if Host can boot successfully. Signed-off-by: Tung Nguyen <tung.nguyen@amperecomputing.com> Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I0d48bfd0a7b7350b46a98bf10fe4de3887f09f02
2021-08-04meta-ampere: power control: refactor power soft/off functionsThuBaNguyen8-59/+79
The current ampere-hostctl package removes the power off/on services of phosphor-state-manager and uses Ampere services. This solution is not correct. Ampere platform should use power control functions of phosphor-state-manager. And only appends or overides the default services by Ampere's services if need. By default, to handle power soft action, phosphor-state-manager will trigger obmc-host-shutdown@0.target. This target then call xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service to request OS shutdown. When the host OS shutdown is already done, the target will trigger obmc-chassis-poweroff@0.target to turn off the chassis. The default xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service uses Ipmi inband to communicate with the host. It is different with Ampere Mt.Jade platform. We use the GPIO pin SHD_REQ to request shutdown the host OS. The host will trigger SHD_ACK when shutdown is done. So *.Ipmi.Internal.SoftPowerOff.service will be overide by Ampere service named ampere.*.Ipmi.Internal.SoftPowerOff.service. This service will trigger SHD_REQ pin and wait for SHD_ACK before start obmc-chassis-poweroff@0.target. This commit removes ampere-chassis-poweroff, ampere-host-shutdown serives which handle power off/soft actions and restore phosphor-state-manager's services. It also supports ampere.xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service which will overide xyz.openbmc_project.Ipmi.Internal.SoftPowerOff.service. Tested: 1. Create "power soft" actions use ipmitool, redfish and BMC web. 2. Make sure the power order will be shutdown the host then power of the chassis. 3. Create "power off" actions use ipmitool, redfish and BMC web. 4. Make sure the power action will be power off the chassis. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: Ibc0dc8c62408e8282520c9b70e41ab75c10137f6
2021-08-04meta-ampere: mtjade: disable the poweron watchdogThuBaNguyen1-0/+9
Ampere Mt.Jade power control involves different action during the course of action which does not involve rebooting the Host. Thus disable the use of Host Power-On watchdog. Tested: 1. Power on host. 2. In bmc console call "journalctl -f". 3. "ipmitool power reset" make sure there are no phosphor-watchdog messages. Signed-off-by: ThuBaNguyen <thu@os.amperecomputing.com> Change-Id: Iaedd120f203b4222bf57e5fbdc7be84cd22d2e2e
2021-07-30meta-ampere: phosphor-sel-logger: Use packageconfigWilliam A. Kennington III1-2/+1
This makes it possible for us to change out build specific settings. Change-Id: I862366d8efa97c4c3181b842662bf28dd5bec270 Signed-off-by: William A. Kennington III <wak@google.com>
2021-07-28meta-ampere: network: enable nic-ethtoolHieu Huynh1-0/+1
The SpeedMbds of ethernet interface is implemented in getInterfaceInfo() from the phosphor-networkd repo. It is disabled by NIC_SUPPORTS_ETHTOOL conditional compilation. The default compile mode is to omit the getInterfaceInfo() which causes the SpeedMbps not set. This commit supports enable the NIC_SUPPORTS_ETHTOOL to report correct speed. Tested: 1.Get SpeedMbps via rest: $ curl -XGET --user root:0penBmc -H "Content-Type: application/json" \ -H "If-match: *" --insecure \ https://10.38.14.2/redfish/v1/Managers/bmc/EthernetInterfaces/eth1 \ grep | "SpeedMbps" 2.Get speed of eth1 interface on BMC console $ cat /sys/class/net/eth1/speed The value getting from openbmc#1 and openbmc#2 match together. Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: I57047151fc4eea08c857b95c0770d89ba95f9bc7
2021-07-27meta-ampere: mtjade: enable IPMI on eth1Thang Q. Nguyen1-0/+7
NCSI was enabled in Mt.Jade device tree. This makes the RGMII port is now eth1. However, just eth0 is enabled for IPMI OOB so running IPMI OOB command is fail with RGMII's IP address. This commit sets eth1 as default Ethernet port for IPMI OOB command and set eth0 as alternative IPMI OOB port. Tested: 1. Run IPMI commands from client with RGMII's IP address $ ipmitool -U root -P 0penBmc -C 17 -I lanplus -H 10.38.64.72 power status Chassis Power is on Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Iba65221b8cab99486d1f35026e0cf593cce4a8c9
2021-07-20treewide: inventory: switch ChassisType to future enum valuePatrick Williams1-1/+1
Change Ie1a7c389edb6b7a048836a49283ceb62de51bba5 will be transitioning the 'Type' property in Inventory.Item.Chassis to an enumeration. In order to avoid crashing in PIM we need these default values in the starting YAML to be fully-qualified enumeration names that will match the values which will start in Ie1a7c. This code is safe to merge as is without any PDI or PIM changes. Prior to the PDI change, we must make a change to PIM that allows conversion automatic from string->enum, leveraging library interfaces available in sdbusplus. These will be submitted independently. I checked the codebase for usage of this string. It appears that the value is currently, effectively, write-only. There is code in bmcweb that fills in the equivalent Redfish value but currently just hard-codes the string 'RackMount'. Tested: Booted Witherspoon in a QEMU model with this change and proposed changes to sdbusplus + PIM. PIM no longer coredumps with the PDI change and yields an expected persistence file: ``` $ pwd /var/lib/phosphor-inventory-manager/xyz/openbmc_project/inventory/system/chassis $ cat xyz.openbmc_project.Inventory.Item.Chassis { "value0": { "cereal_class_version": 2, "Type": 3 } } ``` Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: Icaf9447f31ccdd945cdf74b3e017682e4aed686f
2021-07-06meta-ampere: mtjade: add total_power sensorThang Q. Nguyen3-1/+47
Add total_power sensor calculated by sum of PSU0_POUTPUT and PSU1_POUTPUT. Tested: 1. Check if total_power is present in WebUI and Redfish and its value is sum of PSU0_POUTPUT and PSU1_POUTPUT. 2. Check total_power from IPMI root@mtjade:~# ipmitool sdr list | grep total_power total_power | 648 Watts | ok Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I304e7c9328f1f91f6f358f0e8472a107bf5479a0
2021-06-25meta-ampere: mtjade: support IPMI sensor reportThang Q. Nguyen3-0/+404
Add ipmi-sensor Yaml file to configure IPMI sensor report following Mt.Jade SDR Definition document. Tested: 1. Check sensor report using IPMI sdr and sensor commands: $ ipmitool sdr list $ ipmitool sensor list Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ib61d459087d3cf2711b2dd19a64c69d91e39861f
2021-06-23meta-ampere: mtjade: update Redfish PSU sensorsThang Q. Nguyen1-15/+84
Add more PSU sensors to report in Redfish. Tested: 1. Check all PSU sensors displayed in WebUI and Redfish Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ie4236ed8222313eaf99937487c67fc37401217ae
2021-06-23meta-ampere: mtjade: remove dummy sensor thresholdThang Q. Nguyen12-114/+22
It is no longer to require all LC, UC, LNC and UNC threshold to make sensor threshold applied. This commit removes all dummy threshold added before. Tested: 1. Enter WebUI -> Health -> Sensors and check threshold for all sensors. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ib0b5c87d21eb40ac56bffe222f997ce5605be108
2021-06-13meta-ampere: mtjade: support PSU present detection via GPIOChanh Nguyen5-0/+27
It checks GPIO key for powersupply presence, and creates the inventory object. Tested: 1. Plug the PSU, check busctl command for Present attribute 2. Plug out the PSU, check busctl command for Present attribute $ busctl --no-pager introspect xyz.openbmc_project.Inventory.Manager /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply0 Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com> Change-Id: I4520d537d425249debe5c0d8c6bf8b0f6e3c5b34
2021-06-13meta-ampere: Support software workaround for PSU redundancy issueChanh Nguyen7-1/+128
When system only uses single PSU ( ex : PSU1 ) to power ON normal 12V, HSC2 will be trigged Fault event (FET health). At this time, plugging in PSU2 in system, the PSU2 won't deliver power to +12V_MB because HSC2 is protected by Fault event. Due to HSC2 protected, the PSU redundancy mechanism can't be created. Once PSU1 is plugged out at this moment, system will crash ( reset ) because +12V_MB dropped. Support detecting PSU plug event and reset the Hot-Swap feature by disabling and then enabling again it through PMBUS command to clear the event. Tested: 1. Plug only PSU1 to power ON system (12V) 2. Wait until host is booted, check POUT: $ ipmitool sdr | grep "POUT" PSU1_POUT | 112 Watts | ok PSU2_POUT | 0 Watts | ok 3. Plug in PSU2 in system, check POUT: $ ipmitool sdr | grep "POUT" PSU1_POUT | 64 Watts | ok PSU2_POUT | 48 Watts | ok 4. Unplug AC power PSU1, check POUT: $ ipmitool sdr | grep "POUT" PSU1_POUT | 0 Watts | ok PSU2_POUT | 128 Watts | ok 5. Plug in AC power PSU1, check POUT: $ ipmitool sdr | grep "POUT" PSU1_POUT | 80 Watts | ok PSU2_POUT | 64 Watts | ok 6. Repeat 1. to 5. with PSU2. Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com> Change-Id: Ia6e00cd7b08de48059f2450e7eaf108418d0a026
2021-06-08meta-ampere: mtjade: change to use 64MB layoutThang Q. Nguyen1-0/+7
As more features added to Mt.Jade OpenBMC, 32MB is not enough anymore. In addition, the Mt.Jade has 64MB SPI-NOR for BMC firmware. This commit changes to use 64MB BMC layout to have more room for incoming features. Tested: 1. Compile the firmware, flash to Mt.Jade BMC from u-boot and check if it can boot to Linux successfully. 2. Compile another image and check if firmware update works fine. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ifa3e91a630909ffde39da5bb0ce55d2ad123100d