[PATCH v2 00/23] Full ACPI compliance testing for the FADT

Al Stone al.stone at linaro.org
Fri Feb 19 23:39:36 UTC 2016


This constitutes a major rewrite and restructuring of the FADT tests
for ACPI.  There is now a compliance test for every field that we can
test.  Some we cannot test since any possible value in the field is
also an allowed value.

In some cases, the tests are an extension of existing tests -- for the
PM blocks, SMI_CMD and the GPE blocks, for example.  In the rest, these
are new tests, and all of these are part of what used to be a much smaller
test1.  The original test2 and test3 are almost entirely intact since they
did some solid testing of semantics across several related fields.

The largest structural change is around reduced hardware mode.  There is
now a test specific to that mode verifying that all of the fields in the
FADT that are to be ignored are set to zero.  Further, tests that are 
irrelevant to reduced hardware mode are skipped when we have tables in
that mode.

Some of the patches are simply to enable compiling the FADT tests on
non-x86 architectures; they were completely disabled previously.  I did
attempt to break up the patches into reasonable chunks but some of them
still may have ended up fairly large.

This has been tested on arm64 and x86-64, using arm64 and x86 ACPI tables.
I am sure the testing has not been exhaustive; there are a *lot* of fields
in the FADT.

Changes for v2:
  -- Print out the SEALED_CASE flag (Colin Ian King)
  -- Relax the revision test a little (Alex Hung)
  -- Simplify/clarify testing of DSDT/X_DSDT fields (Alex Hung)
  -- New patch: add in safety checks for many of the fields that may not
     occur in older FADTs (spurred by comments from Alex Hung)
  -- New patch: update regression tests (Colin Ian King)
  -- Add in Acked-bys, but only if there were NO changes to the prior
     version of the patch (patches 4/23, 8/23, 10/23, 22-23/23 are the
     only ones without Acked-bys).


Al Stone (23):
  FADT: enable compiling on non-x86 architectures
  FADT: non-x86 machines need an FADT but x86 can survive without one
  FADT: disable SCI_EN and RESET_REG tests when in reduced hardware mode
  FADT: add in code to log basic info about the various FADT flag fields
  Add in bit masks for FACS flags.
  FADT: move log info out of test2, will provide it elsewhere
  ACPI: Add hypervisor ID field to FADT.
  FADT: minor cleanup and initial compliance tests
  FADT: expand the compliance test for FIRMWARE_CTRL fields
  FADT: expand compliance checks for DSDT and X_DSDT fields
  FADT: add compliance tests for reserved fields, PM profile, reduced
    hardware
  FADT: restructure test sequence around reduced hardware mode
  FADT: expand compliance tests for the SMI_CMD field
  FADT: add compliance tests for the ACPI_ENABLE and ACPI_DISABLE fields
  FADT: add compliance tests for S4BIOS_REQ and PSTATE_CNT fields
  FADT: extend and add PM address block compliance tests
  FADT: enhance compliance tests for GPE blocks
  FADT: add compliance test for the CST_CNT field
  FADT: add in compliance tests for C2/C3 latency fields
  FADT: add in SLEEP_CONTROL_REG and SLEEP_STATUS_REG compliance tests
  FADT: remove no longer useful variables from test1
  FADT: add safety checks for older versions of FADT
  FADT: update regression tests to incorporate new/changed tests

 .../arg-show-tests-0001/arg-show-tests-0001.log    |    1 +
 .../arg-show-tests-full-0001.log                   |   21 +-
 src/acpi/fadt/fadt.c                               | 1796 +++++++++++++++++---
 src/lib/include/fwts_acpi.h                        |   35 +
 4 files changed, 1595 insertions(+), 258 deletions(-)

-- 
2.5.0




More information about the fwts-devel mailing list