diff --git a/.gitignore b/.gitignore index 4866561..1ee0124 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/skiboot-6.0.4.tar.gz +SOURCES/skiboot-6.2.tar.gz diff --git a/.opal-prd.metadata b/.opal-prd.metadata index 10edb0a..9dd0cef 100644 --- a/.opal-prd.metadata +++ b/.opal-prd.metadata @@ -1 +1 @@ -ab15b0b448b26550e4d822256da58648277cf582 SOURCES/skiboot-6.0.4.tar.gz +3ecda55f6d8b24c7dd02ae9bd8210199d9d943c8 SOURCES/skiboot-6.2.tar.gz diff --git a/SOURCES/skiboot-5.10.2-alignment.patch b/SOURCES/skiboot-5.10.2-alignment.patch deleted file mode 100644 index 730713b..0000000 --- a/SOURCES/skiboot-5.10.2-alignment.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up skiboot-5.10.2/hdata/i2c.c.me skiboot-5.10.2/hdata/i2c.c ---- skiboot-5.10.2/hdata/i2c.c.me 2018-05-14 12:23:30.413536519 +0200 -+++ skiboot-5.10.2/hdata/i2c.c 2018-05-14 12:26:27.036752163 +0200 -@@ -181,7 +181,7 @@ static bool is_zeros(const void *p, size - struct host_i2c_hdr { - const struct HDIF_array_hdr hdr; - __be32 version; --} __packed; -+} __packed __align(0x4); - - int parse_i2c_devs(const struct HDIF_common_hdr *hdr, int idata_index, - struct dt_node *xscom) diff --git a/SOURCES/skiboot-6.0.4-77f510d35e8d60faed989496fac2de16663ff332.patch b/SOURCES/skiboot-6.0.4-77f510d35e8d60faed989496fac2de16663ff332.patch deleted file mode 100644 index e1c5474..0000000 --- a/SOURCES/skiboot-6.0.4-77f510d35e8d60faed989496fac2de16663ff332.patch +++ /dev/null @@ -1,241 +0,0 @@ -commit 77f510d35e8d60faed989496fac2de16663ff332 -Author: Vasant Hegde -Date: Tue Jun 26 16:50:51 2018 +0530 - - vpd: Sanitize VPD data - - On OpenPower system, VPD keyword size tells us the maximum size of the data. - But they fill trailing end with space (0x20) instead of NULL. Also spec - doesn't stop user to have space (0x20) within actual data. - - This patch discards trailing spaces before populating device tree. - - Reported-by: Pridhiviraj Paidipeddi - Signed-off-by: Vasant Hegde - [stewart: fixup make check] - Signed-off-by: Stewart Smith - -diff --git a/hdata/test/p8-840-spira.dts b/hdata/test/p8-840-spira.dts -index e73c691d..428683b1 100644 ---- a/hdata/test/p8-840-spira.dts -+++ b/hdata/test/p8-840-spira.dts -@@ -900,7 +900,7 @@ - card-type = [80 b5 00]; - hw-characteristics = [00]; - ccin = "2B08"; -- description = "CEC OP PANEL "; -+ description = "CEC OP PANEL"; - }; - - power-supply@3102 { -diff --git a/hdata/test/p81-811.spira.dts b/hdata/test/p81-811.spira.dts -index 2ca361ee..800468e3 100644 ---- a/hdata/test/p81-811.spira.dts -+++ b/hdata/test/p81-811.spira.dts -@@ -2119,7 +2119,7 @@ - card-type = [80 b5 00]; - hw-characteristics = [00]; - ccin = "2B08"; -- description = "CEC OP PANEL "; -+ description = "CEC OP PANEL"; - }; - - power-supply@3100 { -diff --git a/hdata/vpd.c b/hdata/vpd.c -index 038569af..98123e5a 100644 ---- a/hdata/vpd.c -+++ b/hdata/vpd.c -@@ -22,6 +22,7 @@ - #include - #include "hdata.h" - #include -+#include - - struct card_info { - const char *ccin; /* Customer card identification number */ -@@ -221,6 +222,32 @@ static const struct card_info *card_info_lookup(char *ccin) - return NULL; - } - -+/* Discard trailing spaces and populate device tree */ -+static struct dt_property *dt_add_prop_sanitize_val(struct dt_node *node, -+ const char *name, const char *val, int vlen) -+{ -+ char *prop = zalloc(vlen + 1); -+ int i; -+ struct dt_property *p = NULL; -+ -+ if (!prop) -+ return p; -+ -+ memcpy(prop, val, vlen); -+ for (i = vlen - 1; i >= 0; i--) { -+ if (prop[i] != 0x20) { -+ prop[i + 1] = '\0'; -+ break; -+ } -+ } -+ -+ if (i >= 0 && !dt_find_property(node, name)) -+ p = dt_add_property_string(node, name, prop); -+ -+ free(prop); -+ return p; -+} -+ - /* - * For OpenPOWER, we only decipher OPFR records. While OP HDAT have VINI - * records too, populating the fields in there is optional. Also, there -@@ -235,27 +262,27 @@ static void vpd_opfr_parse(struct dt_node *node, - /* Vendor Name */ - kw = vpd_find(fruvpd, fruvpd_sz, "OPFR", "VN", &sz); - if (kw) -- dt_add_property_nstr(node, "vendor", kw, sz); -+ dt_add_prop_sanitize_val(node, "vendor", kw, sz); - - /* FRU Description */ - kw = vpd_find(fruvpd, fruvpd_sz, "OPFR", "DR", &sz); - if (kw) -- dt_add_property_nstr(node, "description", kw, sz); -+ dt_add_prop_sanitize_val(node, "description", kw, sz); - - /* Part number */ - kw = vpd_find(fruvpd, fruvpd_sz, "OPFR", "VP", &sz); - if (kw) -- dt_add_property_nstr(node, "part-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "part-number", kw, sz); - - /* Serial number */ - kw = vpd_find(fruvpd, fruvpd_sz, "OPFR", "VS", &sz); - if (kw) -- dt_add_property_nstr(node, "serial-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "serial-number", kw, sz); - - /* Build date in BCD */ - kw = vpd_find(fruvpd, fruvpd_sz, "OPFR", "MB", &sz); - if (kw) -- dt_add_property_nstr(node, "build-date", kw, sz); -+ dt_add_prop_sanitize_val(node, "build-date", kw, sz); - - return; - } -@@ -272,12 +299,12 @@ static void vpd_vrml_parse(struct dt_node *node, - /* Part number */ - kw = vpd_find(fruvpd, fruvpd_sz, "VRML", "PN", &sz); - if (kw) -- dt_add_property_nstr(node, "part-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "part-number", kw, sz); - - /* Serial number */ - kw = vpd_find(fruvpd, fruvpd_sz, "VRML", "SN", &sz); - if (kw) -- dt_add_property_nstr(node, "serial-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "serial-number", kw, sz); - - return; - } -@@ -292,47 +319,47 @@ static void vpd_vini_parse(struct dt_node *node, - /* FRU Stocking Part Number */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "FN", &sz); - if (kw) -- dt_add_property_nstr(node, "fru-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "fru-number", kw, sz); - - /* Serial Number */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "SN", &sz); - if (kw) -- dt_add_property_nstr(node, "serial-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "serial-number", kw, sz); - - /* Part Number */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "PN", &sz); - if (kw) -- dt_add_property_nstr(node, "part-number", kw, sz); -+ dt_add_prop_sanitize_val(node, "part-number", kw, sz); - - /* Vendor Name */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "VN", &sz); - if (kw) -- dt_add_property_nstr(node, "vendor", kw, sz); -+ dt_add_prop_sanitize_val(node, "vendor", kw, sz); - - /* CCIN Extension */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "CE", &sz); - if (kw) -- dt_add_property_nstr(node, "ccin-extension", kw, sz); -+ dt_add_prop_sanitize_val(node, "ccin-extension", kw, sz); - - /* HW Version info */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "HW", &sz); - if (kw) -- dt_add_property_nstr(node, "hw-version", kw, sz); -+ dt_add_prop_sanitize_val(node, "hw-version", kw, sz); - - /* Card type info */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "CT", &sz); - if (kw) -- dt_add_property_nstr(node, "card-type", kw, sz); -+ dt_add_prop_sanitize_val(node, "card-type", kw, sz); - - /* HW characteristics info */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "B3", &sz); - if (kw) -- dt_add_property_nstr(node, "hw-characteristics", kw, sz); -+ dt_add_prop_sanitize_val(node, "hw-characteristics", kw, sz); - - /* Customer Card Identification Number (CCIN) */ - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "CC", &sz); - if (kw) { -- dt_add_property_nstr(node, "ccin", kw, sz); -+ dt_add_prop_sanitize_val(node, "ccin", kw, sz); - - cinfo = card_info_lookup((char *)kw); - if (cinfo) { -@@ -341,7 +368,7 @@ static void vpd_vini_parse(struct dt_node *node, - } else { - kw = vpd_find(fruvpd, fruvpd_sz, "VINI", "DR", &sz); - if (kw) { -- dt_add_property_nstr(node, -+ dt_add_prop_sanitize_val(node, - "description", kw, sz); - } else { - dt_add_property_string(node, "description", "Unknown"); -@@ -548,13 +575,13 @@ static void sysvpd_parse_opp(const void *sysvpd, unsigned int sysvpd_sz) - - v = vpd_find(sysvpd, sysvpd_sz, "OSYS", "MM", &sz); - if (v) -- dt_add_property_nstr(dt_root, "model", v, sz); -+ dt_add_prop_sanitize_val(dt_root, "model", v, sz); - else - dt_add_property_string(dt_root, "model", "Unknown"); - - v = vpd_find(sysvpd, sysvpd_sz, "OSYS", "SS", &sz); - if (v) -- dt_add_property_nstr(dt_root, "system-id", v, sz); -+ dt_add_prop_sanitize_val(dt_root, "system-id", v, sz); - else - dt_add_property_string(dt_root, "system-id", "Unknown"); - } -@@ -569,19 +596,19 @@ static void sysvpd_parse_legacy(const void *sysvpd, unsigned int sysvpd_sz) - - model = vpd_find(sysvpd, sysvpd_sz, "VSYS", "TM", &sz); - if (model) -- dt_add_property_nstr(dt_root, "model", model, sz); -+ dt_add_prop_sanitize_val(dt_root, "model", model, sz); - else - dt_add_property_string(dt_root, "model", "Unknown"); - - system_id = vpd_find(sysvpd, sysvpd_sz, "VSYS", "SE", &sz); - if (system_id) -- dt_add_property_nstr(dt_root, "system-id", system_id, sz); -+ dt_add_prop_sanitize_val(dt_root, "system-id", system_id, sz); - else - dt_add_property_string(dt_root, "system-id", "Unknown"); - - brand = vpd_find(sysvpd, sysvpd_sz, "VSYS", "BR", &sz); - if (brand) -- dt_add_property_nstr(dt_root, "system-brand", brand, sz); -+ dt_add_prop_sanitize_val(dt_root, "system-brand", brand, sz); - else - dt_add_property_string(dt_root, "brand", "Unknown"); - } diff --git a/SOURCES/skiboot-6.0.4-861350941f9a3fb76ebcae3e5a32b3cbec929d03.patch b/SOURCES/skiboot-6.0.4-861350941f9a3fb76ebcae3e5a32b3cbec929d03.patch deleted file mode 100644 index 0b8a0ac..0000000 --- a/SOURCES/skiboot-6.0.4-861350941f9a3fb76ebcae3e5a32b3cbec929d03.patch +++ /dev/null @@ -1,65 +0,0 @@ -commit 861350941f9a3fb76ebcae3e5a32b3cbec929d03 -Author: Vasant Hegde -Date: Tue Jun 26 16:50:52 2018 +0530 - - vpd: Add vendor property to processor node - - Processor FRU vpd doesn't contain vendor detail. We have to parse - module VPD to get vendor detail. - - Reported-by: Pridhiviraj Paidipeddi - Signed-off-by: Vasant Hegde - Signed-off-by: Stewart Smith - -diff --git a/hdata/hdata.h b/hdata/hdata.h -index 981affd4..426c9c98 100644 ---- a/hdata/hdata.h -+++ b/hdata/hdata.h -@@ -50,6 +50,8 @@ extern const char *slca_get_vpd_name(uint16_t slca_index); - extern const char *slca_get_loc_code_index(uint16_t slca_index); - extern void slca_vpd_add_loc_code(struct dt_node *node, uint16_t slca_index); - extern void slca_dt_add_sai_node(void); -+extern void dt_add_proc_vendor(struct dt_node *proc_node, -+ const void *mvpd, unsigned int mvpd_sz); - - extern bool hservices_from_hdat(const void *fdt, size_t size); - int parse_i2c_devs(const struct HDIF_common_hdr *hdr, int idata_index, -diff --git a/hdata/spira.c b/hdata/spira.c -index d459df7c..189584d5 100644 ---- a/hdata/spira.c -+++ b/hdata/spira.c -@@ -561,6 +561,8 @@ static bool add_xscom_sppcrd(uint64_t xscom_base) - dt_add_property(np, "ibm,module-vpd", vpd, - vpd_sz); - vpd_data_parse(np, vpd, vpd_sz); -+ if (vpd_node) -+ dt_add_proc_vendor(vpd_node, vpd, vpd_sz); - } - } - -diff --git a/hdata/vpd.c b/hdata/vpd.c -index 98123e5a..129b5062 100644 ---- a/hdata/vpd.c -+++ b/hdata/vpd.c -@@ -248,6 +248,21 @@ static struct dt_property *dt_add_prop_sanitize_val(struct dt_node *node, - return p; - } - -+/* -+ * OpenPower system does not provide processor vendor name under FRU VPD. -+ * Parse processor module VPD to get vendor detail -+ */ -+void dt_add_proc_vendor(struct dt_node *proc_node, -+ const void *mvpd, unsigned int mvpd_sz) -+{ -+ const void *kw; -+ uint8_t sz; -+ -+ kw = vpd_find(mvpd, mvpd_sz, "VINI", "VN", &sz); -+ if (kw) -+ dt_add_prop_sanitize_val(proc_node, "vendor", kw, sz); -+} -+ - /* - * For OpenPOWER, we only decipher OPFR records. While OP HDAT have VINI - * records too, populating the fields in there is optional. Also, there diff --git a/SOURCES/skiboot-6.0.4-e247710814227a7122915ff44474e0c8aa26fd3a.patch b/SOURCES/skiboot-6.0.4-e247710814227a7122915ff44474e0c8aa26fd3a.patch deleted file mode 100644 index 7717635..0000000 --- a/SOURCES/skiboot-6.0.4-e247710814227a7122915ff44474e0c8aa26fd3a.patch +++ /dev/null @@ -1,100 +0,0 @@ -commit e247710814227a7122915ff44474e0c8aa26fd3a -Author: Samuel Mendoza-Jonas -Date: Wed Nov 21 17:16:01 2018 +1100 - - libflash: Don't merge ECC-protected ranges - - Libflash currently merges contiguous ECC-protected ranges, but doesn't - check that the ECC bytes at the end of the first and start of the second - range actually match sanely. More importantly, if blocklevel_read() is - called with a position at the start of a partition that is contained - somewhere within a region that has been merged it will update the - position assuming ECC wasn't being accounted for. This results in the - position being somewhere well after the actual start of the partition - which is incorrect. - - For now, remove the code merging ranges. This means more ranges must be - held and checked however it prevents incorrectly reading ECC-correct - regions like below: - - [ 174.334119453,7] FLASH: CAPP partition has ECC - [ 174.437349574,3] ECC: uncorrectable error: ffffffffffffffff ff - [ 174.437426306,3] FLASH: failed to read the first 0x1000 from CAPP partition, rc 14 - [ 174.439919343,3] CAPP: Error loading ucode lid. index=201d1 - - Signed-off-by: Samuel Mendoza-Jonas - Signed-off-by: Stewart Smith - -diff --git a/libflash/blocklevel.c b/libflash/blocklevel.c -index bbcc8e61..5b57d3c6 100644 ---- a/libflash/blocklevel.c -+++ b/libflash/blocklevel.c -@@ -53,9 +53,9 @@ static int ecc_protected(struct blocklevel_device *bl, uint64_t pos, uint64_t le - } - - /* -- * Since we merge regions on inserting we can be sure that a -- * partial fit means that the non fitting region won't fit in another ecc -- * region -+ * Even if ranges are merged we can't currently guarantee two -+ * contiguous regions are sanely ECC protected so a partial fit -+ * is no good. - */ - if ((bl->ecc_prot.prot[i].start >= pos && bl->ecc_prot.prot[i].start < pos + len) || - (bl->ecc_prot.prot[i].start <= pos && -@@ -696,26 +696,6 @@ static bool insert_bl_prot_range(struct blocklevel_range *ranges, struct bl_prot - prot = new_ranges; - } - -- /* Probably only worth mergeing when we're low on space */ -- if (ranges->n_prot + 1 == ranges->total_prot) { -- FL_DBG("%s: merging ranges\n", __func__); -- /* Check to see if we can merge ranges */ -- for (i = 0; i < ranges->n_prot - 1; i++) { -- if (prot[i].start + prot[i].len == prot[i + 1].start) { -- int j; -- FL_DBG("%s: merging 0x%" PRIx64 "..0x%" PRIx64 " with " -- "0x%" PRIx64 "..0x%" PRIx64 "\n", -- __func__, prot[i].start, prot[i].start + prot[i].len, -- prot[i + 1].start, prot[i + 1].start + prot[i + 1].len); -- prot[i].len += prot[i + 1].len; -- for (j = i + 1; j < ranges->n_prot - 1; j++) -- memcpy(&prot[j] , &prot[j + 1], sizeof(range)); -- ranges->n_prot--; -- i--; /* Maybe the next one can merge too */ -- } -- } -- } -- - return true; - } - -diff --git a/libflash/test/test-blocklevel.c b/libflash/test/test-blocklevel.c -index 42ad146a..a67f5888 100644 ---- a/libflash/test/test-blocklevel.c -+++ b/libflash/test/test-blocklevel.c -@@ -289,24 +289,6 @@ int main(void) - ERR("Failed to blocklevel_ecc_protect(0x6200, 0x100)\n"); - return 1; - } -- /*This addition should cause this one to merge the other two together*/ -- if (blocklevel_ecc_protect(bl, 0x6100, 0x100)) { -- ERR("Failed to blocklevel_ecc_protect(0x6100, 0x100)\n"); -- return 1; -- } -- /* Make sure we trigger the merging code */ -- for (i = bl->ecc_prot.n_prot; i < bl->ecc_prot.total_prot; i++) -- blocklevel_ecc_protect(bl, 0x10000 + i * 0x200, 0x10); -- /* Check that the region merging works */ -- for (i = 0; i < bl->ecc_prot.n_prot - 1; i++) { -- if (bl->ecc_prot.prot[i].start + bl->ecc_prot.prot[i].len == bl->ecc_prot.prot[i + 1].start || -- bl->ecc_prot.prot[i + 1].start + bl->ecc_prot.prot[i + 1].len == bl->ecc_prot.prot[i].start) { -- ERR("Problem with protection range merge code, region starting at 0x%08lx for 0x%08lx appears " -- "to touch region 0x%lx for 0x%lx\n", bl->ecc_prot.prot[i].start, bl->ecc_prot.prot[i].len, -- bl->ecc_prot.prot[i + 1].start, bl->ecc_prot.prot[i + 1].len); -- return 1; -- } -- } - - /* Test ECC reading and writing being 100% transparent to the - * caller */ diff --git a/SPECS/opal-prd.spec b/SPECS/opal-prd.spec index e491287..d3e4e8e 100644 --- a/SPECS/opal-prd.spec +++ b/SPECS/opal-prd.spec @@ -1,39 +1,31 @@ %global project skiboot -Name: opal-prd -Version: 6.0.4 -Release: 5%{?dist} -Summary: OPAL Processor Recovery Diagnostics Daemon +Name: opal-prd +Version: 6.2 +Release: 3%{?dist} +Summary: OPAL Processor Recovery Diagnostics Daemon -Group: System Environment/Daemons -License: ASL 2.0 -URL: http://github.com/open-power/skiboot +Group: System Environment/Daemons +License: ASL 2.0 +URL: http://github.com/open-power/skiboot # Presently opal-prd is supported on ppc64le architecture only. -ExclusiveArch: ppc64le +ExclusiveArch: ppc64le BuildRequires: systemd BuildRequires: gcc %if 0%{?fedora} -BuildRequires: gcc-powerpc64-linux-gnu +BuildRequires: gcc-powerpc64-linux-gnu %endif -BuildRequires: openssl-devel +BuildRequires: openssl-devel -Requires(post): systemd -Requires(preun): systemd -Requires(postun): systemd +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd -Source0: https://github.com/open-power/%{project}/archive/v%{version}/%{project}-%{version}.tar.gz +Source0: https://github.com/open-power/%{project}/archive/v%{version}/%{project}-%{version}.tar.gz Source1: opal-prd-rsyslog Source2: opal-prd-logrotate -# https://github.com/open-power/skiboot/issues/160 -Patch0: skiboot-5.10.2-alignment.patch -# 1596245 - "diag_encl -d" creates xml file with blank space in file name also -# file contains attributes with NULL value. -Patch1: skiboot-6.0.4-77f510d35e8d60faed989496fac2de16663ff332.patch -Patch2: skiboot-6.0.4-861350941f9a3fb76ebcae3e5a32b3cbec929d03.patch -# bz#1704699 - RHEL-Alt-7.6 - opal-gard binary doesn't list GUARD records from PNOR -Patch3: skiboot-6.0.4-e247710814227a7122915ff44474e0c8aa26fd3a.patch %description This package provides a daemon to load and run the OpenPower firmware's @@ -65,10 +57,6 @@ services to the OS (Linux) on IBM Power and OpenPower systems. %prep %setup -q -n %{project}-%{version} -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 %build OPAL_PRD_VERSION=%{version} make V=1 CC="gcc" CFLAGS="%{optflags}" LDFLAGS="%{__global_ldflags}" -C external/opal-prd @@ -90,9 +78,6 @@ make -C external/gard install DESTDIR=%{buildroot} prefix=/usr make -C external/pflash install DESTDIR=%{buildroot} prefix=/usr make -C external/xscom-utils install DESTDIR=%{buildroot} prefix=/usr -# drop getsram for 7.6.x -rm -f %{buildroot}%{_sbindir}/getsram %{buildroot}%{_mandir}/man1/getsram* - mkdir -p %{buildroot}%{_unitdir} install -m 644 -p external/opal-prd/opal-prd.service %{buildroot}%{_unitdir}/opal-prd.service @@ -102,7 +87,7 @@ install -m 644 -p skiboot.lid.xz %{buildroot}%{_datadir}/qemu/skiboot.lid.xz # log opal-prd messages to /var/log/opal-prd.log mkdir -p %{buildroot}%{_sysconfdir}/{rsyslog.d,logrotate.d} -install -m 644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/rsyslog.d/opal-prd.conf +install -m 644 %{SOURCE1} %{buildroot}/%{_sysconfdir}/rsyslog.d/opal-prd.conf install -m 644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/opal-prd %post @@ -118,7 +103,7 @@ install -m 644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/opal-prd %doc README.md %license LICENCE %config(noreplace) %{_sysconfdir}/logrotate.d/opal-prd -%config(noreplace) %{_sysconfdir}/rsyslog.d/opal-prd.conf +%config(noreplace) %{_sysconfdir}/rsyslog.d/opal-prd.conf %{_sbindir}/opal-prd %{_unitdir}/opal-prd.service %{_mandir}/man8/* @@ -130,6 +115,7 @@ install -m 644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/opal-prd %{_sbindir}/getscom %{_sbindir}/putscom %{_sbindir}/pflash +%{_sbindir}/getsram %{_mandir}/man1/* %files -n opal-firmware @@ -138,14 +124,16 @@ install -m 644 %{SOURCE2} %{buildroot}/%{_sysconfdir}/logrotate.d/opal-prd %{_datadir}/qemu/ %changelog -* Tue Jun 04 2019 Than Ngo - 6.0.4-5 -- Resolves: #1716855, log messages to /var/log/opal-prd.log +* Wed May 22 2019 Than Ngo - 6.2-3 +- Related: #1579164, log messages to /var/log/opal-prd.log -* Mon May 13 2019 Than Ngo - 6.0.4-4 -- Related: #1704699 - added missing manpages +* Thu Dec 20 2018 Than Ngo - 6.2-2 +- add man pages for getscom, pflash, putscom -* Mon May 13 2019 Than Ngo - 6.0.4-3 -- Resolves: #1704699 - opal-gard binary doesn't list GUARD records from PNO +* Tue Dec 18 2018 Than Ngo - 6.2-1 +- Resolves: #1640691, rebase to 6.2 +- Resolves: #1579164, log messages to /var/log/opal-prd.log +- Resolves: #1660113, opal-prd occ reset causes hardlockup * Thu Jun 28 2018 Than Ngo - 6.0.4-2 - Resolves: #1596245 - "diag_encl -d" creates xml file with blank space in file name