Skip to content

fby3.5: hd: Support BIOS update#384

Closed
Yi-Shum wants to merge 8 commits into
facebook:mainfrom
Yi-Shum:fby3.5-hd-support_BIOS_update
Closed

fby3.5: hd: Support BIOS update#384
Yi-Shum wants to merge 8 commits into
facebook:mainfrom
Yi-Shum:fby3.5-hd-support_BIOS_update

Conversation

@Yi-Shum

@Yi-Shum Yi-Shum commented Jul 7, 2022

Copy link
Copy Markdown
Collaborator

Summary:

  • Support BIOS update.

Dependency: #383

Test plan:

  • Build code: PASS
  • Test BIOS update: PASS

Log:

root@bmc-oob:~# fw-util slot1 --force --update bios ./F0EG_1A00_T10.bin
Cannot read ./F0EG_1A00_T10.bin
Checking if the server is ready...
Server power status: 0
slot_id: 1, comp: c, intf: 0, img: ./F0EG_1A00_T10.bin, force: 0
Init libusb Successful!
1d6b:0104 (bus 1, device 17) path: 1.1.3
Manufactured : ZEPHYR
Product : Zephyr CDC ACM
----------------------------------------
Device Descriptors:
Vendor ID : 1d6b
Product ID : 104
Serial Number : 3
Size of Device Descriptor : 18
Type of Descriptor : 1
USB Specification Release Number : 512
Device Release Number : 518
Device Class : 0
Device Sub-Class : 0
Device Protocol : 0
Max. Packet Size : 64
No. of Configuraions : 1
Configured value : 1
Claimed Interface: 1, EP addr: 0x03
-----------------------------------

Interface Descriptors:
  Number of Interfaces : 0x2
  Length : 0x9
  Desc_Type : 0x2
  Config_index : 0x0
  Total length : 75
  Configuration Value  : 0x1
  Configuration Attributes : 0xc0
  MaxPower(mA) : 50
    Interface:
      bInterfaceNumber:   0
      bAlternateSetting:  0
      bNumEndpoints:      1
      bInterfaceClass:    2
      bInterfaceSubClass: 2
      bInterfaceProtocol: 0
      iInterface:         0

      EndPoint Descriptors:
        bLength: 7
        bDescriptorType: 0x5
        bEndpointAddress: 0x81
        Maximum Packet Size: 0x10
        bmAttributes: 0x3
        bInterval: 0xa
-----------------------------------
    Interface:
      bInterfaceNumber:   1
      bAlternateSetting:  0
      bNumEndpoints:      2
      bInterfaceClass:    10
      bInterfaceSubClass: 0
      bInterfaceProtocol: 0
      iInterface:         0

      EndPoint Descriptors:
        bLength: 7
        bDescriptorType: 0x5
        bEndpointAddress: 0x82
        Maximum Packet Size: 0x40
        bmAttributes: 0x2
        bInterval: 0x0
      EndPoint Descriptors:
        bLength: 7
        bDescriptorType: 0x5
        bEndpointAddress: 0x3
        Maximum Packet Size: 0x40
        bmAttributes: 0x2
        bInterval: 0x0
-----------------------------------
Strong checksum function is not available, disabling deduplication.
Updating BIOS, dedup is off, verification is off.
512 blocks (512 written, 0 skipped)...finished.
Elapsed time:  289   sec.
Power-cycling the server...
Force upgrade of slot1 : bios succeeded
Summary:
- Initialize HalfDome BIC.
- Create project config, dts files, file header, and CMake file.
- Add project code in meta-facebook/yv35-hd/.

Test plan:
- Build code: PASS
- Can access BIC console: PASS

LOG:
1. Build code pass.
```
$ west build -b ast1030_evb -p auto ./meta-facebook/yv35-hd/
...
[254/261] Linking C executable zephyr/zephyr_prebuilt.elf

[261/261] Linking C executable zephyr/Y35BHD.elf
Memory region         Used Size  Region Size  %age Used
         SRAM_NC:        152 KB       320 KB     47.50%
           FLASH:          0 GB         0 GB
            SRAM:      385440 B       448 KB     84.02%
        IDT_LIST:          0 GB         2 KB      0.00%
```
2. BIC console:
```
[00:00:00.002,000] <wrn> usb_dc_aspe*** Booting Zephyr OS build v00.01.05-5-g6163ab05ded5  ***
Hello, welcome to yv35 halfdome ffff.ff.ff
```
@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jul 7, 2022
@Yi-Shum Yi-Shum mentioned this pull request Jul 7, 2022
@facebook-github-bot

Copy link
Copy Markdown
Contributor

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

Yi-Shum added 7 commits July 7, 2022 17:47
Summary:
- Support IPMB handler.

Test plan:
- Build code: Pass
- Check IPMB is workable: Pass

LOG:
```
root@bmc-oob:~# bic-util slot1 0x18 0x1
00 80 FF FF 02 BF 15 A0 00 00 00 00 00 00 00
```
Summary:
- Support GPIO.

Test plan:
- Build code: Pass
- Get GPIO initial value: Pass

LOG
```
uart:~$ platform gpio list_all
[1  ] FM_BIOS_POST_CMPLT_BIC_N           : OD  | input (I) | 1(1)
[2  ] FM_CPU_BIC_SLP_S3_N                : PP  | input (I) | 1(1)
[3  ] APML_CPU_ALERT_BIC_N               : OD  | input (I) | 1(1)
[4  ] IRQ_UV_DETECT_N                    : OD  | input (I) | 1(1)
[6  ] PVDDCR_CPU0_BIC_OCP_N              : OD  | input (I) | 1(1)
[7  ] HSC_OCP_GPIO1_R                    : PP  | output(O) | 0(0)
[8  ] PVDDCR_CPU1_BIC_OCP_N              : OD  | input (I) | 1(1)
[9  ] RST_USB_HUB_R_N                    : OD  | output(I) | 1(1)
[10 ] P3V_BAT_SCALED_EN_R                : PP  | output(O) | 0(0)
[11 ] HDT_BIC_TRST_R_N                   : OD  | output(I) | 1(1)
[13 ] FM_CPU_BIC_SLP_S5_N                : PP  | input (I) | 1(1)
[15 ] PVDD11_S3_BIC_OCP_N                : OD  | input (I) | 1(1)
[16 ] FM_HSC_TIMER                       : OD  | input (I) | 0(0)
[17 ] IRQ_SMB_IO_LVC3_STBY_ALRT_N        : OD  | input (I) | 1(1)
[18 ] PVDDCR_CPU1_PMALERT_N              : OD  | input (I) | 1(1)
[20 ] FM_CPU_BIC_THERMTRIP_N             : OD  | input (I) | 1(1)
[21 ] FM_PRSNT_CPU_BIC_N                 : OD  | input (I) | 0(0)
[22 ] AUTH_PRSNT_BIC_N                   : OD  | input (I) | 1(1)
[23 ] RST_CPU_RESET_BIC_N                : OD  | input (I) | 1(1)
[24 ] PWRBTN_R1_N                        : OD  | input (I) | 1(1)
[25 ] RST_BMC_R_N                        : OD  | output(I) | 1(1)
[26 ] HDT_BIC_DBREQ_R_N                  : OD  | output(I) | 1(1)
[27 ] BMC_READY                          : PP  | output(O) | 1(1)
[28 ] BIC_READY                          : PP  | output(O) | 1(1)
[29 ] FM_SOL_UART_CH_SEL_R               : PP  | output(O) | 1(1)
[32 ] PWRGD_CPU_LVC3                     : PP  | input (I) | 1(1)
[33 ] CPU_ERROR_BIC_LVC3_R_N             : PP  | input (I) | 1(1)
[34 ] PVDD11_S3_PMALERT_N                : OD  | input (I) | 1(1)
[35 ] IRQ_HSC_ALERT1_N                   : OD  | input (I) | 0(0)
[36 ] SMB_SENSOR_LVC3_ALERT_N            : OD  | input (I) | 1(1)
[38 ] SYS_PWRBTN_BIC_N                   : OD  | input (I) | 1(1)
[39 ] RST_PLTRST_BIC_N                   : PP  | input (I) | 1(1)
[40 ] CPU_SMERR_BIC_N                    : OD  | input (I) | 1(1)
[41 ] IRQ_HSC_ALERT2_N                   : OD  | input (I) | 1(1)
[43 ] FM_BMC_DEBUG_ENABLE_N              : OD  | output(I) | 1(1)
[44 ] FM_DBP_PRESENT_N                   : OD  | input (I) | 1(1)
[45 ] FM_FAST_PROCHOT_EN_R_N             : PP  | output(O) | 0(0)
[49 ] FM_BIOS_MRC_DEBUG_MSG_DIS          : OD  | output(I) | 1(1)
[50 ] FAST_PROCHOT_N                     : OD  | input (I) | 1(1)
[52 ] BIC_JTAG_SEL_R                     : PP  | output(O) | 0(0)
[54 ] HSC_OCP_GPIO2_R                    : PP  | output(O) | 0(0)
[55 ] HSC_OCP_GPIO3_R                    : PP  | output(O) | 0(0)
[56 ] RST_RSMRST_BMC_N                   : PP  | input (I) | 1(1)
[59 ] FM_CPU_BIC_PROCHOT_LVT3_N          : OD  | input (I) | 1(1)
[90 ] BIC_JTAG_MUX_SEL                   : PP  | output(O) | 0(0)
[91 ] BOARD_ID2                          : PP  | input (I) | 0(0)
[92 ] PVDDCR_CPU0_PMALERT_N              : OD  | input (I) | 1(1)
[94 ] BOARD_ID0                          : PP  | input (I) | 0(0)
[95 ] BOARD_ID1                          : PP  | input (I) | 1(1)
[97 ] BOARD_ID3                          : PP  | input (I) | 0(0)
[100] BOARD_ID5                          : PP  | input (I) | 0(0)
[101] BOARD_ID4                          : PP  | input (I) | 0(0)
[159] HSC_TYPE_0                         : PP  | input (I) | 0(0)
[167] HSC_TYPE_1                         : PP  | input (I) | 0(0)
```
Summary:
- Support read and write FRU.

Test plan:
- Build code: Pass
- Read FRU: Pass
- Write FRU: Pass

LOG:
Use CraterLake FRU for test
Write:
```
root@bmc-oob:~# fruid-util slot1 --write fru.bin
```
Read:
```
root@bmc-oob:~# fruid-util slot1

FRU Information           : Server board 1
---------------           : ------------------
Chassis Type              : Rack Mount Chassis
Board Mfg Date            : Tue Feb  8 04:12:00 2022
Board Mfg                 : Quanta
Board Product             : Crater Lake-Class1
Board Serial              : TWG1820400141
Board Part Number         : 33F0EMA02Y0
Board FRU ID              : FRU Ver 0.03
Board Custom Data 1       : 02-000497
Board Custom Data 2       : BDT
Product Manufacturer      : Quanta
Product Name              : Crater Lake EVT2
Product Version           : YoCL35
```
Summary:
- Support TMP75 sensor reading.
- Support SSD temperature sensor reading.
- Support ADC sensor reading.
- Support VR(raa229621) sensor reading.
- Support HSC sensor reading.
- Support nct7718w sensor reading.

Test plan:
- Build code: Pass
- Get sensor reading: Pass

Log:
```
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x01 0x00
15 A0 00 20 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x02 0x00
15 A0 00 30 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x03 0x00
15 A0 00 1B 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x0E 0x00
15 A0 00 7F 00 6B 03 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x0F 0x00
15 A0 00 37 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x10 0x00
15 A0 00 39 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x11 0x00
15 A0 00 29 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x12 0x00
15 A0 00 2A 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x13 0x00
15 A0 00 27 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x14 0x00
15 A0 00 0C 00 12 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x15 0x00
15 A0 00 01 00 2D 03 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x16 0x00
15 A0 00 03 00 3A 01 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x17 0x00
15 A0 00 01 00 69 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x18 0x00
15 A0 00 03 00 7E 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x19 0x00
15 A0 00 03 00 3A 01 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x1a 0x00
15 A0 00 05 00 28 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x1b 0x00
15 A0 00 0C 00 54 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x1c 0x00
15 A0 00 0C 00 54 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x1d 0x00
15 A0 00 01 00 CE 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x1e 0x00
15 A0 00 03 00 44 01 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x1f 0x00
15 A0 00 01 00 29 03 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x20 0x00
15 A0 00 0C 00 33 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x21 0x00
15 A0 00 00 00 9D 03 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x22 0x00
15 A0 00 01 00 BE 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x23 0x00
15 A0 00 00 00 9B 03 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x24 0x00
15 A0 00 01 00 63 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x25 0x00
15 A0 00 01 00 64 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x26 0x00
15 A0 00 0D 00 8B 01 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x27 0x00
15 A0 00 09 00 20 03 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x28 0x00
15 A0 00 34 00 64 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x29 0x00
15 A0 00 0A 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x2a 0x00
15 A0 00 1A 00 2C 01 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x2b 0x00
15 A0 00 01 00 C8 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x2c 0x00
15 A0 00 A1 00 F9 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x2d 0x00
15 A0 00 08 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x2e 0x00
15 A0 00 3D 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x2f 0x00
15 A0 00 09 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x30 0x00
15 A0 00 1D 00 00 00 C0
root@bmc-oob:~# bic-util slot1 0xe0 0x23 0x15 0xa0 0x00 0x31 0x00
15 A0 00 01 00 00 00 C0
```
Summary:
- Support monitor system DC state.
- Support monitor post complete.

Test plan:
- Build code: PASS
- Check system DC flag will change: Pass

Log:
- power on
```
BMC:
root@bmc-oob:~# power-util slot1 on
Powering fru 1 to ON state...
root@bmc-oob:~# power-util slot1 status
Power status for fru 1 : ON
BIC:
uart:~$ [set_DC_status] gpio number(39) status(1)
```
- power off
```
BMC:
root@bmc-oob:~# power-util slot1 off
Powering fru 1 to OFF state...
root@bmc-oob:~# power-util slot1 status
Power status for fru 1 : OFF
BIC:
uart:~$ [set_DC_status] gpio number(39) status(0)
```
Summary:
- Support BIOS update.

Test plan:
- Build code: PASS
- Test BIOS update: PASS

Log:
```
root@bmc-oob:~# fw-util slot1 --force --update bios ./F0EG_1A00_T10.bin
Cannot read ./F0EG_1A00_T10.bin
Checking if the server is ready...
Server power status: 0
slot_id: 1, comp: c, intf: 0, img: ./F0EG_1A00_T10.bin, force: 0
Init libusb Successful!
1d6b:0104 (bus 1, device 17) path: 1.1.3
Manufactured : ZEPHYR
Product : Zephyr CDC ACM
----------------------------------------
Device Descriptors:
Vendor ID : 1d6b
Product ID : 104
Serial Number : 3
Size of Device Descriptor : 18
Type of Descriptor : 1
USB Specification Release Number : 512
Device Release Number : 518
Device Class : 0
Device Sub-Class : 0
Device Protocol : 0
Max. Packet Size : 64
No. of Configuraions : 1
Configured value : 1
Claimed Interface: 1, EP addr: 0x03
-----------------------------------

Interface Descriptors:
  Number of Interfaces : 0x2
  Length : 0x9
  Desc_Type : 0x2
  Config_index : 0x0
  Total length : 75
  Configuration Value  : 0x1
  Configuration Attributes : 0xc0
  MaxPower(mA) : 50
    Interface:
      bInterfaceNumber:   0
      bAlternateSetting:  0
      bNumEndpoints:      1
      bInterfaceClass:    2
      bInterfaceSubClass: 2
      bInterfaceProtocol: 0
      iInterface:         0

      EndPoint Descriptors:
        bLength: 7
        bDescriptorType: 0x5
        bEndpointAddress: 0x81
        Maximum Packet Size: 0x10
        bmAttributes: 0x3
        bInterval: 0xa
-----------------------------------
    Interface:
      bInterfaceNumber:   1
      bAlternateSetting:  0
      bNumEndpoints:      2
      bInterfaceClass:    10
      bInterfaceSubClass: 0
      bInterfaceProtocol: 0
      iInterface:         0

      EndPoint Descriptors:
        bLength: 7
        bDescriptorType: 0x5
        bEndpointAddress: 0x82
        Maximum Packet Size: 0x40
        bmAttributes: 0x2
        bInterval: 0x0
      EndPoint Descriptors:
        bLength: 7
        bDescriptorType: 0x5
        bEndpointAddress: 0x3
        Maximum Packet Size: 0x40
        bmAttributes: 0x2
        bInterval: 0x0
-----------------------------------
Strong checksum function is not available, disabling deduplication.
Updating BIOS, dedup is off, verification is off.
512 blocks (512 written, 0 skipped)...finished.
Elapsed time:  289   sec.
Power-cycling the server...
Force upgrade of slot1 : bios succeeded

```
@Yi-Shum Yi-Shum force-pushed the fby3.5-hd-support_BIOS_update branch from fbd8302 to ca4e7bf Compare July 7, 2022 11:15
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@Yi-Shum has updated the pull request. You must reimport the pull request before landing.

facebook-github-bot pushed a commit that referenced this pull request Jul 8, 2022
Summary:
- Support get/set GUID.

Dependency: #384

Pull Request resolved: #385

Test Plan:
- Build Code: Pass
- Test get/set GUID: Pass

Log:
```
root@bmc-oob:~# guid-util slot1 sys --get
0x4E:0x4F:0x04:0x00:0xDC:0x83:0xA2:0x1A:0xD8:0xC8:0x41:0x18:0x14:0x50:0x01:0x83
root@bmc-oob:~# guid-util slot1 sys --set TWA1234567890
root@bmc-oob:~# guid-util slot1 sys --get
0x61:0x47:0x00:0x00:0xCE:0x8B:0xA2:0x1A:0xDF:0x69:0x41:0x12:0x34:0x56:0x78:0x90
```

Reviewed By: garnermic

Differential Revision: D37679174

Pulled By: GoldenBug

fbshipit-source-id: 0d7ce8e51dc9069abd15d5890f961cc1def16bd9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

2 participants