mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-09 03:21:51 +00:00
smbios: Allow writing to the coreboot version string
When U-Boot is booted from coreboot the SMBIOS tables are written by coreboot, not U-Boot. The existing method of updating the BIOS version string does not work in that case, since gd->smbios_version is only set when U-Boot writes the tables. Add a new function which allows the version to be updated by parsing the tables and writing the string in the correct place. Since coreboot provides a pointer to the SMBIOS tables in its sysinfo structure, this makes it easy to do the update. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
11a38a2573
commit
272e62cb83
3 changed files with 58 additions and 4 deletions
|
@ -14,6 +14,10 @@
|
|||
#define SMBIOS_MAJOR_VER 3
|
||||
#define SMBIOS_MINOR_VER 0
|
||||
|
||||
enum {
|
||||
SMBIOS_STR_MAX = 64, /* Maximum length allowed for a string */
|
||||
};
|
||||
|
||||
/* SMBIOS structure types */
|
||||
enum {
|
||||
SMBIOS_BIOS_INFORMATION = 0,
|
||||
|
@ -269,4 +273,20 @@ const char *smbios_string(const struct smbios_header *header, int index);
|
|||
*/
|
||||
int smbios_update_version(const char *version);
|
||||
|
||||
/**
|
||||
* smbios_update_version_full() - Update the version string
|
||||
*
|
||||
* This can be called after the SMBIOS tables are written (e.g. after the U-Boot
|
||||
* main loop has started) to update the BIOS version string (SMBIOS table 0).
|
||||
* It scans for the correct place to put the version, so does not need U-Boot
|
||||
* to have actually written the tables itself (e.g. if a previous bootloader
|
||||
* did it).
|
||||
*
|
||||
* @smbios_tab: Start of SMBIOS tables
|
||||
* @version: New version string to use
|
||||
* @return 0 if OK, -ENOENT if no version string was previously written,
|
||||
* -ENOSPC if the new string is too large to fit
|
||||
*/
|
||||
int smbios_update_version_full(void *smbios_tab, const char *version);
|
||||
|
||||
#endif /* _SMBIOS_H_ */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue