Seth, In Ubuntu it's going to be used for two purposes: fwupd, and fwupdate. Although the library features functionality that could be used for RBU firmware flashing, that feature is not going to be used in Ubuntu.
The strategy for Dell client systems BIOS updates is to continue to use UEFI capsule which you have already verified the stack previously. Here's how it will be used in Ubuntu: fwupdate -------- For fwupdate, the code is used to query and activate tokens. The code for that was added since after you reviewed fwupdate last year. This functionality can be seen here: https://github.com/rhinstaller/fwupdate/blob/master/linux/libfwup.c#L130 It's used when a user queries if the system supports firmware updates and the ESRT is not available. It can be used two ways: 1) from the fwupdate command line tool (as root) 2) from fwupd using libfwup and calling those same function calls. In the case of fwupd using libfwup, the code that uses it is available here: https://github.com/hughsie/fwupd/blob/master/src/fu-provider-uefi.c#L241 The user would need to call the unlock function using fwupdmgr or gnome-software. Policykit would authenticate them and fwupd would use libfwup to do the unlock (which will adjust those token values). fwupd ----- For fwupd, libsmbios is used for the following functions: 0) as mentioned above, unlocking ESRT table from token. 1) parsing SMBIOS tables to determine if it's usable on the system and if flashes were successful. Example: https://github.com/hughsie/fwupd/blob/master/src/fu-provider-dell.c#L672 2) Executing SMI's to put the CPU into SMM and read information about embedded TPM and connected docks. Example, but there are others: https://github.com/hughsie/fwupd/blob/master/src/fu-provider-dell.c#L759 3) Executing a SMI that will put the dock into a flashing mode to accept a runtime payload. Example: https://github.com/hughsie/fwupd/blob/master/src/fu-provider-dell.c#L1087 I'm not sure how much of the architecture you recall about fwupd, but I'll give you the 100 ft view as a reminder. fwupd is a d-bus activated daemon. fwupdmgr and gnome-software communicate over d-bus with fwupd. fwupd supports "providers" as plugins that activate functionality for different types of firmware flashing and querying. A special Dell plugin was created that uses libsmbios for querying TPM and dock information specifically. So a user will query from fwupdmgr for supported devices and fwupd will run a routine in all it's providers to see what devices are available. This will cause for example a few SMI requests when fwupd is first started to see the information on the TPM on the system if applicable. Please feel free to double check everything, but all of the inputs that get passed through SMI in these cases are hardcoded into fwupd code and can't be passed an untrusted input. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1603072 Title: [MIR] libsmbios To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libsmbios/+bug/1603072/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
