Firmware Test Suite (FWTS) is an open-source test suite and is recommended as the ACPI 6.1 Self-Certification Test (SCT) by UEFI Forum. This command line tool is easy to use and provides explanatory
and informative results. Developers will find adding new tests to FWTS is easy, and many examples such as ACPI, UEFI and SMBIOS are available for references. An active community responds quickly to technical discussion and code reviews on the mailing list. As licensed by GPL, FWTS ensures its openness
to everyone while it is suitable for anyone who wants to use it freely both publicly and privately.
Firmware Test Suite - Uses, Development, Contribution and GPL
1. presented by
Firmware Test Suite -
Uses, Development, Contribution and GPL
Fall 2017 UEFI Seminar and Plugfest
November 1, 2017
Alex Hung - Canonical Ltd
UEFI Plugfest – October 2017 www.uefi.org 1
4. What is Firmware Test Suite (FWTS)?
• The recommended ACPI SCT
• An open-source Linux tool that automates
firmware checking
• A good choice if one wants to
implement new tests for specific
features
UEFI Plugfest – October 2017 www.uefi.org 4
5. FWTS Framework
UEFI Plugfest – October 2017 www.uefi.org 5
Linux Kernel
UEFI
Runtime
Services
ACPI
Tables and
AML
ACPICA
Hardware
Devices
CPU SMBIOS
Firmware Test Suite
ACPI BIOS
Device
Tree
Kernel SMBIOS OPAL PCI UEFI etc…
10. Installing FWTS from Source Code
• Download source code
– git clone git://kernel.ubuntu.com/hwe/fwts.git
– git clone https://github.com/ColinIanKing/fwts
• Setup build environments & configure
– sudo apt-get build-dep fwts
– autoreconf -ivf && ./configure
• Compile and install
– make clean && make -j4 && sudo make install
UEFI Plugfest – October 2017 www.uefi.org 10
11. FWTS User Interfaces (Demo)
UEFI Plugfest – October 2017 www.uefi.org 11
Firmware Test Suite
ACPI APIC BIOS
Device
Tree
Kernel SMBIOS PCI UEFI etc…
Command Line
fwts-frontend (GUI)
13. FWTS Directories
UEFI Plugfest – October 2017 www.uefi.org 23
Firmware Test Suite
ACPI BIOS
Device
Tree
Kernel SMBIOS Opal PCI UEFI etc…
14. Adding an ACPI Table Test
• Commit 74a34fe4abbe0902
UEFI Plugfest – October 2017 www.uefi.org 24
15. Submitting Patches
UEFI Plugfest – October 2017 www.uefi.org 25
Send patches by Git
Generate patches by Git
Header Signed-off
(Implement fwts-test tests)
Check Coding Styles (Linux Kernel)
Function brackets Spaces & tabs Line length(?)
Write Some Code
Add a new test Fix a bug
16. Why Contribute to FWTS?
• Framework is easy to add new features,
ex. Device Tree
• Existing code is available, ex. ARM’s
Server Base Boot Requirements (SBBR)
• Example: an imaginary Linux-Only-Spec
that must exclude all Windows features
–No DBGP, DBG2, MSDM, and SLIC etc…
UEFI Plugfest – October 2017 www.uefi.org 26
17. FWTS License & FWTS Community
UEFI Plugfest – October 2017 www.uefi.org 27
18. License – GPLv2
• FWTS uses GPLv2 license
– A “Copy-Left” license
• Can-do & can’t-do
• Should I upstream my code?
– It depends, but it is recommended
• Must I open-source my code?
– Unless you release the binary, the answer is usually No
– But maintenance gets difficult as FWTS grows
UEFI Plugfest – October 2017 www.uefi.org 28
21. Thanks for attending the Fall 2017
UEFI Seminar and Plugfest
For more information on the Unified
EFI Forum and UEFI Specifications,
visit http://www.uefi.org
presented by
UEFI Plugfest – October 2017 www.uefi.org 31