Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Delta: add agc032a openBMC build #165

Open
wants to merge 503 commits into
base: helium
Choose a base branch
from
Open

Conversation

zzzoie
Copy link
Contributor

@zzzoie zzzoie commented Jun 22, 2021

Summary: add agc032a meta layer into meta-delta layer

@facebook-github-bot
Copy link
Contributor

@benwei13 has imported this pull request. If you are a Facebook employee, you can view this diff on Phabricator.

joancaneus and others added 25 commits November 9, 2021 15:51
Summary:
The test_system_airflow_config.py CIT test is failing because the reference PIM types are not being properly interpreted from the output of the `kv get` command. The cause is a [change](https://github.com/facebookexternal/openbmc.arista/commit/e4020cc9a3c8b3519d07313df5315d46373516f0) in the kv util from this past weekend, which adds a newline to the output of the `kv get` command.

## Testing
```
root@bmc-oob:/usr/local/bin/tests2# python cit_runner.py --platform elbert -r tests.elbert.test_system_airflow_config
test_system_airflow_config (tests.elbert.test_system_airflow_config.SystemAirflowConfigTest) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.259s

OK
```

Pull Request resolved: https://github.com/facebookexternal/openbmc.arista/pull/227

Reviewed By: binhuang00

fbshipit-source-id: 2ed45b9134
…o add missing accountrole skeleton endpoint into account service

Summary: Fix redfish validator tests by importing a reasonable $metadata schema from bmcweb

Test Plan:
```
../tools/rest_api/run_rest_on_oob fboss8845005-oob.snc1
```
Verify by executing validator:
```
buck run //neteng/netcastle:netcastle -- --team openbmcfb --platform wedge --skip-build --skip-upgrade  --regex "test_redfish_schemas.*"  --basset-query openbmc:wedge40:fboss8845005.snc1
```
RESULTS:

```
[  PASSED] test_redfish_schemas.RedfishValidator.test_redfish_schemas (4 mins 7.883 secs)
================================================================================

Ran 1 tests in 5 mins 29.396 secs
[   ERROR] 0
[  FAILED] 0
[ TIMEOUT] 0
[  PASSED] 1
[ SKIPPED] 0
[ OMITTED] 0
[ RETRIED] 0
```

Reviewed By: jerrt2003

fbshipit-source-id: f2815f5251
Summary:
Adding support of regexp paths in ACLs. It is required to control access of Actions likes:
```
/redfish/v1/Systems/server4/Bios/FirmwareDumps/3543808e-2010-4285-977a-b41d1199a811
```
where `server4` and `3543808e-2010-4285-977a-b41d1199a811` are variables, therefore:
```
r'^/redfish/v1/Systems/server\d+/Bios/FirmwareDumps(/[^/]+)?$':{'POST':['attestation'], 'DELETE':['attestation']}
```

Since we cannot use map to find appropriate regexp by path, we have to use a slice, instead. Which creates performance risks, therefore we adding a LRU cache:
```
        functools.lru_cache(maxsize=1024)
        def get(self, method: str, path: str) -> List[str]:
```

Test Plan:
```
root@sled2403-oob:~# cat /usr/local/fbpackages/rest-api/acl_config.py
RULES = {'/api/sys/fscd_sensor_data': {'POST': ['MANAGED_HOST_ANY']}, '/api/attestation/tpm': {'POST': ['attestation']}, '/api/sys/modbus/cmd': {'POST': ['MANAGED_HOST_ANY', 'POST:api.sys.modbus.cmd']}}

RULES_REGEXP={
r'^/redfish/v1/Systems/server\d+/Bios/FirmwareDumps(/[^/]+)?$':{'POST':['attestation'], 'DELETE':['attestation']}
}
```

And it works:
```
[xaionaro@devvm3590.ftw0 ~/fbcode] HTTP_PROXY= HTTPS_PROXY= GO111MODULE=off go run ./openbmc/experimental/cli/cmd/openbmc 312681353 bios_firmware_dump /tmp/test6.fd
unable to issue a job to start firmware dumping process: unable to create dump: 507: already have 1 images, while the limit is 1
```
Code is 507 because the limit of dumps is already reached, so this is expected.

Server logs:
```
AUTH:Authorized Identity(user='user:xaionaro', host=None) for [POST]/redfish/v1/Systems/server4/Bios/FirmwareDumps/28be24e7-0ab4-4a28-9fce-00235e55c450
2401:db00:eef0:1120:3520:0:1c05:e7c6 - - [05/Oct/2021:14:06:20 +0000] "POST /redfish/v1/Systems/server4/Bios/FirmwareDumps/28be24e7-0ab4-4a28-9fce-00235e55c450 HTTP/1.1" 507 231 405329us "Identity(user='user:xaionaro', host=None)" "-" "gofish/1.0"
```

If I replace `redfish` with `rdfish` (to make a wrong path) in the rule, then:
```
[xaionaro@devvm3590.ftw0 ~/fbcode] HTTP_PROXY= HTTPS_PROXY= GO111MODULE=off go run ./openbmc/experimental/cli/cmd/openbmc 312681353 bios_firmware_dump /tmp/test6.fd
unable to issue a job to start firmware dumping process: unable to create dump: 403: 403: Forbidden
```
```
AUTH:Missing acl config for non-get[POST] endpoint /redfish/v1/Systems/server4/Bios/FirmwareDumps/82b52e13-6306-40d0-9760-c66a85a93fea. Blocking access
2401:db00:eef0:1120:3520:0:1c05:e7c6 - - [05/Oct/2021:14:13:25 +0000] "POST /redfish/v1/Systems/server4/Bios/FirmwareDumps/82b52e13-6306-40d0-9760-c66a85a93fea HTTP/1.1" 403 191 159698us "-" "-" "gofish/1.0"
```
(as expected)

Reviewed By: zhdaniel12

fbshipit-source-id: f8d0de6216
Summary:
There is an "exit" command before BIC setup in wedge_power.sh
That makes wedge_power.sh skip BIC initialization.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1243

Test Plan:
1. Run the command wedge_power.sh off
2. Run the command wedge_power.sh on
3. Expect the BIC initializing message.

test log:
```
root@bmc-oob:~# wedge_power.sh off
Power off microserver ... Done
root@bmc-oob:~# wedge_power.sh on
Power on microserver ... Done
root@bmc-oob:~# Initializing Bridge-IC I2C Frequency...
Bridge-IC version is v1.11.
Bridge-IC is initialized SCL to 1Mhz.
```

Reviewed By: joancaneus

fbshipit-source-id: 5da8243ea7
Summary:
fby2: Fix after update BIC may not update sensord's SDR.
Since "SDR update flag” (/tmp/cache_store/slotx_sdr_thresh_update) may enable  before bic-cache update the SDR  “at background”, sensord may not get the updated SDR once “SDR update flag” enable is detected.
Therefore,  try to put  “SDR update flag enable” to background, make sure it execute rigtht after bic-cache update the SDR.

Pull Request resolved: https://github.com/facebookexternal/openbmc.quanta/pull/2704

Test Plan:
Make sure after BIC update, "bic-cahe update SDR" and "SDR update flag
enable" execute in backgpround together.
Also,"bic-cahe update SDR"execute before "SDR update flag enable".

root@bmc-oob:~# fw-util slot2 --update bic /tmp/f09_snowflake_124.bin &&  ps | grep bic
updating fw on slot 2:
size of file is 197336 bytes
ok: down: ipmbd_3: 0s, normally up
stop ipmbd for slot 2..
Stopped ipmbd for this slot 2..
start ipmbd -u for this slot 2..
ipmbd ready for update after 1 tries
stop ipmbd for slot 2..
bic ready for update after 4 tries
updated bic: 5 %
updated bic: 10 %
updated bic: 15 %
updated bic: 20 %
updated bic: 25 %
updated bic: 30 %
updated bic: 35 %
updated bic: 40 %
updated bic: 45 %
updated bic: 50 %
updated bic: 55 %
updated bic: 60 %
updated bic: 65 %
updated bic: 70 %
updated bic: 75 %
updated bic: 80 %
updated bic: 85 %
updated bic: 90 %
updated bic: 95 %
updated bic: 100 %
ok: run: ipmbd_3: (pid 15076) 1s

Upgrade of slot2 : bic succeeded
15100 root      2876 S    sh -c (/usr/local/bin/bic-cached 2; /usr/bin/kv set slot2_sdr_thresh_update 1) &
15102 root      8320 R    /usr/local/bin/bic-cached 2
15106 root      3044 S    grep bic

Reviewed By: williamspatrick

fbshipit-source-id: 709a9a8356
Summary:
fby2: fix servers do not power on after sled cycle

Pull Request resolved: https://github.com/facebookexternal/openbmc.quanta/pull/2703

Test Plan:
check bmc console log after sled cycle, all TL server should power on.

Before:
Syncing up BMC time with server2...
Wed Oct 13 19:58:37 PDT 2021
lps
/etc/rc5.d/S70power-on.sh: line 49: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 53: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 57: [: ==: unary operator expected
lps
/etc/rc5.d/S70power-on.sh: line 49: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 53: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 57: [: ==: unary operator expected
lps
/etc/rc5.d/S70power-on.sh: line 49: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 53: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 57: [: ==: unary operator expected
lps
/etc/rc5.d/S70power-on.sh: line 49: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 53: [: ==: unary operator expected
/etc/rc5.d/S70power-on.sh: line 57: [: ==: unary operator expected

After:
Syncing up BMC time with server2...
Thu Oct 14 04:21:27 PDT 2021
Powering fru 2 to ON state...
Powering fru 4 to ON state...

Reviewed By: williamspatrick

fbshipit-source-id: 0f358a4309
Summary:
Symptom: a "System powered OFF" event is logged when 12V-on
    4    slot4    2021-10-13 00:25:33    power-util       SERVER_12V_OFF successful for FRU: 4

    4    slot4    2021-10-13 00:28:00    gpiod            FRU: 4, System powered OFF
    4    slot4    2021-10-13 00:28:07    power-util       SERVER_12V_ON successful for FRU: 4
    4    slot4    2021-10-13 00:28:10    gpiod            FRU: 4, System powered ON

    Change: clear (set as low) old GPIO value when 12V is off, to align the actual pin status:
    (1) PWRGD_CPU_LVC3_R (note: align previous behavior that no System powered OFF is logged when 12V cycle)
    (2) RST_PLTRST_BMC_N (note: need a rst_timer())

Pull Request resolved: https://github.com/facebookexternal/openbmc.quanta/pull/2701

Test Plan:
Build and tested pass on fby3

    root@bmc-oob:~# log-util all --print | grep -E '(power-util|gpiod)'
    1    slot1    2021-10-13 00:41:14    power-util       SERVER_12V_OFF successful for FRU: 1
    2    slot2    2021-10-13 00:41:21    power-util       SERVER_12V_OFF successful for FRU: 2
    3    slot3    2021-10-13 00:41:28    power-util       SERVER_12V_OFF successful for FRU: 3
    4    slot4    2021-10-13 00:41:32    power-util       SERVER_12V_OFF successful for FRU: 4
    4    slot4    2021-10-13 00:42:09    power-util       SERVER_12V_ON successful for FRU: 4
    4    slot4    2021-10-13 00:42:12    gpiod            FRU: 4, System powered ON
    1    slot1    2021-10-13 00:42:25    power-util       SERVER_12V_ON successful for FRU: 1
    1    slot1    2021-10-13 00:42:27    gpiod            FRU: 1, System powered ON
    2    slot2    2021-10-13 00:42:49    power-util       SERVER_12V_ON successful for FRU: 2
    2    slot2    2021-10-13 00:42:52    gpiod            FRU: 2, System powered ON
    3    slot3    2021-10-13 00:43:05    power-util       SERVER_12V_ON successful for FRU: 3
    3    slot3    2021-10-13 00:43:07    gpiod            FRU: 3, System powered ON
    1    slot1    2021-10-13 00:45:17    power-util       SERVER_12V_CYCLE successful for FRU: 1
    1    slot1    2021-10-13 00:45:20    gpiod            FRU: 1, System powered ON
    2    slot2    2021-10-13 00:45:44    power-util       SERVER_12V_CYCLE successful for FRU: 2
    2    slot2    2021-10-13 00:45:47    gpiod            FRU: 2, System powered ON
    3    slot3    2021-10-13 00:46:12    power-util       SERVER_12V_CYCLE successful for FRU: 3
    3    slot3    2021-10-13 00:46:15    gpiod            FRU: 3, System powered ON
    4    slot4    2021-10-13 00:46:54    power-util       SERVER_12V_CYCLE successful for FRU: 4
    4    slot4    2021-10-13 00:46:56    gpiod            FRU: 4, System powered ON

Reviewed By: williamspatrick

fbshipit-source-id: aca7c795f0
Summary:
The latest poky container which we used in circleci was outdated thus causing following certificate error as in `setup` step:
```
Warning: Permanently added the RSA host key for IP address '140.82.113.4' to the list of known hosts.
warning: no common commits
remote: Enumerating objects: 78423, done.
remote: Counting objects: 100% (2/2), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 78423 (delta 0), reused 0 (delta 0), pack-reused 78421
Receiving objects: 100% (78423/78423), 30.42 MiB | 32.12 MiB/s, done.
Resolving deltas: 100% (44336/44336), done.
From ssh://github.com/openembedded/meta-openembedded
 * branch                  rocko      -> FETCH_HEAD
 * [new branch]            rocko      -> yocto-meta-openembedded/rocko
Preparing ./yocto/rocko/meta-openembedded (identifier meta-openembedded)
HEAD is now at eae996301d glm: update 0.9.8.5 -> 0.9.9-a2 to fix x86_64 (sse-simd) build
fatal: unable to access 'https://git.yoctoproject.org/git/meta-security/': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
```
We need to update/install the ca-certifiacte pkg as workaround for the container

Test Plan: CircleCI can pass the `setup` step: [circleci job](https://app.circleci.com/pipelines/github/facebookexternal/openbmc.wiwynn/5405/workflows/6bd0bbea-7ea8-4c5d-9e04-0a5357a8a7b9/jobs/109258)

Reviewed By: williamspatrick

fbshipit-source-id: 49cc412984
Summary: Add capability to query for FRU capability.

Test Plan:
```
>>> import pal
>>> pal.pal_get_fru_capability(1)
{<FruCapability.FRU_CAPABILITY_MANAGEMENT_CONTROLLER: 7>, <FruCapability.FRU_CAPABILITY_SENSOR_THRESHOLD_UPDATE: 3>, <FruCapability.FRU_CAPABILITY_POWER_RESET: 12>, <FruCapability.FRU_CAPABILITY_POWER_OFF: 10>, <FruCapability.FRU_CAPABILITY_SENSOR_HISTORY: 4>, <FruCapability.FRU_CAPABILITY_SERVER: 5>, <FruCapability.FRU_CAPABILITY_SENSOR_READ: 2>, <FruCapability.FRU_CAPABILITY_POWER_CYCLE: 11>, <FruCapability.FRU_CAPABILITY_POWER_STATUS: 8>, <FruCapability.FRU_CAPABILITY_FRUID_WRITE: 0>, <FruCapability.FRU_CAPABILITY_POWER_ON: 9>, <FruCapability.FRU_CAPABILITY_FRUID_READ: 1>}
```

Reviewed By: zhdaniel12

fbshipit-source-id: 5802f527e9
Summary:
Becasue the Delta & Liteon 48V DC psu meet the PMBus spec. So need add the Delta and Liteon psu support in the psu_drvier.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1241

Test Plan:
```
root@bmc:~# cat /etc/issue
OpenBMC Release fuji-04596875a00-dirty

<1>. Liteon PSU

root@bmc:~# cat /sys/bus/i2c/devices/48-0058/
curr1_input   driver/       hwmon/        in2_input     power/        power3_input  temp2_input
curr2_input   fan1_input    in0_input     modalias      power1_input  subsystem/    temp3_input
curr3_input   fan2_input    in1_input     name          power2_input  temp1_input   uevent
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/curr1_input
5828
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/curr2_input
23000
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/curr3_input
222
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/power1_input
294000
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/power2_input
288000
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/power3_input
625
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/fan1_input
9984
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/fan2_input
8448
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/in0_input
47875
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/in1_input
12000
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/in2_input
3312
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/temp1_input
32500
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/temp2_input
39625
root@bmc:~# cat /sys/bus/i2c/devices/48-0058/temp3_input
41000

<2>.Delta PSU

root@bmc:~# cat /sys/bus/i2c/devices/49-005a/
curr1_input   driver/       hwmon/        in2_input     power/        power3_input  temp2_input
curr2_input   fan1_input    in0_input     modalias      power1_input  subsystem/    temp3_input
curr3_input   fan2_input    in1_input     name          power2_input  temp1_input   uevent
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/curr1_input
6445
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/curr2_input
23687
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/curr3_input
7
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/fan1_input
9872
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/fan2_input
3120
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/power1_input
309500
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/power2_input
285000
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/power3_input
23
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/in0_input
48000
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/in1_input
12031
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/in2_input
3250
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/temp1_input
37000
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/temp2_input
48000
root@bmc:~# cat /sys/bus/i2c/devices/49-005a/temp3_input
50000

```

Reviewed By: joancaneus

fbshipit-source-id: 81dcb95b88
Summary:
Add the Liteon and Delta 48V DC support.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1242

Test Plan:
```
root@bmc:~# cat /etc/issue
OpenBMC Release fuji-854530560b7-dirty

root@bmc:~# psu-util psu1 --get_psu_info

PSU Information           : PSU1 (Bus:48 Addr:0x58)
---------------           : -----------------------
MFR_ID             (0x99) : Liteon
MFR_MODEL          (0x9A) : DD-2152-2L
MFR_REVISION       (0x9B) : X1
MFR_DATE           (0x9D) : 20210716
MFR_SERIAL         (0x9E) : 6D00201X1929104
PRI_FW_VER         (0xDD) : 1.0
SEC_FW_VER         (0xD7) : 1.0
STATUS_WORD        (0x79) : 0x0000
STATUS_VOUT        (0x7A) : 0x00
STATUS_IOUT        (0x7B) : 0x00
STATUS_INPUT       (0x7C) : 0x00
STATUS_TEMP        (0x7D) : 0x00
STATUS_CML         (0x7E) : 0x00
STATUS_FAN         (0x81) : 0x00
STATUS_STBY_WORD   (0xD3) : 0x0000
STATUS_VSTBY       (0xD4) : 0x00
STATUS_ISTBY       (0xD5) : 0x00
OPTN_TIME_TOTAL    (0xD8) : NA
OPTN_TIME_PRESENT  (0xD9) : NA
root@bmc:~# psu-util psu1 --get_eeprom_info
[  266.538633] at24 48-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[  266.627139] i2c i2c-48: new_device: Instantiated device 24c02 at 0x50
[  266.763233] i2c i2c-48: delete_device: Deleting device 24c02 at 0x50
print EEPROM info ret = 0x0!

FRU Information           : PSU1 (Bus:48 Addr:0x50)
---------------           : -----------------------
Version                         : 3
Product Name                    : MINIPACK2-DC-PEM-48V
Product Part Number             :
System Assembly Part Number     : XX-XXXXXXX-XX
Facebook PCBA Part Number       : XXX-XXXXXX-XX
Facebook PCB Part Number        : XXX-XXXXXX-XX
ODM PCBA Part Number            : 8A0M12
ODM PCBA Serial Number          : 6CL01X1135000
Product Production State        : 1
Product Version                 : 0
Product Sub-Version             : 0
Product Serial Number           : 6CL01X1135000
Product Asset Tag               : xxxxxxxx
System Manufacturer             : Liteon
System Manufacturing Date       : 07-21-88
PCB Manufacturer                : LaiHe
Assembled At                    : Liteon
Local MAC                       : 00:00:00:00:00:00
Extended MAC Base               : 00:00:00:00:00:00
Extended MAC Address Size       : 0
Location on Fabric              : PEM
CRC8                            : 0xf3
root@bmc:~# psu-util psu1 --get_blackbox_info --print

Blackbox Information      : PSU1 (Bus:48 Addr:0x58)
--------------------      : -----------------------
PAGE                      : 0
PRI_FW_VER         (0xDD) : 1.0
SEC_FW_VER         (0xD7) : 53.190
STATUS_WORD        (0x79) : 0x4850
STATUS_VOUT        (0x7A) : 0x00
STATUS_IOUT        (0x7B) : 0xa0
STATUS_INPUT       (0x7C) : 0x00
STATUS_TEMP        (0x7D) : 0x00
STATUS_CML         (0x7E) : 0x00
STATUS_FAN         (0x81) : 0x00
STATUS_STBY_WORD   (0xD3) : 0x0840
STATUS_VSTBY       (0xD4) : 0x00
STATUS_ISTBY       (0xD5) : 0x00
OPTN_TIME_TOTAL    (0xD8) : 40D:23H:2M:31S
OPTN_TIME_PRESENT  (0xD9) : 23101D:10H:33M:36S
IN_VOLT            (0x88) : 46.94 V
12V_VOLT           (0x89) : 12.17 V
IN_CURR            (0x8B) : 38.56 A
12V_CURR           (0x8C) : 146.75 A
TEMP1              (0x8D) : 26.62 C
TEMP2              (0x8E) : 49.00 C
TEMP3              (0x8F) : 48.25 C
FAN_SPEED          (0x90) : 20480.00 RPM
FAN_SPEED2         (0x91) : 1.00 RPM

Blackbox Information      : PSU1 (Bus:48 Addr:0x58)
--------------------      : -----------------------
PAGE                      : 1
PRI_FW_VER         (0xDD) : 1.0
SEC_FW_VER         (0xD7) : 194.28
STATUS_WORD        (0x79) : 0x2840
STATUS_VOUT        (0x7A) : 0x00
STATUS_IOUT        (0x7B) : 0x00
STATUS_INPUT       (0x7C) : 0x80
STATUS_TEMP        (0x7D) : 0x00
STATUS_CML         (0x7E) : 0x00
STATUS_FAN         (0x81) : 0x00
STATUS_STBY_WORD   (0xD3) : 0x2840
STATUS_VSTBY       (0xD4) : 0x00
STATUS_ISTBY       (0xD5) : 0x00
OPTN_TIME_TOTAL    (0xD8) : 11D:9H:4M:0S
OPTN_TIME_PRESENT  (0xD9) : 23101D:10H:33M:36S
IN_VOLT            (0x88) : 59.06 V
12V_VOLT           (0x89) : 11.67 V
IN_CURR            (0x8B) : 0.00 A
12V_CURR           (0x8C) : 0.42 A
TEMP1              (0x8D) : 29.50 C
TEMP2              (0x8E) : 27.38 C
TEMP3              (0x8F) : 28.88 C
FAN_SPEED          (0x90) : 9888.00 RPM
FAN_SPEED2         (0x91) : 1.00 RPM

Blackbox Information      : PSU1 (Bus:48 Addr:0x58)
--------------------      : -----------------------
PAGE                      : 2
PRI_FW_VER         (0xDD) : 1.0
SEC_FW_VER         (0xD7) : 179.28
STATUS_WORD        (0x79) : 0x2840
STATUS_VOUT        (0x7A) : 0x00
STATUS_IOUT        (0x7B) : 0x00
STATUS_INPUT       (0x7C) : 0x80
STATUS_TEMP        (0x7D) : 0x00
STATUS_CML         (0x7E) : 0x00
STATUS_FAN         (0x81) : 0x00
STATUS_STBY_WORD   (0xD3) : 0x2840
STATUS_VSTBY       (0xD4) : 0x00
STATUS_ISTBY       (0xD5) : 0x00
OPTN_TIME_TOTAL    (0xD8) : 6D:19H:50M:24S
OPTN_TIME_PRESENT  (0xD9) : 23101D:10H:33M:36S
IN_VOLT            (0x88) : 59.00 V
12V_VOLT           (0x89) : 11.64 V
IN_CURR            (0x8B) : 0.00 A
12V_CURR           (0x8C) : 0.42 A
TEMP1              (0x8D) : 29.00 C
TEMP2              (0x8E) : 27.25 C
TEMP3              (0x8F) : 28.50 C
FAN_SPEED          (0x90) : 13056.00 RPM
FAN_SPEED2         (0x91) : 1.00 RPM

Blackbox Information      : PSU1 (Bus:48 Addr:0x58)
--------------------      : -----------------------
PAGE                      : 3
PRI_FW_VER         (0xDD) : 1.0
SEC_FW_VER         (0xD7) : 170.28
STATUS_WORD        (0x79) : 0x2840
STATUS_VOUT        (0x7A) : 0x00
STATUS_IOUT        (0x7B) : 0x00
STATUS_INPUT       (0x7C) : 0x80
STATUS_TEMP        (0x7D) : 0x00
STATUS_CML         (0x7E) : 0x00
STATUS_FAN         (0x81) : 0x00
STATUS_STBY_WORD   (0xD3) : 0x2840
STATUS_VSTBY       (0xD4) : 0x00
STATUS_ISTBY       (0xD5) : 0x00
OPTN_TIME_TOTAL    (0xD8) : 16D:16H:29M:52S
OPTN_TIME_PRESENT  (0xD9) : 23101D:10H:33M:36S
IN_VOLT            (0x88) : 59.88 V
12V_VOLT           (0x89) : 11.69 V
IN_CURR            (0x8B) : 0.00 A
12V_CURR           (0x8C) : 0.42 A
TEMP1              (0x8D) : 28.88 C
TEMP2              (0x8E) : 27.12 C
TEMP3              (0x8F) : 28.38 C
FAN_SPEED          (0x90) : 9984.00 RPM
FAN_SPEED2         (0x91) : 1.00 RPM

Blackbox Information      : PSU1 (Bus:48 Addr:0x58)
--------------------      : -----------------------
PAGE                      : 4
PRI_FW_VER         (0xDD) : 1.0
SEC_FW_VER         (0xD7) : 149.26
STATUS_WORD        (0x79) : 0x4850
STATUS_VOUT        (0x7A) : 0x00
STATUS_IOUT        (0x7B) : 0xa0
STATUS_INPUT       (0x7C) : 0x00
STATUS_TEMP        (0x7D) : 0x00
STATUS_CML         (0x7E) : 0x00
STATUS_FAN         (0x81) : 0x00
STATUS_STBY_WORD   (0xD3) : 0x0840
STATUS_VSTBY       (0xD4) : 0x00
STATUS_ISTBY       (0xD5) : 0x00
OPTN_TIME_TOTAL    (0xD8) : 18D:23H:6M:40S
OPTN_TIME_PRESENT  (0xD9) : 23101D:10H:33M:36S
IN_VOLT            (0x88) : 55.81 V
12V_VOLT           (0x89) : 12.00 V
IN_CURR            (0x8B) : 31.75 A
12V_CURR           (0x8C) : 134.75 A
TEMP1              (0x8D) : 26.12 C
TEMP2              (0x8E) : 49.62 C
TEMP3              (0x8F) : 50.12 C
FAN_SPEED          (0x90) : 22112.00 RPM
FAN_SPEED2         (0x91) : 1.00 RPM

```

Reviewed By: joancaneus

fbshipit-source-id: 0af05b40e6
Summary:
Becasue wedge400 will invove the Detla & Liteon 48V DC PSU and per 48V DC PSU will have two psu fans, so need detect the PSU48 by PSU P/N.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1245

Test Plan:
```
1. Wedge400 with Liteon 48V DC PSU
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-c5c48fdc82b-dirty

root@bmc-oob:~# source /usr/local/bin/openbmc-utils.sh
root@bmc-oob:~# wedge_power_supply_type
PSU48

2. Wedge400 with AC PSUs
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-c5c48fdc82b-dirty

root@bmc-oob:~# source /usr/local/bin/openbmc-utils.sh
root@bmc-oob:~# wedge_power_supply_type
PSU
```

Reviewed By: joancaneus

fbshipit-source-id: 1ddfd37ae1
Summary:
Because 48V DC psu meet the standard IPMB spec, so it has the same driver with AC PSUs.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1246

Test Plan:
```
Wedge400 with 48V DC PSU:
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-c5c48fdc82b-dirty
root@bmc-oob:~# cat /sys/bus/i2c/devices/24-0058/name
psu_driver
root@bmc-oob:~# cat /sys/bus/i2c/devices/25-0058/name
psu_driver

```

Reviewed By: joancaneus

fbshipit-source-id: fa4a3f2dbd
Summary:
Add the 48V DC PSU support for wedge400, because wedge400 will involve the Delta & Liteon 48V DC PSU.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1247

Test Plan:
```
1. wedge400 with Delta 48V DC PSU
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-c5c48fdc82b-dirty
root@bmc-oob:~# sensor-util psu1 --force --threshold
PSU1_IN_VOLT                 (0x1) :   47.88 Volts | (ok) | UCR: 59.00 | UNC: NA | UNR: NA | LCR: 40.00 | LNC: NA | LNR: NA
PSU1_12V_VOLT                (0x2) :   12.00 Volts | (ok) | UCR: 12.60 | UNC: NA | UNR: NA | LCR: 11.40 | LNC: NA | LNR: NA
PSU1_STBY_VOLT               (0x3) :    3.32 Volts | (ok) | UCR: 3.45 | UNC: NA | UNR: NA | LCR: 3.15 | LNC: NA | LNR: NA
PSU1_IN_CURR                 (0x4) :    6.31 Amps  | (ok) | UCR: 40.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_12V_CURR                (0x5) :   24.72 Amps  | (ok) | UCR: 140.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_CURR               (0x6) :    0.00 Amps  | (ok) | UCR: 3.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_IN_POWER                (0x7) :  303.50 Watts | (ok) | UCR: 1850.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_12V_POWER               (0x8) :  296.00 Watts | (ok) | UCR: 1680.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_POWER              (0x9) :    0.00 Watts | (ok) | UCR: 9.90 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_FAN_SPEED               (0xA) : 9952.00 RPM   | (ok) | UCR: 32450.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA
PSU1_TEMP1                   (0xB) :   27.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_TEMP2                   (0xC) :   30.88 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_TEMP3                   (0xD) :   34.38 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_FAN2_SPEED              (0xE) : 8416.00 RPM   | (ok) | UCR: 21950.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA

root@bmc-oob:~# sensor-util psu2 --force --threshold
PSU2_IN_VOLT                 (0xF) :   47.94 Volts | (ok) | UCR: 59.00 | UNC: NA | UNR: NA | LCR: 40.00 | LNC: NA | LNR: NA
PSU2_12V_VOLT                (0x10) :   12.00 Volts | (ok) | UCR: 12.60 | UNC: NA | UNR: NA | LCR: 11.40 | LNC: NA | LNR: NA
PSU2_STBY_VOLT               (0x11) :    3.32 Volts | (ok) | UCR: 3.45 | UNC: NA | UNR: NA | LCR: 3.15 | LNC: NA | LNR: NA
PSU2_IN_CURR                 (0x12) :    6.31 Amps  | (ok) | UCR: 40.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_12V_CURR                (0x13) :   24.69 Amps  | (ok) | UCR: 140.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_CURR               (0x14) :    0.00 Amps  | (ok) | UCR: 3.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_IN_POWER                (0x15) :  302.50 Watts | (ok) | UCR: 1850.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_12V_POWER               (0x16) :  299.00 Watts | (ok) | UCR: 1680.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_POWER              (0x17) :    0.00 Watts | (ok) | UCR: 9.90 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_FAN_SPEED               (0x18) : 9952.00 RPM   | (ok) | UCR: 32450.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA
PSU2_TEMP1                   (0x19) :   26.88 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_TEMP2                   (0x1A) :   30.25 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_TEMP3                   (0x1B) :   33.50 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_FAN2_SPEED              (0x1C) : 8384.00 RPM   | (ok) | UCR: 21950.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA

2. wedge400 with Liteon 48V DC PSU
root@bmc-oob:~# sensor-util psu1 --force --threshold
PSU1_IN_VOLT                 (0x1) :   48.00 Volts | (ok) | UCR: 59.00 | UNC: NA | UNR: NA | LCR: 40.00 | LNC: NA | LNR: NA
PSU1_12V_VOLT                (0x2) :   12.02 Volts | (ok) | UCR: 12.60 | UNC: NA | UNR: NA | LCR: 11.40 | LNC: NA | LNR: NA
PSU1_STBY_VOLT               (0x3) :    3.23 Volts | (ok) | UCR: 3.45 | UNC: NA | UNR: NA | LCR: 3.15 | LNC: NA | LNR: NA
PSU1_IN_CURR                 (0x4) :    6.38 Amps  | (ok) | UCR: 40.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_12V_CURR                (0x5) :   23.69 Amps  | (ok) | UCR: 140.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_CURR               (0x6) :    0.03 Amps  | (ok) | UCR: 3.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_IN_POWER                (0x7) :  306.00 Watts | (ok) | UCR: 1850.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_12V_POWER               (0x8) :  284.00 Watts | (ok) | UCR: 1680.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_POWER              (0x9) :    0.10 Watts | (ok) | UCR: 9.90 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_FAN_SPEED               (0xA) : 6600.00 RPM   | (ok) | UCR: 32450.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA
PSU1_TEMP1                   (0xB) :   32.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_TEMP2                   (0xC) :   44.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_TEMP3                   (0xD) :   49.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_FAN2_SPEED              (0xE) : 3060.00 RPM   | (ok) | UCR: 21950.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA

root@bmc-oob:~# sensor-util psu2 --force --threshold
PSU2_IN_VOLT                 (0xF) :   48.00 Volts | (ok) | UCR: 59.00 | UNC: NA | UNR: NA | LCR: 40.00 | LNC: NA | LNR: NA
PSU2_12V_VOLT                (0x10) :   12.02 Volts | (ok) | UCR: 12.60 | UNC: NA | UNR: NA | LCR: 11.40 | LNC: NA | LNR: NA
PSU2_STBY_VOLT               (0x11) :    3.23 Volts | (ok) | UCR: 3.45 | UNC: NA | UNR: NA | LCR: 3.15 | LNC: NA | LNR: NA
PSU2_IN_CURR                 (0x12) :    6.58 Amps  | (ok) | UCR: 40.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_12V_CURR                (0x13) :   24.34 Amps  | (ok) | UCR: 140.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_CURR               (0x14) :    0.03 Amps  | (ok) | UCR: 3.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_IN_POWER                (0x15) :  315.50 Watts | (ok) | UCR: 1850.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_12V_POWER               (0x16) :  293.50 Watts | (ok) | UCR: 1680.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_POWER              (0x17) :    0.10 Watts | (ok) | UCR: 9.90 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_FAN_SPEED               (0x18) : 6752.00 RPM   | (ok) | UCR: 32450.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA
PSU2_TEMP1                   (0x19) :   31.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_TEMP2                   (0x1A) :   40.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_TEMP3                   (0x1B) :   44.00 C     | (ok) | UCR: NA | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_FAN2_SPEED              (0x1C) : 3060.00 RPM   | (ok) | UCR: 21950.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA

3. wedge400 with AC PSUs
root@bmc-oob:~# sensor-util psu1 --threshold --force
PSU1_IN_VOLT                 (0x1) :  224.75 Volts | (ok) | UCR: 305.00 | UNC: NA | UNR: NA | LCR: 90.00 | LNC: NA | LNR: NA
PSU1_12V_VOLT                (0x2) :   11.97 Volts | (ok) | UCR: 14.80 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_VOLT               (0x3) :    3.30 Volts | (ok) | UCR: 4.20 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_IN_CURR                 (0x4) :    1.35 Amps  | (ok) | UCR: 9.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_12V_CURR                (0x5) :   23.72 Amps  | (ok) | UCR: 125.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_CURR               (0x6) :    0.01 Amps  | (ok) | UCR: 5.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_IN_POWER                (0x7) :  303.50 Watts | (ok) | UCR: 1500.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_12V_POWER               (0x8) :  286.00 Watts | (ok) | UCR: 1500.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_STBY_POWER              (0x9) :    0.05 Watts | (ok) | UCR: 16.50 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_FAN_SPEED               (0xA) : 6512.00 RPM   | (ok) | UCR: 29500.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA
PSU1_TEMP1                   (0xB) :   33.00 C     | (ok) | UCR: 65.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_TEMP2                   (0xC) :   35.00 C     | (ok) | UCR: 100.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU1_TEMP3                   (0xD) :   39.00 C     | (ok) | UCR: 125.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA

root@bmc-oob:~# sensor-util psu2 --force --threshold
PSU2_IN_VOLT                 (0xF) :  225.00 Volts | (ok) | UCR: 305.00 | UNC: NA | UNR: NA | LCR: 90.00 | LNC: NA | LNR: NA
PSU2_12V_VOLT                (0x10) :   11.98 Volts | (ok) | UCR: 14.80 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_VOLT               (0x11) :    3.30 Volts | (ok) | UCR: 4.20 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_IN_CURR                 (0x12) :    1.36 Amps  | (ok) | UCR: 9.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_12V_CURR                (0x13) :   23.88 Amps  | (ok) | UCR: 125.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_CURR               (0x14) :    0.01 Amps  | (ok) | UCR: 5.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_IN_POWER                (0x15) :  304.50 Watts | (ok) | UCR: 1500.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_12V_POWER               (0x16) :  285.00 Watts | (ok) | UCR: 1500.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_STBY_POWER              (0x17) :    0.05 Watts | (ok) | UCR: 16.50 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_FAN_SPEED               (0x18) : 6512.00 RPM   | (ok) | UCR: 29500.00 | UNC: NA | UNR: NA | LCR: 1000.00 | LNC: NA | LNR: NA
PSU2_TEMP1                   (0x19) :   33.00 C     | (ok) | UCR: 65.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_TEMP2                   (0x1A) :   36.00 C     | (ok) | UCR: 100.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
PSU2_TEMP3                   (0x1B) :   40.00 C     | (ok) | UCR: 125.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA

```

Reviewed By: joancaneus

fbshipit-source-id: 72e78226f1
Summary:
As the title.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1253

Test Plan:
```
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-2129ca4a7a5-dirty

root@bmc-oob:~# sensor-util pem2
PEM2_IN_VOLT                 (0x2C) :   11.96 Volts | (ok)
PEM2_OUT_VOLT                (0x2D) :   11.97 Volts | (ok)
PEM2_FET_BAD                 (0x2E) :    0.00 Volts | (ok)
PEM2_FET_SHORT               (0x2F) :    0.00 Volts | (ok)
PEM2_CURR                    (0x30) :   22.92 Amps  | (ok)
PEM2_POWER                   (0x31) :  275.00 Watts | (ok)
PEM2_FAN1_SPEED              (0x32) : 8228.00 RPM   | (ok)
PEM2_FAN2_SPEED              (0x33) : 9600.00 RPM   | (ok)
PEM2_HOT_SWAP_TEMP           (0x34) :   27.70 C     | (ok)
PEM2_AIR_INLET_TEMP          (0x35) :   24.38 C     | (ok)
PEM2_AIR_OUTLET_TEMP         (0x36) :   26.42 C     | (ok)

root@bmc-oob:~# pem-util pem2 --get_pem_info

PEM Information                 : PEM2 (Bus:25 Addr:0x58)
[ 1345.922943] at24 25-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 1346.003478] i2c i2c-25: new_device: Instantiated device 24c02 at 0x50
[ 1346.321150] i2c i2c-25: delete_device: Deleting device 24c02 at 0x50
---------------                 : -----------------------
Version              [ 1346.555935] at24 25-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
           : 3
[ 1346.638744] i2c i2c-25: new_device: Instantiated device 24c02 at 0x50
Product Name                    : WEDGE400-PEM
Product Part Number             : 00-000000
Product Version                 : 2
Product Sub-Version             : 0
Product Serial Number           : S112420471162
System Manufacturer             : CLSSAN
System Manufacturing Date       : 12-12-20
[ 1347.446767] i2c i2c-25: delete_device: Deleting device 24c02 at 0x50

PEM Hot Swap status             : PEM2 (Bus:25 Addr:0x58)
---------------                 : -----------------------
PEM2_IN_VOLT                    : 11.96 Volts
PEM2_OUT_VOLT                   : 11.97 Volts
PEM2_FET_BAD                    : 0.00 Volts
PEM2_FET_SHORT                  : 0.00 Volts
PEM2_CURR                       : 22.97 Amps
PEM2_POWER                      : 276.00 Watts
PEM2_FAN1_SPEED                 : 9600.00 RPM
PEM2_FAN2_SPEED                 : 9600.00 RPM
PEM2_HOT_SWAP_TEMP              : 27.70 C
PEM2_AIR_INLET_TEMP             : 24.38 C
PEM2_AIR_OUTLET_TEMP            : 26.42 C

ON_STATUS                       : 1
FET_BAD_COOLDOWN_STATUS         : 0
FET_SHORT_PRESENT               : 0
ON_PIN_STATUS                   : 1
POWER_GOOD_STATUS               : 1
OC_COOLDOWN_STATUS              : 0
UV_STATUS                       : 0
OV_STATUS                       : 0
GPIO3_STATUS                    : 0
GPIO2_STATUS                    : 1
GPIO1_STATUS                    : 1
ALERT_STATUS                    : 1
EEPROM_BUSY                     : 0
ADC_IDLE                        : 0
TICKER_OVERFLOW_PRESENT         : 0
METER_OVERFLOW_PRESENT          : 0

EEPROM_Done                     : 0
FET_Bad_Fault                   : 0
FET_Short_Fault                 : 0
On_Fault                        : 0
Power_Bad_Fault                 : 0
OC_Fault                        : 0
UV_Fault                        : 0
OV_Fault                        : 0

Power_Alarm_High                : 0
Power_Alarm_Low                 : 1
Vsense_Alarm_High               : 0
Vsense_Alarm_Low                : 0
VSourve_Alarm_High              : 0
VSourve_Alarm_Low               : 0
VGPIO_Alarm_High                : 1
VGPIO_Alarm_Low                 : 0
root@bmc-oob:~# pem-util pem2 --get_eeprom_info --print

FRU Information                 : PEM2 (Bus:25 Addr:0x58)
[ 1388.052599] at24 25-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 1388.133189] i2c i2c-25: new_device: Instantiated device 24c02 at 0x50
[ 1388.588340] i2c i2c-25: delete_device: Deleting device 24c02 at 0x50
---------------                 : -----------------------
Version                         : 3
Product Name                    : WEDGE400-PEM
Product Part Number             : 00-000000
System Assembly Part Number     : 03-000840
Facebook PCBA Part Number       : 132-000093-05
Facebook PCB Part Number        : 131-000071-05
ODM PCBA Part Number            : R1149G001501
ODM PCBA Serial Number          : G151420470305
Product Production State        : 4
Product Version                 : 2
Product Sub-Version             : 0
Product Serial Number           : S112420471162
Product Asset Tag               : N/A
System Manufacturer             : CLSSAN
System Manufacturing Date       : 12-12-20
PCB Manufacturer                : WUS
Assembled At                    : CTH
Local MAC                       : 00:00:00:00:00:00
Extended MAC Base               : 00:00:00:00:00:00
Extended MAC Address Size       : 0
Location on Fabric              : PEM
CRC8                            : 0x98

Hot Swap EEPROM Information     : PEM2 (Bus:25 Addr:0x58)
---------------                 : -----------------------
On Fault Mask                   : 0
On Delay                        : 0
On/Enb                          : 1
Mass Write Enable               : 1
Fet on                          : 1
OC Autoretry                    : 1
UV Autoretry                    : 1
OV Autoretry                    : 1
On FB Mode                      : external
On UV Mode                      : external
On OV Mode                      : external
On Vin Mode                     : 12V

EEPROM Done Alert               : 0
FET Bad Fault Alert             : 0
FET Short Alert                 : 0
On Alert                        : 0
PB Alert                        : 0
OC Alert                        : 0
UV Alert                        : 0
OV Alert                        : 0
Power Alarm High                : 0
Power Alarm Low                 : 0
Vsense Alarm High               : 0
Vsense Alarm Low                : 0
VSourve Alarm High              : 0
VSourve Alarm Low               : 0
VGPIO Alarm High                : 0
VGPIO Alarm Low                 : 0

EEPROM_Done                     : 1
FET_Bad_Fault                   : 0
FET_Short_Fault                 : 0
On_Fault                        : 1
Power_Bad_Fault                 : 1
OC_Fault                        : 0
UV_Fault                        : 1
OV_Fault                        : 0

Power_Alarm_High                : 0
Power_Alarm_Low                 : 1
Vsense_Alarm_High               : 0
Vsense_Alarm_Low                : 1
VSourve_Alarm_High              : 0
VSourve_Alarm_Low               : 0
VGPIO_Alarm_High                : 1
VGPIO_Alarm_Low                 : 0

GPIO3 PD                        : 0
GPIO2 PD                        : 0
GPIO1 Config                    : Power Good
GPIO1 Output                    : 0
ADC Conv Alert                  : 0
Stress to GPIO2                 : 0
Meter Overflow Alert            : 0

Coulomb Meter                   : 0
Tick Out                        : 0
Int Clock Out                   : 0
Clock Divider                   : 8

ILIM Adjust                     : 2
Foldback Mode                   : 2
Vsource/VDD                     : 1
GPIO Mode                       : 1
ADC 16-BIT/12-BIT               : 16-bit
root@bmc-oob:~# pem-util pem2 --get_blackbox_info --print

FRU Information                 : PEM2 (Bus:25 A[ 1400.492953] at24 25-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
ddr:0x58)
[ 1400.591598] i2c i2c-25: new_device: Instantiated device 24c02 at 0x50
[ 1401.441796] i2c i2c-25: delete_device: Deleting device 24c02 at 0x50
---------------                 : -----------------------
Version                         : 3
Product Name                    : WEDGE400-PEM
Product Part Number             : 00-000000
System Assembly Part Number     : 03-000840
Facebook PCBA Part Number       : 132-000093-05
Facebook PCB Part Number        : 131-000071-05
ODM PCBA Part Number            : R1149G001501
ODM PCBA Serial Number          : G151420470305
Product Production State        : 4
Product Version                 : 2
Product Sub-Version             : 0
Product Serial Number           : S112420471162
Product Asset Tag               : N/A
System Manufacturer             : CLSSAN
System Manufacturing Date       : 12-12-20
PCB Manufacturer                : WUS
Assembled At                    : CTH
Local MAC                       : 00:00:00:00:00:00
Extended MAC Base               : 00:00:00:00:00:00
Extended MAC Address Size       : 0
Location on Fabric              : PEM
CRC8                            : 0x98

Hot Swap EEPROM Information     : PEM2 (Bus:25 Addr:0x58)
---------------                 : -----------------------
On Fault Mask                   : 0
On Delay                        : 0
On/Enb                          : 1
Mass Write Enable               : 1
Fet on                          : 1
OC Autoretry                    : 1
UV Autoretry                    : 1
OV Autoretry                    : 1
On FB Mode                      : external
On UV Mode                      : external
On OV Mode                      : external
On Vin Mode                     : 12V

EEPROM Done Alert               : 0
FET Bad Fault Alert             : 0
FET Short Alert                 : 0
On Alert                        : 0
PB Alert                        : 0
OC Alert                        : 0
UV Alert                        : 0
OV Alert                        : 0
Power Alarm High                : 0
Power Alarm Low                 : 0
Vsense Alarm High               : 0
Vsense Alarm Low                : 0
VSourve Alarm High              : 0
VSourve Alarm Low               : 0
VGPIO Alarm High                : 0
VGPIO Alarm Low                 : 0

EEPROM_Done                     : 1
FET_Bad_Fault                   : 0
FET_Short_Fault                 : 0
On_Fault                        : 1
Power_Bad_Fault                 : 1
OC_Fault                        : 0
UV_Fault                        : 1
OV_Fault                        : 0

Power_Alarm_High                : 0
Power_Alarm_Low                 : 1
Vsense_Alarm_High               : 0
Vsense_Alarm_Low                : 1
VSourve_Alarm_High              : 0
VSourve_Alarm_Low               : 0
VGPIO_Alarm_High                : 1
VGPIO_Alarm_Low                 : 0

GPIO3 PD                        : 0
GPIO2 PD                        : 0
GPIO1 Config                    : Power Good
GPIO1 Output                    : 0
ADC Conv Alert                  : 0
Stress to GPIO2                 : 0
Meter Overflow Alert            : 0

Coulomb Meter                   : 0
Tick Out                        : 0
Int Clock Out                   : 0
Clock Divider                   : 8

ILIM Adjust                     : 2
Foldback Mode                   : 2
Vsource/VDD                     : 1
GPIO Mode                       : 1
ADC 16-BIT/12-BIT               : 16-bit

PEM Hot Swap status             : PEM2 (Bus:25 Addr:0x58)
---------------                 : -----------------------
PEM2_IN_VOLT                    : 11.96 Volts
PEM2_OUT_VOLT                   : 11.97 Volts
PEM2_FET_BAD                    : 0.00 Volts
PEM2_FET_SHORT                  : 0.00 Volts
PEM2_CURR                       : 23.02 Amps
PEM2_POWER                      : 276.00 Watts
PEM2_FAN1_SPEED                 : 9600.00 RPM
PEM2_FAN2_SPEED                 : 9600.00 RPM
PEM2_HOT_SWAP_TEMP              : 27.70 C
PEM2_AIR_INLET_TEMP             : 24.38 C
PEM2_AIR_OUTLET_TEMP            : 26.42 C

ON_STATUS                       : 1
FET_BAD_COOLDOWN_STATUS         : 0
FET_SHORT_PRESENT               : 0
ON_PIN_STATUS                   : 1
POWER_GOOD_STATUS               : 1
OC_COOLDOWN_STATUS              : 0
UV_STATUS                       : 0
OV_STATUS                       : 0
GPIO3_STATUS                    : 0
GPIO2_STATUS                    : 1
GPIO1_STATUS                    : 1
ALERT_STATUS                    : 1
EEPROM_BUSY                     : 0
ADC_IDLE                        : 0
TICKER_OVERFLOW_PRESENT         : 0
METER_OVERFLOW_PRESENT          : 0

EEPROM_Done                     : 0
FET_Bad_Fault                   : 0
FET_Short_Fault                 : 0
On_Fault                        : 0
Power_Bad_Fault                 : 0
OC_Fault                        : 0
UV_Fault                        : 0
OV_Fault                        : 0

Power_Alarm_High                : 0
Power_Alarm_Low                 : 1
Vsense_Alarm_High               : 0
Vsense_Alarm_Low                : 0
VSourve_Alarm_High              : 0
VSourve_Alarm_Low               : 0
VGPIO_Alarm_High                : 1
VGPIO_Alarm_Low                 : 0

root@bmc-oob:~#

```

Reviewed By: joancaneus

fbshipit-source-id: e3071a2951
Summary:
As the title.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1252

Test Plan:
```
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-2129ca4a7a5-dirty

root@bmc-oob:~# ps w |grep pemd
 1357 root      2912 S    runsv /etc/sv/pemd
 1371 root     24556 S    /usr/local/bin/pemd pem1 pem2
12698 root      3044 S    grep pemd
root@bmc-oob:~#

```

Reviewed By: joancaneus

fbshipit-source-id: e85d134fc6
Summary:
use the common pem-util.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1251

Test Plan:
```
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-22539701c3b-dirty

root@bmc-oob:~# pem-util
Usage: pem-util <pem1|pem2> --update [--force] <file_path>
Usage: pem-util <pem1|pem2> <command> <options>
       command:
         --get_pem_info
         --get_eeprom_info
           options:
             --print
             --clear
         --get_blackbox_info
           options:
             --print
             --clear
         --get_archive_log
           options:
             --print
             --clear
         --archive_pem_chips
root@bmc-oob:~# pem-util pem2 --get_pem_info

PEM Information                 : PEM2 (Bus:25 Addr:0x58)
[ 2023.933947] at24 25-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[ 2024.014771] i2c i2c-25: new_device: Instantiated device 24c02 at 0x50
[ 2024.525129] i2c i2c-25: delete_device: Deleting device 24c02 at 0x50
---------------                 : -----------------------
Versi[ 2024.671092] at24 25-0050: 256 byte 24c02 EEPROM, writable, 1 bytes/write
on              [ 2024.763899] i2c i2c-25: new_device: Instantiated device 24c02 at 0x50
           : 3
Product Name                    : WEDGE400-PEM
Product Part Number             : 00-000000
Product Version                 : 2
Product Sub-Version             : 0
Product Serial Number           : S112420471162
System Manufacturer             : CLSSAN
System Manufacturing Date       : 12-12-20
[ 2025.492251] i2c i2c-25: delete_device: Deleting device 24c02 at 0x50

PEM Hot Swap status             : PEM2 (Bus:25 Addr:0x58)
---------------                 : -----------------------
PEM2_IN_VOLT                    : 11.96 Volts
PEM2_OUT_VOLT                   : 11.98 Volts
PEM2_FET_BAD                    : 0.00 Volts
PEM2_FET_SHORT                  : 0.00 Volts
PEM2_CURR                       : 23.02 Amps
PEM2_POWER                      : 275.00 Watts
PEM2_FAN1_SPEED                 : 8228.00 RPM
PEM2_FAN2_SPEED                 : 9600.00 RPM
PEM2_HOT_SWAP_TEMP              : 27.70 C
PEM2_AIR_INLET_TEMP             : 24.38 C
PEM2_AIR_OUTLET_TEMP            : 26.42 C

ON_STATUS                       : 1
FET_BAD_COOLDOWN_STATUS         : 0
FET_SHORT_PRESENT               : 0
ON_PIN_STATUS                   : 1
POWER_GOOD_STATUS               : 1
OC_COOLDOWN_STATUS              : 0
UV_STATUS                       : 0
OV_STATUS                       : 0
GPIO3_STATUS                    : 0
GPIO2_STATUS                    : 1
GPIO1_STATUS                    : 1
ALERT_STATUS                    : 1
EEPROM_BUSY                     : 0
ADC_IDLE                        : 0
TICKER_OVERFLOW_PRESENT         : 0
METER_OVERFLOW_PRESENT          : 0

EEPROM_Done                     : 0
FET_Bad_Fault                   : 0
FET_Short_Fault                 : 0
On_Fault                        : 0
Power_Bad_Fault                 : 0
OC_Fault                        : 0
UV_Fault                        : 0
OV_Fault                        : 0

Power_Alarm_High                : 0
Power_Alarm_Low                 : 1
Vsense_Alarm_High               : 0
Vsense_Alarm_Low                : 0
VSourve_Alarm_High              : 0
VSourve_Alarm_Low               : 0
VGPIO_Alarm_High                : 1
VGPIO_Alarm_Low                 : 0

```

Reviewed By: joancaneus

fbshipit-source-id: adad9725f5
Summary:
Delete the wedge400 ltc4282 and max6615 code, instead use the common code.

Pull Request resolved: https://github.com/facebookexternal/openbmc.celestica/pull/1250

Test Plan:
```
root@bmc-oob:~# cat /etc/issue
OpenBMC Release wedge400-22539701c3b-dirty

root@bmc-oob:~# cat /sys/bus/i2c/devices/25-0018/name
max6615
root@bmc-oob:~# cat /sys/bus/i2c/devices/25-0058/name
ltc4282
root@bmc-oob:~#

```

Reviewed By: joancaneus

fbshipit-source-id: 8cf0d97d8a
Summary: No functional change.

Test Plan:
```
0 ~/local/openbmc/tools/flashy $ go test ./...
ok      github.com/facebook/openbmc/tools/flashy        (cached)
ok      github.com/facebook/openbmc/tools/flashy/checks_and_remediations/common (cached)
ok      github.com/facebook/openbmc/tools/flashy/checks_and_remediations/galaxy100      (cached)
ok      github.com/facebook/openbmc/tools/flashy/checks_and_remediations/wedge100       (cached)
ok      github.com/facebook/openbmc/tools/flashy/checks_and_remediations/yamp   (cached)
?       github.com/facebook/openbmc/tools/flashy/flash_procedure        [no test files]
ok      github.com/facebook/openbmc/tools/flashy/install        (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/fileutils  (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/flash      (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/flash/flashcp      (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/flash/flashutils   (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/flash/flashutils/devices   (cached)
?       github.com/facebook/openbmc/tools/flashy/lib/logger     [no test files]
ok      github.com/facebook/openbmc/tools/flashy/lib/step       (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/utils      (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/validate   (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/validate/image     (cached)
ok      github.com/facebook/openbmc/tools/flashy/lib/validate/partition (cached)
?       github.com/facebook/openbmc/tools/flashy/tests  [no test files]
?       github.com/facebook/openbmc/tools/flashy/utilities      [no test files]
```

fbshipit-source-id: 864ea30f82
Summary:
Adds four beacon LED modes (distinct color/blink) for the beacon LED. These following modes are supported:

| Mode | Use Case | LED Color | Blink Interval (sec) |
|-------|----------|------------|--------------|
| locator | For physically locating a switch | Blue | .5 |
| netstate | Indicates a "netstate" type failure where something is wrong but the device doesn’t drain | Red | .25 |
| drained | Indicates that the switch is drained | Green | 1 |
| audit | For when a switch is undergoing some sort of audit or alert suppression | Amber | 2 |

The beacon_led.sh script is expanded to allow setting a mode (if no mode is given, locator is used by default to keep backward compatibility with the existing script):
```
root@bmc-oob:~# beacon_led.sh
Usage:
beacon_led.sh <on|off> [locator | netstate | drained | audit]
```

The script writes an int to a cookie file, which led-controld reads to determine how to set the beacon. led-controld is also smart enough to track the current beacon state and only log when the state changes.

## Testing

Here's an example sequence which indicates the script usage and logging:

```
root@bmc-oob:~# beacon_led.sh on
Beacon LED: now ON in locator mode

root@bmc-oob:~# grep -i beacon /var/log/messages
 2021 Aug 24 17:18:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode locator

root@bmc-oob:~# beacon_led.sh off
Beacon LED: now OFF

root@bmc-oob:~# grep -i beacon /var/log/messages
 2021 Aug 24 17:18:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode locator
 2021 Aug 24 17:19:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is OFF

root@bmc-oob:~# beacon_led.sh on netstate
Beacon LED: now ON in netstate mode

root@bmc-oob:~# beacon_led.sh on audit
Beacon LED: now ON in audit mode

root@bmc-oob:~# grep -i beacon /var/log/messages
 2021 Aug 24 17:18:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode locator
 2021 Aug 24 17:19:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is OFF
 2021 Aug 24 17:19:43 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode netstate
 2021 Aug 24 17:20:44 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode audit

root@bmc-oob:~# beacon_led.sh on netstate
Beacon LED: now ON in netstate mode

root@bmc-oob:~# beacon_led.sh on netstate
Beacon LED: already ON in netstate mode

root@bmc-oob:~# beacon_led.sh off
Beacon LED: now OFF

root@bmc-oob:~# grep -i beacon /var/log/messages
 2021 Aug 24 17:18:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode locator
 2021 Aug 24 17:19:19 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is OFF
 2021 Aug 24 17:19:43 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode netstate
 2021 Aug 24 17:20:44 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode audit
 2021 Aug 24 17:21:20 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode drained
 2021 Aug 24 17:21:44 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is ON in mode netstate
 2021 Aug 24 17:23:08 bmc-oob. user.info elbert-ccbe7e8110-dirty: led-controld: Beacon LED is OFF
```

Pull Request resolved: https://github.com/facebookexternal/openbmc.arista/pull/228

Reviewed By: binhuang00

fbshipit-source-id: 76b8c10758
Summary:
NOTE: this PR depends on PR https://github.com/facebookexternal/openbmc.arista/issues/228. Merge that PR first.

Adds REST endpoints for setting the Beacon LED modes added in https://github.com/facebookexternal/openbmc.arista/issues/228.

The new endpoints are:
```
/api/sys/beacon
/api/sys/beacon/locator
/api/sys/beacon/netstate
/api/sys/beacon/drained
/api/sys/beacon/audit
/api/sys/beacon/off
```

Also adds a new REST CIT test case.

## Testing

Endpoints work correctly:
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   126  100   126    0     0    845      0 --:--:-- --:--:-- --:--:--   840
{
    "Information": {
        "Description": "Beacon LED"
    },
    "Actions": [],
    "Resources": [
        "audit",
        "drained",
        "locator",
        "netstate",
        "off"
    ]
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/locator | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    83  100    83    0     0   1317      0 --:--:-- --:--:-- --:--:--  1317
{
    "Information": {
        "state": "ON",
        "mode": "locator"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/netstate | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    84  100    84    0     0   1527      0 --:--:-- --:--:-- --:--:--  1527
{
    "Information": {
        "state": "ON",
        "mode": "netstate"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/drained | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    83  100    83    0     0   1338      0 --:--:-- --:--:-- --:--:--  1338
{
    "Information": {
        "state": "ON",
        "mode": "drained"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/audit | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    81  100    81    0     0   1588      0 --:--:-- --:--:-- --:--:--  1588
{
    "Information": {
        "state": "ON",
        "mode": "audit"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/off | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    79  100    79    0     0   1316      0 --:--:-- --:--:-- --:--:--  1338
{
    "Information": {
        "state": "OFF",
        "mode": "NA"
    },
    "Actions": [],
    "Resources": []
}
```
REST CIT test passes:
```
root@bmc-oob:/usr/local/bin/tests2# python3 cit_runner.py --platform=elbert -r tests.elbert.test_rest_endpoint
test_endpoint_api (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_bmc (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_bmc_mtd (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_bmc_secondary_boot (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_fc_present (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_firmware_info_all (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_mb (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_mb_fruid (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_pim_present (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_piminfo (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_pimserial (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_pimstatus (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_sensors (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_server (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_beacon (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_server_httperror_code_404 (tests.elbert.test_rest_endpoint.RestEndpointTest)
Test if REST server return 404 code when url is not accessible ... ok

----------------------------------------------------------------------
Ran 17 tests in 20.789s

OK
```

Pull Request resolved: https://github.com/facebookexternal/openbmc.arista/pull/229

Reviewed By: binhuang00

fbshipit-source-id: 8ec6b3a8bc
Summary:
NOTE: this PR depends on PR https://github.com/facebookexternal/openbmc.arista/issues/228. Merge that PR first.

Adds REST endpoints for setting the Beacon LED modes added in https://github.com/facebookexternal/openbmc.arista/issues/228.

The new endpoints are:
```
/api/sys/beacon
/api/sys/beacon/locator
/api/sys/beacon/netstate
/api/sys/beacon/drained
/api/sys/beacon/audit
/api/sys/beacon/off
```

Also adds a new REST CIT test case.

## Testing

Endpoints work correctly:
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   126  100   126    0     0    845      0 --:--:-- --:--:-- --:--:--   840
{
    "Information": {
        "Description": "Beacon LED"
    },
    "Actions": [],
    "Resources": [
        "audit",
        "drained",
        "locator",
        "netstate",
        "off"
    ]
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/locator | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    83  100    83    0     0   1317      0 --:--:-- --:--:-- --:--:--  1317
{
    "Information": {
        "state": "ON",
        "mode": "locator"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/netstate | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    84  100    84    0     0   1527      0 --:--:-- --:--:-- --:--:--  1527
{
    "Information": {
        "state": "ON",
        "mode": "netstate"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/drained | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    83  100    83    0     0   1338      0 --:--:-- --:--:-- --:--:--  1338
{
    "Information": {
        "state": "ON",
        "mode": "drained"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/audit | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    81  100    81    0     0   1588      0 --:--:-- --:--:-- --:--:--  1588
{
    "Information": {
        "state": "ON",
        "mode": "audit"
    },
    "Actions": [],
    "Resources": []
}
```
```
root@bmc-oob:~# curl -g http://localhost:8080/api/sys/beacon/off | python /usr/lib/python3.7/json/tool.py
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    79  100    79    0     0   1316      0 --:--:-- --:--:-- --:--:--  1338
{
    "Information": {
        "state": "OFF",
        "mode": "NA"
    },
    "Actions": [],
    "Resources": []
}
```
REST CIT test passes:
```
root@bmc-oob:/usr/local/bin/tests2# python3 cit_runner.py --platform=elbert -r tests.elbert.test_rest_endpoint
test_endpoint_api (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_bmc (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_bmc_mtd (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_bmc_secondary_boot (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_fc_present (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_firmware_info_all (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_mb (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_mb_fruid (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_pim_present (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_piminfo (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_pimserial (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_pimstatus (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_sensors (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_server (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_beacon (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_server_httperror_code_404 (tests.elbert.test_rest_endpoint.RestEndpointTest)
Test if REST server return 404 code when url is not accessible ... ok

----------------------------------------------------------------------
Ran 17 tests in 20.789s

OK
```

Pull Request resolved: https://github.com/facebookexternal/openbmc.arista/pull/229

Reviewed By: binhuang00

fbshipit-source-id: 2ea5fe7a65
Summary: Missing escape before end of line

Test Plan: elbert build

Reviewed By: joancaneus, peterdelevoryas

fbshipit-source-id: e7f7afbb20
Summary:
1. Set UCR of E1.S temperature to 70 degrees.

2. Adjust the setpoint of boot drive temperature to 66 degrees in fsc json file.

Pull Request resolved: https://github.com/facebookexternal/openbmc.wiwynn/pull/1889

Test Plan:
1. Build and test pass on Grand Canyon.

2. Check there are no unexpected error logs in BMC /var/log/messages and BMC SELs.

3. Check the thresholds of E1.S are correct.

    root@bmc-oob:~# sensor-util e1s_iocm --threshold
    E1S_B0_CUR                   (0x20) :    0.23 Amps  | (ok) | UCR: 1.60 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
    E1S_B1_CUR                   (0x21) :    0.24 Amps  | (ok) | UCR: 1.60 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
    E1S_B0_TEMP                  (0x22) :   27.00 C     | (ok) | UCR: 70.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
    E1S_B1_TEMP                  (0x23) :   27.00 C     | (ok) | UCR: 70.00 | UNC: NA | UNR: NA | LCR: NA | LNC: NA | LNR: NA
    E1S_B0_P12V                  (0x24) :   12.28 Volts | (ok) | UCR: 13.00 | UNC: NA | UNR: NA | LCR: 11.00 | LNC: NA | LNR: NA
    E1S_B1_P12V                  (0x25) :   12.21 Volts | (ok) | UCR: 13.00 | UNC: NA | UNR: NA | LCR: 11.00 | LNC: NA | LNR: NA
    E1S_B0_P3V3                  (0x26) :    3.29 Volts | (ok) | UCR: 3.46 | UNC: NA | UNR: NA | LCR: 2.97 | LNC: NA | LNR: NA
    E1S_B1_P3V3                  (0x27) :    3.30 Volts | (ok) | UCR: 3.46 | UNC: NA | UNR: NA | LCR: 2.97 | LNC: NA | LNR: NA

4. Check fans' speed are normal.

    root@bmc-oob:~# fan-util --get
    Fan 0 Front Speed: 2130 RPM (20%)
    Fan 0 Rear Speed: 1990 RPM (20%)
    Fan 1 Front Speed: 2150 RPM (20%)
    Fan 1 Rear Speed: 1980 RPM (20%)
    Fan 2 Front Speed: 2110 RPM (20%)
    Fan 2 Rear Speed: 1980 RPM (20%)
    Fan 3 Front Speed: 2110 RPM (20%)
    Fan 3 Rear Speed: 1960 RPM (20%)
    Fan Mode: Normal
    FSCD Driver: linear_soc_therm_margin+pid_soc_therm_margin(server:bs_therm_margin)
    Sensor Fail: None
    Fan Fail: None
    Sled Fan Latch Open: False

Reviewed By: williamspatrick

fbshipit-source-id: ad083ad395
Summary:
Since now both rest and pypartition supports ptest
method of running unit-tests, we can safely remove this.

This also enables us to start cleaning up all the *-native depends which is peppered all over the recipes (And improve build time since we dont need to build in native version of almost everything).

Test Plan: Build all the platforms!

Reviewed By: williamspatrick

fbshipit-source-id: eeb95d8153
@charleenee
Copy link

charleenee commented Mar 9, 2022

Hello, @williamspatrick
I am a new contributor for this project.
We want to ask if we can have a maintainer to approve our work and can add agc032a meta layer into meta-delta layer.
Or just pull a new request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet