Files
chipsec-chipsec/source/drivers/linux
CHIPSEC 0654edca19 Version 1.2.0
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
2015-06-09 16:48:26 -07:00
..
2015-03-29 18:39:39 -06:00
2015-03-29 18:39:39 -06:00
2015-06-09 16:48:26 -07:00
2015-03-29 18:39:39 -06:00
2015-06-09 16:48:26 -07:00
2014-03-13 10:58:12 -06:00
2014-03-13 10:58:12 -06:00
2015-01-23 16:07:19 -08:00
2014-03-13 10:58:12 -06:00
2014-03-13 10:58:12 -06:00
2015-03-29 18:39:39 -06:00

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.
-----