Age | Commit message (Collapse) | Author |
|
Attribute copyright to Intel and add MIT license headers
Signed-off-by: Todor Minchev <todor.minchev@linux.intel.com>
|
|
The contents of an existing database file can be extracted with the -E option.
By default the top level of the directory tree is rmc_db_dump, an alternative
path can be specified with the -o option. The file blobs corresponding
to a given record will be saved in a separate sub-directory. The sub-directory
name for each record is the hex representation of the signature corresponding to
the fingerprint for that record.
Example:
./src/rmc -E -d rmc.db -o output/directory/
Successfully extracted rmc.db
Signed-off-by: Todor Minchev <todor.minchev@linux.intel.com>
|
|
rmc works as a generic file-based solution now. There is no need
to keep a special case for kernel command line type which was
designed in early days.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
EFI Clients linked to rmc may or may not include standard header
files, and these definitions could be different too.
The existing macros like 'WORD' also bring ambiguity among
processor architectures, so we replace them with the new internal
data types.
This change takes whatever defined for types in user space since
we need standard header files anyway, but defines data types for
EFI context.
Everything inside rmc uses internal data types as consolidation.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
This is a major re-work in rmc with several key changes:
To query board-specific data in a rmc database, developers
now can take advantage of new defined APIs, either using
single-action APIs for a better performance of multiple
queries or simply calling a double-action API, which is
sufficient to perform a query in one step, to reduce the
footprint in code at client side. (Refer to inc/rmc_api.h.)
rmc tool itself is modified to use new APIs.
Memory map and allocated data can be released after use in user
space. In EFI context, rmc doesn't allocate memory for anything
returned.
In EFI build, necessary data types are defined in rmc in order
to get rid of dependency on any EFI implementation.
Miscellaneous fixes are also included when we move the pieces
around.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Add detection of current path for -I option, also update
type definitions for EFI compiling.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Runtime test script failed on T100TA (32 bit) machine because
read_file() function in rmc.c gets a wrong value of st_size from
the buffer returned by stat(). We include rmc header files prior
to the rest of standard header files in rmc.c, so standard data
subsequently defined could be affected by "#pragma pack(1)" in rmc
header files.
We save and restore the previous pragma pack setting in rmc header
files to fix this issue.
Runtime test passes on T100TA and other two boards with this change.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
() Provide Makefile.efi to split conventional build and UEFI
compiling. The later one doesn't rely on std lib and headers
() Libraries have new names as librsmpefi.a and librmclefi.a
() Provide basic C functions
() RMC_EFI is the config macro to tell build type
() change header installation path in EFI
() RMC_EFI_ARCH [ia32, x86_64] must be provided for EFI build:
eg:
make RMC_EFI_ARCH=x86_64 -f Makefile.efi
make RMC_EFI_ARCH=x86_64 -f Makefile.efi install
() RMC_EFI_HEADER_PREFIX to specify gnu-efi header file locations
() clean up memory allocation and free stubs
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Including std header files in libraries is moved to rmc_type.h
to make coming uefi build easier.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|
|
Basical test has been performed on two 64bit targets NUC Gen 6
and Lenovo X220. Refer to README for more information.
Signed-off-by: Jianxun Zhang <jianxun.zhang@linux.intel.com>
|