Architecture Overview¶
CHIPSEC Architecture¶
Core components¶
chipsec_main.pymain application logic and automation functions
chipsec_util.pyutility functions (access to various hardware resources)
chipsec/chipset.pychipset detection
chipsec/command.pybase class for util commands
chipsec/defines.pycommon defines
chipsec/file.pyreading from/writing to files
chipsec/logger.pylogging functions
chipsec/module.pygeneric functions to import and load modules
chipsec/module_common.pybase class for modules
chipsec/result_deltas.pysupports checking result deltas between test runs
chipsec/testcase.pysupport for XML and JSON log file output
chipsec/helper/helpers.pyregistry of supported OS helpers
chipsec/helper/oshelper.pyOS helper: wrapper around platform specific code that invokes kernel driver
Commands¶
Implement functionality of chipsec_util.
CHIPSEC utilities provide the capability for manual testing and direct hardware access.
Warning
DIRECT HARDWARE ACCESS PROVIDED BY THESE UTILITIES COULD MAKE YOUR SYSTEM UNBOOTABLE. MAKE SURE YOU KNOW WHAT YOU ARE DOING!
Note
All numeric values in the instructions are in hex.
- List of Utility components
- chipsec.utilcmd.acpi_cmd module
- chipsec.utilcmd.chipset_cmd module
- chipsec.utilcmd.cmos_cmd module
- chipsec.utilcmd.config_cmd module
- chipsec.utilcmd.cpu_cmd module
- chipsec.utilcmd.decode_cmd module
- chipsec.utilcmd.deltas_cmd module
- chipsec.utilcmd.desc_cmd module
- chipsec.utilcmd.ec_cmd module
- chipsec.utilcmd.hals_cmd module
- chipsec.utilcmd.igd_cmd module
- chipsec.utilcmd.interrupts_cmd module
- chipsec.utilcmd.io_cmd module
- chipsec.utilcmd.iommu_cmd module
- chipsec.utilcmd.lock_check_cmd module
- chipsec.utilcmd.mem_cmd module
- chipsec.utilcmd.mm_msgbus_cmd module
- chipsec.utilcmd.mmcfg_base_cmd module
- chipsec.utilcmd.mmcfg_cmd module
- chipsec.utilcmd.mmio_cmd module
- chipsec.utilcmd.module_id_cmd module
- chipsec.utilcmd.msgbus_cmd module
- chipsec.utilcmd.msr_cmd module
- chipsec.utilcmd.pci_cmd module
- chipsec.utilcmd.reg_cmd module
- chipsec.utilcmd.smbios_cmd module
- chipsec.utilcmd.smbus_cmd module
- chipsec.utilcmd.spd_cmd module
- chipsec.utilcmd.spi_cmd module
- chipsec.utilcmd.spidesc_cmd module
- chipsec.utilcmd.tpm_cmd module
- chipsec.utilcmd.txt_cmd module
- chipsec.utilcmd.ucode_cmd module
- chipsec.utilcmd.uefi_cmd module
- chipsec.utilcmd.vmem_cmd module
- chipsec.utilcmd.vmm_cmd module
HAL (Hardware Abstraction Layer)¶
Useful abstractions for common tasks such as accessing the SPI.
Fuzzing¶
CHIPSEC_MAIN Program Flow¶
Select OS Helpers and Drivers
Load Driver (optional)
Load Configuration Files
Load Modules
Run Loaded Modules
Report Results
Cleanup
CHIPSEC_UTIL Program Flow¶
Select OS Helpers and Drivers
Load Driver (optional)
Load Configuration Files
Load Utility Commands
Run Selected Command
Cleanup
Auxiliary components¶
setup.pysetup script to install CHIPSEC as a package
Executable build scripts¶
<CHIPSEC_ROOT>/scripts/build_exe_*.pymake files to build Windows executables