VPD ECC shared library
This commit makes the VPD ECC source into a shared library
and links the shared library with other executables which
are dependant on VPD ECC.
Since the ECC source file is confidential, we need to share the
ECC as a shared library to the IBM Power customers.
Test:
Tested on simics:
1. Corrupted the vpd data.
root@p10bmc:/usr/lib# dd if=/dev/zero of=/sys/bus/i2c/drivers/at24/7-0050/eeprom bs=1 count=2 seek=184
2+0 records in
2+0 records out
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
ERROR: ECC check did not pass for the Record:VINI
2. VPD Parser parsed successfully for a valid vpd
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
<no error>
3.ECC Code worked fine with VPD-Manager
root@p10bmc:/usr/lib# vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VINI -K PN -V "PN34"
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
root@p10bmc:/usr/lib#
root@p10bmc:/usr/lib#
root@p10bmc:/usr/lib# vpd-tool -w -O /system/chassis/motherboard/base_op_panel_blyth -R VINI -K PN -V "PN12"
root@p10bmc:/usr/lib# ibm-read-vpd --file /sys/bus/i2c/drivers/at24/7-0050/eeprom
Signed-off-by: Priyanga Ramasamy <priyanga24@in.ibm.com>
Change-Id: I72306b06ca8724193ef5ef05a0659467994a154d
diff --git a/meson.build b/meson.build
index f1bc49f..304c4c9 100644
--- a/meson.build
+++ b/meson.build
@@ -60,6 +60,18 @@
sdbusplus = dependency('sdbusplus', fallback: [ 'sdbusplus', 'sdbusplus_dep' ])
+libvpdecc_src = files(
+ 'vpdecc/vpdecc.c',
+ 'vpdecc/vpdecc_support.c'
+)
+
+libvpdecc = shared_library(
+ 'vpdecc',
+ libvpdecc_src,
+ version: meson.project_version(),
+ install: true,
+)
+
if not build_tests.disabled()
subdir('test')
endif
@@ -100,7 +112,6 @@
'vpd-parser/memory_vpd_parser.cpp',
'vpd-parser/keyword_vpd_parser.cpp',
'vpd-parser/ipz_parser.cpp', 'impl.cpp', 'ibm_vpd_utils.cpp',
- 'vpdecc/vpdecc.c', 'vpdecc/vpdecc_support.c'
]
if get_option('ibm-parser').enabled()
@@ -116,6 +127,7 @@
phosphor_logging,
libgpiodcxx,
],
+ link_with : libvpdecc,
include_directories : 'vpd-parser/',
install: true,
cpp_args : '-DIPZ_PARSER'
@@ -135,6 +147,7 @@
sdbusplus,
libgpiodcxx
],
+ link_with : libvpdecc,
install: true,
include_directories : vpd_tool_INCLUDE
)