[packages/sedutil] initial PLD release
gotar
gotar at pld-linux.org
Sat Aug 27 21:59:43 CEST 2016
commit 70b970fb2cc437e52ba10dca0f16f300d7fc2d84
Author: Tomasz Pala <gotar at pld-linux.org>
Date: Sat Aug 27 21:47:12 2016 +0200
initial PLD release
44e144ae2b85dc541bd09945311a2030ab412e98.patch | 144 +++++++++++++++++++++++++
sedutil.spec | 48 +++++++++
2 files changed, 192 insertions(+)
---
diff --git a/sedutil.spec b/sedutil.spec
new file mode 100644
index 0000000..bfc0d3c
--- /dev/null
+++ b/sedutil.spec
@@ -0,0 +1,48 @@
+# TODO: build PBAs
+Summary: Self encrypting drive software
+Name: sedutil
+Version: 1.12
+Release: 1
+License: GPL v3+
+Group: Applications/System
+Source0: https://github.com/Drive-Trust-Alliance/sedutil/archive/%{version}.tar.gz
+# Source0-md5: ea8c3c6ae806a00feb292c6970f93e09
+# https://github.com/JanLuca/sedutil/commit/44e144ae2b85dc541bd09945311a2030ab412e98.patch
+Patch0: 44e144ae2b85dc541bd09945311a2030ab412e98.patch
+URL: https://github.com/Drive-Trust-Alliance/sedutil
+BuildRequires: libstdc++-devel
+ExclusiveArch: %{ix86} %{x8664}
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+
+%description
+The Drive Trust Alliance Self Encrypting Drive Utility.
+
+This program and it's accompanying Pre-Boot Authorization image allow
+you to enable the locking in SED's that comply with the TCG OPAL 2.00
+standard on BIOS machines.
+
+%prep
+%setup -q
+%patch0 -p1
+
+%build
+%{__make} -C linux/CLI \
+%ifarch %{x8664}
+ CONF=Release_x86_64
+%else
+ CONF=Release_i686
+%endif
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_bindir}
+
+install linux/CLI/dist/Release_*/GNU-Linux/%{name} $RPM_BUILD_ROOT%{_bindir}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc README.md
+%attr(755,root,root) %{_bindir}/%{name}
diff --git a/44e144ae2b85dc541bd09945311a2030ab412e98.patch b/44e144ae2b85dc541bd09945311a2030ab412e98.patch
new file mode 100644
index 0000000..883e86c
--- /dev/null
+++ b/44e144ae2b85dc541bd09945311a2030ab412e98.patch
@@ -0,0 +1,144 @@
+From 44e144ae2b85dc541bd09945311a2030ab412e98 Mon Sep 17 00:00:00 2001
+From: JanLuca <jan at naumannsfamily.de>
+Date: Mon, 30 May 2016 00:21:48 +0200
+Subject: [PATCH] Use nvme_ioctl.h for newer kernel versions #55
+
+The header linux/nvme.h was replaced by linux/nvme_ioctl.h in kernel versions greater than 4.4: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=9d99a8dda154
+
+The needed structs and opcodes are copied into a new header file from nvme.h.
+
+See also:
+https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=a9cf8284b45110a4d98aea180a89c857e53bf850
+https://www.bountysource.com/issues/29775575-linux-nvme-h-has-been-renamed-in-linux-4-4
+---
+ linux/DtaDevLinuxNvme.h | 8 ++-
+ linux/DtaDevLinuxNvmeStructsOpCodes.h | 101 ++++++++++++++++++++++++++++++++++
+ 2 files changed, 108 insertions(+), 1 deletion(-)
+ create mode 100755 linux/DtaDevLinuxNvmeStructsOpCodes.h
+
+diff --git a/linux/DtaDevLinuxNvme.h b/linux/DtaDevLinuxNvme.h
+index cc55761..7a67385 100755
+--- a/linux/DtaDevLinuxNvme.h
++++ b/linux/DtaDevLinuxNvme.h
+@@ -18,7 +18,13 @@ along with sedutil. If not, see <http://www.gnu.org/licenses/>.
+
+ * C:E********************************************************************** */
+ #pragma once
+-#include "linux/nvme.h"
++#include <linux/version.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 0)
++#include <linux/nvme_ioctl.h>
++#include "DtaDevLinuxNvmeStructsOpCodes.h"
++#else
++#include <linux/nvme.h>
++#endif
+ #include "DtaStructures.h"
+ #include "DtaDevLinuxDrive.h"
+
+diff --git a/linux/DtaDevLinuxNvmeStructsOpCodes.h b/linux/DtaDevLinuxNvmeStructsOpCodes.h
+new file mode 100755
+index 0000000..16d6265
+--- /dev/null
++++ b/linux/DtaDevLinuxNvmeStructsOpCodes.h
+@@ -0,0 +1,101 @@
++/* C:B**************************************************************************
++This software is Copyright 2014-2016 Bright Plaza Inc. <drivetrust at drivetrust.com>
++
++This file is part of sedutil.
++
++sedutil is free software: you can redistribute it and/or modify
++it under the terms of the GNU General Public License as published by
++the Free Software Foundation, either version 3 of the License, or
++(at your option) any later version.
++
++sedutil is distributed in the hope that it will be useful,
++but WITHOUT ANY WARRANTY; without even the implied warranty of
++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++GNU General Public License for more details.
++
++You should have received a copy of the GNU General Public License
++along with sedutil. If not, see <http://www.gnu.org/licenses/>.
++
++ * C:E********************************************************************** */
++#pragma once
++
++enum nvme_admin_opcode {
++ nvme_admin_delete_sq = 0x00,
++ nvme_admin_create_sq = 0x01,
++ nvme_admin_get_log_page = 0x02,
++ nvme_admin_delete_cq = 0x04,
++ nvme_admin_create_cq = 0x05,
++ nvme_admin_identify = 0x06,
++ nvme_admin_abort_cmd = 0x08,
++ nvme_admin_set_features = 0x09,
++ nvme_admin_get_features = 0x0a,
++ nvme_admin_async_event = 0x0c,
++ nvme_admin_activate_fw = 0x10,
++ nvme_admin_download_fw = 0x11,
++ nvme_admin_format_nvm = 0x80,
++ nvme_admin_security_send = 0x81,
++ nvme_admin_security_recv = 0x82,
++};
++
++struct nvme_id_power_state {
++ __le16 max_power; /* centiwatts */
++ __u8 rsvd2;
++ __u8 flags;
++ __le32 entry_lat; /* microseconds */
++ __le32 exit_lat; /* microseconds */
++ __u8 read_tput;
++ __u8 read_lat;
++ __u8 write_tput;
++ __u8 write_lat;
++ __le16 idle_power;
++ __u8 idle_scale;
++ __u8 rsvd19;
++ __le16 active_power;
++ __u8 active_work_scale;
++ __u8 rsvd23[9];
++};
++
++struct nvme_id_ctrl {
++ __le16 vid;
++ __le16 ssvid;
++ char sn[20];
++ char mn[40];
++ char fr[8];
++ __u8 rab;
++ __u8 ieee[3];
++ __u8 mic;
++ __u8 mdts;
++ __le16 cntlid;
++ __le32 ver;
++ __u8 rsvd84[172];
++ __le16 oacs;
++ __u8 acl;
++ __u8 aerl;
++ __u8 frmw;
++ __u8 lpa;
++ __u8 elpe;
++ __u8 npss;
++ __u8 avscc;
++ __u8 apsta;
++ __le16 wctemp;
++ __le16 cctemp;
++ __u8 rsvd270[242];
++ __u8 sqes;
++ __u8 cqes;
++ __u8 rsvd514[2];
++ __le32 nn;
++ __le16 oncs;
++ __le16 fuses;
++ __u8 fna;
++ __u8 vwc;
++ __le16 awun;
++ __le16 awupf;
++ __u8 nvscc;
++ __u8 rsvd531;
++ __le16 acwu;
++ __u8 rsvd534[2];
++ __le32 sgls;
++ __u8 rsvd540[1508];
++ struct nvme_id_power_state psd[32];
++ __u8 vs[1024];
++};
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/sedutil.git/commitdiff/70b970fb2cc437e52ba10dca0f16f300d7fc2d84
More information about the pld-cvs-commit
mailing list