mirror of
https://github.com/chipsec/chipsec
synced 2026-06-08 13:31:00 +00:00
40a8ae5d6e
* Native API mode support With this change CHIPSEC can operate in two modes: 1. Using CHIPSEC own kernel driver (default mode, --no_driver option was not specified) 2. Native OS API mode when helper API can be implemented via native OS API (--no_driver command-line option was specified) At the moment, most of the helper API are not implemented in native mode, except get_ACPI_table in Windows helper. Helpers, HAL components or modules can use use_native_api() function of the helper to determine which mode to use. Currently, it directly maps to --no_driver option. Modules can call this function in is_supported() if they can only run in either of the modes. Additional changes: 1. Cleaned up destroy/delete/stop mess in the helpers. Removed destroy() from the helpers 2. Fixed --exists mode when CHIPSEC works with kernel driver which has already been loaded. * Fixed missing driver_exists in start() in Linux and EFI helpers * Updated mock_helper * use_native_api - Added use_native_api to cs - Added use_native_api routing to OSHelper - Refactred Linux helper to have "native" functions (physical_mem, pci_reg, mmio, variables) * Bugfixes 1. Chaged ACPI HAL to use read_physical_mem in native API mode as well (/dev/mem) and only attempt get_ACPI_table if helper doesn't implement native_read_physical_mem 2. Fixed set_EFI_variable in Linux helper 3. Fixed exceptions in OSHelper * Added raising exceptions in native_read/write_physical_mem in win32helper * Fixed incorrect change * UEFI variable changes - Fixed EFIVAR/VAR_set_EFI_variable return status inconsistency - Added EFI status codes - clenup