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

Reply via email to