Store mac to eeprom enhancement

1. Add delay after write mac to eeprom before read back to verify.
Issue: Some eeprom has timing requirement to allow internal write cycle
to complete.

2. Make sure MAC address are written within one EEPROM page.
Issue: Block write rolls over back to start of same page. Use 8bytes as
page size. It works also on 16byte page device.

3. Add mac header and checksum for mac record.

Tested:
Write MAC and Read MAC commands complete successfully
	ipmitool raw 0x30 0xa1 0x00 0x56 0xd5 0xa9 0x8a 0xbd x3e
	ipmitool raw 0x30 0xa2 0x00
 	 01 56 d5 a9 8a bd 3e
i2cdump to verify eeprom data
root@bmc-mac56d5a98abd3e:~# i2cdump -y 11 0x52
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: 40 56 d5 a9 8a bd 3e 67 40 56 d5 a9 8a bd 3e 67    @V????>g@V????>g
f0: 40 56 d5 a9 8a bd 3e 67 ff ff ff ff ff ff ff ff    @V????>g........

Signed-off-by: Zhikui Ren <zhikui.ren@intel.com>
Change-Id: Ib62e274fe22ec5cbc134239efb06bb528178f601
1 file changed
tree: 2a65ac6911b273f45fc76abcecbbc51efd6d8a60
  1. cmake/
  2. docs/
  3. include/
  4. non-yocto/
  5. src/
  6. tests/
  7. .clang-format
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. CMakeLists.txt.in
  12. generate-whitelist.py
  13. ipmi-whitelist.conf
  14. LICENSE
  15. MAINTAINERS
  16. OWNERS
  17. README.md
README.md

Intel IPMI OEM support library

This component is intended to provide Intel-specific IPMI[3] command handlers for OpenBMC. These handlers are intended to integrate BMC with servers based on Intel architecture.

Overview

intel-ipmi-oem serves as an extension[1] to OpenBMC IPMI daemon[2]. It is compiled as a shared library and intended to both:

  • override existing implementation of standard IPMI commands to comply with Intel-specific solutions,
  • provide implementation for non-standard OEM extensions.

Capabilities

Related features provided by the library are grouped in separate source files. Main extensions to vanilla OpenBMC IPMI stack are the following:

  • Acquiring SMBIOS data over IPMI
  • Commands for better integration with Intel hardware
  • Firmware update extensions
  • Extended parsing of IPMI Platform Events[4]

References

  1. OpenBMC IPMI Architecture
  2. Phosphor IPMI Host
  3. IPMI Specification v2.0
  4. Intel Platform Events parsing