[coreboot-gerrit] Patch set updated for coreboot: inteltool: add NetBSD compatibility
Andrey Korolyov (andrey@xdel.ru)
gerrit at coreboot.org
Tue Jan 5 18:27:32 CET 2016
Andrey Korolyov (andrey at xdel.ru) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/12835
-gerrit
commit f30f9341013103807415822ae53b105d64dbb248
Author: Andrey Korolyov <andrey at xdel.ru>
Date: Tue Jan 5 19:59:06 2016 +0300
inteltool: add NetBSD compatibility
Change-Id: I6a693633d3a80ea07ade233b1b4fd1c5a1412032
Signed-off-by: Andrey Korolyov <andrey at xdel.ru>
---
util/inteltool/Makefile | 13 +++++++++++--
util/inteltool/inteltool.c | 12 ++++++++++++
util/inteltool/inteltool.h | 28 ++++++++++++++++++++++++++++
3 files changed, 51 insertions(+), 2 deletions(-)
diff --git a/util/inteltool/Makefile b/util/inteltool/Makefile
index 6e202cf..5b95850 100644
--- a/util/inteltool/Makefile
+++ b/util/inteltool/Makefile
@@ -34,11 +34,16 @@ CFLAGS += -I/usr/local/include
LDFLAGS += -L/usr/local/lib
LIBS = -lz
endif
+ifeq ($(OS_ARCH), NetBSD)
+CFLAGS += -I/usr/pkg/include
+LDFLAGS += -L/usr/pkg/lib -Wl,-rpath-link,/usr/pkg/lib
+LIBS = -lz -lpciutils -lpci -l$(shell uname -p)
+endif
all: pciutils dep $(PROGRAM)
$(PROGRAM): $(OBJS)
- $(CC) $(CFLAGS) -o $(PROGRAM) $(OBJS) $(LDFLAGS)
+ $(CC) $(CFLAGS) -o $(PROGRAM) $(OBJS) $(LDFLAGS) $(LIBS)
clean:
rm -f $(PROGRAM) *.o *~ junit.xml
@@ -52,7 +57,11 @@ dep:
define LIBPCI_TEST
/* Avoid a failing test due to libpci header symbol shadowing breakage */
#define index shadow_workaround_index
+#ifdef __NetBSD__
+#include <pciutils/pci.h>
+#else
#include <pci/pci.h>
+#endif
struct pci_access *pacc;
int main(int argc, char **argv)
{
@@ -67,7 +76,7 @@ export LIBPCI_TEST
pciutils:
@printf "\nChecking for pciutils and zlib... "
@echo "$$LIBPCI_TEST" > .test.c
- @$(CC) $(CFLAGS) .test.c -o .test $(LDFLAGS) >/dev/null 2>&1 && \
+ @$(CC) $(CFLAGS) .test.c -o .test $(LDFLAGS) $(LIBS) >/dev/null 2>&1 && \
printf "found.\n" || ( printf "not found.\n\n"; \
printf "Please install pciutils-devel and zlib-devel.\n"; \
printf "See README for more information.\n\n"; \
diff --git a/util/inteltool/inteltool.c b/util/inteltool/inteltool.c
index 9fcf58d..974db6f 100644
--- a/util/inteltool/inteltool.c
+++ b/util/inteltool/inteltool.c
@@ -24,6 +24,10 @@
#include <unistd.h>
#include "inteltool.h"
+#ifdef __NetBSD__
+#include <machine/sysarch.h>
+#endif
+
/*
* http://pci-ids.ucw.cz/read/PC/8086
* http://en.wikipedia.org/wiki/Intel_Tick-Tock
@@ -344,6 +348,14 @@ int main(int argc, char *argv[])
#if defined(__FreeBSD__)
if (open("/dev/io", O_RDWR) < 0) {
perror("/dev/io");
+#elif defined(__NetBSD__)
+# ifdef __i386__
+ if (i386_iopl(3)) {
+ perror("iopl");
+# else
+ if (x86_64_iopl(3)) {
+ perror("iopl");
+# endif
#else
if (iopl(3)) {
perror("iopl");
diff --git a/util/inteltool/inteltool.h b/util/inteltool/inteltool.h
index 6845b4e..85d2944 100644
--- a/util/inteltool/inteltool.h
+++ b/util/inteltool/inteltool.h
@@ -24,13 +24,41 @@
#define __DARWIN__
#include <DirectHW/DirectHW.h>
#endif
+#ifdef __NetBSD__
+#include <pciutils/pci.h>
+#else
#include <pci/pci.h>
+#endif
/* This #include is needed for freebsd_{rd,wr}msr. */
#if defined(__FreeBSD__)
#include <machine/cpufunc.h>
#endif
+#ifdef __NetBSD__
+static uint8_t __attribute__ ((unused))
+inb(unsigned port)
+{
+ uint8_t data;
+ __asm volatile("inb %w1,%0" : "=a" (data) : "d" (port));
+ return data;
+}
+static uint16_t __attribute__ ((unused))
+inw(unsigned port)
+{
+ uint16_t data;
+ __asm volatile("inw %w1,%0": "=a" (data) : "d" (port));
+ return data;
+}
+static uint32_t __attribute__ ((unused))
+inl(unsigned port)
+{
+ uint32_t data;
+ __asm volatile("inl %w1,%0": "=a" (data) : "d" (port));
+ return data;
+}
+#endif
+
#define INTELTOOL_VERSION "1.0"
/* Tested chipsets: */
More information about the coreboot-gerrit
mailing list