mirror of
https://github.com/chipsec/chipsec
synced 2026-06-08 13:31:00 +00:00
0654edca19
Revision 1.2.0 -------------- This version includes the following new or updated modules: #. Merged common.secureboot.keys module into common.secureboot.variables module #. Updated tools.secureboot.te module to be able to test PE/TE issue on Linux or UEFI shell #. Updated tools.smm.smm_ptr module This version includes the following updates: #. Added the *controls* abstraction. Modules are encouraged to use ``get_control`` and ``set_control`` when interacting with platform registers. This permits greater flexibility in case the register that controls a given feature or configuration changes between platform generations. The controls are defined in the platform XML file. At this time, only a small number of controls are defined. We plan to move existing modules over to this new mechanism. #. Added XML Schema for the XML configuration files #. Support for reading, writing, and listing UEFI variables from the UEFI Shell environment has been added. #. Added support for decompression while SPI flash parsing via ``decode`` or ``uefi decode`` commands in Linux #. Added basic ACPI table parsing to HAL (RSDP, RSDT/XSDT, APIC, DMAR) #. Added UEFI tables searching and parsing to HAL (EFI system table, runtime services table, boot services table, DXE services table, EFI configuration table) #. Added DIMM Serial Presence Detect (SPD) ROM dumping and parsing to HAL #. Added ``uefi s3bootscript`` command parsing the S3 boot script to chipsec_util.py #. Added virtual-to-physical address translation function to Linux/EFI/Windows helpers #. Added support of server platforms (Haswell server and Ivy Town) to chipset.py This version has the following known issues: #. Decompression of images in SPI flash parsing is not available in UEFI shell. #. When calling alloc_phys_mem, the argument to set maximum physical address (max_pa) for allocation is ignored on linux. A message will be printed in dmesg if the allocation is above the max_pa that is passed in, but the call will return anyway. #. UEFI Shell environment does not support ``cpuid`` or ``get_thread_count``. There are functions that simply warn that they are not supported. #. Size of PCIEXBAR (MMCFG) is calculated incorrectly
TODO: Test UEFI functionality
Fully test on 64 and 32-bit platforms
========================
| Chipsec linux driver |
========================
This module is built on/adapted from fmem 1.5.0 and LOLA (Low Level Access)
NOTE:
You may need run apt-get install python-dev for the Python.h header (needed for switching cpu affinity).
If you already have this in a non-standard location (i.e. any other than /usr/include/python-2.7), you can manually edit the path in source/driver/linux/Makefile
To build:
make
To load kernel module:
make install
- or -
./run.sh
To remove kernel module:
make uninstall
- or -
rmmod chipsec
TESTED ON:
Linux 3.2.6 x32 (Mint/Ubuntu)
Linux 2.6.32 x32 (Ubuntu)
Fedora 20 LXDE 64bit
-------------
fmem 1.5.0
This module creates /dev/fmem device,
that can be used for dumping physical memory,
without limits of /dev/mem (1MB/1GB, depending on distribution)
Tested on i386 and x64, feel free to test it on
different architectures. (and send report please)
Cloned from linux/drivers/char/mem.c
(so GPL license apply)
Original name of this tool was fdump,
which was conflict with already existing tool,
so name was changed to fmem
Bug reports and patches welcome.
2009,2010 niekt0@hysteria.sk
-----
Usage:
$ make
# ./run.sh
# dd if=/dev/fmem of=... bs=1MB count=...
-----
BUGS: if you do something like # dd if=/dev/fmem of=dump
dd will never stop, even if there is no more physical RAM
on the system. This is more a feature, because Linux kernel
don't have stable API, and detection of mapped areas can be
tricky on older kernels. Because primary usage for fmem is
memory forensic, I think it is safer to specify
amount of RAM by hand.
-----