summaryrefslogtreecommitdiff
path: root/meta-ampere/meta-common
AgeCommit message (Collapse)AuthorFilesLines
2022-10-06meta-ampere: support ampere power/host already on targetsThu Nguyen5-0/+48
There are no targets to identity the already on of power state and the already running of host state. This commit adds those targets. The targets will be the check points to start ampere services such as drivers binder, hang detection... obmc-power-already-on@.target will be always activated when chassis-power-control is asserted. It will be deactivated before deasserting chassis-power-control. obmc-host-already-on@.target will be activated when the host%i-ready is triggered. The target will be deactivated before turning off/reseting the host. Tested: 1. The targets should be activated/deactivated as designing. Signed-off-by: Thu Nguyen <thu@os.amperecomputing.com> Change-Id: I09a8b94d8043f31f7cee83b29765f7e2c7a5c35a
2022-08-16ampere-ipmi-oem: srcrev bump 14b2feea99..db24557c20Andrew Geissler1-1/+1
Thang Q. Nguyen (1): MAINTAINERS: remove file Change-Id: I8d759bba932e9727c4baa0bf914e7e553ef12d24 Signed-off-by: Andrew Geissler <openbmcbump-github@yahoo.com>
2022-08-09meta-ampere: ampere-ipmi-oem: convert cmake to mesonHieu Huynh1-4/+2
Change build option from cmake to meson as the ampere-ipmi-oem repository already changed to meson build. Tested: - Support Get System Interface Capabilities command - Support Clear Message Flags command - Support IPMI Sync RTC time to BMC command Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: Ibf9036145069f5867849222c9925720f2c19e00f
2022-08-05ampere-ipmi-oem: srcrev bump 90a4fb85e8..14b2feea99Andrew Geissler1-1/+1
Thang Q. Nguyen (1): OWNERS: switch 'matches' to 'matchers' Change-Id: I36f1b6afb4dc3f569162672028f2506451f26091 Signed-off-by: Andrew Geissler <openbmcbump-github@yahoo.com>
2022-08-05ampere-ipmi-oem: srcrev bump 4c556399c7..90a4fb85e8Andrew Geissler1-1/+1
Hieu Huynh (1): Convert project to meson and C++20 Change-Id: If7bd84c84c24774f4f310119e6178d987776ae85 Signed-off-by: Andrew Geissler <openbmcbump-github@yahoo.com>
2022-07-15meta-ampere: flash: enable dual-imageThang Q. Nguyen1-1/+1
Ampere reference platforms all have 2 SPI-NOR for BMC. This commit enables static-dual-image feature inside phosphor-software-manager so that the WebUI reports BMC revision for both BMC images. Tested: 1. Flash 2 different BMC firmware images with different versions into 2 SPI-NOR devices. 2. Check on WebUI for BMC Firmware information for correct version reported. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Iee585ed5089d73e5160d94122f160b3d18a122d5
2022-07-14meta-ampere: mac-update: validate MAC AddressThang Q. Nguyen3-4/+95
All Ampere developed platforms have BMC MAC Address specified in the FRU EEPROM at Board Extra. This commit moves the script to get MAC Address from FRU EEPROM to common folder so that later platforms can use it. It also adds checking for valid MAC Address before using. Tested: 1. Update BMC MAC Address using IPMI OEM Write BMC MAC Address command. Reboot BMC and ensure the new MAC is used. 2. Write the FRU with invalid value at Board Extra. Reboot BMC and check for BMC still uses old MAC Address Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I29a44a9b4965bea1b6d8d7d55536d25bb0dd924c
2022-07-08obmc-phosphor-button: switch to meson buildGeorge Liu1-1/+1
George Liu (5): meson: Add subprojects file meson: Add meson build logging: switch to lg2 meson: Update LONG_PRESS_TIME_MS Fix meson build Signed-off-by: George Liu <liuxiwei@inspur.com> Change-Id: I4facd30b1c25e3b1bf60190ed5477ea75ee0c2b5
2022-06-22meta-ampere: state-manager: disable host boot retryThu Ba Nguyen1-1/+4
Ampere system supports host EEPROM failover which switches boot EEPROM from main to secondary EEPROM when the system is failed to boot. This causes trying to reboot the system after the first failure of power on is unnecessary. This commit changes boot retry from 3 to 1. Tested: 1. Make sure BMC does not retry to power on the host after first failure. Signed-off-by: Thu Ba Nguyen <tbnguyen@amperecomputing.com> Change-Id: I3bfdabc7ab968a9b673ffec9ae5dc208966a548a
2022-06-21meta-ampere: mtjade: enable button with long press 5sThang Q. Nguyen1-0/+1
Enable Power and Reset button support with configuring long press time for Power button is 5s. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I940f4549b9a1c50ebc96dc6a063cea3bad95daa8
2022-06-03meta-ampere: refine code structureThang Q. Nguyen14-40/+90
Restructure Ampere recipes to better reuse existing resource for multiple platforms later. Tested: 1. Compile without error. 2. Run regression test for related features without error. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I5d034d21273b99be651f20dc2eb5549c1092f079
2022-05-11meta-ampere: adjust phosphor-ipmi-host PACKAGECONFIGPatrick Williams1-1/+1
The bbappend was previously defining a PACKAGECONFIG but that PACKAGECONFIG was already defined in the base recipe. I suspect the intention was to _enable_ the existing PACKAGECONFIG. Adjust accordingly. Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I9f88451454fc1de8b6bb43caa3657c65cafd3b0d
2022-03-18meta-ampere: remove creating host@%i-on fileThang Tran2-4/+0
The /run/openbmc/host@0-on file is created/removed by phosphor-state-manager, platform should not touch to this file. Host-on-host-check service is called by obmc-host-startmin target, it is not depended on the /run/openbmc/host@0-on file. This file is only used during BMC booting phase. Tested: 1. Turn off/on the host 100 times. 2. Check the sel log. ipmitool sel list 3. BMC does not display any log relate to over threshold. 4. Check the host-on-check service is called before host'state is running Signed-off-by: Thang Tran <thuutran@amperecomputing.com> Change-Id: I1ec90a00a7685007e31b89876ff2a5d57191fc53
2022-03-18meta-ampere: move IPMI power soft to commonThang Q. Nguyen3-0/+39
Ampere processor uses ACPI graceful shutdown which is triggered from BMC via a GPIO pin named SHD_REQ. This feature is common for all Ampere platforms. This commit moves the configuration for IPMI power soft to meta-ampere/meta-common so other platforms can use without changes Tested: 1. Do A/C power the system and boot the Host to OS. 2. Run ipmitool chassis power soft 3. Check if the Host is graceful shutdown. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I8a3425c859c4be077075e6a51f12d50283eacdf7
2022-03-17meta-ampere: fix parameters in power control servicesThang Tran1-0/+1
When HOST is turned on/off, ampere-gpio-poweroff/on@.service is called. They should not call op-wait-power-off/on@.service, just wait for them. Remove redundant "Requires" and "Wants" in service files. Add timeout to obmc-flash-host-bios@.service to avoid blocking power control. Tested: 1. Turn on/off the HOST power. 2. Check journalctl log to ensure that op-wait-power-off/on@.service are not called by ampere-gpio-poweroff/on@.service. Signed-off-by: Thang Tran <thuutran@amperecomputing.com> Change-Id: If9403891b2e57c73c4fd8e0ea1b24314b7b0c3f8
2022-03-13meta-ampere: Support Ampere password policyHieu Huynh2-0/+34
Implement Ampere password policy as followings: - Password must between 9-20 characters, 1 lower case, 1 upper case, one digit and 1 special character. - No more than 3 consecutive identical characters. Signed-off-by: Hieu Huynh <hieuh@os.amperecomputing.com> Change-Id: I20134f51e06ef0aabeddfc4d1560acfa7483deab
2022-03-01meta-ampere: use watchdog status to check A/C powerThang Q. Nguyen2-6/+0
With the removal of u-boot patch that adds resetreason to /proc/cmdline no information to check if the BMC is booted from A/C power or cold reboot. This commit removes the dependency of resetreason on the phosphor-discover-system-state application and updates the A/C power check in the ampere_platform_init.sh script to use information from /sys/class/watchdog/watchdog0/bootstatus. Tested: 1. Check power restore policy feature work well. 2. Check ampere_platform_init.sh works properly in both A/C and D/C power. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I4f2e7a241f9ddebf21b2b8c021b9ce87a1c8b26c
2022-02-19meta-ampere: enable Host check GPIO interfaceThang Q. Nguyen5-6/+61
Enable host-gpios option in phosphor-state-manager to support Host state checking when BMC reboots. Also updateampere_host_check.sh to check Host State via GPIO interface Tested: 1. Define host0-ready into device tree. 2. Power On the Host. Reboot BMC, then check if CurrentHostState shows Running. 3. Power OFF the Host. Reboot BMC, then check if CurrentHostState shows Off. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Signed-off-by: Thang Tran <thuutran@amperecomputing.com> Change-Id: I0331dfa340eb5bba201475ab9cada42e0946c8f8
2022-02-18meta-ampere: ipmi-oem: add missing pkgconfig dependencyThang Q. Nguyen1-1/+1
Add inherit contrain pkgconfig on the ampere-ipmi-oem application so that it can be compiled successfully. Tested: 1. Compile Mt.Jade OpenBMC without error. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I62c93fbd6f9789e03a961d03c2801e04237b302b
2022-01-25treewide: fix up github SRC_URIsPatrick Williams1-1/+1
Per [1], Yocto is going to start requiring both branch names and `protocol=https` in GitHub SRC_URI variables. Ran the upstream tool to automatically fix our URIs. 1. https://git.yoctoproject.org/poky/tree/documentation/migration-guides/migration-3.5.rst#n10 Signed-off-by: Patrick Williams <patrick@stwcx.xyz> Change-Id: I5f9619f7ff707050b469ae74c8aa16846568c5e4
2021-12-30Revert "meta-ampere: mtjade: support PSU present detection via GPIO"Thang Q. Nguyen1-1/+0
By replacing phosphor-hwmon by dbus-sensor, PSU presence detection via GPIO does not work anymore and it causes confiction with dbus-sensor's PSUSensor. Revert the commit to avoid the confliction Change-Id: Idfd54325c122921a3c5df062bce1b6909b643999 Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com>
2021-12-30meta-ampere: redfish: remove Chassis chassis instanceThang Q. Nguyen2-0/+33
The chassis instance when implementing sensor monitor using dbus-sensor/entity-manager is /redfish/v1/Chassis/<name> where <name> is defined from entity-manager configuration. This commit removes /redfish/v1/Chassis/chassis which is redundant and make incorrect link from other schema like ComputerSystem and BMC Manager. Tested: 1. Check no /redfish/v1/Chassis/chassis available. 2. Check all sensors are available in /redfish/v1/Chassis/Mt_Jade. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: I334a94bb65c3caa49d0bcb6ab03a42f7999728d5
2021-12-17meta-ampere: mtjade: Add more Host firmware supportThang Q. Nguyen2-144/+0
Add support SCP firmware update with checking if the ampere_fru_upgrade available to execute the update. This commit also supports 2nd Host SPI-NOR update ability. Tested: 1. Manually copy ampere_fru_upgrade to the /usr/sbin folder and run SCP firmware update via Redfish. 2. Flash UEFI firmware update on the secondary Host SPI-NOR. Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ic335ee2d21625239c3df1937ed5333708233845b
2021-12-16meta-ampere: mtjade: fru: use dynamic sensorsThang Q. Nguyen1-0/+9
Change to use dynamic sensors for FRU support to take advantage of IPMI fru read/write commands. Tested: 1. Check FRU reading $ ipmitool fru print 2. Write fru.bin into FRU EEPROM Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Signed-off-by: Thang Tran <thuutran@amperecomputing.com> Change-Id: I0d0b52ae7b0fd301a14d0d2894268637d867a5b8
2021-11-05meta-ampere: usbnet: implement using usb-ctrlThang Q. Nguyen7-136/+61
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. Nguyen1-20/+17
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 Williams1-0/+2
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 Williams1-2/+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-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-09-25meta-ampere: enable ampere-ipmi-oem repoHieu Huynh1-0/+32
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. Nguyen3-29/+2
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-20meta-ampere: mtjade: set MAC Address from FruDeviceThang Q. Nguyen3-81/+0
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-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 Williams2-3/+3
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-13meta-ampere: fix compilation error with latest YoctoThang Q. Nguyen2-3/+5
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. Nguyen11-38/+38
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-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 stateThuBaNguyen2-0/+21
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 codeThuBaNguyen5-183/+3
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. Nguyen2-0/+146
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 functionsThuBaNguyen5-59/+51
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-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-06-13meta-ampere: mtjade: support PSU present detection via GPIOChanh Nguyen1-0/+1
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-02-09meta-ampere: Set BMC MAC Address from FRU inventoryThang Q. Nguyen3-0/+81
Support to get BMC MAC address from FRU over the FRU inventory information (/xyz/openbmc_project/inventory/system/chassis/motherboard) and update to the eth0 Ethernet interface and set the eth1addr u-boot variable. Tested: 1. Boot to u-boot, clear the eth1addr variable, save and reboot. 2. Boot to Linux: - Check if the eth0 interface uses the MAC address in FRU. root@mtjade:~# ip addr show dev eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 70:e2:84:86:76:ba brd ff:ff:ff:ff:ff:ff - Check if the eth1addr u-boot variable uses the MAC address in FRU root@mtjade:~# fw_printenv eth1addr eth1addr=70:E2:84:86:76:BA Signed-off-by: Chanh Nguyen <chanh@os.amperecomputing.com> Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com> Change-Id: Ifb7eefbb17257545d026005f859d37ef562289b7