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

How to flash the OpenBMC build image into an actual BMC on an off-the-shelf motherboard? #32

Closed
phamtson opened this issue Jun 21, 2016 · 1 comment

Comments

@phamtson
Copy link

Hi,

What is the tool to flash the OpenBMC build image into a BMC of an off-the-shelf motherboard?

@tfangit
Copy link
Contributor

tfangit commented Jun 21, 2016

OpenBMC image is associated with the board which the image is build for. With some minimum changes (i.e. change console UART port), you can get the OpenBMC image that could boot on that board. At that time, you can flash the whole image to the SPI flash (if you can flash it through an external flasher) and start from there.

@tfangit tfangit closed this as completed Jun 21, 2016
facebook-github-bot pushed a commit that referenced this issue Apr 17, 2019
Summary:
1. Power on COMe when BMC booting up
2. Add wedge_power.sh command for wedge400
Pull Request resolved: facebookexternal/openbmc.celestica#32

Test Plan:
1. COMe booting successfully.
2. wedge_power.sh on -f works OK, wedge_power.sh reset -s works OK.

Reviewed By: mikechoifb

fbshipit-source-id: ac8df289ae
facebook-github-bot pushed a commit that referenced this issue Apr 20, 2020
Summary:
ELBERT: Rest Api initial support

 -Added all REST api endpoint associated with "weutil SUP"
- This includes rest_seutil, rest_fruid_scm
- Also added boilerplate common routes.

Testing:  ran all elbert CIT tests

