summaryrefslogtreecommitdiff
path: root/Documentation/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/mainboard')
-rw-r--r--Documentation/mainboard/index.md1
-rw-r--r--Documentation/mainboard/supermicro/flashing_on_vendorbmc.md32
2 files changed, 33 insertions, 0 deletions
diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md
index 038689d192..3e6a985858 100644
--- a/Documentation/mainboard/index.md
+++ b/Documentation/mainboard/index.md
@@ -126,6 +126,7 @@ The boards in this section are not real mainboards, but emulators.
- [X10SLM+-F](supermicro/x10slm-f.md)
- [X11 LGA1151 series](supermicro/x11-lga1151-series/x11-lga1151-series.md)
+- [Flashing using the BMC](supermicro/flashing_on_vendorbmc.md)
## UP
diff --git a/Documentation/mainboard/supermicro/flashing_on_vendorbmc.md b/Documentation/mainboard/supermicro/flashing_on_vendorbmc.md
new file mode 100644
index 0000000000..e02c57bcc4
--- /dev/null
+++ b/Documentation/mainboard/supermicro/flashing_on_vendorbmc.md
@@ -0,0 +1,32 @@
+# Flashing coreboot using SMC IPMI (BMC) firmware
+
+## Metadata
+In order to flash anything to the "BIOS" IC, it needs to contain a valid
+BIOSINFO struct.
+
+The BIOSINFO struct contains a `$FID` marker at the beginning and is
+128 bytes in total. Besides the *BoardID* it contains the *firmware version*
+and *build date*. The BMC verifies that the BoardID is correct and refuses to
+flash if it's not.
+
+The struct has no checksum or cryptographic protection.
+
+## The smcinfobios tool
+
+The smcbiosinfo tool can be found in `util/supermicro/smcbiosinfo`.
+
+It parses the `build/build.h` header to get the current coreboot version and
+build timestamp.
+The *board ID* is passed as command line argument.
+
+It will place a file in CBFS called `smcbiosinfo.bin`, which is then found
+by the vendor tools. The file contains the struct described above.
+
+## Flashing using SMCIPMItool
+
+You can use the *SMCIPMITool* to remotely flash the BIOS:
+
+`SMCIPMITool <remote BMC IP> <user> <password> bios update build/coreboot.rom`
+
+Make sure that the ME isn't in recovery mode, otherwise you get an error
+message on updating the BIOS.