...
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_fc_present (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_firmware_info_all (tests.elbert.test_rest_endpoint.RestEndpointTest) ... skipped 'ELBERTTODO: Test not supported yet'
test_endpoint_api_sys_mb (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_endpoint_api_sys_mb_fruid (tests.elbert.test_rest_endpoint.RestEndpointTest) ... skipped 'ELBERTTODO: Test not supported yet'
test_endpoint_api_sys_mterm (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_api_sys_slotid (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok
test_server_httperror_code_404 (tests.elbert.test_rest_endpoint.RestEndpointTest) ... ok

----------------------------------------------------------------------
Ran 29 tests in 10.692s

OK (skipped=5)
Pull Request resolved: facebookexternal/openbmc.arista#32

Reviewed By: benwei13

fbshipit-source-id: 46075140b3
facebook-github-bot pushed a commit that referenced this issue Jul 28, 2022
Summary:
**Description:**
    -  Script (mac_idprom.sh) to write x86 mac address to idprom by given mac address or update from cache
    -  Script (mac_idprom.sh)to display x86 mac address from idprom.

**UT:**

```
root@bmc:~# hexdump -C /sys/bus/i2c/devices/8-0054/eeprom
00000000  1d fa 04 ff 48 00 95 40  06 b6 c1 8b 46 4c 4d 32  |....H..@....FLM2|
00000010  36 30 35 30 47 55 4b e2  46 00 49 00 51 69 01 8a  |6050GUK.F.I.Qi..|
00000020  30 39 20 20 88 00 00 00  00 88 00 00 00 00 88 00  |09  ............|
00000030  00 00 00 88 00 00 00 00  88 00 00 00 00 c4 08 00  |................|
00000040  00 00 00 00 00 00 00 86  00 00 00 00 41 00 0b c9  |............A...|
00000050  90 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |.000000000000000|
00000060  30 cf 06 18 59 f5 f3 5c  8c 43 00 01 ff ff ff ff  |0...Y..\.C......|
00000070  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00002000

root@bmc:~# mac_idprom.sh
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13

Usage: /usr/local/bin/mac_idprom.sh <Mac_Address>

Mac Address:
  Format(Hex): xx:xx:xx:xx:xx:xx
  Example    : d4:eb:68:b5:65:68

FAIL

==================================================================================================

root@bmc:~# mac_idprom.sh d4:eb:68:b5:65:68
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
No x86 mac address
CRC is Valid
Written mac address to IDPROM
CRC is Valid
PASS

root@bmc:~# hexdump -C /sys/bus/i2c/devices/8-0054/eeprom
00000000  52 47 04 ff 48 00 95 40  06 b6 c1 8b 46 4c 4d 32  |RG..H..@....FLM2|
00000010  36 30 35 30 47 55 4b e2  46 00 49 00 51 69 01 8a  |6050GUK.F.I.Qi..|
00000020  30 39 20 20 88 00 00 00  00 88 00 00 00 00 88 00  |09  ............|
00000030  00 00 00 88 00 00 00 00  88 00 00 00 00 c4 08 00  |................|
00000040  00 00 00 00 00 00 00 86  00 00 00 00 41 00 0b c9  |............A...|
00000050  90 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |.000000000000000|
00000060  30 cf 06 18 59 f5 f3 5c  8c 43 00 01 cf 06 d4 eb  |0...Y..\.C......|
00000070  68 b5 65 68 43 00 01 ff  ff ff ff ff ff ff ff ff  |h.ehC...........|
00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00002000

==================================================================================================

root@bmc:~# . /usr/local/bin/openbmc-utils.sh
root@bmc:~# gpio_export_by_name ${ASPEED_GPIO} GPIOG4 TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13 2> /dev/null
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
root@bmc:~# gpio_set_value TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13 0
root@bmc:~#
root@bmc:~#
root@bmc:~# printf '\xff' > $erasefile
root@bmc:~# dd if=/tmp/erasefile seek=0 count=1 bs=1 of=$eeprom_file
1+0 records in
1+0 records out
root@bmc:~# mac_idprom.sh d4:eb:68:b5:65:68
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
x86 mac address is present
Invalid CRC... checking for cached eeprom
Cache file is present
Written mac address to IDPROM
PASS

root@bmc:~# mac_idprom.sh d4:eb:68:b5:65:68
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
x86 mac address is present
CRC is Valid
PASS

==================================================================================================

root@bmc-oob:~# printf '\xff' > $erasefile
root@bmc-oob:~# gpio_set_value TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13 0
root@bmc-oob:~# dd if=/tmp/erasefile seek=0 count=1 bs=1 of=$eeprom_file
1+0 records in
1+0 records out
root@bmc-oob:~# dd if=$eeprom_file of=/mnt/data1/mac_idprom/cached_eeprom_54
16+0 records in
16+0 records out
root@bmc-oob:~# mac_idprom.sh d4:eb:68:b5:65:68
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
x86 mac address is present
Invalid CRC... checking for cached eeprom
Cache file is present
Fatal Error! Cached eeprom has bad CRC. Unable to repair IDPROM
FAIL
root@bmc-oob:~#

==================================================================================================

root@bmc:~# rm /mnt/data1/mac_idprom/cached_eeprom_54
root@bmc:~#
root@bmc:~#
root@bmc:~# mac_idprom.sh d4:eb:68:b5:65:68
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
No x86 mac address
Invalid CRC... checking for cached eeprom
Fatal Error! IDPROM is corrupt and no cached IDPROM is available. Unable to repair IDPROM
FAIL

==================================================================================================

root@bmc:~#
root@bmc:~# mac_idprom.sh d4:eb:68:b5:65:68
exporting gpio (aspeed-gpio, GPIOG4), shadow=TXD8_SD2 (b604789fffa50de8b7ab217cc0b08ecbf36f9ef4)DAT2_SALT13
No x86 mac address
CRC is Valid
Written mac address to IDPROM
CRC is Valid
PASS
root@bmc:~# hexdump -C /mnt/data1/mac_idprom/cached_eeprom_54
00000000  52 47 04 ff 48 00 95 40  06 b6 c1 8b 46 4c 4d 32  |RG..H..@....FLM2|
00000010  36 30 35 30 47 55 4b e2  46 00 49 00 51 69 01 8a  |6050GUK.F.I.Qi..|
00000020  30 39 20 20 88 00 00 00  00 88 00 00 00 00 88 00  |09  ............|
00000030  00 00 00 88 00 00 00 00  88 00 00 00 00 c4 08 00  |................|
00000040  00 00 00 00 00 00 00 86  00 00 00 00 41 00 0b c9  |............A...|
00000050  90 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |.000000000000000|
00000060  30 cf 06 18 59 f5 f3 5c  8c 43 00 01 cf 06 d4 eb  |0...Y..\.C......|
00000070  68 b5 65 68 43 00 01 ff  ff ff ff ff ff ff ff ff  |h.ehC...........|
00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00000200
root@bmc:~# hexdump -C /sys/bus/i2c/devices/8-0054/eeprom
00000000  52 47 04 ff 48 00 95 40  06 b6 c1 8b 46 4c 4d 32  |RG..H..@....FLM2|
00000010  36 30 35 30 47 55 4b e2  46 00 49 00 51 69 01 8a  |6050GUK.F.I.Qi..|
00000020  30 39 20 20 88 00 00 00  00 88 00 00 00 00 88 00  |09  ............|
00000030  00 00 00 88 00 00 00 00  88 00 00 00 00 c4 08 00  |................|
00000040  00 00 00 00 00 00 00 86  00 00 00 00 41 00 0b c9  |............A...|
00000050  90 30 30 30 30 30 30 30  30 30 30 30 30 30 30 30  |.000000000000000|
00000060  30 cf 06 18 59 f5 f3 5c  8c 43 00 01 cf 06 d4 eb  |0...Y..\.C......|
00000070  68 b5 65 68 43 00 01 ff  ff ff ff ff ff ff ff ff  |h.ehC...........|
00000080  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
*
00002000
root@bmc:~#

==================================================================================================
��root@bmc-oob:~# wedge_us_mac.sh
CRC is Valid
d4:eb:68:b5:65:68
root@bmc-oob:~#
```

X-link: facebookexternal/openbmc.cisco#32

Reviewed By: joancaneus

fbshipit-source-id: 98d72f4f5ba13f79aecd9aead417065b204d4aa2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants